B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=12.8 @EndOfDesignText@ Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore Dim reqManager As DBRequestManager 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 'You can add more parameters here. Public Sub Initialize As Object reqManager.Initialize(Me, "http://keymon.net:1781") Return Me End Sub 'This event will be called once, before the page becomes visible. 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 enviando = True checaPedido almacen = Subs.traeAlmacen ' CARGA = "SUBIR" ' p_mandaInfo.Width = Root.Width ' p_mandaInfo.Height = Root.Height ' P1.Visible = True ' P1.Left = (p_mandaInfo.Width/2) - (P1.Width/2) ' P1.top = (p_mandaInfo.Height/2) - (P1.Height/2) ' p_mandaInfo.Visible = True ' P1.BringToFront ' p_mandaInfo.BringToFront 'trabajar.Visible = False ' NUEVO.Visible =False ' BUSCA.Visible=False ' connecta.Visible=False ' Subir.Visible=False ' cargar.Visible=False ' L_P_1.Visible = False ' S_CC.Visible = False ' L_P_3.Visible = False ' S_CH.Visible = False ' PB1.Visible = False ' Resumen.Visible= False ' L_P_2.Text = "Envio de Pedidos" ' L_P_3.Text = "Envio de Pedidos" ' S_CH.Text = "EN PROCESO" ' S_CP.Text = "EN PROCESO" ' PB1.Progress = 0 ' PB2.Progress = 0 'c=skmt.ExecQuery("SELECT sum(IFNULL(PE_DESC,0)) as DESCUENTO FROM PEDIDO") 'c.Position =0 'If c.GetString("DESCUENTO") > 0 And PASO = 0 Then 'P1.Visible = True 'ELSE IF c.GetString("DESCUENTO") = 0 Then ' PASO = 1 'End If ' If PASO = 1 Then B4XPages.MainPage.skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") ) B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)") c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa") c.Position = 0 usuario = c.GetString("USUARIO") c.Close ' c=B4XPages.MainPage.skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS") ' If c.RowCount>0 Then ' For i=0 To c.RowCount -1 ' c.Position=i ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name = "UPDATE_mazapa_ACTUAL2_GPS" ' cmd.Parameters = Array As String(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,c.GetString("hglat"),c.GetString("hglon"),batterystatus(0),LPT, STEYIN, STEYOUT,ALMACEN,l_ruta.Text ) ' reqManager.ExecuteCommand(cmd , "update_gps") ' Next ' End If ' c.Close 'Envio de Pagares c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PAGARES") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_pagares_mazapa" cmd.Parameters = Array As String(C.GetString("PA_ALMACEN"),Subs.traeRuta,C.GetString("PA_FECHA"),C.GetString("PA_CAPTURA"),C.GetString("PA_MONTO"),C.GetString("PA_USUARIO"),C.GetString("PA_CLIENTE") ) reqManager.ExecuteCommand(cmd , "ins_pagares") Next End If c.Close ' CLIENTES NUEVOS ' Dim fotocn() As Byte ' Dim Dirp As String = File.DirInternal ' Dim Dir As String ' Dim Dir2 As String ' Dir = "/promotoriakmts" c = B4XPages.MainPage.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO, CN_REFERENCIA, CN_HR_INICIO, CN_HR_FIN FROM CLIENTES_NUEVOS") If c.RowCount>0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim dia As Int = DateTime.GetDayOfWeek(DateTime.Now) If dia = 2 Then Dim dialetra As String = "LUNES" Else If dia = 3 Then Dim dialetra As String = "MARTES" Else If dia = 4 Then Dim dialetra As String = "MIERCOLES" Else If dia = 5 Then Dim dialetra As String = "JUEVES" Else If dia = 6 Then Dim dialetra As String = "VIERNES" Else If dia = 7 Then Dim dialetra As String = "SABADO" End If Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_clientesnuevos_mazapa3" cmd.Parameters = Array As String(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),almacen, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"), c.GetString("CN_REFERENCIA"), c.GetString("CN_HR_INICIO"), c.GetString("CN_HR_FIN")) reqManager.ExecuteCommand(cmd , "inst_clientesn") Next End If c.Close c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM TICKET_TEL_CEDIS") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_TICKET_TEL_CEDIS_MAZAPA" Log(c.GetString("TTC_FOLIO")) cmd.Parameters = Array As String( _ c.GetString("TTC_TELEFONO"), _ c.GetString("TTC_ID_ALMACEN"), _ c.GetString("TTC_NUM_TICKET"), _ c.GetString("TTC_ID_CLIENTE"), _ c.GetString("TTC_RUTA"), _ c.GetString("TTC_FECHA"), _ c.GetString("TTC_MONTO"), _ c.GetString("TTC_FOLIO"), _ c.GetString("TTC_USUARIO"), _ c.GetString("TTC_FOLIO_UNICO") _ ) reqManager.ExecuteCommand(cmd , "insert_TICKET_TEL_CEDIS") Next End If c.Close ' PEDIDO_CLIENTE Dim PCNoArts As String Dim PCMonto As String c = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA,IFNULL(PC_IMPRESO,0) AS PC_IMPRESO FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> '1' ") d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 1 ") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_pedido_CLIENTE_mazapa" PCNoArts = c.GetString("PC_NOART") PCMonto = c.GetString("PC_MONTO") cmd.Parameters = Array As String(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), almacen, Subs.traeRuta, c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"), c.GetString("PC_IMPRESO")) reqManager.ExecuteCommand(cmd , "ins_pedidos") Log(">>>>>> INSERT PEDIDO_CLIENTE") Next End If c.Close d.Position = 0 cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC") d.Close ' 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,IFNULL(PE_IMPRESO,0) AS PE_IMPRESO FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'") d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_pedido_PE_mazapa" 'CON TOTALES INCLUIDOS ' Log(c.GetString("PE_CEDIS")&", "&almacen&", "&c.GetString("PE_COSTO_TOT")&", "&c.GetString("PE_COSTOU")&", "&c.GetString("PE_CANT")&", "&c.GetString("PE_PRONOMBRE")&", "&c.GetString("PE_PROID")&", "&c.GetString("PE_CLIENTE")&", "&c.GetString("PE_FECHA")&", "&c.GetString("PE_USUARIO")&", "&Subs.traeRuta&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& almacen) cmd.Parameters = Array As String(c.GetString("PE_CEDIS"),almacen,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta, c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),c.GetString("PE_FOLIO"),c.GetString("PE_CANTC"),c.GetString("PE_BCAJAS"), c.GetString("PE_IMPRESO")) reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}_${c.GetString("PE_PROID")}"$) ' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${ALMACEN},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}"$) ' cmd.Name = "insert_pedido_INTMEX" ' SIN TOTALES INCLUIDOS ' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO")) ' reqManager.ExecuteCommand(cmd , "ins_pedido") Next End If c.Close d.Position=0 cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close ' NOVENTA c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_noventa_mazapa" cmd.Parameters = Array As String(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, Subs.traeRuta) reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.Close ' GEO CERCA c=B4XPages.MainPage.skmt.ExecQuery("Select HGCLIENTE, HGDATE, HGLAT, HGLON from HIST_GEOCERCA") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_geocerca_mazapa" cmd.Parameters = Array As String(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON")) reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close ' LO DEL LIKE c=B4XPages.MainPage.skmt.ExecQuery("Select HFCLIENTE, HFALIAS,HFRUTA,HFALMACEN from HIST_FACE") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_face_like_mazapa" cmd.Parameters = Array As String(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN")) reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close ' DROP ' t1.Initialize("T1", 30000) ' 1000 = 1 second ' t1.Enabled = True ' Dim sDate,sTime As String ' DateTime.DateFormat = "MM/dd/yyyy" ' sDate=DateTime.Date(DateTime.Now) ' sTime=DateTime.Time(DateTime.Now) ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name ="insert_drop_mazapa" ' cmd.Parameters = Array As String(usuario, Subs.traeRuta, sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",almacen,Application.VersionName) ' reqManager.ExecuteCommand(cmd , "inst_noventa") ' img2.Visible =True ' porcentaje = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1)) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 01") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_piezas_mazapa" cmd.Parameters = Array As String(c.GetString("PC_CLIENTE"), almacen, Subs.traeRuta) ' userpiezas = c.GetString("PC_CLIENTE") reqManager.ExecuteQuery(cmd , 0, "piezas") Next End If ' End If End Sub Sub checaPedido Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE") If c.RowCount > 0 Then B4XPages.MainPage.skmt.ExecNonQuery("Update kmt_info set gestion = 2 WHERE CAT_CL_CODIGO IN (SELECT PC_CLIENTE FROM PEDIDO_CLIENTE)") End If Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA") If c.RowCount > 0 Then B4XPages.MainPage.skmt.ExecNonQuery("Update kmt_info set gestion = 3 WHERE CAT_CL_CODIGO IN (SELECT NV_CLIENTE FROM NOVENTA)") End If End Sub Sub valida cmd.Initialize cmd.Name = "select_cuantos_pedido_mazapa" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_pedido") cmd.Initialize cmd.Name = "select_cuantos_noventa_mazapa" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_noventa") cmd.Initialize cmd.Name = "select_cuantos_pedidoc_mazapa" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc") ' If PB2.Progress = 0 Then ' S_CP.Text = "ENVIAR DATOS (K-1)" ' End If ' img2.Visible=False ' t1.Enabled = False End Sub ' Nuevo método para inicializar el manager con el Target correcto 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