VERSION 5.10.12

- Se agrego la bitacora.
This commit is contained in:
2025-12-04 16:33:49 -06:00
parent 509fd9a85c
commit a06b688e0b
6 changed files with 181 additions and 22 deletions

View File

@@ -224,6 +224,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS NOVENTA (NV_CLIENTE TEXT, NV_FECHA TEXT, NV_USER TEXT, NV_MOTIVO TEXT, NV_COMM TEXT, NV_LAT TEXT, NV_LON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PICK_CIEGO (PC_ID_PROD TEXT, PC_NOM_PROD TEXT, PC_CANT TEXT, PC_ALMACEN TEXT, PC_RUTA TEXT, PC_FECHA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENV_MONTO_LIQ (EML_MONTO TEXT, EML_ALMACEN TEXT, EML_RUTA TEXT, EML_USUARIO TEXT, EML_FECHA_PED TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT)")
Subs.agregaColumna("PEDIDO", "PE_ENVIO_OK", "INT")
Subs.agregaColumna("PEDIDO", "PE_FOLIOFAC", "INT")
Subs.agregaColumna("PEDIDO", "PE_CANTC", "TEXT")

View File

@@ -183,6 +183,9 @@ Sub Class_Globals
Private et_folio As EditText
Private c_acep_folio As Button
Private c_cancelfolio As Button
Private b_inicioFinVenta As Button
Dim precision As Int = 0
Dim dentroDeGeocerca As Boolean = False
End Sub
'You can add more parameters here.
@@ -256,13 +259,27 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' End If
' h.Close
' j.Close
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
b_inicioFinVenta.Left = 1
b_inicioFinVenta.Width = Root.Width - 2dip
b_inicioFinVenta.BringToFront
' banderaimp = 0
dentroDeGeocerca = True
b_inicioFinVenta.Text = "INICIAR VENTA"
b_inicioFinVenta.BringToFront
LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red)
If Not(Starter.enVenta) And la_cuenta.Text <> "0" Then
b_inicioFinVenta.Visible = True
Log("EnVenta Visible")
Else
b_inicioFinVenta.Visible = False
Log("EnVenta NO Visible")
End If
Guardar.Enabled = True
gest.Enabled = True
b_cxc.Enabled = True
@@ -474,11 +491,11 @@ Sub B4XPage_Appear
'SELECT CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) FROM KMT_INFO INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)
Private credi2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) As SALDO_PENDIENTE, Ifnull(CAT_CL_LIMITECREDITO,0) As CAT_CL_LIMITECREDITO FROM KMT_INFO LEFT JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION SELECT CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) As SALDO_PENDIENTE, Ifnull(CAT_CL_LIMITECREDITO,0) As CAT_CL_LIMITECREDITO FROM KMT_INFO2 LEFT JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
Log(credi2.RowCount)
' Log(credi2.RowCount)
If credi2.RowCount > 0 Then
credi2.Position = 0
credito_diponible = credi2.GetString ("CAT_CL_LIMITECREDITO")
Log(credi2.GetString ("CAT_CL_BCREDITO"))
' Log(credi2.GetString ("CAT_CL_BCREDITO"))
If credi2.GetString ("CAT_CL_BCREDITO") = "1" Then
Log(credi2.GetString("SALDO_PENDIENTE"))
If credi2.GetString("SALDO_PENDIENTE") > 0 Then
@@ -510,7 +527,7 @@ Sub B4XPage_Appear
End If
Else
Log(1)
' Log(1)
b_venta_credito.Visible = False
If credi2.GetString("SALDO_PENDIENTE") > 0 Then
Private credi3 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT a_abono, CAT_CL_CODIGO FROM KMT_INFO INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION SELECT a_abono, CAT_CL_CODIGO FROM KMT_INFO2 INNER JOIN ABONOS ON CAT_CL_CODIGO = a_cliente WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
@@ -549,7 +566,7 @@ Sub B4XPage_Appear
gest.Text = "Preventa"
B4XPages.MainPage.recarga = "0"
End If
LogColor(B4XPages.MainPage.recarga,Colors.Blue)
' LogColor(B4XPages.MainPage.recarga,Colors.Blue)
' If banderaimp = 1 Then
' Guardar_Click
' End If
@@ -603,6 +620,15 @@ Sub GPS_LocationChanged (Location1 As Location)
End If
End If
' If distance > 50 Then
'' l_ubicacion2.TextColor = Colors.Red
' dentroDeGeocerca = False
' Else
'' l_ubicacion2.TextColor = Colors.Black
' dentroDeGeocerca = True
'' Log("dentro de geocerca")
' End If
LA_GEO.Text= $"$1.2{distance/1000} kms"$
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
@@ -857,6 +883,42 @@ Sub Guardar_Click
' GuardaVenta
' End If
' c.Close
b_inicioFinVenta.Text = "TERMINAR VENTA"
If la_cuenta.Text <> "0" Then 'Si es ABORDO, no mostramos el boton b_inicioFinVenta y regresamos a Principal.
b_inicioFinVenta.Visible = True
b_inicioFinVenta.BringToFront
Guardar.SendToBack
Log("InicioFinVenta VISIBLE")
Else
b_inicioFinVenta.Visible = False
Log("InicioFinVenta NO VISIBLE")
Starter.enVenta = False
LogColor(">>>>>> ABORDO: " & Starter.enVenta, Colors.red)
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta(Subs.traeCliente), "Venta Abordo", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "")
B4XPages.ShowPageAndRemovePreviousPages("Principal")
End If
' Log((Subs.traeTotalCliente > 0 And b_inicioFinVenta.Text <> "TERMINAR VENTA"))
If Subs.traeTotalCliente > 0 And b_inicioFinVenta.Text <> "TERMINAR VENTA" Then ' Si ya hay venta no aparece el boton
Log("InicioFinVenta NO VISIBLE")
b_inicioFinVenta.Visible = False
End If
End Sub
Private Sub b_inicioFinVenta_Click
If dentroDeGeocerca Then precision = 1
Private motivoNoVenta As String = ""
Private motivoNoVisita As String = ""
If Starter.enVenta Then
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta(Subs.traeCliente), "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, motivoNoVisita)
Starter.enVenta = False
LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
B4XPages.ShowPageAndRemovePreviousPages("Principal")
Else
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta(Subs.traeCliente), "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "")
Starter.enVenta = True
' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
End If
b_inicioFinVenta.Visible = False
End Sub
Private Sub b_acred_Click
@@ -946,19 +1008,11 @@ End Sub
Sub GUADAVENTA2
Log(B4XPages.MainPage.recarga)
If B4XPages.MainPage.recarga = "0" Then
Dim foliofac2 As Cursor=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) and PE_DESCRAGA = 1 AND PE_FOLIOFAC IS NULL")
If foliofac2.RowCount > 0 Then
Dim foliofac As Cursor=B4XPages.MainPage.skmt.ExecQuery("SELECT sum(IFNULL(PE_DESCRAGA,0)) AS PE_DESCRAGA FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
foliofac.Position = 0
If foliofac.GetInt("PE_DESCRAGA") = 0 Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -1004,7 +1058,6 @@ Sub GUADAVENTA2
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))
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
@@ -1024,15 +1077,13 @@ Sub GUADAVENTA2
HIST.Enabled = True
banderaimp = 0
mandaPendientePagare
B4XPages.ShowPage("Principal")
' B4XPages.ShowPage("Principal") 'Lo hace Boton inicioFinVenta
Else
p_folio.Visible = True
p_folio.Width = Root.Width
p_folio.Height = Root.Height
End If
Else
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -1098,7 +1149,7 @@ Sub GUADAVENTA2
HIST.Enabled = True
banderaimp = 0
mandaPendientePagare
B4XPages.ShowPage("Principal")
' B4XPages.ShowPage("Principal") 'Lo hace Boton inicioFinVenta
End If
Else If B4XPages.MainPage.recarga = "1" Then
DateTime.DateFormat = "MM/dd/yyyy"
@@ -1161,7 +1212,6 @@ Sub GUADAVENTA2
B4XPages.ShowPage("login")
B4XPages.MainPage.recarga = "0"
End If
End Sub
Sub NUEVO_Click

