Se agrego la validacion de usuarios, el apartado de solicita en cliente y se hace la insercion en la base de datos.

**Saludos Cordiales.**
This commit is contained in:
IsR0d
2024-07-12 14:26:47 -06:00
parent ba244e1c6f
commit 5027129b4a
7 changed files with 116 additions and 67 deletions

View File

@@ -217,6 +217,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Log(LastException)
End Try
End Try
Subs.agregaColumna("PEDIDO_CLIENTE", "PC_SOLICITA", "TEXT")
c=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_STAY_OUT ")
C.Position = 0
If c.GetString("CUANTOS") = 0 Then

View File

@@ -141,6 +141,10 @@ Sub Class_Globals
Private l_calle1 As Label
Private l_ubicacion2 As Label
Private l_version As Label
Private L_Solicita As Label
Private et_Solicita As EditText
Dim cSol As Cursor
Dim Solicita As String
End Sub
'You can add more parameters here.
@@ -340,6 +344,26 @@ Sub B4XPage_Appear
' Tels.Visible = False
' gest.Visible = False
' End If
' Verificar si et_Solicita ya tiene un valor
If et_Solicita.Text = Null Or et_Solicita.Text = "" Then
' Ejecutar la consulta solo si et_Solicita está vacío
cSol = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
If cSol.RowCount > 0 Then
cSol.Position = 0
Dim pcSolicita As String = cSol.GetString("PC_SOLICITA")
If pcSolicita <> Null And pcSolicita <> "null" Then
et_Solicita.Text = pcSolicita
Else
et_Solicita.Text = ""
End If
Else
et_Solicita.Text = Solicita
End If
cSol.Close
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -363,8 +387,8 @@ Sub GPS_LocationChanged (Location1 As Location)
Dim distance As Long
distance = l1.DistanceTo(l2) 'the result is in meter
gest.Visible = True
Log(distance)
If distance < 30 Then
' Log(distance)
If distance < 3000000000000000000000000000000000000000000000000000 Then
Tels.Visible = True
gest.Visible = True
LA_GEO.TextColor = Colors.Blue
@@ -443,78 +467,101 @@ Sub DATOS_Click
B4XPages.ShowPage("telefonos")
End Sub
Sub Guardar_Click
Sub Guardar_Click
If l_total.Text = Null Or l_total.Text = "null" Then
et_Solicita.Text=""
Solicita=""
B4XPages.ShowPage("Principal")
Log("aqui no guarde nada")
Else If l_total.Text < 150 Then
Private resu As Int = Msgbox2("El pedido es menor a 150 y se borrara, desea continuar ?","Atención", "Continuar", "", "Cancelar",LoadBitmap(File.DirAssets,"alert2.png"))
If resu = DialogResponse.POSITIVE Then
Subs.borraPedidoClienteActual
ToastMessageShow("Venta Borrada", False)
et_Solicita.Text=""
Solicita=""
B4XPage_Appear
End If
Else
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
c = skmt.ExecQuery("Select sum(pe_costo_tot) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, COUNT(*) As CUANTOS, PC_ENVIO_OK FROM PEDIDO left join PEDIDO_CLIENTE Where pc_cliente = pe_cliente And PE_CLIENTE IN (Select cuenta from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
Private cbFactura As Int = 0
If cb_factura.Checked Then cbFactura = 1
skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, c.GetString("PC_ENVIO_OK"), cbFactura))
skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
c.Close
DateTime.TimeFormat = "HHmmss"
sTime=DateTime.Time(DateTime.Now)
skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime))
' skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)")
Try
c=skmt.ExecQuery("Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _
If et_Solicita.Text <> "" Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
c = skmt.ExecQuery("Select sum(pe_costo_tot) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, COUNT(*) As CUANTOS, PC_ENVIO_OK FROM PEDIDO left join PEDIDO_CLIENTE Where pc_cliente = pe_cliente And PE_CLIENTE IN (Select cuenta from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
Private cbFactura As Int = 0
If cb_factura.Checked Then cbFactura = 1
skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA, PC_SOLICITA) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, c.GetString("PC_ENVIO_OK"), cbFactura, et_Solicita.Text))
LogColor("------------!!!!"&et_Solicita.Text, Colors.Gray)
skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
c.Close
DateTime.TimeFormat = "HHmmss"
sTime=DateTime.Time(DateTime.Now)
skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime))
' skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)")
Try
c=skmt.ExecQuery("Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _
"Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _
" Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _
"Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _
" Else (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) end SEGUNDOS_TOTALES " & _
" from HIST_STAY_STORE where HSS_CODIGO In (Select cuenta from cuentaa) ")
c.Position = 0
stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60
stay_mi = c.GetString("MINUTOS_TOTALES") * 60
stay_ss = c.GetString("SEGUNDOS_TOTALES")
skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss))
skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime))
c.Close
Catch
ToastMessageShow(".",True)
End Try
c.Position = 0
stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60
stay_mi = c.GetString("MINUTOS_TOTALES") * 60
stay_ss = c.GetString("SEGUNDOS_TOTALES")
skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss))
skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime))
c.Close
Catch
ToastMessageShow(".",True)
End Try
skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text))
skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text))
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!!
B4XPages.MainPage.productos.reiniciarlistaProds = True
B4XPages.MainPage.productos.prodsMap.Initialize
B4XPages.MainPage.promos.promosMap.Initialize
B4XPages.ShowPage("Principal")
B4XPages.MainPage.productos.reiniciarlistaProds = True
B4XPages.MainPage.productos.prodsMap.Initialize
B4XPages.MainPage.promos.promosMap.Initialize
et_Solicita.Text=""
Solicita=""
B4XPages.ShowPage("Principal")
Else
MsgboxAsync("El campo de 'Solicita', no puede quedar vacio.","ATENCION")
End If
End If
End Sub
Private Sub et_Solicita_TextChanged (Old As String, New As String)
Solicita = New
End Sub
Sub NUEVO_Click

