B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=12.8 @EndOfDesignText@ Sub Class_Globals ' Dim skmt As SQL Dim reqManager As DBRequestManager Dim cmd As DBCommand Dim c, d As Cursor Dim usuario, almacen, PORCENTAJE, datos_iguales As String Dim cuantos_pedido As String = 0 Dim cuantos_noventa As String = 0 Dim cuantos_pedidosc As String = 0 Dim foto1() As Byte Dim t1 As Timer ' Dim COUNT_CLIE As Int 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.lat:1781") reqManager.Initialize(Me, "http://192.99.93.204:1781") End Sub Sub envia enviando = True almacen = Subs.traeAlmacen 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 ' ENVIO DE LOS CODIGOS QR c=B4XPages.MainPage.skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" ) If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_QR_2_INTMEX" cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen,Subs.traeruta ) reqManager.ExecuteCommand(cmd , "ins_QR") Next End If c.Close ' c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL") ' If c.RowCount>0 Then ' For i=0 To c.RowCount -1 ' c.Position=i ' 's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO"))) ' 's.Position =0 ' foto1 = c.GetBlob("CAT_CL_FOTO") ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name = "insert_QR_INTMEX" ' cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),almacen,Subs.traeruta, foto1 ) ' reqManager.ExecuteCommand(cmd , "ins_QR") ' Next ' End If ' c.Close 'ENCUESTA c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_encuesta_INTMEX" cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO")) reqManager.ExecuteCommand(cmd , "inst_noventa") 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 FROM PEDIDO_CLIENTE ") d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_pedidos_INTMEX" cmd.Parameters = Array As Object(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")) PCNoArts = c.GetString("PC_NOART") PCMonto = c.GetString("PC_MONTO") 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 FROM PEDIDO") 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_pedido2_INTMEX" 'CON 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"), PCNoArts, PCMonto) 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_INTMEX" cmd.Parameters = Array As Object(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_INTMEX" cmd.Parameters = Array As Object(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_INTMEX" cmd.Parameters = Array As Object(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_INTMEX_2" ' cmd.Parameters = Array As Object(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) ' 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 "& Subs.traeruta , True) 'CUESTIONARIOS c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario where ifnull(Q_ENVIO_OK, 0) = 0"$) Private rutaActual As String = Subs.traeRuta If c.RowCount > 0 Then For x = 0 To c.RowCount - 1 c.Position = x Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_CUESTIONARIO_INTMEX" cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, almacen, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) reqManager.ExecuteCommand(cmd , "ins_cuestionario") Next End If c.Close 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) 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 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 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}"$ 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) 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 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 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 ... 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 enviando = False End If 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 cmd.Initialize cmd.Name = "select_cuantos_pedido_INTMEX" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) Log($"${almacen}, ${Subs.traeRuta}"$) reqManager.ExecuteQuery(cmd , 0, "valida_pedido") cmd.Initialize cmd.Name = "select_cuantos_noventa_INTMEX" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_noventa") cmd.Initialize cmd.Name = "select_cuantos_pedidoc_INTMEX" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc") Log("http://keymon.lat:1781") B4XPages.MainPage.l_vPedidos2.Text = "" B4XPages.MainPage.l_vProds2.Text = "" B4XPages.MainPage.l_vNoVenta2.Text = "" End Sub