From a06b688e0b6dbeec39d9bd1dbd15ee15e568613b Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Thu, 4 Dec 2025 16:33:49 -0600 Subject: [PATCH] VERSION 5.10.12 - Se agrego la bitacora. --- B4A/B4XMainPage.bas | 1 + B4A/C_Cliente.bas | 88 ++++++++++++++++++++++++++++++++--------- B4A/Files/cliente.bal | Bin 51377 -> 51982 bytes B4A/Starter.bas | 21 ++++++++++ B4A/Subs.bas | 89 +++++++++++++++++++++++++++++++++++++++++- B4A/TG.b4a.meta | 4 +- 6 files changed, 181 insertions(+), 22 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index da62c2f..201732e 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 4a2dadb..185cf38 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 6179217a4ea40500c8391bd02b863fe322949016..ad1f9a318498fe9b54591f534d2e18f9102219c7 100644 GIT binary patch delta 4802 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 B#kl|g diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 69f74bc..9ba2d45 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -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 \ No newline at end of file diff --git a/B4A/Subs.bas b/B4A/Subs.bas index d6669b3..1750c77 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -1791,4 +1791,91 @@ Sub traeinventario(id As String) As String End If c.Close Return inventario -End Sub \ No newline at end of file +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 diff --git a/B4A/TG.b4a.meta b/B4A/TG.b4a.meta index 985c7c4..b60296c 100644 --- a/B4A/TG.b4a.meta +++ b/B4A/TG.b4a.meta @@ -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