'====================================================================================== $// ARCHIVO_INICIO: B4XMainPage.bas '====================================================================================== 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 'Faltan: ' - Venta: Izca, Kelloggs, Profina, (Danvit y Salma no tienen forma de enviar la base de datos) ' - Reparto: Guna, Intmex, Durakelo, Profina, Marquez, Mazapa, Izca Reparto: HIST_VENTAS - Son los pedidos a entregar kmt_info - Cientes NOVENTA - Cuentos enregados y cuantos no entregados PAGARES - Pagares Nuevos ABONOS_P - Pagares pendientes de cobro ABONOS - Pagos realizados de pagares de ABONOS_P PEDIDO - Ventas de rechazo (si hubo rechazo y se vendió, ahi aparece) PEDIDO_CLIENTE - Igual REPARTO - '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 Guna_Reparto As C_Guna_Reparto Dim Intmex As C_Intmex Dim Izca As C_Izca Dim Durakelo As C_Durakelo Dim Marquez As C_Marquez Dim Mazapa As C_Mazapa Dim Profina As C_Profina Private l_version0 As Label Private b_guardaRutaTodos As Button Private b_guardaRuta As Button 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.net: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.net:1781") ' lv_DBRServer.AddSingleLine("http://keymon.net:1782") lv_DBRServer.AddSingleLine("http://keymon.net:1782") et_server.Text = "http://keymon.net: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("Guna_Reparto") sp_empresa.Add("Intmex") sp_empresa.Add("Izca") sp_empresa.Add("Mariana") sp_empresa.Add("Marquez") sp_empresa.Add("Mazapa") sp_empresa.Add("Profina") i_engrane.Left = Root.Width - i_engrane.Width - 5dip Intmex.Initialize Guna_Reparto.Initialize Izca.Initialize Durakelo.Initialize Marquez.Initialize Mazapa.Initialize Profina.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 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("Guna_Reparto") Then b_enviar.Text = "Enviar Guna_Reparto" b_valida.Text = "Validar Guna_Reparto" b_enviar.Enabled = True Log("Cargamos Guna_Reparto") 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("IZCA") Then b_enviar.Text = "Enviar Izca" b_valida.Text = "Validar Izca" b_enviar.Enabled = True Log("Cargamos IZCA") 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 if empresa.ToUpperCase.Contains("MARQUEZ") Then b_enviar.Text = "Enviar Marquez" b_valida.Text = "Validar Marquez" b_enviar.Enabled = True Log("Cargamos MARQUEZ") else if empresa.ToUpperCase.Contains("MAZAPA") Then b_enviar.Text = "Enviar Mazapa" b_valida.Text = "Validar Mazapa" b_enviar.Enabled = True Log("Cargamos MAZAPA") else if empresa.ToUpperCase.Contains("PROFINA") Then b_enviar.Text = "Enviar Profina" b_valida.Text = "Validar Profina" b_enviar.Enabled = True Log("Cargamos PROFINA") 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("GUNA_REPARTO") Then envioGuna_Reparto else if empresa.ToUpperCase.Contains("INTMEX") Then envioIntmex else if empresa.ToUpperCase.Contains("IZCA") Then envioIzca else if empresa.ToUpperCase.Contains("DURAKELO") Then envioDurakelo else if empresa.ToUpperCase.Contains("MARQUEZ") Then envioMarquez else if empresa.ToUpperCase.Contains("MAZAPA") Then envioMazapa else if empresa.ToUpperCase.Contains("PROFINA") Then envioProfina 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 b_guardaRuta.text = $"Cambiar en "${l_ruta2.text}""$ 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 Private Sub b_guardaRutaTodos_Click Log("Guardamos nueva ruta.") If et_nuevaRuta.Text <> "" Then skmt.ExecNonQuery($"update PEDIDO set PE_RUTA = '${et_nuevaRuta.Text}'"$) 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 envioGuna_Reparto 'ignore Guna_Reparto.envia End Sub Sub envioIntmex 'ignore Intmex.envia End Sub Sub envioIzca 'ignore Izca.envia End Sub Sub envioDurakelo 'ignore Durakelo.envia End Sub Sub envioMarquez 'ignore Marquez.envia End Sub Sub envioMazapa 'ignore Mazapa.envia End Sub Sub envioProfina 'ignore Profina.envia End Sub Sub envioGuna 'ignore Private PASO As Int = 1 reqManager.Initialize(Me, "http://keymon.net:1782") 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.ExecQuery2("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 WHERE (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null")) 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_06" 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 cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close If almacen = "88" Or almacen = "6" Then c=B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_RECALCULO,PE_RECALCULOTOT,PE_RECCEDIS,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 WHERE PE_RECALCULO <> ? or PE_RECALCULO <> ? or PE_RECALCULO IS NOT NULL",Array As String("","null")) d=B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO where PE_RUTA = '${Subs.traeRuta}'"$) 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_06" cmd.Parameters = Array As Object(C.GetString("PE_RECCEDIS"), almacen, C.GetString("PE_RECALCULOTOT"), C.GetString("PE_RECALCULO"), 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 cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close Else c=B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_RECALCULO,PE_RECALCULOTOT,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 WHERE PE_RECALCULO <> ? or PE_RECALCULO <> ? or PE_RECALCULO IS NOT NULL",Array As String("","null")) d=B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO where PE_RUTA = '${Subs.traeRuta}'"$) 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_06" cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"), almacen, C.GetString("PE_RECALCULOTOT"), C.GetString("PE_RECALCULO"), 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 cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close End If ' 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") reqManager.Initialize(Me, "http://keymon.net:1782") Else ' reqManager.Initialize(Me, "http://keymon.lat:1781") reqManager.Initialize(Me, "http://keymon.net: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 else if empresa.ToUpperCase.Contains("MARQUEZ") Then Marquez.valida End If End Sub Private Sub p_engrane_Click End Sub Private Sub p_validacion_Click p_validacion.Visible = False End Sub '====================================================================================== $// ARCHIVO_FIN: B4XMainPage.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Durakelo.bas '====================================================================================== 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 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 e1, c, d, d3, d9 As Cursor Dim tiempo As Int Dim l_ruta, L_ABORDO, l_porvisitar As Label Dim T3, T4 As Timer Dim enviando As Boolean = False Dim validando As Boolean = False 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("") 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 carga = "SUBIR" enviando = True almacen = Subs.traeAlmacen l_ruta.TEXT = Subs.traeRuta Dim fecha As String = DateTime.Date(DateTime.Now) ' P1.Visible = True ' trabajar.Visible = False ' B_PROXIMA.Visible =False ' Btn_UbicarR.Visible=False ' NUEVO.Visible =False ' BUSCA.Visible=False ' connecta.Visible=False ' Subir.Visible=False ' SUBIR_P.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 porcentaje = 0 ' 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 ' PB2.Visible = True conteo = 0 paso = 1 'End If ' If paso = 1 Then e1=B4XPages.MainPage.skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO")) e1.Position = 0 If e1.GetString("CUANTOS") > 0 Then c=B4XPages.MainPage.skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO")) c.Position = 0 L_ABORDO.Text = c.GetString("MONTO_DIA") c.Close Else L_ABORDO.Text = 0 End If e1.Close c=B4XPages.MainPage.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) c.Position =0 perfil = c.GetString("CUANTOS") c.Close If perfil > 0 Then c=B4XPages.MainPage.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) c.Position =0 perfil = c.GetString("CAT_VA_VALOR") c.Close End If c=B4XPages.MainPage.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("NUMERO_PEDIDO")) c.Position =0 cuantos = c.GetString("CUANTOS") c.Close If cuantos > 0 Then c=B4XPages.MainPage.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("NUMERO_PEDIDO")) c.Position =0 NUMERO_PEDIDO = c.GetString("CAT_VA_VALOR") c.Close Else NUMERO_PEDIDO = 0 End If 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 d3=B4XPages.MainPage.skmt.ExecQuery("SELECT SUM(PE_COSTO_TOT) as MONTO FROM PEDIDO") d3.Position = 0 ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name ="UPDATE_INFO_E_DURK" ' cmd.Parameters = Array As Object(d3.GetDouble("MONTO")- L_ABORDO.text, L_ABORDO.Text, d3.GetDouble("MONTO"),l_ruta.TEXT, almacen) ' reqManager.ExecuteQuery(cmd , 0, "inst_noventa") ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name ="insert_drop2_DUR" ' 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, L_MONTOD.Text,"ENVIO", almacen, L_VENTA.Text, L_PREVENTA.Text, L_ABORDO.Text, l_cambios.TEXT) ' reqManager.ExecuteQuery(cmd , 0, "inst_noventa") ' d3.Close ' PEDIDO_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 ") 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_DUR" 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.traeRutaPedidoCliente(C.GetString("PC_CLIENTE")),C.GetString("PC_COSTO_SIN") ) reqManager.ExecuteCommand(cmd, "ins_pedidos") ' LogColor(Subs.traeRutaPedidoCliente(C.GetString("PC_CLIENTE")) & "|" & C.GetString("PC_CLIENTE"), Colors.red ) Next c.Close End If d.Position=0 cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC") d.Close ' c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT 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_QR_DUR" ' 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,l_ruta.text ) ' reqManager.ExecuteQuery(cmd , 0,"ins_QR") ' Next ' c.Close ' End If Try c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_ORDEN FROM HIST_ENCUESTA4") ' S_CP.Text = "Envio Encuesta" ' PB2.Progress = 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_ENCUESTA_K001DUR" cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"),C.GetString("HE_ORDEN"),almacen,l_ruta.text,"1", C.GetString("HE_TIPO")) reqManager.ExecuteCommand(cmd , "INS_K001") Next c.Close End If Catch Log(LastException) End Try 'ENCUESTAS Try c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_EP_IDGRUPO, CAT_EP_IDTIPOPREGUNTA, HIST_ENCUESTA.* FROM HIST_ENCUESTA join CAT_ENCUESTA_PREGUNTA on CAT_EP_ID = HE_TIPO") ' S_CP.Text = "Envio Encuesta" ' PB2.Progress = 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_encuesta2_DUR" cmd.Parameters = Array As Object(C.GetString("HE_CLIE"), C.GetString("HE_RES"), C.GetString("HE_FECHA"), c.GetString("HE_TIPO"), l_ruta.Text, c.GetString("CAT_EP_IDGRUPO"), Subs.traeAlmacen, c.GetString("CAT_EP_IDTIPOPREGUNTA")) Log($"${C.GetString("HE_RES")}, ${C.GetString("HE_FECHA")}, ${c.GetString("HE_TIPO")}, ${l_ruta.Text}, ${c.GetString("CAT_EP_IDGRUPO")}, ${Subs.traeAlmacen}, ${c.GetString("CAT_EP_IDTIPOPREGUNTA")}"$) reqManager.ExecuteCommand(cmd , "ins_encuesta") Next End If c.Close Catch Log(LastException) End Try ' ' PEDIDO B4XPages.MainPage.skmt.ExecNonQuery("update PEDIDO set PE_FOLIO = rowid ") If perfil = "V-ESPECIAL" Then 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_TIPO FROM PEDIDO ORDER BY PE_CLIENTE") d=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") d.Position=0 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_esp_DUR" 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"), c.GetString("PE_TIPO"),NUMERO_PEDIDO ) reqManager.ExecuteCommand(cmd, "ins_pedido") Next c.Close End If Else 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_TIPO FROM PEDIDO") d9=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") d9.Position=0 ' tiempo = 0 If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position = i ' tiempo = tiempo + 1 ' If tiempo > 20 Then ' T3.Initialize("T3", 2000) ' 1000 = 1 second ' T3.Enabled = True ' Wait For t3_tick ' tiempo = 0 ' End If conteo = conteo + 1 cuantos_ped = d9.GetString("CUANTOS_PEDIDO") porcentaje = 2 'Round(100/ (D.GetString("CUANTOS_PEDIDO") + 1)) Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_pedido_DUR" 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"), c.GetString("PE_TIPO")) reqManager.ExecuteCommand(cmd, "ins_pedido") Next c.Close End If End If cuantos_pedido = d9.GetString("CUANTOS_PEDIDO") d9.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_DUR" 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, l_ruta.Text) reqManager.ExecuteCommand(cmd, "inst_noventa") Next c.Close End If d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.Close ' NOVENTA HIST_EXIBIDORES(CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR) c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR from HIST_EXIBIDORES") D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM HIST_EXIBIDORES") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_HIST_EXIBIDORES_DUR" cmd.Parameters = Array As Object(C.GetString("CAT_CL_CLIENTE"),C.GetString("CAT_CL_EXHIBIDOR"),C.GetString("CAT_CL_BEXHIBIDOR"),l_ruta.TEXT) reqManager.ExecuteCommand(cmd, "inst_noventa") Next c.Close End If d.Position=0 cuantos_exib = D.GetString("CUANTOS_NOVENTA") d.Close 'CUESTIONARIOS c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) 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_DUR" 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 ' DROP ' t1.Initialize("T1", 20000) ' 1000 = 1 second ' t1.Enabled = True ' img2.Visible =True ' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) ' If S_CP.Text = "SUBIENDO" Then ' S_CP.Text = "VALIDANDO" ' End If ' End If T4.Initialize("T4", 3000) T4.Enabled = True End Sub Sub JobDone(Job As HttpJob) 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) 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 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 reqManager.reqsList.size = 0 Then T4.Enabled = True Else T4.Enabled = False Job.Release 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 cmd.Initialize cmd.Name = "select_cuantos_pedido_DUR" 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_DUR" cmd.Parameters = Array As Object(almacen, Subs.traeRuta) reqManager.ExecuteQuery(cmd , 0, "valida_noventa") cmd.Initialize 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") B4XPages.MainPage.l_vPedidos2.Text = "" B4XPages.MainPage.l_vProds2.Text = "" B4XPages.MainPage.l_vNoVenta2.Text = "" End Sub Sub T4_Tick 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 = False 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 End Sub '====================================================================================== $// ARCHIVO_FIN: C_Durakelo.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Envios.bas '====================================================================================== B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=12.5 @EndOfDesignText@ Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore Private c, d As Cursor Private usuario As String 'ignore Private almacen As String Private ruta As String End Sub 'You can add more parameters here. Public Sub Initialize As Object usuario = Subs.traeUsuarioDeBD almacen = Subs.traeAlmacen ruta = Subs.traeRuta 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 envioMariana 'ignore 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.Visible = True B4XPages.MainPage.p_progressDialog.BringToFront 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_1") 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") 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 , "hist_encuesta") 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_1") 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 , "inst_noventa") 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 , "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_MARDS" 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 ' 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") ToastMessageShow("Se actualizaran los datos, este proceso podria tardar hasta un minuto, gracias "& ruta , True) End If End Sub Sub envioGuna 'ignore Private PASO As Int = 1 'End If 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 ") 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_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.Position=0 Private cuantos_pedidosc As String = D.GetString("CUANTOS_PEDIDOSC") 'ignore 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_06" 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") 'ignore 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_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.Position = 0 Private cuantos_noventa As String = D.GetString("CUANTOS_NOVENTA") 'ignore 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 '====================================================================================== $// ARCHIVO_FIN: C_Envios.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Intmex.bas '====================================================================================== 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://keymon.net: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.net:1781") B4XPages.MainPage.l_vPedidos2.Text = "" B4XPages.MainPage.l_vProds2.Text = "" B4XPages.MainPage.l_vNoVenta2.Text = "" End Sub '====================================================================================== $// ARCHIVO_FIN: C_Intmex.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Izca.bas '====================================================================================== 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 b, c, d As Cursor 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 End Sub 'Initializes the object. You can add parameters to this method if needed. Public Sub Initialize reqManager.Initialize(Me, "http://keymon.net:1781") Return Me End Sub Sub envia ' 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_IZCA_ACTUAL2_GPS" ' cmd.Parameters = Array As String(B4XPages.MainPage.montoActual, B4XPages.MainPage.clientestotal, B4XPages.MainPage.clientesventa,B4XPages.MainPage.clientesvisitados,B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,B4XPages.MainPage.batt,0, 0, 0,B4XPages.MainPage.ALMACEN,B4XPages.MainPage.rutapreventa ) ' reqManager.ExecuteCommand(cmd , "update_gps") ' Next ' End If ' c.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_info3 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_IZCA" ' cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),ALMACEN,l_ruta.text ) ' 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_info3 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_IZCA" ' 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,l_ruta.text ) ' reqManager.ExecuteCommand(cmd , "ins_QR") ' 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_IZCA" ' cmd.Parameters = Array As Object(C.GetString("PA_ALMACEN"),Subs.traeRuta2(c.GetString("PA_CLIENTE")),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 ' ' 'ABONOS ' Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null"$) ' Log(ab.RowCount) ' If ab.RowCount > 0 Then ' For i=0 To ab.RowCount -1 ' ab.Position = i ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name = "insert_abono_IZCA" ' cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),ALMACEN ) ' reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) ' Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) ' Next ' End If ' ab.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_CP 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_IZCA4" Log(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")) cmd.Parameters = Array As Object(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_CP")) reqManager.ExecuteCommand(cmd , "inst_clientesn") 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_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 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_pedidos_IZCA" PCNoArts = c.GetString("PC_NOART") PCMonto = c.GetString("PC_MONTO") 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.traeRuta2(c.GetString("PC_CLIENTE")), c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA")) 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 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_pedido5_IZCA" '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.traeRuta2(c.GetString("PE_CLIENTE"))&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& ALMACEN) If c.GetString("PE_FOLIO") = "PREVENTA_CONTADO" Then 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"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"PREVENTA",0) Else If c.GetString("PE_FOLIO") = "PREVENTA_CREDITO" Then 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"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"PREVENTA",1) Else If c.GetString("PE_FOLIO") = "ABORDO" Then 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"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"ABORDO",0) Else If c.GetString("PE_FOLIO") = "RECARGA" Then 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"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"RECARAGA",0) Else 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"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),"VENTA",0) End If reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}_${c.GetString("PE_PROID")}"$) 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_IZCA" 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.traeRuta2(c.GetString("NV_CLIENTE"))) 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_IZCA" 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 ' Cambio ubicaciones c=B4XPages.MainPage.skmt.ExecQuery("Select CAT_CL_LAT, CAT_CL_LONG, CAT_CL_CODIGO, CAT_CL_BCOORDENADAS from kmt_info3 where CAT_CL_BCOORDENADAS <> 0") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize cmd.Name = "update_coordenadas_IZCA" cmd.Parameters = Array As Object(C.GetString("CAT_CL_LAT"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_BCOORDENADAS"),C.GetString("CAT_CL_CODIGO"),almacen,Subs.traeRuta2(C.GetString("CAT_CL_CODIGO"))) reqManager.ExecuteCommand(cmd , "up_coordenadas") Next End If c.Close 'TABULADOR c = B4XPages.MainPage.skmt.ExecQuery("SELECT VEINTE, DIEZ, CINCO, DOS, PESO, CENTAVO, TOTAL FROM TABULADOR_MONEDAS") d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") ' f = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS") d.Position = 0 b.Position = 0 ' f.Position = 0 If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position=i Dim cmd As DBCommand Dim sDate,sTime As String DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) ' Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA")) ' Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0)) ' Dim fechatabulador3 As String = fechatabulador2(1)&"/"&fechatabulador2(2)&"/"&fechatabulador2(0) cmd.Initialize cmd.Name = "insert_tabulador_monedas_IZCA2" cmd.Parameters = Array As Object(d.GetString("RUTAA"), b.GetString("ID_ALMACEN"),c.GetString("VEINTE"),c.GetString("DIEZ"),c.GetString("CINCO"),c.GetString("DOS"),c.GetString("PESO"),c.GetString("CENTAVO"),sDate, "PREVENTA") reqManager.ExecuteCommand(cmd , "ins_tabulador_mon") Next c.Close d.Close b.Close ' f.Close End If c = B4XPages.MainPage.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES") d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") ' f = Starter.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS") d.Position = 0 b.Position = 0 ' f.Position = 0 If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position=i Dim cmd As DBCommand DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) ' Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA")) ' Dim fechatabulador2() As String = Regex.Split("-", fechatabulador(0)) ' Dim fechatabulador3 As String = fechatabulador2(1)&"/"&fechatabulador2(2)&"/"&fechatabulador2(0) cmd.Initialize cmd.Name = "insert_tabulador_billetes_IZCA2" cmd.Parameters = Array As Object(b.GetString("ID_ALMACEN"), d.GetString("RUTAA"),c.GetString("MIL"),c.GetString("QUINIENTOS"),c.GetString("DOCIENTOS"),c.GetString("CIEN"),c.GetString("CINCUENTA"),c.GetString("VEINTE"),sDate, "PREVENTA") reqManager.ExecuteCommand(cmd , "ins_tabulador_bill") Next c.Close d.Close b.Close ' f.Close End If 'FIN TABULADOR ' 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_IZCA" ' 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,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) ' 'CUESTIONARIOS ' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) ' 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 ' 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_IZCA" ' cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), ALMACEN,l_ruta.Text) ' userpiezas = c.GetString("PC_CLIENTE") ' reqManager.ExecuteQuery(cmd , 0, "piezas") ' Next ' ' End If End If End Sub '====================================================================================== $// ARCHIVO_FIN: C_Izca.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Mazapa.bas '====================================================================================== 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 c, d As Cursor 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 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 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 '====================================================================================== $// ARCHIVO_FIN: C_Mazapa.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: C_Profina.bas '====================================================================================== 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 c, d As Cursor 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 End Sub 'Initializes the object. You can add parameters to this method if needed. Public Sub Initialize reqManager.Initialize(Me, "http://keymon.net:1781") l_ruta.Initialize("l") Return Me End Sub Sub envia l_ruta.text = Subs.traeRuta ' carga = "SUBIR" ' P1.Visible = True ' 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_PRO_ACTUAL2_GPS" ' cmd.Parameters = Array As Object(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 ' 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, PC_FACTURA, PC_SOLICITA 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_pro2" LogColor(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_SOLICITA"),Colors.Magenta) 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_SOLICITA")) reqManager.ExecuteCommand(cmd , "ins_pedidos") Next End If c.Close d.Position=0 cuantos_pedidosc = 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_PRO" cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen,l_ruta.text ) 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_MARDS" ' 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,l_ruta.text, foto1 ) ' 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_MARDS" ' 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 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_PRO" 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"),"PREVENTA") 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, NV_NOMBRE, NV_DIRECCION 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_PRO" 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, l_ruta.Text) reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If c.Close d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.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 FROM CLIENTES_NUEVOS") If c.RowCount>0 Then For i = 0 To c.RowCount - 1 c.Position = i Log(File.Exists(Dirp&Dir&Dir2,c.GetString("CN_FOTO"))) If File.Exists(Dirp&Dir&Dir2,c.GetString("CN_FOTO")) Then fotocn = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir,c.GetString("CN_FOTO"))) Dim cmd As DBCommand cmd.Initialize cmd.Name = "insert_clientesnuevos_PRO" cmd.Parameters = Array As Object(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"),c.GetString("CN_ALMACEN"), c.GetString("CN_RUTA"), fotocn, "EN ESPERA",c.GetString("CN_GIRO")) reqManager.ExecuteCommand(cmd , "inst_clientesn") 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_PRO" ' 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_MARDS" ' 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 'fotos ' Dim fotox() As Byte ' Dim cmd As DBCommand ' c = B4XPages.MainPage.skmt.ExecQuery("Select CODIGO, ALMACEN, RUTA, NOM_FOTO from HIST_FOTO_CLIENTE") ' ' c.Position = 0 ' ' Dim Dirp As String = File.DirInternal ' Dim Dir As String ' Dim Dir2 As String ' Dir = "/promotoriakmts" ' If c.RowCount>0 Then ' For i = 0 To c.RowCount - 1 ' c.Position = i ' Log(File.Exists(Dirp&Dir&Dir2,c.GetString("NOM_FOTO"))) ' fotox = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir,c.GetString("NOM_FOTO"))) ' cmd.Initialize ' cmd.Name = "insert_fotos_cliente_nuevo_MARIANA" ' cmd.Parameters = Array As Object(c.GetString("CODIGO"),c.GetString("ALMACEN"),c.GetString("RUTA"),fotox) ' reqManager.ExecuteCommand(cmd, $"insert_clientes_${c.GetString("CODIGO")}"$) ' 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_PRO_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) ' 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 End Sub '====================================================================================== $// ARCHIVO_FIN: C_Profina.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: DBCheck.b4a '====================================================================================== Build1=Default,dbcheck.keymon.lat,HU2_PUBLIC File1=engrane_gris.png File2=listItem.bal File3=logo_192x192.jpg File4=logo_keymon.png File5=MainPage.bal File6=progress.gif FileGroup1=Default Group FileGroup2=Default Group FileGroup3=Default Group FileGroup4=Default Group FileGroup5=Default Group FileGroup6=Default Group Group=Default Group Library1=b4xpages Library10=xcustomlistview Library11=b4xgifview Library2=byteconverter Library3=contentresolver Library4=core Library5=fileprovider Library6=ime Library7=okhttputils2 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=DBRequestManager Module11=FileHandler Module12=Starter Module13=Subs Module2=C_Durakelo Module3=C_Envios Module4=|relative|..\C_Guna_Reparto Module5=C_Intmex Module6=C_Izca Module7=|relative|..\C_Marquez Module8=C_Mazapa Module9=C_Profina NumberOfFiles=6 NumberOfLibraries=11 NumberOfModules=13 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: DBCheck #VersionCode: 1 #VersionName: 5.07.05 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False #End Region #Region Activity Attributes #FullScreen: False #IncludeTitle: True #End Region '#BridgeLogger: True Sub Process_Globals Public ActionBarHomeClicked As Boolean End Sub Sub Globals End Sub Sub Activity_Create(FirstTime As Boolean) Dim pm As B4XPagesManager pm.Initialize(Activity) End Sub 'Template version: B4A-1.01 #Region Delegates Sub Activity_ActionBarHomeClick ActionBarHomeClicked = True B4XPages.Delegate.Activity_ActionBarHomeClick ActionBarHomeClicked = False End Sub Sub Activity_KeyPress (KeyCode As Int) As Boolean Return B4XPages.Delegate.Activity_KeyPress(KeyCode) End Sub Sub Activity_Resume B4XPages.Delegate.Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) B4XPages.Delegate.Activity_Pause End Sub Sub Activity_PermissionResult (Permission As String, Result As Boolean) B4XPages.Delegate.Activity_PermissionResult(Permission, Result) End Sub Sub Create_Menu (Menu As Object) B4XPages.Delegate.Create_Menu(Menu) End Sub #if Java public boolean _onCreateOptionsMenu(android.view.Menu menu) { processBA.raiseEvent(null, "create_menu", menu); return true; } #End If #End Region 'Program code should go into B4XMainPage and other pages. '====================================================================================== $// ARCHIVO_FIN: DBCheck.b4a '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: DBRequestManager.bas '====================================================================================== B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=6.8 @EndOfDesignText@ ''Class module Sub Class_Globals Private mTarget As Object Type DBResult (Tag As Object, Columns As Map, Rows As List) Type DBCommand (Name As String, Parameters() As Object) Dim link As String Private bc As ByteConverter Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _ ,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte Private VERSION As Float = 0.9 Private tempArray(1) As Object Dim jobTagAnterior As String = "" 'Mod por CHV - 211109 Dim reqsList As List End Sub 'Target - The module that handles JobDone (usually Me). 'ConnectorLink - URL of the Java server. Public Sub Initialize (Target As Object, ConnectorLink As String) mTarget = Target link = ConnectorLink reqsList.Initialize End Sub 'Sends a query request. 'Command - Query name and parameters. 'Limit - Maximum rows to return or 0 for no limit. 'Tag - An object that will be returned in the result. Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) Dim j As HttpJob Dim ms As OutputStream Dim out2 As OutputStream = StartJob(j,ms, Tag) If reqsList.IsInitialized Then reqsList.Add(Tag) WriteObject(Command.Name, out2) WriteInt(Limit, out2) WriteList(Command.Parameters, out2) out2.Close j.PostBytes(link & "?method=query", ms.ToBytesArray) End Sub 'Executes a batch of (non-select) commands. 'ListOfCommands - List of the commands that will be executes. 'Tag - An object that will be returned in the result. Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) Dim j As HttpJob Dim ms As OutputStream Dim out2 As OutputStream = StartJob(j,ms, Tag) WriteInt(ListOfCommands.Size, out2) For Each Command As DBCommand In ListOfCommands WriteObject(Command.Name, out2) WriteList(Command.Parameters, out2) Next out2.Close j.PostBytes(link & "?method=batch", ms.ToBytesArray) End Sub 'Similar to ExecuteBatch. Sends a single command. Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) If reqsList.IsInitialized Then reqsList.Add(Tag) ExecuteBatch(Array As DBCommand(Command), Tag) End Sub Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream j.Initialize("DBRequest", mTarget) j.Tag = Tag MemoryStream.InitializeToBytesArray(0) Dim compress As CompressedStreams Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip") WriteObject(VERSION, out) Return out End Sub Private Sub WriteList(Parameters As List, out As OutputStream) Dim data() As Byte If Parameters = Null Or Parameters.IsInitialized = False Then Dim Parameters As List Parameters.Initialize End If data = bc.IntsToBytes(Array As Int(Parameters.Size)) out.WriteBytes(data, 0, data.Length) For Each o As Object In Parameters WriteObject(o, out) Next End Sub Private Sub WriteObject(o As Object, out As OutputStream) Dim data() As Byte tempArray(0) = o If tempArray(0) = Null Then out.WriteBytes(Array As Byte(T_NULL), 0, 1) Else If tempArray(0) Is Short Then out.WriteBytes(Array As Byte(T_SHORT), 0, 1) data = bc.ShortsToBytes(Array As Short(o)) Else If tempArray(0) Is Int Then out.WriteBytes(Array As Byte(T_INT), 0, 1) data = bc.IntsToBytes(Array As Int(o)) Else If tempArray(0) Is Float Then out.WriteBytes(Array As Byte(T_FLOAT), 0, 1) data = bc.FloatsToBytes(Array As Float(o)) Else If tempArray(0) Is Double Then out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1) data = bc.DoublesToBytes(Array As Double(o)) Else If tempArray(0) Is Long Then out.WriteBytes(Array As Byte(T_LONG), 0, 1) data = bc.LongsToBytes(Array As Long(o)) Else If tempArray(0) Is Boolean Then out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1) Dim b As Boolean = 0 Dim data(1) As Byte If b Then data(0) = 1 Else data(0) = 0 Else If GetType(tempArray(0)) = "[B" Then data = o out.WriteBytes(Array As Byte(T_BLOB), 0, 1) WriteInt(data.Length, out) Else 'If o Is String Then (treat all other values as string) out.WriteBytes(Array As Byte(T_STRING), 0, 1) data = bc.StringToBytes(o, "UTF8") WriteInt(data.Length, out) End If If data.Length > 0 Then out.WriteBytes(data, 0, data.Length) End Sub Private Sub ReadObject(In As InputStream) As Object Dim data(1) As Byte In.ReadBytes(data, 0, 1) Select data(0) Case T_NULL Return Null Case T_SHORT Dim data(2) As Byte Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0) Case T_INT Dim data(4) As Byte Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) Case T_LONG Dim data(8) As Byte Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0) Case T_FLOAT Dim data(4) As Byte Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0) Case T_DOUBLE Dim data(8) As Byte Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0) Case T_BOOLEAN Dim b As Byte = ReadByte(In) Return b = 1 Case T_BLOB Dim len As Int = ReadInt(In) Dim data(len) As Byte Return ReadBytesFully(In, data, data.Length) Case Else Dim len As Int = ReadInt(In) Dim data(len) As Byte ReadBytesFully(In, data, data.Length) Return BytesToString(data, 0, data.Length, "UTF8") End Select End Sub Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte() Dim count = 0, read As Int Do While count < Len And read > -1 read = In.ReadBytes(Data, count, Len - count) count = count + read Loop Return Data End Sub Private Sub WriteInt(i As Int, out As OutputStream) Dim data() As Byte data = bc.IntsToBytes(Array As Int(i)) out.WriteBytes(data, 0, data.Length) End Sub Private Sub ReadInt(In As InputStream) As Int Dim data(4) As Byte Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) End Sub Private Sub ReadByte(In As InputStream) As Byte Dim data(1) As Byte In.ReadBytes(data, 0, 1) Return data(0) End Sub 'Handles the Job result and returns a DBResult. Public Sub HandleJob(Job As HttpJob) As DBResult Dim start As Long = DateTime.Now 'ignore Dim In As InputStream = Job.GetInputStream Dim cs As CompressedStreams In = cs.WrapInputStream(In, "gzip") Dim serverVersion As Float = ReadObject(In) 'ignore Dim method As String = ReadObject(In) Dim table As DBResult table.Initialize table.Columns.Initialize table.rows.Initialize table.Tag = Job.Tag If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109 jobTagAnterior = Job.Tag 'Mod por CHV - 211109 If method = "query" Then Dim numberOfColumns As Int = ReadInt(In) For i = 0 To numberOfColumns - 1 table.Columns.Put(ReadObject(In), i) Next Do While ReadByte(In) = 1 Dim rowObjects(numberOfColumns) As Object table.rows.Add(rowObjects) For col = 0 To numberOfColumns - 1 Dim o As Object = ReadObject(In) rowObjects(col) = o Next Loop Else If method = "batch" Then table.Columns.Put("AffectedRows", 0) Dim rows As Int = ReadInt(In) For i = 0 To rows - 1 table.rows.Add(Array As Object(ReadInt(In))) Next End If In.Close ' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112 Return table End Sub 'Reads a file and returns the file as a bytes array. Public Sub FileToBytes(Dir As String, FileName As String) As Byte() Dim out As OutputStream out.InitializeToBytesArray(0) Dim In As InputStream = File.OpenInput(Dir, FileName) File.Copy2(In, out) out.Close Return out.ToBytesArray End Sub 'Converts an image to a bytes array (for BLOB fields). Public Sub ImageToBytes(Image As Bitmap) As Byte() Dim out As OutputStream out.InitializeToBytesArray(0) Image.WriteToStream(out, 100, "JPEG") out.Close Return out.ToBytesArray End Sub 'Converts a bytes array to an image (for BLOB fields). Public Sub BytesToImage(bytes() As Byte) As Bitmap Dim In As InputStream In.InitializeFromBytesArray(bytes, 0, bytes.Length) Dim bmp As Bitmap bmp.Initialize2(In) Return bmp End Sub 'Prints the table to the logs. Public Sub PrintTable(Table As DBResult) Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size) Dim sb As StringBuilder sb.Initialize For Each col In Table.Columns.Keys sb.Append(col).Append(TAB) Next Log(sb.ToString) For Each row() As Object In Table.Rows Dim sb As StringBuilder sb.Initialize For Each record As Object In row sb.Append(record).Append(TAB) Next ToastMessageShow(sb.ToString, True) Next End Sub '====================================================================================== $// ARCHIVO_FIN: DBRequestManager.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: FileHandler.bas '====================================================================================== B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=11 @EndOfDesignText@ 'Requiere la librería "ContentResolver" y "FileProvider" o "AppUpdating" ' 'Copiar este codigo al boton_Click que se quiere que importe la base de datos. ' ' Private Sub b_importarBD_Click ' Private FH As FileHandler ' FH.Initialize ' Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar. ' File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno. ' Starter.skmt.Initialize(Starter.ruta,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada. ' ToastMessageShow("¡BD importada!", False) ' End Sub Sub Class_Globals #if B4A Private ion As Object Private OldIntent As Intent #end if Type LoadResult (Success As Boolean, Dir As String, FileName As String, RealName As String, Size As Long, Modified As Long, MimeType As String) End Sub Public Sub Initialize End Sub #if B4A Public Sub SaveAs (Source As InputStream, MimeType As String, Title As String) As ResumableSub Dim intent As Intent intent.Initialize("android.intent.action.CREATE_DOCUMENT", "") intent.AddCategory("android.intent.category.OPENABLE") intent.PutExtra("android.intent.extra.TITLE", Title) intent.SetType(MimeType) StartActivityForResult(intent) Wait For ion_Event (MethodName As String, Args() As Object) If -1 = Args(0) Then 'resultCode = RESULT_OK Dim result As Intent = Args(1) Dim jo As JavaObject = result Dim ctxt As JavaObject Dim out As OutputStream = ctxt.InitializeContext.RunMethodJO("getContentResolver", Null).RunMethod("openOutputStream", Array(jo.RunMethod("getData", Null))) File.Copy2(Source, out) out.Close Return True End If Return False End Sub Public Sub Load As ResumableSub Dim cc As ContentChooser cc.Initialize("cc") cc.Show("application/octet-stream", "Choose text file") Wait For CC_Result (Success As Boolean, Dir As String, FileName As String) Log($"***************************${CRLF}${Dir}${CRLF} ${FileName}"$) Dim res As LoadResult = CreateLoadResult(Success, Dir, FileName) Log($"***************************${CRLF}${res.FileName}${CRLF} ${res}"$) If res.Success Then ExtractInformationFromURI(res.FileName, res) Return res End Sub Private Sub StartActivityForResult(i As Intent) Dim jo As JavaObject = GetBA ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null) jo.RunMethod("startActivityForResult", Array(ion, i)) End Sub Private Sub GetBA As Object Return Me.As(JavaObject).RunMethod("getBA", Null) End Sub Private Sub ExtractInformationFromURI (Uri As String, res As LoadResult) Try Dim resolver As ContentResolver resolver.Initialize("") Dim u As Uri u.Parse(Uri) Dim rs As ResultSet = resolver.Query(u, Null, "", Null, "") If rs.NextRow Then Dim columns As B4XSet = B4XCollections.CreateSet For i = 0 To rs.ColumnCount - 1 columns.Add(rs.GetColumnName(i)) Next If columns.Contains("_display_name") Then res.RealName = rs.GetString("_display_name") If columns.Contains("_size") Then res.Size = rs.GetLong("_size") If columns.Contains("last_modified") Then res.Modified = rs.GetLong("last_modified") If columns.Contains("mime_type") Then res.MimeType = rs.GetString("mime_type") End If rs.Close Catch Log("error extracting information from file provider") Log(LastException) End Try End Sub Public Sub CheckForReceivedFiles As LoadResult Dim Activity As Activity = B4XPages.GetNativeParent(B4XPages.MainPage) If IsRelevantIntent(Activity.GetStartingIntent) Then Dim in As Intent = Activity.GetStartingIntent Dim uri As String If in.HasExtra("android.intent.extra.STREAM") Then uri = in.As(JavaObject).RunMethod("getParcelableExtra", Array("android.intent.extra.STREAM")) Else uri = in.GetData End If Dim res As LoadResult = CreateLoadResult(True, "ContentDir", uri) ExtractInformationFromURI(res.FileName, res) Return res End If Return CreateLoadResult(False, "", "") End Sub Private Sub IsRelevantIntent(in As Intent) As Boolean If in.IsInitialized And in <> OldIntent And in.Action = in.ACTION_VIEW Then OldIntent = in Return True End If Return False End Sub #else if B4i Public Sub SaveAs(ParentPage As Object, AnchorView As Object, Text As String) As ResumableSub Dim avc As ActivityViewController avc.Initialize("avc", Array(Text)) avc.Show(B4XPages.GetNativeParent(ParentPage), AnchorView) Wait For avc_Complete (Success As Boolean, ActivityType As String) Return Success End Sub Public Sub Load (ParentPage As Object, AnchorView As Object) As ResumableSub Dim DocumentPicker As DocumentPickerViewController DocumentPicker.InitializeImport("picker", Array("public.text")) DocumentPicker.Show(B4XPages.GetNativeParent(ParentPage), AnchorView) Wait For Picker_Complete (Success As Boolean, URLs As List) If Success And URLs.Size > 0 Then Return UrlToLoadResult(URLs.Get(0)) End If Return CreateLoadResult(False, "", "") End Sub Public Sub UrlToLoadResult(url As String) As LoadResult Dim res As LoadResult = CreateLoadResult(IIf(File.Exists(url, ""), True, False), url, "") res.RealName = res.Dir.SubString(res.Dir.LastIndexOf("/") + 1) res.Size = File.Size(res.Dir, "") Return res End Sub #end if Private Sub CreateLoadResult (Success As Boolean, Dir As String, FileName As String) As LoadResult Dim t1 As LoadResult t1.Initialize t1.Success = Success t1.Dir = Dir t1.FileName = FileName Return t1 End Sub '====================================================================================== $// ARCHIVO_FIN: FileHandler.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: Starter.bas '====================================================================================== B4A=true Group=Default Group ModulesStructureVersion=1 Type=Service Version=9.85 @EndOfDesignText@ #Region Service Attributes #StartAtBoot: False #ExcludeFromLibrary: True #End Region Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. End Sub Sub Service_Create 'This is the program entry point. 'This is a good place to load resources that are not specific to a single activity. End Sub Sub Service_Start (StartingIntent As Intent) Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases. End Sub Sub Service_TaskRemoved 'This event will be raised when the user removes the app from the recent apps list. End Sub 'Return true to allow the OS default exceptions handler to handle the uncaught exception. Sub Application_Error (Error As Exception, StackTrace As String) As Boolean Return True End Sub Sub Service_Destroy End Sub '====================================================================================== $// ARCHIVO_FIN: Starter.bas '====================================================================================== '====================================================================================== $// ARCHIVO_INICIO: Subs.bas '====================================================================================== B4A=true Group=Default Group ModulesStructureVersion=1 Type=StaticCode Version=11 @EndOfDesignText@ 'Code module 'Subs in this code module will be accessible from all modules. Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Private su As StringUtils 'Usa la libreria StringUtils 'ignore End Sub 'Linea de prueba X10 'Convierte una fecha al formato yyMMddHHmmss Sub fechaKMT(fecha As String) As String 'ignore ' if starter.logger then Log(fecha) Dim OrigFormat As String = DateTime.DateFormat 'save orig date format DateTime.DateFormat="yyMMddHHmmss" Dim nuevaFecha As String=DateTime.Date(fecha) DateTime.DateFormat=OrigFormat 'return to orig date format ' if starter.logger then Log(nuevaFecha) Return nuevaFecha End Sub 'Regresa la fecha y hora de hoy a las 00:00 en el formato "yyMMddHHMMSS" Sub fechaInicioHoy As String 'ignore Dim OrigFormat As String = DateTime.DateFormat 'save orig date format DateTime.DateFormat="yyMMdd" Private h As String = DateTime.Date(DateTime.Now)&"000000" DateTime.DateFormat=OrigFormat 'return to orig date format ' If Starter.logger Then Log("Hoy="&h) Return h End Sub 'Regresa verdadero si ya pasaron XX minutos de la fecha dada Sub masDeXXMins(hora As Int, mins As Int) As Boolean 'ignore If (hora + mins * DateTime.TicksPerMinute) < DateTime.Now Then Return True Else Return False End If End Sub 'Regresa verdadero si ya pasaron XX minutos de la fechaKMT dada Sub masDeXXMinsKMT(hora As String, mins As Int) As Boolean 'ignore Try ' if starter.logger then LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red) If fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute < DateTime.Now Then ' if starter.logger then Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now)) Return True Else ' if starter.logger then Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now)) Return False End If Catch Log(LastException) End Try End Sub 'Convierte una fecha en formato YYMMDDHHMMSS a Ticks Sub fechaKMT2Ticks(fKMT As String) As Long 'ignore Try If fKMT.Length = 12 Then Private parteFecha As String = fKMT.SubString2(0,6) Private parteHora As String = fKMT.SubString(6) Private OrigFormat As String = DateTime.DateFormat 'save original date format DateTime.DateFormat="yyMMdd" DateTime.TimeFormat="HHmmss" Private ticks As Long = DateTime.DateTimeParse(parteFecha,parteHora) ' Log(" +++ +++ pFecha:"&parteFecha&" | pHora:"&parteHora) DateTime.DateFormat=OrigFormat 'return to original date format Return ticks Else Log("Formato de fecha incorrecto, debe de ser 'yyMMddHHmmss', no '"&fKMT&"' largo="&fKMT.Length) Return 0 End If Catch Log(LastException) ' If Starter.logger Then LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red) Return 0 End Try End Sub 'Hace visible el panel con los parametros "Top" y "Left" dados Sub panelVisible(panel As Panel, top As Int, left As Int) 'ignore panel.BringToFront panel.Visible = True panel.Top = top panel.Left = left End Sub 'Oculta el panel especificado y lo manda al fondo Sub panelOculto(panel As Panel) 'ignore panel.SendToBack panel.Visible = False End Sub 'Centra una etiqueta dentro de un elemento superior Sub centraEtiqueta(elemento As Label, anchoElementoSuperior As Int) 'ignore elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) End Sub 'Centra un panel dentro de un elemento superior Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) End Sub Sub centraEditText(elemento As EditText, anchoElementoSuperior As Int) 'ignore elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) End Sub 'Centra una barra de progreso dentro de un elemento superior Sub centraProgressBar(elemento As ProgressBar, anchoElementoSuperior As Int) 'ignore elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) End Sub 'Modifica el ancho y alto de un panel dado con el ancho y alto proporcionados. Sub panelAnchoAlto(p As Panel, w As Int, h As Int) 'ignore ' If Starter.logger Then Log($"panel:${p}, alncho=${w}, alto=${h}"$) p.Top = 0 p.Left = 0 p.Width = w p.Height = h End Sub 'Regresa el dia de HOY como string, en español y mayusculas. Sub dameDiaSemana As String 'ignore Private ds As String = DateTime.GetDayOfWeek(DateTime.Now) If ds = "1" Then ds = "DOMINGO" else if ds = "2" Then ds = "LUNES" else if ds = "3" Then ds = "MARTES" else if ds = "4" Then ds = "MIERCOLES" else if ds = "5" Then ds = "JUEVES" else if ds = "6" Then ds = "VIERNES" Else ds = "SABADO" End If Return ds End Sub 'Regresa el usuario de la tabla USUARIOA Sub traeUsuarioDeBD As String 'ignore Private c As Cursor Private u As String = "SinUsuario" c = B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") c.Position = 0 If c.RowCount > 0 Then u = c.GetString("USUARIO") c.Close Return u End Sub 'Regresa el usuario de la tabla USUARIOA Sub traeUsuario As String 'ignore Private c As Cursor Private u As String = "SinUsuario" c = B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa") c.Position = 0 If c.RowCount > 0 Then u = c.GetString("USUARIO") c.Close Return u End Sub 'Regresa la ruta actual de la base de datos. Sub traeRuta As String 'ignore Private c As Cursor Private r As String c = B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)") r = "0" If c.RowCount > 0 Then c.Position=0 r = c.GetString("CAT_CL_RUTA") End If c.Close Return r End Sub 'Regresa la ruta actual de la base de datos. Sub traeRuta2 (cliente As String) As String 'ignore Private c As Cursor Private r As String c=B4XPages.MainPage.skmt.ExecQuery($"select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO = '${cliente}' UNION ALL select CAT_CL_RUTA from kmt_info2 where CAT_CL_CODIGO = '${cliente}'"$) r = "0" If c.RowCount > 0 Then c.Position=0 r = c.GetString("CAT_CL_RUTA") End If c.Close Return r End Sub 'Regresa la ruta del cliente dado de la tabla pedido. Sub traeRutaPedidoCliente(idcliente As String) As String 'ignore Private r As String Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select PE_RUTA from pedido where PE_CLIENTE = '${idcliente}'"$) r = "0" If c.RowCount > 0 Then c.Position = 0 r = c.GetString("PE_RUTA") End If c.Close Return r End Sub 'Regresa el cliente actual desde CUENTAA. Sub traeCliente As String 'ignore Private c As Cursor Private cl As String c = B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa") c.Position = 0 cl = c.GetString("CUENTA") c.Close Return cl End Sub 'Regresa el almacen actual de la base de datos. Sub traeAlmacen As String 'ignore Private c As Cursor Private a As String c = B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") c.Position = 0 a = C.GetString("ID_ALMACEN") c.Close Return a End Sub 'Muestra en el Log los campos y valores que regresan en el JobDone. Sub logJobDoneResultados(resultado As DBResult) For Each records() As Object In resultado.Rows LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0)) For Each k As String In resultado.Columns.Keys LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0)) Next Next End Sub '====================================================================================== $// ARCHIVO_FIN: Subs.bas '======================================================================================