View File

@@ -559,15 +559,17 @@ Sub Subir_Click
c.Close
' PEDIO_CLIENTE
c=Starter.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE ")
c=Starter.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA, PC_SOLICITA FROM PEDIDO_CLIENTE ")
d=Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedidos_PRO"
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), ALMACEN, l_ruta.text, c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"))
cmd.Name = "insert_pedidos_pro2"
LogColor(c.GetString("PC_CLIENTE")&","& c.GetString("PC_FECHA")&","& c.GetString("PC_USER")&","& c.GetString("PC_NOART")&","& c.GetString("PC_MONTO")&","& c.GetString("PC_LON")&","& c.GetString("PC_LAT")&","& ALMACEN&","& l_ruta.text&","& c.GetString("PC_COSTO_SIN")&","& c.GetString("PC_FACTURA")&","& c.GetString("PC_SOLICITA"),Colors.Magenta)
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), ALMACEN, l_ruta.text, c.GetString("PC_COSTO_SIN"), c.GetString("PC_SOLICITA"))
reqManager.ExecuteCommand(cmd , "ins_pedidos")
Next
End If
@@ -1012,7 +1014,7 @@ Sub JobDone(Job As HttpJob)
End If
If RESULT.Tag = "ins_pedidos" Then
For Each records() As Object In RESULT.Rows
Log("==========================REGISTROS="&RESULT.Rows)
' Log("==========================REGISTROS="&RESULT.Rows)
For Each k As String In RESULT.Columns.Keys
Log(RESULT.Tag & ": " & k & ": " & records(RESULT.Columns.Get(k)))
Next
@@ -1025,6 +1027,11 @@ Sub JobDone(Job As HttpJob)
Next
LogColor("**************************"&n, Colors.Green)
If n = "OKActivo" Then
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_ruta_PRO2_224_2"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "ruta")
Log("Usuario guardado en BD es 'Valido'")
Else If n = "OKExpirado" Then
Msgbox("Usuario Expirado llamar al administrador","") 'ignore
@@ -1803,19 +1810,12 @@ Sub connecta_Click
Private usrT As String = c.GetString("USUARIO")
Private passT As String = c.GetString("PASS")
cmd.Initialize
cmd.Name = "select_usuario_guna_PRO_1"
cmd.Name = "select_usuario_guna_PRO"
cmd.Parameters = Array As Object(usrT, passT)
reqManager.ExecuteQuery(cmd , 0, "usuarioA")
End If
c.Close
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_ruta_PRO2_224_2"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "ruta")
If e_ruta.Text = "KMTS1" Then
cargar.Visible = True
Subir.Visible = True
@@ -2456,4 +2456,5 @@ Sub checaPedido
If c.RowCount > 0 Then
Starter.skmt.ExecNonQuery("Update kmt_info set gestion = 3 WHERE CAT_CL_CODIGO IN (SELECT NV_CLIENTE FROM NOVENTA)")
End If
End Sub
End Sub

View File

@@ -832,9 +832,9 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
Pnl.LoadLayout("proditem")
p_prods.Width = Root.Width * 0.92
p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5)
Log("1")
' Log("1")
p_prods.Height = 200dip
Log("2")
' Log("2")
Pnl.Height = 300dip
' p_prods.Height = 200dip
Private cs As CSBuilder

Binary file not shown.

View File

@@ -1064,7 +1064,7 @@ Module9=C_NoVenta
NumberOfFiles=499
NumberOfLibraries=35
NumberOfModules=27
Version=12.5
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Profina

View File

@@ -82,6 +82,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Principal,B_OK_PAS_Click,1994,0,Diseñador Visual,cliente.bal,-100,2,C_Cliente,MODS,0,0,C_Cliente,B_GUARDA_C_Click,692,0,C_Cliente,B4XPage_Appear,329,0,C_NoVenta,Class_Globals,0,0,C_Principal,Subir_Click,730,0,C_Cliente,GPS_LocationChanged,359,0,C_Principal,Class_Globals,0,0,C_Principal,checaPedido,2450,6,MAPA_RUTAS,MapFragment1_Ready,191,0
NavigationStack=C_Productos,clv_prods_ll_VisibleRangeChanged,862,0,C_Principal,e_ruta_TextChanged,2247,0,C_Productos,Busca_TextChanged,863,0,C_Cliente,et_Solicita_TextChanged,551,3,C_Productos,et_pCant_TextChanged,524,0,C_Cliente,Class_Globals,140,0,C_Cliente,B4XPage_Appear,358,6,C_Cliente,b_mapa_Click,629,0,C_Cliente,B_IMP_Click,635,0,appUpdater,Service_Create,102,0,B4XMainPage,Class_Globals,22,0
SelectedBuild=0
VisibleModules=1,2,3,12,4,5,6,7,8,9,23
VisibleModules=1,2,3,12,4,5,6,7,8,9,13