Binary file not shown.

View File

@@ -38,6 +38,7 @@ Sub Process_Globals
Dim pre_viejo As Float
Private BTAdmin As BluetoothAdmin
Public BluetoothState As Boolean
Dim enVenta As Boolean = False
End Sub
Sub Service_Create
@@ -138,4 +139,24 @@ Sub reinicializaReqManager(srv As String)
DBReqServer = srv
reqManager.Initialize(Me, srv)
LogColor(srv, Colors.red)
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE STARTER")
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then
reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(Job.tag))
LogColor($">>>>>> Quitamos ${Job.tag}"$, Colors.Blue)
End If
LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
End If
If Job.Success = False Then
Log("ERROR")
LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
' Job.Release
Else 'If Job Success then ...
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.RGB(0,160,0)) 'Mod por CHV - 211027
'Verificamos que el usuario guardado en BD sea VALIDO.
End If
End Sub

View File

@@ -1791,4 +1791,91 @@ Sub traeinventario(id As String) As String
End If
c.Close
Return inventario
End Sub
End Sub
'Guarda en la tabla BitacoraGPS el evento espcificado en eventob, junto con coordenadas y otros datos.
'En precision,si metio contraseña para brincar la geocerca, poner 0 gps, si esta dentro de los 50 mts poner 1 y 2 para eventos que no lo ocupen.
'Mandar fecha de sync(sysdate)
Sub bitacora(fechab As String, usuariob As String, almacenb As String, rutab As String, eventob As String, clienteb As String, iniciob As String, finb As String, latitudb As String, longitudb As String, precision As String, motivonoventa As String, motivonovisita As String )
Log("== BITACORA ==")
Log($"${eventob}, "$)
If Starter.Logger Then Log("bitacora")
Private cmd As DBCommand
cmd.Initialize
cmd.Name = "mandaBitacora3_TGUERRERAS"
If Starter.Logger Then Log("mandaBitacora3_TGUERRERAS")
Private nombreCliente As String = traeNombreCliente(clienteb)
If eventob = "Llega a almacen" Then
nombreCliente = "BOLETA"
clienteb = ""
finb = iniciob
End If
If eventob = "Salida almacen" Then nombreCliente = "CHECKLIST"
If eventob = "Fin Día" Then nombreCliente = "FIN DIA"
If eventob = "Carga día" Then nombreCliente = "CARGA DIA"
If eventob <> "Termina Venta" And eventob <> "No Venta" Then
Starter.skmt.ExecNonQuery($"INSERT INTO BITACORAGPS (fechab, usuariob , almacenb , rutab , eventob , clienteb , iniciob , finb , latitudb, longitudb , precision , motivonoventa , motivonovisita) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precision}' , '${motivonoventa}' , '${motivonovisita}')"$)
' Log($"'${almacenb}', '${usuariob}', '${rutab}', '${eventob}', '${clienteb}', '${nombreCliente}','${ iniciob}', '${finb}','${ latitudb}','${ longitudb}', '${precision}', '${motivonoventa}', '${motivonovisita}', '${fechab}'"$)
' TMP_ALMACEN, TMP_USUARIO, TMP_RUTA, TMP_EVENTO, TMP_ID_CLIENTE, TMP_NOMBRE_CLIENTE, TMP_INICIO, TMP_FINAL, TMP_LATITUD, TMP_LONGITUD, TMP_PRESICION, TMP_MOTIVO_NO_VENTA, TMP_MOTIVO_NO_VISITA, TMP_FECHA_SINC, TMP_FECHA_MOVIL
' cmd.Parameters = Array As Object(almacenb, usuariob, rutab, eventob, clienteb, nombreCliente, iniciob, finb, latitudb, longitudb, precision, motivonoventa, motivonovisita, fechab)
' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora")
Else
Log(222)
Private e As Cursor = Starter.skmt.ExecQuery($"select fechab from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' and eventob = 'Inicia Venta' order by fechab desc"$)
' TMP_RUTA = (?) And tmp_almacen = (?) And tmp_usuario = (?) And tmp_id_cliente = (?) And tmp_evento = (?) And tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss')
If e.RowCount > 0 Then
Log(333)
e.Position = 0
Log("ACTUALIZA BITACORA")
If eventob = "Termina Venta" Then
Log(444)
Starter.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$)
' cmd.Name = "actualizaSalidaBitacora"
' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss') where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss');
cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab"))
Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$)
' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora")
else if eventob = "No Venta" Then
Starter.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}', motivonoventa = '${motivonoventa}', motivonovisita = '${motivonovisita}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$)
' cmd.Name = "actualizaNoVentaBitacora"
' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss'), TMP_MOTIVO_NO_VENTA = (?), TMP_MOTIVO_NO_VISITA = (?) where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss')
cmd.Parameters = Array As Object(finb, motivonoventa, motivonovisita, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab"))
' Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$)
' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora")
End If
End If
End If
If eventob <> "Inicia Venta" Then
Log(555)
Private c As Cursor = Starter.skmt.ExecQuery($"select * from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' order by fechab desc"$)
If c.RowCount > 0 Then
Log(666)
c.Position = 0
cmd.Parameters = Array As Object(c.GetString("almacenb"), c.GetString("usuariob"), c.GetString("rutab"), c.GetString("eventob"), c.GetString("clienteb"), nombreCliente, c.GetString("iniciob"), c.GetString("finb"), c.GetString("latitudb"), c.GetString("longitudb"), c.GetString("precision"), c.GetString("motivonoventa"), c.GetString("motivonovisita"), c.GetString("fechab"))
Log($"(${c.GetString("almacenb")}, ${c.GetString("usuariob")}, ${c.GetString("rutab")}, ${c.GetString("eventob")}, ${c.GetString("clienteb")}, ${nombreCliente}, ${c.GetString("iniciob")}, ${c.GetString("finb")}, ${c.GetString("latitudb")}, ${c.GetString("longitudb")}, ${c.GetString("precision")}, ${c.GetString("motivonoventa")}, ${c.GetString("motivonovisita")}, ${c.GetString("fechab")})"$)
Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora")
End If
End If
If Starter.Logger Then Log("Mandamos bitacora")
End Sub
'Regresa el nombre del cliente del id dado.
Sub traeNombreCliente(id As String) As String
Private c As ResultSet = Starter.skmt.ExecQuery($"select CAT_CL_NOMBRE from kmt_info where CAT_CL_CODIGO = '${id}'"$)
Private n As String = "N/A"
Do While c.NextRow
n = c.GetString("CAT_CL_NOMBRE")
Loop
c.Close
Return n
End Sub
Sub fechanormal(fecha As String) As String 'ignore
' Log(fecha)
Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
DateTime.DateFormat = "YYYY/MM/dd HH:mm:ss"
Dim nuevaFecha As String=DateTime.Date(fecha)
DateTime.DateFormat = OrigFormat 'return to orig date format
' Log(nuevaFecha)
Return nuevaFecha
End Sub

View File

@@ -97,6 +97,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=Diseñador Visual,cuentamerma.bal,-100,5,C_Principal,CreateListItem2,785,0,C_Principal,MapFragment1_LongClick,706,0,C_Principal,Subir_Click,730,6,C_Principal,b_terpc_Click,3529,1,C_Cliente,MODS,0,0,Diseñador Visual,cliente.bal,-100,3,C_Cliente,c_acep_folio_Click,3193,6,Subs,guardaProductoSinGestion3,916,0,Subs,actualizaProducto3,956,0
NavigationStack=C_Principal,Class_Globals,0,0,C_Principal,JobDone,1504,0,Starter,Process_Globals,34,0,Starter,reinicializaReqManager,135,0,C_Cliente,B4XPage_Appear,487,0,Starter,JobDone,150,5,Subs,bitacora,1848,6,Subs,traeinventario,1788,0,C_Cliente,b_inicioFinVenta_Click,910,3,C_Cliente,Guardar_Click,899,6
SelectedBuild=0
VisibleModules=1,2,3,4,31,15,14,13,5,17
VisibleModules=2,4,31,14,13,5,30,17