diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 8065e21..be9473b 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -189,6 +189,9 @@ Private Sub B4XPage_Created (Root1 As B4XView) kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_PROMOCION", "TEXT") kh.agregaColumna(Starter.skmt, "TREND_SPENDING", "TIPO", "TEXT") kh.agregaColumna(Starter.skmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT") + kh.agregaColumna(Starter.skmt, "PEDIDO", "PE_ARCH", "TEXT") + kh.agregaColumna(Starter.skmt, "PEDIDO_CLIENTE", "PC_ARCH", "TEXT") + kh.agregaColumna(Starter.skmt, "PEDIDO3", "PE_ARCH", "TEXT") Root = Root1 ' Root.LoadLayout("MainPage") Root.LoadLayout("login") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index f5a939f..5732f39 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -300,6 +300,7 @@ Sub Class_Globals Private l_notificacionTexto As Label Private l_notificacionTitulo As Label Private b_notificacion As Button + Dim reqManagerW As DBRequestManagerW End Sub 'You can add more parameters here. @@ -426,6 +427,7 @@ Sub B4XPage_Appear ' Log(Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) reqManager.Initialize(Me, Starter.DBReqServer) + reqManagerW.Initialize usarGeocerca = kh.traeUsarGeocerca 'Para el almacen 12 (GDL) no se usa la geocerca @@ -1027,7 +1029,7 @@ Sub Guardar_Click Starter.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta) - Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps)) + Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_RUTA, PC_ALMACEN, PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(Subs.traeAlmacen, Subs.traeRuta, clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps)) Log("Actualizamos gestion") Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") End If @@ -1069,6 +1071,8 @@ Sub Guardar_Click b_inicioFinVenta.Text = "TERMINAR VENTA" Log("RESPALDO") kh.RD_respaldoBatch + +' Subir_Pedido_Con_Integridad(clie_id) mandaPendientes @@ -1085,8 +1089,9 @@ Sub Guardar_Click End Sub Sub mandaPendientes - B4XPages.MainPage.principal.enviaPedido(Null) - B4XPages.MainPage.principal.enviaPedidoCliente(Null) +' B4XPages.MainPage.principal.enviaPedido(Null) +' B4XPages.MainPage.principal.enviaPedidoCliente(Null) + B4XPages.MainPage.principal.enviaPedidoBatch(Null) End Sub Sub NUEVO_Click @@ -4472,4 +4477,135 @@ Private Sub b_notificacion_Click cmd.Name = "updateHistNotificacionesMotivo" cmd.Parameters = Array As Object("", DateTime.Date(DateTime.Now), Subs.traeRuta, usuario, Subs.traeAlmacen, clienteId) reqManager.ExecuteCommand(cmd , "updateHistNotificacionesMotivo") +End Sub + +' Subrutina principal para subir pedidos con validación de integridad ARCH +' Llama a esto desde tu botón Subir_Click +' Devuelve un ResumableSub que puedes esperar con Wait For +Sub Subir_Pedido_Con_Integridad(cliente As String) As ResumableSub + + Log("--- Iniciando Envío Seguro para Cliente: " & cliente & " ---") + + ' 1. Generar ARCH (Identificador Único del Paquete) + Dim Arch As String = Subs.traeAlmacen & "_" & Subs.traeRuta & "_" & cliente & "_" & DateTime.Now + + ' 2. Marcar registros pendientes con este ARCH localmente + ' CORRECCIÓN CRÍTICA: El orden es (Valor_a_Asignar, Filtro) -> (Arch, cliente) + Starter.skmt.ExecNonQuery2($"UPDATE PEDIDO SET PE_ARCH = ? WHERE PE_CLIENTE = ? AND PE_ENVIADO = 0"$, Array As Object(Arch, cliente)) + Starter.skmt.ExecNonQuery2($"UPDATE PEDIDO_CLIENTE SET PC_ARCH = ? WHERE PC_CLIENTE = ? AND PC_ENVIADO = 0"$, Array As Object(Arch, cliente)) + + ' 3. Contar qué vamos a enviar + Dim cCheck As Cursor = Starter.skmt.ExecQuery($"SELECT COUNT(*) as total FROM PEDIDO WHERE PE_ARCH = '${Arch}'"$) + cCheck.Position = 0 + Dim TotalProductosLocal As Int = cCheck.GetInt("total") + cCheck.Close + + If TotalProductosLocal = 0 Then + Log("Nada pendiente para enviar con este ARCH.") + Return "Vacio" + End If + + Log($"Total a enviar: ${TotalProductosLocal} productos. ID Paquete: ${Arch}"$) + + Dim envioCorrecto As Boolean = True + + ' 4. Enviar Encabezados (PEDIDO_CLIENTE) + Log("Enviando encabezado con ARCH: " & Arch) + Private cx As Cursor = Starter.skmt.ExecQuery($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO, PC_ARCH FROM PEDIDO_CLIENTE WHERE PC_ARCH = '${Arch}'"$) + + If cx.RowCount > 0 Then + For i = 0 To cx.RowCount - 1 + cx.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedidos_KELL_arch" + + cmd.Parameters = Array As Object(cx.GetString("PC_CLIENTE"), cx.GetString("PC_FECHA"), cx.GetString("PC_USER"), cx.GetString("PC_NOART"), cx.GetString("PC_MONTO"), cx.GetString("PC_LON"), cx.GetString("PC_LAT"), cx.GetString("PC_ALMACEN"), cx.GetString("PC_RUTA"), cx.GetString("PC_COSTO_SIN"), cx.GetString("PC_ARCH")) + Log($"insert_pedidos_KELL_arch: ${cx.GetString("PC_CLIENTE")}, ${cx.GetString("PC_FECHA")}, ${cx.GetString("PC_USER")}, ${cx.GetString("PC_NOART")}, ${cx.GetString("PC_MONTO")}, ${cx.GetString("PC_LON")}, ${cx.GetString("PC_LAT")}, ${cx.GetString("PC_ALMACEN")}, ${cx.GetString("PC_RUTA")}, ${cx.GetString("PC_COSTO_SIN")}, ${cx.GetString("PC_ARCH")}"$) + + reqManagerW.ExecuteCommand(Starter.DBReqServer, cmd, Me, "header_envio") + + Wait For header_envio_Completed (ResultHeader As TResultado) + + If ResultHeader.Success = False Then + Log("Error crítico enviando encabezado: " & ResultHeader.ErrorMessage) + envioCorrecto = False + Exit + End If + Next + cx.Close + End If + + If envioCorrecto = False Then + Msgbox("Error al enviar encabezado del pedido. Intente nuevamente.", "Error de Conexión") + Return "Error PC" + End If + + ' 5. Enviar Detalles (PEDIDO) + Log("Enviando detalle con ARCH: " & Arch) + Private cPed As Cursor = Starter.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_TIPO, PE_ARCH FROM PEDIDO WHERE PE_ARCH = '${Arch}'"$) + + If cPed.RowCount > 0 Then + For i = 0 To cPed.RowCount - 1 + cPed.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido_KELL_arch" + + cmd.Parameters = Array As Object(cPed.GetString("PE_CEDIS"), Subs.traeAlmacen, cPed.GetString("PE_COSTO_TOT"), cPed.GetString("PE_COSTOU"), cPed.GetString("PE_CANT"), cPed.GetString("PE_PRONOMBRE"), cPed.GetString("PE_PROID"), cPed.GetString("PE_CLIENTE"), cPed.GetString("PE_FECHA"), cPed.GetString("PE_USUARIO"), cPed.GetString("PE_RUTA"), cPed.GetString("PE_COSTO_SIN"), cPed.GetString("PE_DESC"), cPed.GetString("PE_FOLIO"), cPed.GetString("PE_TIPO"), cPed.GetString("PE_ARCH")) + + reqManagerW.ExecuteCommand(Starter.DBReqServer, cmd, Me, "detalle_envio") + + Wait For detalle_envio_Completed (ResultDet As TResultado) + + If ResultDet.Success = False Then + Log("Error enviando producto " & cPed.GetString("PE_PRONOMBRE")) + envioCorrecto = False + Exit + End If + Next + cPed.Close + End If + + If envioCorrecto = False Then + Return "Error PE" + End If + + ' 6. VALIDACIÓN FINAL + Log("Validando integridad con Oracle...") + + Dim cmdVal As DBCommand + cmdVal.Initialize + cmdVal.Name = "validar_integridad_arch" + cmdVal.Parameters = Array As Object(Arch, TotalProductosLocal) + + reqManagerW.ExecuteQuery(Starter.DBReqServer, cmdVal, Me, "validacion_integridad") + Wait For validacion_integridad_Completed (ResultVal As TResultado) + + If ResultVal.Success Then + Dim estado As String = "" + For Each row() As Object In ResultVal.resultado.Rows + estado = row(ResultVal.resultado.Columns.Get("ESTADO")) + Next + + If estado = "COMPLETO" Then + Log("¡Validación Exitosa! Marcando pedido como enviado.") + + ' Marcamos como enviado localmente usando el ARCH + Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_ENVIADO = 1 WHERE PE_ARCH = ?", Array As Object(Arch)) + Starter.skmt.ExecNonQuery2("UPDATE PEDIDO_CLIENTE SET PC_ENVIADO = 1 WHERE PC_ARCH = ?", Array As Object(Arch)) + + ToastMessageShow("Pedido enviado y verificado correctamente", False) + Return "Validado OK" + Else + Log("ERROR DE INTEGRIDAD: El servidor reporta " & estado) + Msgbox("El servidor recibió datos incompletos. El pedido NO se marcó como enviado. Por favor intente subir de nuevo.", "Error de Integridad") + Return "Error Validacion" + End If + Else + Log("Error al ejecutar query de validación: " & ResultVal.ErrorMessage) + Msgbox("No se pudo verificar el pedido por error de red. Intente de nuevo.", "Error de Red") + Return "Error Validacion (Red)" + End If + End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 4ab9388..b1e5819 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -1870,6 +1870,19 @@ Sub JobDone(Job As HttpJob) PB2.Progress = 100 S_CP.Text = "VALIDANDO" End If + + If RESULT.Tag.As(String).StartsWith("pedido_completo_") Then 'query tag + For Each records() As Object In RESULT.Rows + Private temp() As String = Regex.Split("_", RESULT.Tag) +' Log(temp(2)) + If temp.Length > 1 Then + Starter.skmt.ExecNonQuery($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$) + Log($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$) + Starter.skmt.ExecNonQuery($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$) + Log($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$) + End If + Next + End If If RESULT.Tag = "version" Then 'query tag connecta.TextColor = Colors.White @@ -3270,7 +3283,7 @@ Sub SUBIR_INFO_PEDIDO If d.GetString("MONTO") <> Null And d.GetString("MONTO") <> "" Then monto1 = d.GetString("MONTO") Private abordo1 As String = L_ABORDO.Text If abordo1 = "" Then abordo1 = "0" - Log($"${monto1}, ${abordo1}"$) +' Log($"${monto1}, ${abordo1}"$) monto1 = monto1 - abordo1 reqManager.trackInit @@ -3280,7 +3293,7 @@ Sub SUBIR_INFO_PEDIDO cmd.Name ="insert_drop2_KELL" cmd.Parameters = Array As Object(usuario, l_ruta.Text, fecha, l_porvisitar.Text, l_drop.Text, l_efectiva.Text, l_cuantosc.Text, l_cuantosn.Text, monto1, "ENVIO", ALMACEN, abordo1) reqManager.ExecuteCommand(cmd , "inst_noventa_ins_drop_kell") - Log($"${usuario}, ${l_ruta.Text}, ${fecha}, ${l_porvisitar.Text}, ${l_drop.Text}, ${l_efectiva.Text}, ${l_cuantosc.Text}, ${l_cuantosn.Text}, ${monto1}, "ENVIO", ${ALMACEN}, ${abordo1}"$) +' Log($"${usuario}, ${l_ruta.Text}, ${fecha}, ${l_porvisitar.Text}, ${l_drop.Text}, ${l_efectiva.Text}, ${l_cuantosc.Text}, ${l_cuantosn.Text}, ${monto1}, "ENVIO", ${ALMACEN}, ${abordo1}"$) Log("################## inst_noventa_ins_drop_kell") img2.Visible =True contador_env = contador_env + 1 @@ -3383,7 +3396,7 @@ Sub SUBIR_INFO_PEDIDO PB2.Progress = 1 ' PEDIO_CLIENTE - enviaPedidoCliente("Todos") +' enviaPedidoCliente("Todos") d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ") d.Position=0 @@ -3395,10 +3408,12 @@ Sub SUBIR_INFO_PEDIDO PORENVIAR = 0 ' PEDIDO - t3.Initialize("T3", 500) ' 1000 = 1 second - t3.Enabled = True - Wait For t3_tick - enviaPedido("Todos") +' t3.Initialize("T3", 500) ' 1000 = 1 second +' t3.Enabled = True +' Wait For t3_tick +' enviaPedido("Todos") + + enviaPedidoBatch("Todos") ' ****** AQUI VA PEDIDO_CLIENTE Y PEDIDO JUNTOS ***** d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") d.Position=0 @@ -3498,6 +3513,72 @@ Sub SUBIR_INFO_PEDIDO DateTime.TimeFormat = "HH:mm:ss" End Sub +Sub enviaPedidoBatch(filtro As String) + ' Crear una lista para almacenar TODAS las operaciones de UN pedido + Dim BatchCommands As List + BatchCommands.Initialize + + ' DE PEDIDO_CLIENTE + Log($"enviaPedidoBatch(${filtro})"$) + Private condicion As String = "" + If filtro <> "Todos" Then condicion = "where PC_ENVIADO = 0" + Private cx As Cursor = Starter.skmt.ExecQuery($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$) + Log($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$) + Log("pedido_cliente: " & cx.RowCount) + + ' DE PEDIDO + Private condicion As String = "" + If filtro <> "Todos" Then condicion = "where PE_ENVIADO = 0" + c = Starter.skmt.ExecQuery2("SELECT COUNT(*) as CANTIDAD FROM HIST_ENVIOS WHERE HE_TIPO = ?",Array As String("ABORDO") ) + c.Position = 0 + If c.GetString("CANTIDAD") > 0 Then + Log($"pe_cedis_0"$) + Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0")) + End If + Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1") + + If cx.RowCount > 0 Then ' Si hay pedido entonces lo enviamos. + For j = 0 To cx.RowCount - 1 + Log("===== ENVIAMOS PRODUCTOS DE PEDIDO =====") + cx.Position = j + Dim Arch As String = Subs.traeAlmacen & "_" & Subs.traeRuta & "_" & cx.GetString("PC_CLIENTE") & "_" & DateTime.Now + ' 1. Agregar comando del Encabezado (PEDIDO_CLIENTE) + Dim cmdHeader As DBCommand + cmdHeader.Initialize + cmdHeader.Name = "insert_pedidos_KELL_arch" + cmdHeader.Parameters = Array As Object(cx.GetString("PC_CLIENTE"),cx.GetString("PC_FECHA"),cx.GetString("PC_USER"),cx.GetString("PC_NOART"),cx.GetString("PC_MONTO"),cx.GetString("PC_LON"),cx.GetString("PC_LAT"),ALMACEN,l_ruta.text,cx.GetString("PC_COSTO_SIN"), Arch) + BatchCommands.Add(cmdHeader) + + ' 2. Agregar comandos del Detalle (PEDIDO) dentro del bucle + Private cPed As Cursor = Starter.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_TIPO, PE_ARCH FROM PEDIDO ${condicion} ${(IIf(condicion = "","where", "and"))} pe_cliente = '${cx.GetString("PC_CLIENTE")}' "$) +' Log($"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_TIPO, PE_ARCH FROM PEDIDO ${condicion} ${(IIf(condicion = "","where ", "and"))} pe_cliente = '${cx.GetString("PC_CLIENTE")}' "$) + If cPed.RowCount > 0 Then + For i = 0 To cPed.RowCount - 1 + Log("==== ENVIAMOS PRODS ====") + cPed.Position = i + Dim cmdDetail As DBCommand + cmdDetail.Initialize + If PERFIL = "V-ESPECIAL" Then + Log("===== V-ESPECIAL =====") + cmd.Name = "insert_pedido_esp_KELL" + cmd.Parameters = Array As Object(cPed.GetString("PE_CEDIS"),ALMACEN,cPed.GetString("PE_COSTO_TOT"),cPed.GetString("PE_COSTOU"),cPed.GetString("PE_CANT"),cPed.GetString("PE_PRONOMBRE"),cPed.GetString("PE_PROID"),cPed.GetString("PE_CLIENTE"),cPed.GetString("PE_FECHA"),cPed.GetString("PE_USUARIO"),cPed.GetString("PE_RUTA"),cPed.GetString("PE_COSTO_SIN"),cPed.GetString("PE_DESC"),cPed.GetString("PE_FOLIO"),cPed.GetString("PE_TIPO"),NUMERO_PEDIDO) + Else + cmdDetail.Name = "insert_pedido_KELL_arch" + cmdDetail.Parameters = Array As Object (cPed.GetString("PE_CEDIS"),ALMACEN,cPed.GetString("PE_COSTO_TOT"),cPed.GetString("PE_COSTOU"),cPed.GetString("PE_CANT"),cPed.GetString("PE_PRONOMBRE"),cPed.GetString("PE_PROID"),cPed.GetString("PE_CLIENTE"),cPed.GetString("PE_FECHA"),cPed.GetString("PE_USUARIO"),cPed.GetString("PE_RUTA"), cPed.GetString("PE_COSTO_SIN"),cPed.GetString("PE_DESC"),cPed.GetString("PE_FOLIO"), cPed.GetString("PE_TIPO"), Arch) + End If + BatchCommands.Add(cmdDetail) + Next + End If + Next + + ' 3. Enviar TODO junto en una sola petición HTTP + ' Si esto falla, no se guarda nada en Oracle y el pedido sigue pendiente en local. + reqManager.ExecuteBatch(BatchCommands, "pedido_completo_" & cx.GetString("PC_CLIENTE")) + End If + c.Close + cx.Close +End Sub + 'Envio de la tabla pedido Sub enviaPedido(filtro As String) Log($"enviaPedido(${filtro})"$) @@ -3510,11 +3591,11 @@ Sub enviaPedido(filtro As String) Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0")) End If Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1") - + Log("####################################################") Log(PERFIL) Log("####################################################") - + If PERFIL = "V-ESPECIAL" Then Log($"pe_cedis_1"$) c = Starter.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_TIPO FROM PEDIDO ${condicion} ORDER BY PE_CLIENTE"$) @@ -3535,7 +3616,7 @@ Sub enviaPedido(filtro As String) Else ' Log($"pe_cedis_3"$) Private cPed As Cursor = Starter.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_TIPO FROM PEDIDO ${condicion}"$) - Log($"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_TIPO FROM PEDIDO ${condicion}"$) +' Log($"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_TIPO FROM PEDIDO ${condicion}"$) ' TIEMPO = 0 S_CP.Text = "Envio de Pedidos" PB2.Progress = 1 diff --git a/B4A/DBRequestManagerW.bas b/B4A/DBRequestManagerW.bas index cc822a5..d6589e2 100644 --- a/B4A/DBRequestManagerW.bas +++ b/B4A/DBRequestManagerW.bas @@ -99,6 +99,8 @@ End Sub 'This sub will be called by the DBRequestManager when the job is done Public Sub JobDone(job As HttpJob) + Log("===== JDDBRW =====") + LogColor("JobDone: '" & reqManager.HandleJob(job).tag & "' - Registros: " & reqManager.HandleJob(job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 '<<< Obtenemos el Tag único que asignamos al job Dim currentJobTag As String = job.Tag diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 64258f6..fff5f30 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 9725489..e13505a 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -917,7 +917,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 5.12.5 + #VersionName: 5.12.10 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true @@ -933,7 +933,6 @@ Version=12.8 #IncludeTitle: False #End Region - '222543 ' Version que estaba en la tabla CAT_VERSION antes -> 2.95 diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index 897130c..5dba341 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -79,7 +79,7 @@ ModuleClosedNodes17= ModuleClosedNodes18= ModuleClosedNodes19=7,8,9,10,11,12,13,14 ModuleClosedNodes2= -ModuleClosedNodes20= +ModuleClosedNodes20=3,4 ModuleClosedNodes21= ModuleClosedNodes22= ModuleClosedNodes23= @@ -100,6 +100,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Principal,B4XPage_Appear,595,0,Subs,revisaMaxPromosProdsFijosPorInventario,1393,1,Subs,procesaPromocion,1256,1,C_TrendSpending,traeMontoBonificacion,370,1,C_TrendSpending,traeBonificacionesMaximas,363,0,kms_helperSubs,RD_Init,105,0,C_Productos,B4XPage_Appear,235,6,MAPA_RUTAS,CreateBitmapWithNumber,363,0,MAPA_RUTAS,MapFragment1_Ready,223,0,B4XMainPage,B4XPage_Created,128,0 +NavigationStack=C_Principal,cargar_Click,888,0,C_Principal,enviaPedidoCliente,3646,0,C_Principal,SUBIR_INFO_PEDIDO,3276,6,C_Cliente,Subir_Pedido_Con_Integridad,4547,0,C_Cliente,Guardar_Click,1083,0,C_Cliente,mandaPendientes,1089,1,C_Principal,JobDone,1873,0,C_Principal,enviaPedidoBatch,3521,6,Main,Process_Globals,32,0,Main,Globals,34,0 SelectedBuild=0 -VisibleModules=31,1,12,3,32,13,14,19,16,26,28 +VisibleModules=31,1,12,3,32,13,14,20,19 diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas index f690fc0..6c423e1 100644 --- a/B4A/kms_helperSubs.bas +++ b/B4A/kms_helperSubs.bas @@ -101,6 +101,8 @@ Sub RD_Init agregaColumna(rkmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT") agregaColumna(rkmt, "kmt_info", "CREDITO", "INTEGER") agregaColumna(rkmt, "PEDIDO", "PE_ENVIADO", "INTEGER") + agregaColumna(rkmt, "PEDIDO", "PE_ARCH", "TEXT") + agregaColumna(rkmt, "PEDIDO_CLIENTE", "PC_ARCH", "TEXT") If chkIfTableExists(khdb, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(khdb, "CAT_VARIABLES")}, FECHA TEXT)"$) If chkIfTableExists(khdb, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(khdb, "CAT_RMI")}, FECHA TEXT)"$) DateTime.DateFormat = "yyyyMMdd"