B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=9.85 @EndOfDesignText@ #Region Shared Files '#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files" 'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip '########################################################################################################### '###################### PULL ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull '########################################################################################################### '###################### PUSH ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ '########################################################################################################### '###################### PUSH TORTOISE GIT ######################################################### 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2 '########################################################################################################### #End Region 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\ Sub Class_Globals Dim Root As B4XView Dim xui As XUI ' Dim b_cargar As Button Dim b_enviar As Button Dim ime As IME Dim skmt As SQL Dim reqManager As DBRequestManager Dim cmd As DBCommand Dim l_pedidos2 As Label Dim l_diasVenta As Label Dim l_totalVenta As Label Dim l_cantsEnCero As Label Dim l_clienteNoNumerico As Label Dim cuantos_pedido As String ' Dim datos_iguales As String Dim cuantos_pedidosc As String Dim cuantos_noventa As String Dim l_ruta2 As Label Dim ruta As String = "" Dim l_usuario2 As Label Dim usuario As String = "" Dim l_almacen2 As Label Dim almacen As String = "" Dim p_progressDialog As Panel Dim l_progressDialog As Label Dim p_editaRuta As Panel Dim p_editaAlmacen As Panel Dim b_cargarBD As Button Dim p_datos As Panel Dim p_principal As Panel Dim l_appInfo As Label Dim empresa, appVersion As String Dim et_nuevaRuta As EditText Dim et_nuevoAlmacen As EditText Dim p_clientes As Panel ' Dim lv_clientes As ListView Dim clv_clientes As CustomListView Dim p_item As Panel Dim l_item As Label Dim i_engrane As ImageView Dim lv_DBRServer As ListView Dim et_server As EditText Dim B_SERVER As Button Dim p_engrane As Panel Private sp_empresa As Spinner Private p_empresa As Panel Private p_editaUsuario As Panel Private et_nuevoUsuario As EditText Private b_guardaUsuario As Button Dim c, d As Cursor Dim foto1() As Byte Private b_valida As Button Private l_version As Label Dim p_validacion As Panel Dim l_vProds2 As Label 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 Intmex As C_Intmex Dim Durakelo As C_Durakelo Private l_version0 As Label End Sub Public Sub Initialize ' B4XPages.GetManager.LogEvents = True End Sub 'This event will be called once, before the page becomes visible. Sub B4XPage_Created (Root1 As B4XView) Root = Root1 Root.LoadLayout("MainPage") i_progress.SetGif(File.DirAssets, "progress.gif") l_version.Text = Application.VersionName l_version0.Text = Application.VersionName p_principal.Width = Root.Width : p_principal.Height = Root.Height l_version0.Top = Root.Height - 60dip Subs.centraPanel(p_datos, Root.Width) Subs.centraPanel(p_validacion, Root.Width) p_validacion.Top = l_diasVenta.Top reqManager.Initialize(Me, "http://keymon.lat:1781") B4XPages.SetTitle(Me, "Revisión de BD") Subs.centraPanel(p_progressDialog, Root.Width) Subs.centraPanel(p_editaRuta, Root.Width) Subs.centraPanel(p_editaAlmacen, Root.Width) Subs.centraPanel(p_editaUsuario, Root.Width) Subs.centraPanel(p_clientes, Root.Width) ime.Initialize("ime") lv_DBRServer.AddSingleLine("http://keymon.lat:1781") lv_DBRServer.AddSingleLine("http://keymon.lat:1782") lv_DBRServer.AddSingleLine("http://40.123.36.38:1782") et_server.Text = "http://keymon.lat:1781" B_SERVER.Left = (Root.Width / 2) - (B_SERVER.Width / 2) 'Centramos B_SERVER et_server.Left = (Root.Width / 2) - (et_server.Width / 2) 'Centramos et_server lv_DBRServer.Left = (Root.Width / 2) - (lv_DBRServer.Width / 2) 'Centramos lv_DBRServer sp_empresa.Add("------------") sp_empresa.Add("Durakelo") sp_empresa.Add("Guna") sp_empresa.Add("Intmex") sp_empresa.Add("Mariana") i_engrane.Left = Root.Width - i_engrane.Width - 5dip Intmex.Initialize Durakelo.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) 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 End If ' 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) Try Dim ai As Cursor = skmt.ExecQuery($"select CAT_VA_DESCRIPCION, CAT_VA_VALOR from cat_variables where CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_VERSION'"$) If ai.RowCount > 1 Then For i = 0 To ai.RowCount -1 ai.Position = i If ai.GetString("CAT_VA_DESCRIPCION") = "EMPRESA" Then empresa = ai.GetString("CAT_VA_VALOR") If ai.GetString("CAT_VA_DESCRIPCION") = "APP_NAME" Then empresa = ai.GetString("CAT_VA_VALOR") If ai.GetString("CAT_VA_DESCRIPCION") = "APP_VERSION" Then appVersion = ai.GetString("CAT_VA_VALOR") ' Log(ai.GetString("CAT_VA_DESCRIPCION")) Next l_appInfo.Text = $"${empresa} ${appVersion}"$ End If ai.Close Catch Log(LastException) LogColor("Error en CAT_VARIABLES", Colors.red) End Try Try Dim c As Cursor = skmt.ExecQuery($"select count(distinct pe_cliente) as pedidos, group_concat(distinct substr(pe_fecha, 4,2)) as diasVenta, sum(pe_costo_tot) as total, (select PE_CANT from pedido where PE_CANT = 0) as cantsEnCero, (select count(distinct PE_CLIENTE) from pedido where printf("%d", PE_CLIENTE) <> PE_CLIENTE ) as clienteNoNumerico from pedido"$) ' Log(c.RowCount) If c.RowCount > 0 Then c.Position = 0 l_pedidos2.Text = c.GetString("pedidos") l_diasVenta.Text = "N/A" If c.GetString("diasVenta") <> Null Then l_diasVenta.Text = c.GetString("diasVenta") If c.GetString("diasVenta").Length > 2 Then l_diasVenta.TextColor = Colors.Red Else l_diasVenta.TextColor = Colors.Black End If If c.GetString("total") <> Null Then l_totalVenta.Text = "$" & NumberFormat2(c.GetString("total"), 1, 2, 2, True) Else l_totalVenta.Text = "0" l_cantsEnCero.Text = "0" If c.GetString("cantsEnCero") <> Null Then l_cantsEnCero.Text = c.GetString("cantsEnCero") l_clienteNoNumerico.Text = c.GetString("clienteNoNumerico") End If c.Close Catch Log(LastException) LogColor("Error en PEDIDO", Colors.red) End Try Try Dim c As Cursor = skmt.ExecQuery("select pe_ruta from pedido") If c.RowCount > 0 Then c.Position = 0 ruta = c.GetString("PE_RUTA") l_ruta2.Text = ruta End If c.Close Catch Log(LastException) LogColor("Error en PEDIDO", Colors.red) End Try Try Dim c As Cursor = skmt.ExecQuery("select USUARIO from usuarioa") If c.RowCount > 0 Then c.Position = 0 usuario = c.GetString("USUARIO") l_usuario2.Text = usuario End If c.Close Catch Log(LastException) LogColor("Error en USUARIOA", Colors.red) End Try Try Dim c As Cursor = skmt.ExecQuery("select ID_ALMACEN from cat_almacen") If c.RowCount > 0 Then c.Position = 0 almacen = c.GetString("ID_ALMACEN") l_almacen2.Text = almacen End If c.Close Catch Log(LastException) LogColor("Error en CAT_ALMACEN", Colors.red) End Try End If Try usuario = Subs.traeUsuarioDeBD almacen = Subs.traeAlmacen ruta = Subs.traeRuta Catch Log(LastException) End Try ' b_enviar.Enabled = False Log(empresa) p_empresa.Visible = False If empresa.ToUpperCase.Contains("MARIANA") Then b_enviar.Text = "Enviar Mariana" b_valida.Text = "Validar Mariana" Log("Cargamos MARIANA") b_enviar.Enabled = True else if empresa.ToUpperCase.Contains("GUNA") Then b_enviar.Text = "Enviar Guna" b_valida.Text = "Validar Guna" b_enviar.Enabled = True Log("Cargamos GUNA") else if empresa.ToUpperCase.Contains("INTMEX") Then b_enviar.Text = "Enviar Intmex" b_valida.Text = "Validar Intmex" b_enviar.Enabled = True Log("Cargamos INTMEX") else if empresa.ToUpperCase.Contains("DURAKELO") Then b_enviar.Text = "Enviar Durakelo" b_valida.Text = "Validar Durakelo" b_enviar.Enabled = True Log("Cargamos DURAKELO") Else p_empresa.Visible = True b_enviar.Enabled = False End If End Sub Sub b_enviar_Click Dim resultado = Msgbox2("Se va a enviar la venta de la BD", "AVISO", "Continuar", "Cancelar", "", Null) 'ignore If resultado = DialogResponse.POSITIVE Then B4XPages.MainPage.l_progressDialog.Text = " Enviando información" B4XPages.MainPage.p_progressDialog.Top = l_pedidos2.Top B4XPages.MainPage.p_progressDialog.Visible = True B4XPages.MainPage.p_progressDialog.BringToFront reqManager.reqsList.Initialize 'inicializamos lista de requests. If empresa.ToUpperCase.Contains("MARIANA") Then envioMariana else if empresa.ToUpperCase.Contains("GUNA") Then envioGuna else if empresa.ToUpperCase.Contains("INTMEX") Then envioIntmex else if empresa.ToUpperCase.Contains("DURAKELO") Then envioDurakelo End If ' Sleep(5000) End If ToastMessageShow($"Se enviaran los datos, este proceso podria tardar hasta un minuto."$ , True) End Sub Sub JobDone(Job As HttpJob) 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 Not(Job.Success) Then LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) Else 'If Job Success then ... LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) Dim resultado As DBResult = reqManager.HandleJob(Job) If Job.JobName = "DBRequest" Then Dim resultado As DBResult = reqManager.HandleJob(Job) If resultado.Tag.As(String).IndexOf("ins_pedido_") > -1 Then Dim cliente As String= resultado.Tag Log($"Cliente1:${cliente}"$) For Each records() As Object In resultado.Rows For Each k As String In resultado.Columns.Keys Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k))) Next Next End If If resultado.Tag.As(String).IndexOf("hist_encuesta") > -1 Then Dim cliente As String= resultado.Tag Log($"Cliente1:${cliente}"$) For Each records() As Object In resultado.Rows For Each k As String In resultado.Columns.Keys Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k))) Next Next End If If resultado.Tag = "valida_pedido" Then 'query tag For Each records() As Object In resultado.Rows Dim CUANTOSP As Int = records(resultado.Columns.Get("CUANTOSP")) l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$ If cuantos_pedido <= CUANTOSP Then ToastMessageShow("INFO OK", True) Else 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 If resultado.Tag = "valida_pedidoc" Then 'query tag For Each records() As Object In resultado.Rows Dim CUANTOSC As Int = records(resultado.Columns.Get("CUANTOSC")) l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$ If cuantos_pedidosc <= CUANTOSC Then 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 resultado.Tag = "valida_noventa" Then 'query tag For Each records() As Object In resultado.Rows Dim CUANTOSN As Int = records(resultado.Columns.Get("CUANTOSN")) l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$ If cuantos_noventa <= CUANTOSN Then 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 If resultado.Tag = "ins_pedido" Then 'query tag For Each records() As Object In resultado.Rows Next Log("5") End If If resultado.Tag = "ins_pedido" Then 'query tag For Each records() As Object In resultado.Rows ' PB2.Progress = PB2.Progress + 5 ' S_CP.Text = "SUBIENDO" Next End If End If End If Log(reqManager.reqsList) If reqManager.reqsList.size = 0 Then p_progressDialog.Visible = False Job.Release End Sub Sub B4XPage_CloseRequest As ResumableSub If p_engrane.Visible = True Then p_engrane.Visible = False Else ExitApplication End If Return False End Sub Sub b_cargarBD_Click Dim FH As FileHandler FH.Initialize l_appInfo.Text = "" Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar. Log("|" & Result.FileName & "|") If Result.FileName <> "" And Result.FileName <> Null Then p_clientes.Visible = False p_editaAlmacen.Visible = False p_editaRuta.Visible = False File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno. skmt.Initialize(File.DirInternal,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada. B4XPage_Appear ToastMessageShow("¡BD importada!", False) End If End Sub Sub l_ruta2_LongClick p_editaRuta.Top = l_ruta2.top p_editaRuta.Visible = True End Sub Sub l_almacen2_LongClick p_editaAlmacen.Top = l_almacen2.top p_editaAlmacen.Visible = True End Sub Sub l_usuario2_LongClick p_editaUsuario.Top = l_usuario2.top p_editaUsuario.Visible = True Log("xxx") End Sub Sub l_clienteNoNumerico_LongClick Dim c As Cursor = skmt.ExecQuery($"select distinct pe_cliente as cliente from pedido"$) If c.RowCount > 0 Then clv_clientes.Clear For i = 0 To c.RowCount - 1 c.Position = i clv_clientes.Add(CreateListItem(c.GetString("cliente")),i) Next End If p_clientes.Top = l_totalVenta.top p_clientes.BringToFront p_clientes.Visible = True End Sub 'Cambiamos la ruta actual por la especificado. Sub b_guardaRuta_Click Log("Guardamos nueva ruta.") If et_nuevaRuta.Text <> "" Then skmt.ExecNonQuery($"update PEDIDO set PE_RUTA = '${et_nuevaRuta.Text}' where PE_RUTA = '${ruta}'"$) skmt.ExecNonQuery($"update PEDIDO_CLIENTE set PC_RUTA = '${et_nuevaRuta.Text}' where PC_RUTA = '${ruta}'"$) skmt.ExecNonQuery($"update kmt_info set CAT_CL_RUTA = '${et_nuevaRuta.Text}' where CAT_CL_RUTA = '${ruta}'"$) Try 'Si es Guna, se pone en kmt_info2 skmt.ExecNonQuery($"update kmt_info2 set CAT_CL_RUTA = '${et_nuevaRuta.Text}' where CAT_CL_RUTA = '${ruta}'"$) Catch Log(LastException) End Try l_ruta2.Text = et_nuevaRuta.text End If p_editaRuta.Visible = False End Sub 'Cambiamos el almacen actual por el especificado. Sub b_guardaAlmacen_Click If et_nuevoAlmacen.Text <> "" Then skmt.ExecNonQuery($"delete from cat_almacen"$) skmt.ExecNonQuery($"insert into cat_almacen (id_almacen) values ('${et_nuevoAlmacen.Text}')"$) skmt.ExecNonQuery($"update PEDIDO set PE_CEDIS = '${et_nuevoAlmacen.Text}' where PE_CEDIS = '${l_almacen2.text}'"$) skmt.ExecNonQuery($"update PEDIDO_CLIENTE set PC_ALMACEN = '${et_nuevoAlmacen.Text}' where PC_ALMACEN = '${l_almacen2.text}'"$) l_almacen2.Text = et_nuevoAlmacen.text End If p_editaAlmacen.Visible = False End Sub 'Cambiamos el usuario actual por el especificado. Private Sub b_guardaUsuario_Click ' skmt.ExecNonQuery($"delete from usuarioa"$) If et_nuevoUsuario.Text <> "" Then skmt.ExecNonQuery($"update usuarioa set usuario = '${et_nuevoUsuario.Text}'"$) skmt.ExecNonQuery($"update NOVENTA set NV_USER = '${et_nuevoUsuario.Text}' where NV_USER = '${l_usuario2.text}'"$) skmt.ExecNonQuery($"update PEDIDO set PE_USUARIO = '${et_nuevoUsuario.Text}' where PE_USUARIO = '${l_usuario2.text}'"$) skmt.ExecNonQuery($"update PEDIDO_CLIENTE set PC_USER = '${et_nuevoUsuario.Text}' where PC_USER = '${l_usuario2.text}'"$) l_usuario2.Text = et_nuevoUsuario.text End If p_editaUsuario.Visible = False End Sub Sub p_principal_Click p_editaAlmacen.Visible = False p_editaRuta.Visible = False p_clientes.Visible = False p_validacion.Visible = False ime.HideKeyboard End Sub Sub CreateListItem(mostrar As String) As Panel Dim p As B4XView = xui.CreatePanel("") p.SetLayoutAnimated(0, 0, 0, 1, 10) 'ignore p.LoadLayout("listItem") p.Height= 36dip p.Width = clv_clientes.GetBase.Width p_item.Height = p.Height p_item.Width = p.Width l_item.Height = p.Height l_item.Width = p.Width l_item.Text = mostrar ' cxc.Text = mostrar3 ' Log(p.Width) Return p End Sub Sub i_engrane_Click Subs.panelVisible(p_engrane, 0, 0) p_engrane.Width = Root.Width : p_engrane.Height = Root.Height End Sub Sub B_SERVER_Click p_engrane.Visible = False reqManager.Initialize(Me, et_server.text) End Sub Sub lv_DBRServer_ItemClick (Position As Int, Value As Object) et_server.Text = Value reqManager.Initialize(Me, Value) End Sub Private Sub lv_empresa_ItemClick (Position As Int, Value As Object) empresa = Value l_appInfo.Text = $"${empresa}"$ End Sub Private Sub sp_empresa_ItemClick (Position As Int, Value As Object) empresa = Value If empresa <> "------------" And empresa <> "" Then b_enviar.Enabled = True b_valida.Enabled = True b_enviar.Text = $"Enviar ${empresa} "$ b_valida.Text = $"Validar ${empresa} "$ Else b_enviar.Enabled = False b_valida.Enabled = False End If Log(Value) End Sub Sub envioMariana 'ignore reqManager.reqsList.Initialize 'inicializamos lista de requests. 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)") ' PEDIO_CLIENTE Dim c As Cursor = 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 ") Dim d As Cursor = 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_MARDS" 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, ruta, c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , $"ins_pedidos_${i}"$) Next End If c.Close d.Position=0 ' Dim cuantos_pedidosc As String = D.GetString("CUANTOS_PEDIDOSC") d.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_MARDS" cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen, ruta) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , $"ins_QR_${i}"$) Next End If c.Close 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_MARDS" cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , $"ins_encuesta_${i}"$) Next End If c.Close 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_pedido_MARDS" 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")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , $"ins_pedido_${i}"$) Next End If c.Close d.Position=0 B4XPages.MainPage.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, NV_NOMBRE, NV_DIRECCION 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_MARDS" 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, ruta,C.GetString("NV_NOMBRE"),C.GetString("NV_DIRECCION")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , $"ins_noventa_${i}"$) Next End If c.Close d = skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") d.Position = 0 Dim cuantos_noventa As String = 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_MARDS" cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_geocerca") 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_MARDS" cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_facelike") Next End If c.Close ' DROP ' 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_MARDS_2" ' cmd.Parameters = Array As Object(usuario,ruta,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") End Sub Sub envioIntmex 'ignore Intmex.envia End Sub Sub envioDurakelo 'ignore Durakelo.envia End Sub Sub envioGuna 'ignore Private PASO As Int = 1 reqManager.reqsList.Initialize 'inicializamos lista de requests. If PASO = 1 Then B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)") ' PEDIO_CLIENTE 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 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_GV2" 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, ruta, C.GetString("PC_COSTO_SIN") ) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedidos") Next End If c.Close 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") d.Close ' ENVIO DE LOS CODIGOS QR 'c=skmt.ExecQuery2("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 = ?", Array As String("OK")) 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_GV2" cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"), C.GetString("CODIGOB"), C.GetString("LON"), C.GetString("LAT"), almacen, ruta) B4XPages.MainPage.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 Private foto1() As Byte = c.GetBlob("CAT_CL_FOTO") Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_QR_GV2" 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, ruta, foto1) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_QR") Next End If c.Close 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" cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close 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_pedido_GV2" 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")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedido") Next End If c.Close d.Position=0 Private cuantos_pedido As String = 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") 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_GV2" 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, ruta) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") d.Position = 0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.Close ' DATOS DE KMTS PARA EL TIPO DE ABARROTE. '''CAT_CL_GIRO = ? WHERE CAT_CL_CODIGO = ? And CAT_CL_NOMBRE = ? kmt_info c = B4XPages.MainPage.skmt.ExecQuery("Select CAT_CL_GIRO, CAT_CL_CODIGO from kmt_info") If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_GIROS_ENC" cmd.Parameters = Array As Object(C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_GIRO")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.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_GV2" cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON")) B4XPages.MainPage.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_GV2" cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN")) B4XPages.MainPage.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_GV2_2" ' cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",almacen) ' B4XPages.MainPage.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) End If Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9 from ENCUESTA_MODULO1") If x.RowCount>0 Then For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_ENCUESTA_MODULO1" cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"), x.GetString("P7"), x.GetString("P8"), x.GetString("P9")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO1") Next End If x.Close Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6 from ENCUESTA_MODULO2") If x.RowCount>0 Then For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_ENCUESTA_MODULO2" cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO2") Next End If x.Close Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9 from ENCUESTA_MODULO3") If x.RowCount>0 Then For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_ENCUESTA_MODULO3" cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"), x.GetString("P7"), x.GetString("P8"), x.GetString("P9")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO3") Next End If x.Close Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8 from ENCUESTA_MODULO4") If x.RowCount>0 Then For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_ENCUESTA_MODULO4" cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"), x.GetString("P7"), x.GetString("P8")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO4") Next End If x.Close Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9 from ENCUESTA_MODULO5") If x.RowCount>0 Then For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_ENCUESTA_MODULO5" cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"), x.GetString("P7"), x.GetString("P8"), x.GetString("P9")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO5") Next End If x.Close End Sub 'Valida la venta contra web. 'Revisa que la NOVENTA, la cantidad de pedidos y los productos de PEDIDO sean los mismos en web y locales. Sub valida(identificador As String) Log("Validamos " & identificador) If empresa.ToUpperCase.Contains("GUNA") Then reqManager.Initialize(Me, "http://keymon.lat:1782") Else reqManager.Initialize(Me, "http://keymon.lat:1781") End If d = skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") d.Position = 0 Dim cuantos_noventa As String = d.GetString("CUANTOS_NOVENTA") d.Close cmd.Initialize cmd.Name = $"select_cuantos_noventa_${identificador}"$ cmd.Parameters = Array As Object(almacen, ruta) reqManager.ExecuteQuery(cmd , 0, "valida_noventa") d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") d.Position = 0 cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close cmd.Initialize cmd.Name = $"select_cuantos_pedido_${identificador}"$ cmd.Parameters = Array As Object(almacen, ruta) reqManager.ExecuteQuery(cmd , 0, "valida_pedido") 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") d.Close cmd.Initialize cmd.Name = $"select_cuantos_pedidoc_${identificador}"$ cmd.Parameters = Array As Object(almacen, ruta) reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc") End Sub Private Sub p_empresa_Click End Sub Private Sub b_valida_Click l_vPedidos2.Text = "" l_vProds2.Text = "" l_vNoVenta2.Text = "" p_validacion.Visible = True If empresa.ToUpperCase.Contains("MARIANA") Then valida("MARDS") else if empresa.ToUpperCase.Contains("GUNA") Then valida("GV2") else if empresa.ToUpperCase.Contains("INTMEX") Then ' valida("INTMEX") Intmex.valida else if empresa.ToUpperCase.Contains("DURAKELO") Then Durakelo.valida End If End Sub Private Sub p_engrane_Click End Sub Private Sub p_validacion_Click p_validacion.Visible = False End Sub