diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 71327a0..b00d28d 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -102,8 +102,6 @@ Sub Class_Globals
Dim l_vPedidos2 As Label
Dim l_vNoVenta2 As Label
Dim i_progress As B4XGifView
- Dim in As Intent
- Dim intentUsado As Boolean = False
Dim Guna_Reparto As C_Guna_Reparto
Dim Intmex_Reparto As C_Intmex_Reparto
Dim Marquez_Reparto As C_Marquez_Reparto
@@ -136,6 +134,7 @@ Sub Class_Globals
Private l_montoaliquidar As Label
Private l_rutasP As Label
Private l_rutaRep As Label
+ Dim importador As C_ImportaBD
End Sub
Public Sub Initialize
@@ -199,54 +198,23 @@ Sub B4XPage_Created (Root1 As B4XView)
Marquez.Initialize
Mazapa.Initialize
Profina.Initialize
+ importador.Initialize
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
Log("INICIO")
- If Not(in.IsInitialized) Then in = B4XPages.GetNativeParent(Me).GetStartingIntent
- If Not(intentUsado) And in <> Null Then
- Log(in)
-' Dim action As String = in.Action
-' Log("Action: " & action) ' Ej: "android.intent.action.VIEW"
-' Dim uri As Object = in.GetData ' Obtiene la URI (content://...)
-' Log(in.GetData)
-' If uri <> Null Then
-' Dim uriString As String = uri
-' Log("URI: " & uriString) ' Ej: "content://com.whatsapp.provider.media/..."
-' Else
-' Log("El Intent no tiene URI asociada.")
-' End If
-' Dim mimeType As String = in.GetData
-' Log("MIME Type: " & mimeType) ' Ej: "application/x-sqlite3"
-' If in.HasExtra("android.intent.extra.STREAM") Then
-' Dim extraUri As Object = in.GetExtra("android.intent.extra.STREAM")
-' Log("Extra URI: " & extraUri) ' Ej: "content://..."
-' Else
-' Log("No hay extras con android.intent.extra.STREAM")
-' End If
- intentUsado = True
-' Log(in.GetData)
- If in.GetData <> Null Then
- Dim XmlData As String
- XmlData = in.GetData
- ToastMessageShow(XmlData, False)
- ' Send_Make_somthing(in)
- ' Activity.Finish
- Try
- Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal,"kmt.db",False)
- Dim InStr As InputStream = File.OpenInput("ContentDir",XmlData)
- File.Copy2(InStr,OutStr)
- LogColor("BD copiada a interna.", Colors.Blue)
- OutStr.Close
- If in.As(String).Contains("whatsapp") Then B4XPages.SetTitle(Me, "BD cargada desde Whatsapp")
- Catch
- Log(LastException)
- End Try
-' ExitApplication
- End If
+ ' CODIGO PARA INTENT DE IMPORTAR BD DESDE WHATSAPP
+ ' 1. Obtener el Intent del activity padre (Esto SE QUEDA fuera de la clase)
+ Dim in As Intent = B4XPages.GetNativeParent(Me).GetStartingIntent
+ ' 2. Pasamos la bolita a la clase
+ If importador.ProcesarIntent(in) Then
+ ToastMessageShow("BD importada correctamente", False)
+ If importador.EsDeWhatsapp(in) Then B4XPages.SetTitle(Me, "BD cargada desde Whatsapp")
End If
+ ' TERMINA CODIGO DE IMPORTACION
+
' Log($"Existe BD: ${File.Exists(File.DirInternal, "kmt.db") }"$)
If File.Exists(File.DirInternal, "kmt.db") Then
If Not(skmt.IsInitialized) Then skmt.Initialize(File.DirInternal,"kmt.db", True)
@@ -720,7 +688,8 @@ Sub b_enviar_Click
' envioIzca
Izca.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("DURAKELO") Then
- envioDurakelo
+' envioDurakelo
+ Durakelo.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("MARQUEZ") Then
' envioMarquez
Marquez.ConfigurarYEnviar("http://keymon.net:1781")
@@ -955,6 +924,7 @@ Sub p_principal_Click
p_editaAlmacen.Visible = False
p_editaRuta.Visible = False
p_clientes.Visible = False
+ p_editaUsuario.Visible = False
p_validacion.Visible = False
ime.HideKeyboard
End Sub
@@ -1220,7 +1190,7 @@ Sub envioGuna 'ignore
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
d.Position=0
- Private cuantos_pedidosc As String = D.GetString("CUANTOS_PEDIDOSC")
+ cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC")
d.Close
' ENVIO DE LOS CODIGOS QR
@@ -1498,7 +1468,7 @@ Sub valida(identificador As String)
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
d.Position = 0
- Private cuantos_pedidosc As String = D.GetString("CUANTOS_PEDIDOSC")
+ cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC")
d.Close
cmd.Initialize
diff --git a/B4A/C_Durakelo.bas b/B4A/C_Durakelo.bas
index db7bb80..f670e45 100644
--- a/B4A/C_Durakelo.bas
+++ b/B4A/C_Durakelo.bas
@@ -21,7 +21,6 @@ End Sub
'You can add more parameters here.
Public Sub Initialize As Object
' reqManager.Initialize(Me, "http://keymon.lat:1781")
- reqManager.Initialize(Me, "http://keymon.net:1781")
l_ruta.Initialize("")
L_ABORDO.Initialize("")
l_porvisitar.Initialize("")
@@ -31,14 +30,13 @@ End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
-
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub envia
- carga = "SUBIR"
enviando = True
+ carga = "SUBIR"
almacen = Subs.traeAlmacen
l_ruta.TEXT = Subs.traeRuta
Dim fecha As String = DateTime.Date(DateTime.Now)
@@ -305,127 +303,88 @@ Sub envia
' S_CP.Text = "VALIDANDO"
' End If
' End If
- T4.Initialize("T4", 3000)
- T4.Enabled = True
+' T4.Initialize("T4", 3000)
+' T4.Enabled = True
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE DURAKELO")
- If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
- LogColor($">>>>>>>>>> Llega ${Job.tag} <<<<<<<<<<"$, Colors.Blue)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
End If
- If Job.Success = False Then
- LogColor("############################################", Colors.red)
- LogColor("#### Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
- LogColor("############################################", Colors.red)
- Else
- LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
- If reqManager.reqsList.IndexOf(RESULT.tag) <> -1 Then
- reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(RESULT.tag))
- LogColor($"*** Quitamos ${RESULT.tag}"$, Colors.Magenta)
- T4.Initialize("T4", 2000)
- End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.red)
- End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_pedido" Then 'query tag
-' For Each records() As Object In RESULT.Rows
-' PB2.Progress = PB2.Progress + 5
-' Next
-' PB2.Progress = 100
-' S_CP.Text = "LISTO"
- End If
- End If
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_pedido" Then 'query tag
+ If RESULT.Tag = "valida_pedido" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
- Log(CUANTOSP)
B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
If cuantos_pedido <= CUANTOSP Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
-' S_CP.Text = "INFO OK"
- ToastMessageShow("INFO OK", False)
Else
-' S_CP.Text = "ENVIAR DATOS (K-2)"
- ToastMessageShow($"No se cargo bien la info de pedido.${CRLF}Envíe nuevamente: "$ & CUANTOSP & "/" & cuantos_pedido, True)
- ToastMessageShow("ENVIAR DATOS (K-2)", True)
- Log("No se cargo bien la info de pedido. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido)
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
End If
Next
- End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_pedidoc" Then 'query tag
+ Else If RESULT.Tag = "valida_pedidoc" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
- If cuantos_pedidosc = CUANTOSC Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de pedido_cliente.${CRLF}Envíe nuevamente: "$ & CUANTOSC & "/" & cuantos_pedidosc, True)
- Log("No se cargo bien la info de pedido_cliente. Envíe nuevamente: " & CUANTOSC & "/" & cuantos_pedidosc)
- End If
Next
- End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_noventa" Then 'query tag
+ Else If RESULT.Tag = "valida_noventa" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
- If cuantos_noventa = CUANTOSN Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de NoVenta.${CRLF}Envíe nuevamente: "$ & CUANTOSN & "/" & cuantos_noventa, True)
- Log("No se cargo bien la info de NoVenta. Envíe nuevamente:" & CUANTOSN & "/" & cuantos_noventa)
- End If
Next
End If
End If
- If reqManager.reqsList.size = 0 Then T4.Enabled = True Else T4.Enabled = False
- Job.Release
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
End If
End Sub
Sub valida
validando = True
almacen = Subs.traeAlmacen
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
- d.Position = 0
- cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
- d.Position = 0
- cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
- d.Position = 0
- cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
- d.Close
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
+' d.Position = 0
+' cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
+' d.Position = 0
+' cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
+' d.Position = 0
+' cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
+' d.Close
cmd.Initialize
cmd.Name = "select_cuantos_pedido_DUR"
@@ -442,7 +401,7 @@ Sub valida
cmd.Name = "select_cuantos_pedidoc_DUR"
cmd.Parameters = Array As Object(almacen, Subs.traeRuta)
reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc")
- Log("http://keymon.net:1781")
+' Log("http://keymon.net:1781")
B4XPages.MainPage.l_vPedidos2.Text = ""
B4XPages.MainPage.l_vProds2.Text = ""
diff --git a/B4A/C_Durakelo_Reparto.bas b/B4A/C_Durakelo_Reparto.bas
index a792eee..6d9482b 100644
--- a/B4A/C_Durakelo_Reparto.bas
+++ b/B4A/C_Durakelo_Reparto.bas
@@ -11,6 +11,9 @@ Sub Class_Globals
Dim almacen, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
Dim foto1() As Byte
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -19,6 +22,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
@@ -68,21 +72,69 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
- End If
- If Job.Success = False Then
- LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
- 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
- Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then B4XPages.MainPage.p_progressDialog.Visible = False
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/C_Guna_Reparto.bas b/B4A/C_Guna_Reparto.bas
index d78046a..fe28c38 100644
--- a/B4A/C_Guna_Reparto.bas
+++ b/B4A/C_Guna_Reparto.bas
@@ -12,16 +12,19 @@ Sub Class_Globals
Dim usuario, almacen As String
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
- reqManager.Initialize(Me, "http://keymon.net:1782")
+' reqManager.Initialize(Me, "http://keymon.net:1782")
l_ruta.Initialize("l")
Return Me
End Sub
Sub envia
+ enviando = True
' NOVENTA
l_ruta.text = Subs.traeRuta
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
@@ -237,4 +240,72 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
+End Sub
+
+Sub JobDone(Job As HttpJob)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
+ End If
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/C_ImportaBD.bas b/B4A/C_ImportaBD.bas
new file mode 100644
index 0000000..37d6414
--- /dev/null
+++ b/B4A/C_ImportaBD.bas
@@ -0,0 +1,86 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Class
+Version=12.8
+@EndOfDesignText@
+' ====================================================================================
+' CLASE: C_ImportaBD
+' DESCRIPCION: Gestor aislado para atrapar Intents (ej. compartir desde WhatsApp)
+' y poner la BD en la ruta interna de la app como "kmt.db".
+' ====================================================================================
+' INSTRUCCIONES (En cualquier B4XPage, usualmente B4XMainPage):
+'
+' 1. En Class_Globals se declara la instancia:
+' Private importador As C_ImportaBD
+'
+' 2. En B4XPage_Created se inicializa la clase:
+' importador.Initialize
+'
+' 3. En B4XPage_Appear se captura el Intent padre y se procesa:
+' Dim in As Intent = B4XPages.GetNativeParent(Me).GetStartingIntent
+'
+' If importador.ProcesarIntent(in) Then
+' ' Si entra aquí, la BD ya se copió exitosamente a File.DirInternal con el nombre "kmt.db"
+' ToastMessageShow("BD importada correctamente", False)
+'
+' ' (Opcional) Identificar si el origen fue WhatsApp:
+' If importador.EsDeWhatsapp(in) Then
+' B4XPages.SetTitle(Me, "BD cargada desde Whatsapp")
+' End If
+'
+' ' --> AQUI DEBES REINICIALIZAR TU CONEXION SQL <--
+' ' Ej: skmt.Initialize(File.DirInternal, "kmt.db", True)
+' End If
+
+' 4. Agregar esta sccion al manifiesto de la aplicacion
+' 'Para que se registre para abrir bases de datos
+' AddActivityText(Main,
+'
+'
+'
+'
+'
+' )
+' ====================================================================================
+
+Sub Class_Globals
+ Private intentUsado As Boolean = False
+End Sub
+
+Public Sub Initialize
+ intentUsado = False
+End Sub
+
+' Procesa el intent. Retorna True si efectivamente copió una base de datos.
+Public Sub ProcesarIntent(in As Intent) As Boolean
+ If intentUsado Or in = Null Then Return False
+ If Not(in.IsInitialized) Then Return False
+
+ intentUsado = True ' Sellamos para que no vuelva a procesar el mismo intent
+
+ If in.GetData <> Null Then
+ Dim XmlData As String = in.GetData
+ Log("Intent recibido: " & XmlData)
+ Try
+ Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal, "kmt.db", False)
+ Dim InStr As InputStream = File.OpenInput("ContentDir", XmlData)
+ File.Copy2(InStr, OutStr)
+ OutStr.Close
+ LogColor("BD copiada a interna.", Colors.Blue)
+ Return True
+ Catch
+ Log("Error al copiar BD desde Intent: " & LastException)
+ Return False
+ End Try
+ End If
+ Return False
+End Sub
+
+' Método auxiliar para revisar el origen
+Public Sub EsDeWhatsapp(in As Intent) As Boolean
+ If in <> Null And in.IsInitialized Then
+ If in.As(String).Contains("whatsapp") Then Return True
+ End If
+ Return False
+End Sub
\ No newline at end of file
diff --git a/B4A/C_Intmex.bas b/B4A/C_Intmex.bas
index f048c04..1a66955 100644
--- a/B4A/C_Intmex.bas
+++ b/B4A/C_Intmex.bas
@@ -203,155 +203,83 @@ Sub envia
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE INTMEX")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
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.
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "update_gps" Then
- For Each records() As Object In 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
- Next
- End If
- If RESULT.Tag = "ins_pedidos" Then
- For Each records() As Object In 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
- Next
- End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_pedido" Then 'query tag
+ If RESULT.Tag = "valida_pedido" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
- Log(CUANTOSP)
B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
If cuantos_pedido <= CUANTOSP Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
-' S_CP.Text = "INFO OK"
- ToastMessageShow("INFO OK", False)
Else
-' S_CP.Text = "ENVIAR DATOS (K-2)"
- ToastMessageShow($"No se cargo bien la info de pedido.${CRLF}Envíe nuevamente: "$ & CUANTOSP & "/" & cuantos_pedido, True)
- ToastMessageShow("ENVIAR DATOS (K-2)", True)
- Log("No se cargo bien la info de pedido. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido)
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
End If
Next
- End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_pedidoc" Then 'query tag
+ Else If RESULT.Tag = "valida_pedidoc" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
- If cuantos_pedidosc = CUANTOSC Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de pedido_cliente.${CRLF}Envíe nuevamente: "$ & CUANTOSC & "/" & cuantos_pedidosc, True)
- Log("No se cargo bien la info de pedido_cliente. Envíe nuevamente: " & CUANTOSC & "/" & cuantos_pedidosc)
- End If
Next
- End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "valida_noventa" Then 'query tag
+ Else If RESULT.Tag = "valida_noventa" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
- If cuantos_noventa = CUANTOSN Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de NoVenta.${CRLF}Envíe nuevamente: "$ & CUANTOSN & "/" & cuantos_noventa, True)
- Log("No se cargo bien la info de NoVenta. Envíe nuevamente:" & CUANTOSN & "/" & cuantos_noventa)
- End If
Next
End If
End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_pedido" Then 'query tag
- For Each records() As Object In RESULT.Rows
-' PB2.Progress = PB2.Progress + 5
-' S_CP.Text = "SUBIENDO"
- Next
-' PB2.Progress = 100
- Log("PROGRESO 100")
-' S_CP.Text = "REVISANDO ..."
- ToastMessageShow("REVISANDO", False)
- Log("REVISANDO")
- End If
- End If
-
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_cuestionario" Then 'query tag
- Subs.logJobDoneResultados(RESULT)
- End If
End If
- If reqManager.reqsList.size = 0 Then ' Si ya no hay consultas pendientes ...
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
B4XPages.MainPage.p_progressDialog.Visible = False
- If enviando Then ' Si terminamos de enviar pedido ...
- Sleep(200)
- B4XPages.MainPage.l_progressDialog.Text = "Validando " ' Mostramos el panel de progreso.
- B4XPages.MainPage.p_progressDialog.Visible = True
- valida ' Iniciamos la validación
+ If enviando Then
enviando = False
- End If
- If validando Then
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
validando = False
Sleep(300)
- 'Mostramos el panel de Validación.
B4XPages.MainPage.p_validacion.Visible = True
End If
End If
- Job.Release
End Sub
Sub valida
validando = True
- almacen = Subs.traeAlmacen
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
- d.Position = 0
- cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
- d.Position = 0
- cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
- d.Position = 0
- cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
- d.Close
+' almacen = Subs.traeAlmacen
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
+' d.Position = 0
+' cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
+' d.Position = 0
+' cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
+' d.Position = 0
+' cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
+' d.Close
cmd.Initialize
cmd.Name = "select_cuantos_pedido_INTMEX"
@@ -368,7 +296,7 @@ Sub valida
cmd.Name = "select_cuantos_pedidoc_INTMEX"
cmd.Parameters = Array As Object(almacen, Subs.traeRuta)
reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc")
- Log("http://keymon.net:1781")
+' Log("http://keymon.net:1781")
B4XPages.MainPage.l_vPedidos2.Text = ""
B4XPages.MainPage.l_vProds2.Text = ""
diff --git a/B4A/C_Intmex_Reparto.bas b/B4A/C_Intmex_Reparto.bas
index 45a540f..6d63ed8 100644
--- a/B4A/C_Intmex_Reparto.bas
+++ b/B4A/C_Intmex_Reparto.bas
@@ -10,15 +10,19 @@ Sub Class_Globals
Dim b, c, d, f As Cursor
Dim almacen, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
- reqManager.Initialize(Me, "http://keymon.net:1781")
+' reqManager.Initialize(Me, "http://keymon.net:1781")
l_ruta.Initialize("l")
End Sub
Sub envia
+ enviando = True
almacen = Subs.traeAlmacen
Dim foto1() As Byte
' NOVENTA
@@ -232,21 +236,69 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE INTMEX REPARTO")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
- End If
- If Job.Success = False Then
- LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
- 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
- Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then B4XPages.MainPage.p_progressDialog.Visible = False
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/C_Izca.bas b/B4A/C_Izca.bas
index 215626a..680e8f6 100644
--- a/B4A/C_Izca.bas
+++ b/B4A/C_Izca.bas
@@ -11,6 +11,8 @@ Sub Class_Globals
Dim cmd As DBCommand
Dim b, c, d As Cursor
Dim usuario, almacen As String
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
End Sub
@@ -21,6 +23,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
' carga = "SUBIR"
' p_mandaInfo.Width = Root.Width
' p_mandaInfo.Height = Root.Height
@@ -209,7 +212,7 @@ Sub envia
' PEDIDO
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_CANTC, PE_BCAJAS FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'")
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
+ d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
@@ -422,4 +425,67 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
+End Sub
+
+Sub JobDone(Job As HttpJob)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
+ End If
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
End Sub
\ No newline at end of file
diff --git a/B4A/C_Kelloggs.bas b/B4A/C_Kelloggs.bas
index 4adc9e0..49bd99c 100644
--- a/B4A/C_Kelloggs.bas
+++ b/B4A/C_Kelloggs.bas
@@ -13,6 +13,9 @@ Sub Class_Globals
Dim foto1(), foto2(), foto3(), foto4() As Byte
Dim PORCENTAJE, PASO, PERFIL, NUMERO_PEDIDO, l_ruta As String
Dim contador_env, contador_strem, reqTotales As Int
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
' Initializes the object.
@@ -37,13 +40,14 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
reqTotales = reqManager.reqsList.Size
If reqTotales > 0 Then
Dim t1 As Timer
- t1.Initialize("T1", 20000)
- t1.Enabled = True
+' t1.Initialize("T1", 20000)
+' t1.Enabled = True
End If
End Sub
' **FUNCIÓN ESTANDARIZADA:** Ejecuta la subida de datos (equivalente a Subir_Click -> SUBIR_INFO_PEDIDO)
Public Sub envia
+ enviando = True
' 1. Limpieza y preparación inicial (lógica de Subir_Click)
SUBIR_INFO_PREPARACION
@@ -291,88 +295,73 @@ Private Sub enviaPedido(filtro As String)
End If
reqManager.ExecuteCommand(cmd , $"ins_pedido_${cPed.GetString("PE_CLIENTE")}"$)
- contador_env = contador_env + 1
- Next
- cPed.Close
- End If
+ contador_env = contador_env + 1
+ Next
+ cPed.Close
+ End If
End Sub
-' El callback se maneja aquí, ya que 'Me' fue C_Kelloggs en la inicialización del reqManager
Sub JobDone(Job As HttpJob)
- Log("JOBDONE KELLOGGS")
- ' Lógica para manejar errores y remover de reqsList
-' reqManager.trackNext(Job)
-
- If Not(Job.Success) Then
- LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
- Else ' Si Job.Success es True
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
-
- LogColor("JobDone: '" & RESULT.tag & "' - Registros: " & RESULT.Rows.Size, Colors.Green)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
- If Job.JobName = "DBRequest" Then
-
- ' Manejo de comandos de INSERCIÓN (Actualización de estados en DB local)
- If RESULT.Tag.As(String).StartsWith("ins_pedido_") Then ' Procesa insert_pedido_KELL
- Private temp() As String = Regex.Split("_", RESULT.Tag)
- If temp.Length > 1 Then
- B4XPages.MainPage.skmt.ExecNonQuery($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
- End If
-
- Else If RESULT.Tag.As(String).StartsWith("ins_pedidos_") Then ' Procesa insert_pedidos_KELL (Cabeceras)
- Private temp() As String = Regex.Split("_", RESULT.Tag)
- If temp.Length > 1 Then
- B4XPages.MainPage.skmt.ExecNonQuery($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$)
- End If
-
- Else If RESULT.Tag = "valida_pedido" Then ' Procesa select_cuantos_pedido_KELL
- ' Lógica de validación de pedidos (productos)
- For Each records() As Object In RESULT.Rows
- Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
- If cuantos_pedido <= CUANTOSP Then
- Log($"Validación Pedidos OK: ${CUANTOSP}/${cuantos_pedido}"$)
- Else
- LogColor($"Validación Pedidos FALLÓ: ${CUANTOSP}/${cuantos_pedido}. Se requiere reenvío."$, Colors.Red)
- End If
- Next
-
- Else If RESULT.Tag = "valida_pedidoc" Then ' Procesa select_cuantos_pedidoc_KELL
- ' Lógica de validación de pedidos cliente (cabeceras)
- For Each records() As Object In RESULT.Rows
- Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
- If cuantos_pedidosc = CUANTOSC Then
- Log($"Validación Pedidos Cliente OK: ${CUANTOSC}/${cuantos_pedidosc}"$)
- Else
- LogColor($"Validación Pedidos Cliente FALLÓ: ${CUANTOSC}/${cuantos_pedidosc}. Se requiere reenvío."$, Colors.Red)
- End If
- Next
-
- Else If RESULT.Tag = "valida_noventa" Then ' Procesa select_cuantos_noventa_KELL
- ' Lógica de validación de no venta
- For Each records() As Object In RESULT.Rows
- Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
- If cuantos_noventa = CUANTOSN Then
- Log($"Validación NoVenta OK: ${CUANTOSN}/${cuantos_noventa}"$)
- Else
- LogColor($"Validación NoVenta FALLÓ: ${CUANTOSN}/${cuantos_noventa}. Se requiere reenvío."$, Colors.Red)
- End If
- Next
- End If
- End If
- End If
-
- Job.Release
-
- ' Lógica de finalización: Inicia la validación al terminar todos los envíos
- If reqManager.reqsList.Size = 0 Then
- If PASO = "1" Then ' Si terminamos la fase de envío
- PASO = "2"
- Dim t1 As Timer
- t1.Initialize("T1", 2000)
- t1.Enabled = True
- Log("Envío finalizado. Se inicia TIMER T1 para validación.")
- End If
- End If
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
+ End If
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
End Sub
' Lógica de validación forzada (simula T1_Tick)
diff --git a/B4A/C_Marquez.bas b/B4A/C_Marquez.bas
index 102d170..c4641e7 100644
--- a/B4A/C_Marquez.bas
+++ b/B4A/C_Marquez.bas
@@ -22,12 +22,11 @@ End Sub
'You can add more parameters here.
Public Sub Initialize As Object
' reqManager.Initialize(Me, "http://keymon.lat:1781")
- reqManager.Initialize(Me, "http://keymon.net:1781")
l_ruta.Initialize("")
L_ABORDO.Initialize("")
l_porvisitar.Initialize("")
- T4.Initialize("T4", 3000)
- T4.Enabled = False
+' T4.Initialize("T4", 3000)
+' T4.Enabled = False
End Sub
'This event will be called once, before the page becomes visible.
@@ -40,6 +39,7 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub envia
+ enviando = True
carga = "SUBIR"
almacen = Subs.traeAlmacen
l_ruta.TEXT = Subs.traeRuta
@@ -324,185 +324,115 @@ Sub envia
Next
End If
End If
- T4.Initialize("T4", 3000)
- T4.Enabled = True
+' T4.Initialize("T4", 3000)
+' T4.Enabled = True
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE MARQUEZ")
- If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
- LogColor($">>>>>>>>>> Llega ${Job.tag} <<<<<<<<<<"$, Colors.Blue)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
End If
- If Job.Success = False Then
- LogColor("############################################", Colors.red)
- LogColor("#### Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
- LogColor("############################################", Colors.red)
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
Else
-' Log(3)
- LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.RGB(0,160,0)) 'Mod por CHV - 211027
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
- If reqManager.reqsList.IndexOf(RESULT.tag) <> -1 Then
- reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(RESULT.tag))
- LogColor($"*** Quitamos ${RESULT.tag}"$, Colors.Magenta)
- T4.Initialize("T4", 2000)
- End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.red)
- End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_pedidos" Then
- For Each records() As Object In 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
- Next
- End If
- Dim resultado As DBResult = reqManager.HandleJob(Job)
- If resultado.Tag = "piezas" Then 'query tag
-' B4XPages.MainPage.picking.cl_picking.Clear
- Dim piezasexiste As Int
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- For Each records() As Object In resultado.Rows
- piezasexiste = records(resultado.Columns.Get("COUNT(*)"))
- Log(piezasexiste)
- DateTime.DateFormat = "MM/dd/yyyy"
- DateTime.TimeFormat = "HH:mm:ss"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- If piezasexiste = 0 Then
- Dim PCNoArts As String
- Dim PCMonto As String
- c = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE = ? AND PC_CLIENTE <> 1", Array As String(userpiezas))
- If c.RowCount > 0 Then
- c.Position = 0
- PCNoArts = c.GetString("PC_NOART")
- PCMonto = c.GetString("PC_MONTO")
- End If
- Dim cmd As DBCommand
- cmd.Initialize
- cmd.Name = "insert_HVC_MARQUEZ"
- cmd.Parameters = Array As Object((sDate & " " & sTime), userpiezas, PCNoArts, PCMonto, almacen, l_ruta.Text)
- reqManager.ExecuteCommand(cmd , "insert_hvc")
-' reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
- End If
- Next
- End If
-
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
-' If RESULT.Tag = "valida_pedido" Then 'query tag
-' For Each records() As Object In RESULT.Rows
-' Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
-' If cuantos_pedido <= CUANTOSP Then
-' ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
-' datos_iguales = "ok"
-' ToastMessageShow("INFO OK", False)
-' Else
-'' If Starter.marcaCel <> "Sony" Then ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True)
-' ToastMessageShow("ENVIAR DATOS (K-2)", False)
-' End If
-' Next
-' End If
- If RESULT.Tag = "valida_pedido" Then 'query tag
+ If RESULT.Tag = "valida_pedido" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
- Log(CUANTOSP)
B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
If cuantos_pedido <= CUANTOSP Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
-' S_CP.Text = "INFO OK"
- ToastMessageShow("INFO OK", False)
Else
-' S_CP.Text = "ENVIAR DATOS (K-2)"
- ToastMessageShow($"No se cargo bien la info de pedido.${CRLF}Envíe nuevamente: "$ & CUANTOSP & "/" & cuantos_pedido, True)
- ToastMessageShow("ENVIAR DATOS (K-2)", True)
- Log("No se cargo bien la info de pedido. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido)
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
End If
Next
- End If
-
- If RESULT.Tag = "valida_pedidoc" Then 'query tag
+ Else If RESULT.Tag = "valida_pedidoc" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
- If cuantos_pedidosc = CUANTOSC Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de pedido_cliente.${CRLF}Envíe nuevamente: "$ & CUANTOSC & "/" & cuantos_pedidosc, True)
- Log("No se cargo bien la info de pedido_cliente. Envíe nuevamente: " & CUANTOSC & "/" & cuantos_pedidosc)
- End If
Next
- End If
-
- If RESULT.Tag = "valida_noventa" Then 'query tag
+ Else If RESULT.Tag = "valida_noventa" Then
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
- If cuantos_noventa = CUANTOSN Then
- ' ToastMessageShow("rojo val ok 1 cuantosp." , True)
- datos_iguales = "ok"
- Else
- ToastMessageShow($"No se cargo bien la info de NoVenta.${CRLF}Envíe nuevamente: "$ & CUANTOSN & "/" & cuantos_noventa, True)
- Log("No se cargo bien la info de NoVenta. Envíe nuevamente:" & CUANTOSN & "/" & cuantos_noventa)
- End If
Next
End If
-
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_pedido" Then 'query tag
- For Each records() As Object In RESULT.Rows
-' PB2.Progress = PB2.Progress + 5
-' S_CP.Text = "SUBIENDO"
- Next
-' PB2.Progress = 100
-' S_CP.Text = "REVISANDO ..."
-' Log("5")
- End If
-
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
- If RESULT.Tag = "ins_cuestionario" Then 'query tag
- Subs.logJobDoneResultados(RESULT)
- End If
End If
End If
-' Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then
- T4.Enabled = True
- Else
- T4.Enabled = False
+
+ If RESULT.Tag = "piezas" Then 'query tag
+ Dim piezasexiste As Int
+ For Each records() As Object In RESULT.Rows
+ piezasexiste = records(RESULT.Columns.Get("COUNT(*)"))
+ Log(piezasexiste)
+ DateTime.DateFormat = "MM/dd/yyyy"
+ DateTime.TimeFormat = "HH:mm:ss"
+ sDate=DateTime.Date(DateTime.Now)
+ sTime=DateTime.Time(DateTime.Now)
+ If piezasexiste = 0 Then
+ Dim PCNoArts As String
+ Dim PCMonto As String
+ c = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE = ? AND PC_CLIENTE <> 1", Array As String(userpiezas))
+ If c.RowCount > 0 Then
+ c.Position = 0
+ PCNoArts = c.GetString("PC_NOART")
+ PCMonto = c.GetString("PC_MONTO")
+ End If
+ Dim cmd As DBCommand
+ cmd.Initialize
+ cmd.Name = "insert_HVC_MARQUEZ"
+ cmd.Parameters = Array As Object((sDate & " " & sTime), userpiezas, PCNoArts, PCMonto, almacen, l_ruta.Text)
+ reqManager.ExecuteCommand(cmd , "insert_hvc")
+ End If
+ Next
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
End Sub
Sub valida
validando = True
almacen = Subs.traeAlmacen
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
- d.Position = 0
- cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE")
- d.Position = 0
- cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
-
- d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
- d.Position = 0
- cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
- d.Close
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
+' d.Position = 0
+' cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE")
+' d.Position = 0
+' cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
+'
+' d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
+' d.Position = 0
+' cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
+' d.Close
cmd.Initialize
cmd.Name = "select_cuantos_pedido_MARQUEZ"
@@ -518,7 +448,7 @@ Sub valida
cmd.Name = "select_cuantos_pedidoc_MARQUEZ"
cmd.Parameters = Array As Object(almacen,l_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc")
- Log("http://keymon.net:1781")
+' Log("http://keymon.net:1781")
B4XPages.MainPage.l_vPedidos2.Text = ""
B4XPages.MainPage.l_vProds2.Text = ""
diff --git a/B4A/C_Marquez_Reparto.bas b/B4A/C_Marquez_Reparto.bas
index 16719d0..f69e5e8 100644
--- a/B4A/C_Marquez_Reparto.bas
+++ b/B4A/C_Marquez_Reparto.bas
@@ -11,6 +11,9 @@ Sub Class_Globals
Dim almacen, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
Dim foto1() As Byte
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -19,6 +22,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
' NOVENTA
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO FROM NOVENTA")
D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
@@ -215,21 +219,69 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
- End If
- If Job.Success = False Then
- LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
- 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
- Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then B4XPages.MainPage.p_progressDialog.Visible = False
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/C_Mazapa.bas b/B4A/C_Mazapa.bas
index c8651a9..d6a8261 100644
--- a/B4A/C_Mazapa.bas
+++ b/B4A/C_Mazapa.bas
@@ -11,6 +11,8 @@ Sub Class_Globals
Dim cmd As DBCommand
Dim c, d As Cursor
Dim usuario, almacen As String
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
End Sub
@@ -30,6 +32,7 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub envia
+ enviando = True
checaPedido
almacen = Subs.traeAlmacen
' CARGA = "SUBIR"
@@ -321,4 +324,67 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
+End Sub
+
+Sub JobDone(Job As HttpJob)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
+ End If
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
End Sub
\ No newline at end of file
diff --git a/B4A/C_Mazapa_Reparto.bas b/B4A/C_Mazapa_Reparto.bas
index 708acd0..4516ba9 100644
--- a/B4A/C_Mazapa_Reparto.bas
+++ b/B4A/C_Mazapa_Reparto.bas
@@ -15,6 +15,9 @@ Sub Class_Globals
Dim totalRegistros As Int = 0
Dim totalRegistrosTotales As Int = 0
Dim todosRequest As Int = 0
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -23,6 +26,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
Log("*** Entramos a envia info***")
Log("--- Entramos a envia info---")
Log("### Entramos a envia info###")
@@ -309,21 +313,69 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
- End If
- If Job.Success = False Then
- LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
- 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
- Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then B4XPages.MainPage.p_progressDialog.Visible = False
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/C_Profina.bas b/B4A/C_Profina.bas
index f69a39d..4a412f6 100644
--- a/B4A/C_Profina.bas
+++ b/B4A/C_Profina.bas
@@ -13,6 +13,8 @@ Sub Class_Globals
Dim usuario, almacen As String
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -23,6 +25,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
l_ruta.text = Subs.traeRuta
' carga = "SUBIR"
' P1.Visible = True
@@ -298,4 +301,67 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
+End Sub
+
+Sub JobDone(Job As HttpJob)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
+ End If
+ End If
+
+ Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
End Sub
\ No newline at end of file
diff --git a/B4A/C_Profina_Reparto.bas b/B4A/C_Profina_Reparto.bas
index d7b1f96..7a02dbd 100644
--- a/B4A/C_Profina_Reparto.bas
+++ b/B4A/C_Profina_Reparto.bas
@@ -11,6 +11,9 @@ Sub Class_Globals
Dim almacen, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
Dim foto1() As Byte
+ Dim enviando As Boolean = False
+ Dim validando As Boolean = False
+ Dim datos_iguales As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -19,6 +22,7 @@ Public Sub Initialize
End Sub
Sub envia
+ enviando = True
' NOVENTA
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
@@ -262,21 +266,69 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE")
- Log(reqManager.link)
- 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)
+ Log("JOBDONE - " & almacen)
+
+ ' 1. Tachamos el request de la lista
+ If reqManager.reqsList.IsInitialized Then
+ Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
+ If index <> -1 Then reqManager.reqsList.RemoveAt(index)
+ End If
+
+ If Not(Job.Success) Then
+ LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
+ Else
+ ' 2. Procesamos validaciones
+ Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
+ If Job.JobName = "DBRequest" Then
+ If RESULT.Tag = "valida_pedido" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
+ B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
+ ' Mantenemos tu lógica permisiva
+ If cuantos_pedido <= CUANTOSP Then
+ datos_iguales = "ok"
+ Else
+ LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
+ End If
+ Next
+ Else If RESULT.Tag = "valida_pedidoc" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
+ B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
+ Next
+ Else If RESULT.Tag = "valida_noventa" Then
+ Subs.logJobDoneResultados(RESULT)
+ For Each records() As Object In RESULT.Rows
+ Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
+ B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
+ Next
+ End If
End If
- LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
- End If
- If Job.Success = False Then
- LogColor("Error: " & reqManager.HandleJob(Job).tag & " : " & Job.ErrorMessage, Colors.red)
- 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
- Log(reqManager.reqsList.size)
- If reqManager.reqsList.size = 0 Then B4XPages.MainPage.p_progressDialog.Visible = False
End If
+
Job.Release
+
+ ' 3. Control de flujo seguro
+ If reqManager.reqsList.size = 0 Then
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ If enviando Then
+ enviando = False
+ B4XPages.MainPage.l_progressDialog.Text = "Validando "
+ B4XPages.MainPage.p_progressDialog.Visible = True
+ Sleep(200)
+ valida
+ Else If validando Then
+ validando = False
+ Sleep(300)
+ B4XPages.MainPage.p_validacion.Visible = True
+ End If
+ End If
+End Sub
+
+Sub valida
+ B4XPages.MainPage.p_progressDialog.Visible = False
+ ToastMessageShow("Envío de Reparto Finalizado", True)
End Sub
\ No newline at end of file
diff --git a/B4A/DBCheck.b4a b/B4A/DBCheck.b4a
index 8e8cbe5..c1e5a84 100644
--- a/B4A/DBCheck.b4a
+++ b/B4A/DBCheck.b4a
@@ -25,33 +25,34 @@ Library8=randomaccessfile
Library9=sql
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~~\n~'AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~AddActivityText(main,~\n~~\n~~\n~~\n~ ~\n~ ~\n~ ~\n~)
Module1=B4XMainPage
-Module10=C_Marquez
-Module11=C_Marquez_Reparto
-Module12=C_Mazapa
-Module13=C_Mazapa_Reparto
-Module14=C_Profina
-Module15=C_Profina_Reparto
-Module16=DBRequestManager
-Module17=FileHandler
-Module18=Starter
-Module19=Subs
+Module10=C_Kelloggs
+Module11=C_Marquez
+Module12=C_Marquez_Reparto
+Module13=C_Mazapa
+Module14=C_Mazapa_Reparto
+Module15=C_Profina
+Module16=C_Profina_Reparto
+Module17=DBRequestManager
+Module18=FileHandler
+Module19=Starter
Module2=C_Durakelo
+Module20=Subs
Module3=C_Durakelo_Reparto
Module4=C_Envios
Module5=C_Guna_Reparto
-Module6=C_Intmex
-Module7=C_Intmex_Reparto
-Module8=C_Izca
-Module9=C_Kelloggs
+Module6=C_ImportaBD
+Module7=C_Intmex
+Module8=C_Intmex_Reparto
+Module9=C_Izca
NumberOfFiles=6
NumberOfLibraries=11
-NumberOfModules=19
+NumberOfModules=20
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: DBCheck
#VersionCode: 1
- #VersionName: 6.03.18
+ #VersionName: 6.03.19
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
diff --git a/B4A/DBCheck.b4a.meta b/B4A/DBCheck.b4a.meta
index 715f79b..659d958 100644
--- a/B4A/DBCheck.b4a.meta
+++ b/B4A/DBCheck.b4a.meta
@@ -11,6 +11,7 @@ ModuleBookmarks17=
ModuleBookmarks18=
ModuleBookmarks19=
ModuleBookmarks2=
+ModuleBookmarks20=
ModuleBookmarks3=
ModuleBookmarks4=
ModuleBookmarks5=
@@ -31,6 +32,7 @@ ModuleBreakpoints17=
ModuleBreakpoints18=
ModuleBreakpoints19=
ModuleBreakpoints2=
+ModuleBreakpoints20=
ModuleBreakpoints3=
ModuleBreakpoints4=
ModuleBreakpoints5=
@@ -39,25 +41,26 @@ ModuleBreakpoints7=
ModuleBreakpoints8=
ModuleBreakpoints9=
ModuleClosedNodes0=
-ModuleClosedNodes1=2,6,7,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
-ModuleClosedNodes10=3,6
-ModuleClosedNodes11=3
-ModuleClosedNodes12=4
-ModuleClosedNodes13=3
+ModuleClosedNodes1=28,45
+ModuleClosedNodes10=5,6,7,8
+ModuleClosedNodes11=3,5,6
+ModuleClosedNodes12=
+ModuleClosedNodes13=5,6
ModuleClosedNodes14=
-ModuleClosedNodes15=3
+ModuleClosedNodes15=4
ModuleClosedNodes16=
ModuleClosedNodes17=
-ModuleClosedNodes18=1
-ModuleClosedNodes19=12,13,14
-ModuleClosedNodes2=4,6,7
-ModuleClosedNodes3=3
+ModuleClosedNodes18=
+ModuleClosedNodes19=1
+ModuleClosedNodes2=5,6
+ModuleClosedNodes20=12,13,14
+ModuleClosedNodes3=5
ModuleClosedNodes4=4,5
-ModuleClosedNodes5=3
+ModuleClosedNodes5=5
ModuleClosedNodes6=
-ModuleClosedNodes7=
-ModuleClosedNodes8=3,4
-ModuleClosedNodes9=5,6,7,8
-NavigationStack=B4XMainPage,B4XPage_Created,141,0,Main,Globals,21,0,C_Intmex_Reparto,Class_Globals,0,0,C_Intmex,Initialize,20,0,C_Intmex,envia,30,0,B4XMainPage,B4XPage_Appear,292,6,B4XMainPage,ActualizarEtiquetasReparto,581,6,C_Guna_Reparto,Class_Globals,9,0,C_Marquez,Initialize,17,0,C_Marquez,Class_Globals,10,0,Main,Process_Globals,19,0
+ModuleClosedNodes7=4,5
+ModuleClosedNodes8=
+ModuleClosedNodes9=
+NavigationStack=C_Intmex_Reparto,valida,296,0,C_Izca,envia,19,0,C_Kelloggs,ConfigurarYEnviar,36,0,C_Kelloggs,envia,43,0,C_Marquez_Reparto,valida,279,0,C_Mazapa_Reparto,valida,373,0,C_Profina,JobDone,352,0,C_Profina,envia,21,0,C_Profina_Reparto,valida,326,0,B4XMainPage,valida,1446,0,C_ImportaBD,Class_Globals,30,0
SelectedBuild=0
-VisibleModules=1,18,6,19,7,10,5
+VisibleModules=1,19,7,11,2,5,20,13,3,8,6