diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 12d1963..38a66df 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -42,7 +42,7 @@ Sub Class_Globals Public historico As C_Historico Dim reqManager As DBRequestManager - Dim kh As kms_helperSubs + Dim s As C_Subs Dim v As String = Application.VersionName Dim ruta As String Dim tgl As Toggle @@ -92,8 +92,6 @@ Sub Class_Globals Dim MES1 As ManageExternalStorage Dim device As Phone Private b_importarBD As Button - Private p_importarBDWA As Panel - Private cb_importarBDWA As CheckBox End Sub Public Sub Initialize @@ -105,7 +103,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) B4XPages.GetManager.LogEvents = True Root = Root1 Root.LoadLayout("login") - kh.Initialize(Me, "Subs") + s.Initialize(Me, "Subs") B4XPages.SetTitle(Me, "Mariana Preventa") login.Initialize B4XPages.AddPage("Login", login) @@ -160,11 +158,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) End If ' Log(ruta) ' Starter.skmt.Initialize(ruta,"kmt.db", True) - - 'Revisamos si se disparo el intent de cargar la base de datos desde WhatApp. - If kh.traeUsarIntentBDWA Then kh.importaBDDesdeWhatsApp - - kh.guardaAppInfo(Starter.skmt) + s.guardaAppInfo(Starter.skmt) Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CUOTAS (HC_META6 TEXT, HC_META5 TEXT, HC_META4 TEXT, HC_META3 TEXT, HC_META2 TEXT, HC_META1 TEXT, HC_RUTA TEXT, HC_CUOTA1 TEXT, HC_CUOTA2 TEXT, HC_CUOTA3 TEXT, HC_CUOTA4 TEXT, HC_CUOTA5 TEXT, HC_CUOTA6 TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_GPS (HGDATE TEXT, HGLAT TEXT, HGLON TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_STAY_STORE (HSS_CODIGO TEXT, HSS_IN TEXT, HSS_OUT TEXT, HSS_TOT TEXT)") @@ -290,6 +284,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) End Sub Sub B4XPage_Appear + If Starter.muestraProgreso = 1 Then muestraProgreso("Descargando actualización") Starter.muestraProgreso = 0 @@ -300,7 +295,6 @@ Sub B4XPage_Appear DBReqServer = Starter.DBReqServer reqManager.Initialize(Me, Starter.DBReqServer) tgl.Initialize() - cb_importarBDWA.Checked = kh.traeUsarIntentBDWA If Not(Starter.gps.GPSEnabled) Then ToastMessageShow("Es necesario tener el GPS encendido", True) Sleep(500) @@ -718,11 +712,6 @@ Sub i_engrane_Click et_server.Text = Starter.DBReqServer If user.Text = "KMTS1" Then b_importarBD.Visible = True Else b_importarBD.Visible = False Subs.panelVisible(p_appUpdate,0,0) - If user.Text.Trim = "KMTS1" Then - p_importarBDWA.Visible = True - Else - p_importarBDWA.Visible = False - End If End Sub Sub b_regesar_Click @@ -739,7 +728,7 @@ Sub B_SERVER_Click If Logger Then Log("Inicializamos reqManager con " & Starter.DBReqServer) reqManager.Initialize(Me, Starter.DBReqServer) CallSubDelayed2(Starter, "reinicializaReqManager", Starter.DBReqServer) - kh.reqManagerReInit 'Inicializamos el reqManager de C_Subs. + s.reqManagerReInit 'Inicializamos el reqManager de C_Subs. Subs.panelVisible(p_Main,0,0) p_appUpdate.Visible = False ' Entrar.Visible = True @@ -766,11 +755,11 @@ Private Sub b_envioBD_Click 'copy the shared file to the shared folder Log("xxxxxx:"&Provider.SharedFolder) Sleep(1000) - File.Copy(File.DirInternal, FileName, Provider.SharedFolder, "kmt_mariana.db") + File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName) Dim email As Email email.To.Add("cheveguerra@gmail.com") email.Subject = "subject" - email.Attachments.Add(Provider.GetFileUri("kmt_mariana.db")) + email.Attachments.Add(Provider.GetFileUri(FileName)) ' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment Dim in As Intent = email.GetIntent in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION @@ -794,10 +783,4 @@ Private Sub b_importarBD_Click 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 - -Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean) -' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red) - Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'") - Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$) End Sub \ No newline at end of file diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index a4ecc76..e07f0b4 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -196,11 +196,11 @@ End Sub Sub B4XPage_Appear Tels.Enabled = True gest.Enabled = True - c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") - If c.RowCount > 0 Then - Tels.Enabled = False - gest.Enabled = False - End If +' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") +' If c.RowCount > 0 Then +' Tels.Enabled = False +' gest.Enabled = False +' End If reqManager.Initialize(Me, Starter.DBReqServer) ' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA) ' Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean) @@ -444,16 +444,16 @@ Sub DATOS_Click End Sub Sub Guardar_Click - If l_total.Text = "0" Or l_total.Text = Null Then - B4XPages.ShowPage("Principal") - Else - c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") - If c.RowCount > 0 Then - B4XPages.ShowPage("Principal") - Else +' If l_total.Text = "0" Or l_total.Text = Null Then +' B4XPages.ShowPage("Principal") +' Else +' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") +' If c.RowCount > 0 Then +' B4XPages.ShowPage("Principal") +' Else - res = Msgbox2("Seguro que desea cerrar el pedido? no se podran hacer cambios una vez guardada la venta!!!","Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore - If res = DialogResponse.POSITIVE Then +' res = Msgbox2("Seguro que desea cerrar el pedido? no se podran hacer cambios una vez guardada la venta!!!","Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore +' If res = DialogResponse.POSITIVE Then DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) @@ -503,16 +503,16 @@ Sub Guardar_Click ' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red) Subs.actualizaTET(la_cuenta.text) DateTime.TimeFormat = "HH:mm:ss" - skmt.ExecNonQuery2("insert into VENDIDOS(ID) VALUES(?)",Array As String(clie_id)) +' skmt.ExecNonQuery2("insert into VENDIDOS(ID) VALUES(?)",Array As String(clie_id)) mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! B4XPages.MainPage.productos.reiniciarlistaProds = True B4XPages.MainPage.productos.prodsMap.Initialize B4XPages.MainPage.promos.promosMap.Initialize B4XPages.ShowPage("Principal") - End If - End If - End If +' End If +' End If +' End If End Sub Sub NUEVO_Click diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas index 8bc9c95..ae35915 100644 --- a/B4A/C_Nota.bas +++ b/B4A/C_Nota.bas @@ -109,7 +109,7 @@ Sub B4XPage_Appear DESC = c.GetString("DESCUENTO") b_desc.Visible = False End If - If Subs.pedidoGuardado Then borra.Enabled = False Else borra.Enabled = True +' If Subs.pedidoGuardado Then borra.Enabled = False Else borra.Enabled = True End Sub Sub GPS_LocationChanged (Location1 As Location) @@ -129,10 +129,10 @@ Private Sub B4XPage_CloseRequest As ResumableSub End Sub Sub borra_Click - c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") - If c.RowCount = 0 Then +' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") +' If c.RowCount = 0 Then - If folio <> "" Then +' If folio <> "" Then result = Msgbox2("Seguro que desea borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If result = DialogResponse.POSITIVE Then c=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") @@ -148,18 +148,18 @@ Sub borra_Click Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)") B4XPage_Appear End If - Else - Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore - End If - Else - MsgboxAsync("La venta fue enviada, no se puede eliminar","Atnción") - End If +' Else +' Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore +' End If +' Else +' MsgboxAsync("La venta fue enviada, no se puede eliminar","Atnción") +' End If End Sub Sub ListView1_ItemLongClick (Position As Int, Value As Object) - c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") - If c.RowCount = 0 Then - If Not(Subs.pedidoGuardado) Then +' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)") +' If c.RowCount = 0 Then +' If Not(Subs.pedidoGuardado) Then result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If result = DialogResponse.POSITIVE Then c=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value)) @@ -195,12 +195,12 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object) End If B4XPage_Appear End If - Else - ToastMessageShow("El pedido ya fue guardado, no se puden borrar productos.", True) - End If - Else - MsgboxAsync("La venta fue enviada, no se puede eliminar","Atnción") - End If +' Else +' ToastMessageShow("El pedido ya fue guardado, no se puden borrar productos.", True) +' End If +' Else +' MsgboxAsync("La venta fue enviada, no se puede eliminar","Atnción") +' End If End Sub Sub b_desc_Click diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index a20fe0b..beb29c2 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -6,7 +6,7 @@ Version=11.5 @EndOfDesignText@ Sub Class_Globals Public rp As RuntimePermissions - Dim kh As kms_helperSubs + Dim s As C_Subs Private Root As B4XView 'ignore Private xui As XUI 'ignore Dim reqManager As DBRequestManager @@ -226,6 +226,7 @@ Sub Class_Globals Private p_principal As Panel Private p_mandaInfo As Panel Private l_version As Label + Private p_marcascodigo As Panel End Sub 'You can add more parameters here. @@ -239,10 +240,10 @@ Private Sub B4XPage_Created (Root1 As B4XView) 'load the layout to Root Root.LoadLayout("principal") B4XPages.SetTitle(Me, $"${Subs.capitalizar(B4XPages.GetPageId(Me))} ${Application.VersionName}"$) - kh.Initialize(Me, "Subs") + s.Initialize(Me, "Subs") p_mandaInfo.Width = Root.Width p_mandaInfo.Height = Root.Height - kh.centraPanel(P1, Root.Width) + s.centraPanel(P1, Root.Width) l_version.Text = Application.VersionName ' rd.Initialize 'Inicializamos el respaldo diario. ' rd.vacuum @@ -315,7 +316,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) End Sub Sub B4XPage_Appear - Subs.checaPedido + checaPedido ' s.reqManagerReInit 'Reiniciamos el DBReqManager de C_Subs por si hay modificacion en el servidor. reqManager.Initialize(Me, Starter.DBReqServer) ' B4XPages.MainPage.cliente.mandaPendientes 'Ejecutamos mandaPendientes. @@ -763,7 +764,7 @@ Sub cargar_Click End If If Not (pedidodiaanterior) Then CARGA = "CARGAR" - kh.panelVisible(p_mandaInfo, 0, 0) + s.panelVisible(p_mandaInfo, 0, 0) P1.Left = (p_mandaInfo.Width/2) - (P1.Width/2) P1.top = (p_mandaInfo.Height/2) - (P1.Height/2) img2.Visible =True @@ -1775,7 +1776,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub SCROLL_RESDIA.Visible = False B_OK_RES_Click Return False - Else if Panel5.Visible Then + Else if p_marcascodigo.Visible Then B_OK_PANEL5_Click Return False Else @@ -1789,7 +1790,7 @@ End Sub Sub connecta_LongClick ProgressDialogShow("Enviamos") ' s.reqManagerReInit 'Reiniciamos el DBReqManager por si hay modificacion en el servidor. - kh.envioTest 'Llamamos envioTest de C_Subs. + s.envioTest 'Llamamos envioTest de C_Subs. End Sub Sub tickets_dia_LongClick @@ -1819,9 +1820,9 @@ Sub connecta_Click imei = "" conn = "1" Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "select_version_MARDS" - reqManager.ExecuteQuery(cmd , 0, "version") +' cmd.Initialize +' cmd.Name = "select_version_MARDS" +' reqManager.ExecuteQuery(cmd , 0, "version") ' Cuando nos conectamos verificamos que el usuario guardado en BD sea VALIDO. c = Starter.skmt.ExecQuery("select USUARIO, PASS from usuarioa") @@ -2027,7 +2028,7 @@ Sub B_OK_PAS_Click Resumen.Visible= True img2.Visible=False Subs.panelVisible(p_principal, 0, 0) - Subs.checaPedido + checaPedido Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then RES = Msgbox2("Seguro que desea abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If RES = DialogResponse.POSITIVE Then @@ -2100,7 +2101,7 @@ Sub resdia_Click SCROLL_RESDIA.Panel.LoadLayout("RESDIA") SCROLL_RESDIA.Panel.Height = Panel4.Height Panel4.Visible = True - + p_mandaInfo.Visible = False NUEVO.Visible =False BUSCA.Visible=False connecta.Visible=False @@ -2300,7 +2301,7 @@ Sub B_COMM_Click SCROLL_RESDIA.Visible = False - Panel5.Visible = True + p_marcascodigo.Visible = True pnlTitle.Visible = False pnlTitle.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight + DividerHeight) pnlTitle.LoadLayout("CellTitle") @@ -2356,6 +2357,93 @@ Sub B_OK_COMISS_Click End Sub +'Sub B_MARCAS_Click +'' SCROLL_RESDIA.Visible = False +'' Panel5.Visible = True +'' pnlTitle.Visible = False +'' pnlTitle.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight + DividerHeight) +'' pnlTitle.LoadLayout("CellTitle") +'' c=Starter.skmt.ExecQuery("Select CAT_GP_CLASIF, sum(pe_costo_tot) As total from CATALOGO, pedido where pe_proid = cat_gp_id And pe_cliente <> 0 group by cat_gp_clasif") +'' +'' CLV1.Clear +'' If c.RowCount>0 Then +'' For i=0 To c.RowCount -1 +'' c.Position=i +'' AddTitle(c.GetString("CAT_GP_CLASIF")) +'' f=Starter.skmt.ExecQuery2("select * from HIST_AVANCE where HA_MARCA = ?", Array As String(c.GetString("CAT_GP_CLASIF"))) +'' f.Position=0 +'' If f.RowCount > 0 Then +'' CLV1.AddTextItem("VENTA = $" & f.GetString("HA_AVANCE"),"1") +'' CLV1.AddTextItem("META = $" & f.GetString("HA_OBJETIVO"),"1") +'' CLV1.AddTextItem("PORCENTAJE = %" & (f.GetString("HA_PORCENTAJE")) ,"1") +'' End If +'' f.Close +'' Next +'' End If +'' c.Close +' +' SCROLL_RESDIA.Visible = False +' Panel5.Visible = True +' pnlTitle.Visible = False +' pnlTitle.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight + DividerHeight) +' pnlTitle.LoadLayout("CellTitle") +' c=Starter.skmt.ExecQuery("Select CAT_GP_CLASIF, SUM(TOTAL) AS TOTAL FROM TOTAL_MARCAS GROUP BY CAT_GP_CLASIF") +' CLV1.Clear +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' AddTitle(c.GetString("CAT_GP_CLASIF")) +' If c.GetString("CAT_GP_CLASIF") = "PROMOS" Then +' d=Starter.skmt.ExecQuery("SELECT SUM(PE_CANT) AS CUANTOS FROM PEDIDO WHERE PE_CEDIS = PE_PROID") +' d.Position=0 +' CLV1.AddTextItem("CANTIDAD DE PROMOS = " & d.GetString("CUANTOS"),"1") +' d.Close +' Else +' f=Starter.skmt.ExecQuery2("select COUNT(*) AS CUANTOS from HIST_MARCAS_CUOTAS where HMC_MARCA = ?", Array As String(c.GetString("CAT_GP_CLASIF"))) +' f.Position=0 +' If f.GetString("CUANTOS") > 0 Then +' e=Starter.skmt.ExecQuery2("select HMC_MARCA, HMC_TOTAL from HIST_MARCAS_CUOTAS where HMC_MARCA = ?", Array As String(c.GetString("CAT_GP_CLASIF"))) +' e.Position=0 +' d=Starter.skmt.ExecQuery2("SELECT count(distinct(PE_CLIENTE)) AS CUANTOS FROM PEDIDO WHERE PE_PROID in (select CAT_GP_ID from cat_gunaprod WHERE CAT_GP_CLASIF =?)", Array As String (c.GetString("CAT_GP_CLASIF"))) +' d.Position=0 +' CLV1.AddTextItem("TOTAL PREVENTA = $" & c.GetString("TOTAL"),"1") +' CLV1.AddTextItem("M E T A = $" & e.GetString("HMC_TOTAL"),"1") +' CLV1.AddTextItem("FALTA = $" & (e.GetString("HMC_TOTAL") - c.GetString("TOTAL")) ,"1") +' CLV1.AddTextItem("CLIENTES = " & d.GetString("CUANTOS"),"1") +' d.Close +' e.Close +' Else +' d=Starter.skmt.ExecQuery2("SELECT count(distinct(pe_cliente)) AS CUANTOS FROM PEDIDO WHERE PE_PROID in (select CAT_GP_ID from cat_gunaprod WHERE CAT_GP_CLASIF =?)", Array As String (c.GetString("CAT_GP_CLASIF"))) +' d.Position=0 +' CLV1.AddTextItem("TOTAL PREVENTA = $" & c.GetString("TOTAL"),"1") +' CLV1.AddTextItem("M E T A = $" & "1000","1") +' CLV1.AddTextItem("FALTA = $" & (1000 - c.GetString("TOTAL")) ,"1") +' CLV1.AddTextItem("CLIENTES = " & d.GetString("CUANTOS"),"1") +' d.Close +' +' +' +' End If +' f.Close +' End If +' Next +' End If +' c.Close +' c=Starter.skmt.ExecQuery("Select HMC_MARCA, HMC_TOTAL from HIST_MARCAS_CUOTAS where HMC_MARCA not in (SELECT CAT_GP_CLASIF FROM TOTAL_MARCAS )") +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' AddTitle(c.GetString("HMC_MARCA")) +' CLV1.AddTextItem("TOTAL PREVENTA = $ 0.00","1") +' CLV1.AddTextItem("M E T A = $" & C.GetString("HMC_TOTAL"),"1") +' CLV1.AddTextItem("CLIENTES = 0","1") +' Next +' End If +' c.Close +' +' +'End Sub + Sub B_MARCAS_Click ' SCROLL_RESDIA.Visible = False ' Panel5.Visible = True @@ -2382,7 +2470,8 @@ Sub B_MARCAS_Click ' c.Close SCROLL_RESDIA.Visible = False - Panel5.Visible = True + p_marcascodigo.Visible = True +' Panel5.BringToFront pnlTitle.Visible = False pnlTitle.SetLayoutAnimated(0, 0, 0, CLV1.AsView.Width, TitleHeight + DividerHeight) pnlTitle.LoadLayout("CellTitle") @@ -2438,6 +2527,7 @@ Sub B_MARCAS_Click CLV1.AddTextItem("CLIENTES = 0","1") Next End If +' Panel5.Visible= True c.Close @@ -2456,7 +2546,7 @@ Sub AddTitle (Title As String) End Sub Sub B_OK_PANEL5_Click - Panel5.Visible = False + p_marcascodigo.Visible = False NUEVO.Visible =True BUSCA.Visible=True connecta.Visible=True @@ -2475,3 +2565,20 @@ Private Sub p_mandaInfo_Click End Sub + + +Private Sub p_marcascodigo_Click + +End Sub + +'Revisa si el cliente tiene venta o No venta y si es así modifica gestion en kmt_info +Sub checaPedido + Private c As Cursor = Starter.skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE") + If c.RowCount > 0 Then + Starter.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 = Starter.skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA") + If c.RowCount > 0 Then + Starter.skmt.ExecNonQuery("Update kmt_info set gestion = 3 WHERE CAT_CL_CODIGO IN (SELECT NV_CLIENTE FROM NOVENTA)") + End If +End Sub \ No newline at end of file diff --git a/B4A/C_Subs_XXX.bas b/B4A/C_Subs_XXX.bas deleted file mode 100644 index 7e65b43..0000000 --- a/B4A/C_Subs_XXX.bas +++ /dev/null @@ -1,607 +0,0 @@ -B4A=true -Group=Default Group -ModulesStructureVersion=1 -Type=Class -Version=12.2 -@EndOfDesignText@ -Sub Class_Globals - 'These global variables will be declared once when the application starts. - 'These variables can be accessed from all modules. -' Public GZip As GZipStrings 'Usa la libreria CompressStrings -' Private su As StringUtils 'Usa la libreria StringUtils - Dim reqManager As DBRequestManager - Private EventName As String 'ignore - Private CallBack As Object 'ignore - Dim phn As Phone - Dim devModel As String - Dim db, kmt, errorLog As SQL 'Requiere la libreria "SQL" 'ignore - Dim ssid As String 'ignore - Dim reqsList As List - Dim reqError As Boolean = False - Private subsLogs As Boolean = False -End Sub - -'You can add more parameters here. -Public Sub Initialize (vCallback As Object, vEventName As String) As Object - reqsList.Initialize - EventName = vEventName - CallBack = vCallback - db = dbInit - reqManager = reqManagerInit - Return Me -End Sub - -'Inicializa la BD con "kmt.db" en File.DirInternal, si el archivo no existe, lo copia desde File.DirAssets. -'Dispara el evento "dbOk" cuando termina. -Sub dbInit As SQL - If File.Exists(File.DirInternal, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db") - db.Initialize(File.DirInternal,"kmt.db", True) - dbOk(True) -' Log(db.IsInitialized) - Return db -End Sub - -Sub dbOk(Success As Boolean) - If SubExists(CallBack, EventName & "_dbOk") Then - CallSub2(CallBack, EventName & "_dbOk", Success) - End If -End Sub - -'Inicializamos el DBReqServer. -Sub reqManagerInit As DBRequestManager - Private rm As DBRequestManager - rm.Initialize(Me, traeDBReqServerDeBD(db)) - Log($"Inicializamos reqManager con ${traeDBReqServerDeBD(db)}"$) - Return rm -End Sub - -'Reinicializamos el DBReqServer de C_Subs. -Sub reqManagerReInit - Log("reqManager ReInit") - reqManager = reqManagerInit -End Sub - -Sub envioTest - reqsList.Initialize ' Ponemos la lista de DBRequests en cero. - Private cmd As DBCommand - cmd.Initialize - cmd.Name = "select_fecha" - For i = 0 To 50 -' Sleep(200) - reqManager.ExecuteQuery(cmd, 0, $"select_fecha_${i}"$) - reqsList.Add($"select_fecha_${i}"$) - Next -End Sub - -'Dispara el evento "_envioOk" del caller. -Sub envioOk(Success As Boolean) -' Log($"_ENVIOOK_"$) - If SubExists(CallBack, EventName & "_envioOk") Then - CallSub2(CallBack, EventName & "_envioOk", Success) - End If -End Sub - -Sub JobDone(Job As HttpJob) - LogColor("C_SUBS JOBDONE - " & Job.Success, Colors.Red) - If Job.Success = False Then - Log($"Error en el request ${Job.Tag}"$) - LogColor("** " & Job.Tag & " Error: " & Job.ErrorMessage, Colors.Red) - If reqsList.IndexOf(Job.Tag) > -1 Then reqsList.RemoveAt(reqsList.IndexOf(Job.Tag)) - reqError = True - Else - If Job.JobName = "DBRequest" Then - Dim resultado As DBResult = reqManager.HandleJob(Job) - If reqsList.IndexOf(resultado.Tag) > -1 Then reqsList.RemoveAt(reqsList.IndexOf(resultado.Tag)) - If resultado.Tag = "select_fecha" Then - 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 - End If - End If - Log(reqsList.Size) - If reqsList.Size = 0 Then 'Ya no hay DBReqs pendientes. - Log(reqError) - If Not(reqError) Then - envioOk(True) - Else - envioOk(False) - End If - reqError = False - Log("-= FIN =-") - End If - Job.Release -End Sub - -'Pone el valor de phn.Model en la variable global "devModel" -Sub getPhnId As String 'ignore - 'Requiere la libreria "Phone" - devModel = phn.Model - If devModel.Length <= 3 Then 'Si phn.Model esta en blanco ... - Dim t As String = phn.GetSettings("android_id") 'Intentamos con "android_id" - devModel = t - End If - If devModel.Length >= 3 Then 'Si tenemos valor para phn.Model - File.WriteString(File.DirInternal, "phnId.txt", devModel) 'Sobreescribimos archivo phnId.txt with deviceId -' Log("Tenemos phnId: "&devModel&" "&File.DirInternal&"/phn.txt sobreescrito") - Else If devModel.Length < 3 Then ' Si no tenemos valor, lo leemos de phnId.txt - Dim s As String = File.ReadString(File.DirInternal, "phnId.txt") - devModel = s -' Log("Leemos id de "&File.DirInternal&"/phnId.txt") -' Log(devModel) - End If - Return devModel -End Sub - -'Convierte una fecha al formato yyMMddHHmmss -Sub fechaKMT(fecha As String) As String 'ignore -' 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 -' Log(nuevaFecha) - Return nuevaFecha -End Sub - -'Escribimos las coordenadas y fecha a un archivo de texto -Sub guardaInfoEnArchivo(coords As String) 'ignore - ' Cambiamos el formato de la hora - Dim OrigFormat As String=DateTime.DateFormat 'save orig date format - DateTime.DateFormat="MMM-dd HH:mm:ss" - Dim lastUpdate As String=DateTime.Date(DateTime.Now) - DateTime.DateFormat=OrigFormat 'return to orig date format - - Dim ubic As String = coords&","&lastUpdate - Dim out As OutputStream = File.OpenOutput(File.DirInternal, "gps.txt", True) - Dim s As String = ubic & CRLF - Dim t() As Byte = s.GetBytes("UTF-8") - out.WriteBytes(t, 0, t.Length) - out.Close -End Sub - -'Escribimos las coordenadas (latitud, longitud, fecha) y fecha a una BD -Sub guardaInfoEnBD(coords As String) 'ignore - Log("Guardamos ubicacion en BD - "&coords) - Try - Dim latlon() As String = Regex.Split("\|", coords) - If latlon.Length < 2 Then latlon = Regex.Split(",", coords) 'Si son menos de 2, entonces estan separadas por comas y no por "|" - If subsLogs Then Log("LatLon="&latlon) - kmt.ExecNonQuery2("INSERT INTO RUTA_GPS(FECHA, LAT, LON) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1))) - Catch - LogColor(LastException, Colors.red) - End Try -End Sub - -'Limpiamos la tabla RUTA_GPS de la BD -Sub deleteGPS_DB 'ignore - kmt.ExecNonQuery("delete from RUTA_GPS") - kmt.ExecNonQuery("vacuum;") - ToastMessageShow("Borramos BD Coords GPS", False) -End Sub - -'Limpiamos la tabla errorLog de la BD -Sub deleteErrorLog_DB 'ignore - errorLog.ExecNonQuery("delete from errores") - errorLog.ExecNonQuery("vacuum;") - ToastMessageShow("BD Errores Borrada", False) -End Sub - -'Mandamos "coords" en un mensaje a "Sprvsr" -'Sub mandamosLoc(coords As String) 'ignore -'' Log("Iniciamos mandamosLoc "&coords) -'' Log("locRequest="&Tracker.locRequest) -' guardaInfoEnBD(coords)'Escribimos coordenadas y fecha a una bd -' Dim t As String -' If Tracker.locRequest="Activa" Then -' If PushService.au = 1 Then -' t = "au" ' es una actualizacion -' Else -' t = "u" ' es una peticion -' End If -' Dim params As Map = CreateMap("topic":"Sprvsr", "coords":coords, "t":t, "b":PushService.battery, "mt":Main.montoActual) -' CallSub2(PushService, "mandaMensaje",params) -' Tracker.locRequest="Enviada" -' CallSubDelayed(Tracker,"CreateLocationRequest") -' End If -'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 - Log("Hoy="&h) - Return h -End Sub - -'Guardamos "texto" a la bitacora -Sub log2DB(texto As String) 'ignore - LogColor(fechaKMT(DateTime.Now)&" - log2BD: '"&texto&"'", Colors.LightGray) - kmt.ExecNonQuery2("INSERT INTO bitacora(fecha, texto) VALUES (?,?)", Array As Object (fechaKMT(DateTime.now), texto)) -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 - ' 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 - ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now)) - Return True - Else - ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now)) - Return False - End If - Catch - Log(LastException) - End Try -End Sub - -'Limpiamos la tabla "bitacora" de la BD -Sub borraLogDB 'ignore - LogColor("Borramos BD de log", Colors.Magenta) - kmt.ExecNonQuery("delete from bitacora") - kmt.ExecNonQuery("vacuum;") -End Sub - -'Monitoreamos los servicios para ver si estan activos (No pausados), y si no, los reniciamos -'Sub Monitor 'ignore -' Private monitorStatus As Boolean = True -' LogColor("Corriendo Subs.Monitor", Colors.RGB(161,150,0)) -' If IsPaused(Tracker) Then -' log2DB("Reiniciando 'Tracker Pausado' desde Subs.Monitor") -' StartService(Tracker) -' monitorStatus = False -' Else -' CallSubDelayed(Tracker, "revisaFLP") -' End If -' If IsPaused(PushService) Then -' log2DB("Reiniciando 'PushService Pausado' desde Subs.Monitor") -' StartService(PushService) -' monitorStatus = False -' Else -' revisaPushService -' End If -' If monitorStatus Then LogColor(" +++ +++ Servicios Activos", Colors.Green) -'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) - 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) - LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red) - Return 0 - End Try -End Sub - -Sub InstallAPK(dir As String, apk As String) 'ignore - If File.Exists(dir, apk) Then - Dim i As Intent - i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(dir, apk)) - i.SetType("application/vnd.android.package-archive") - StartActivity(i) - End If -End Sub - -'Copia la base de datos del almacenamiento interno al externo en el directorio kmts. -Sub copiaDB(result As Boolean) 'ignore - ToastMessageShow("copiaDB", False) - If result Then - Dim p As String - If File.ExternalWritable Then - p = File.DirInternal -' Log("Externo") - Else - p = File.DirInternal -' Log("Interno") - End If - Dim theDir As String - Try - File.MakeDir(File.DirInternal,"kmts") - theDir = "/kmts" - Catch - theDir = "" - End Try - Try - File.Copy(File.DirInternal,"kmt.db",File.DirInternal&theDir,"cedex_kmt.db") - File.Copy(File.DirInternal,"errorLog.db",File.DirInternal&theDir,"cedex_errorLog.db") - ToastMessageShow("BD copiada!", False) - Catch - ToastMessageShow("No se pudo hacer la copia: "&LastException, True) - End Try - Log("rootExternal="&p) - Log("File.DirInternal="&File.DirInternal) - Log("File.DirInternal="&File.DirInternal) - Else - ToastMessageShow("Sin permisos", False) - End If -End Sub - -'Hace visible y trae al frente 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 - -'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 horizontalmente dentro de un elemento superior. -Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore - elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) -End Sub - -'Centra un panel verticalmente dentro de un elemento superior. -Sub centraPanelV(elemento As Panel, altoElementoSuperior As Int) 'ignore - elemento.Top = Round(altoElementoSuperior/2)-(elemento.Height/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 - -'Regresa la fecha en el formato "MM/dd/yyyy" -Sub traeFecha As String 'ignore - DateTime.DateFormat = "MM/dd/yyyy" - Private sDate As String = DateTime.Date(DateTime.Now) - Private sTime As String = DateTime.Time(DateTime.Now) - Return sDate & sTime -End Sub - -'Guarda el nombre y version de la app en CAT_VARIABLES. -Sub guardaAppInfo(skmt As SQL) 'ignore - skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'") - skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$) - skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_VERSION', '${Application.VersionName}')"$) -End Sub - -'Muestra en el Log los campos y valores que regresan en el JobDone. -Sub logJobDoneResultados(resultado As DBResult) 'ignore - 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 - -'Regresa la base de datos especificada ya inicializada. -Sub inicializaBD(ruta As String, BDName As String) As SQL 'ignore - Dim skmt As SQL - If File.Exists(ruta, BDName) = False Then - File.Copy(File.DirAssets, BDName, ruta, BDName) - LogColor($"Copiamos ${BDName} de ${File.DirAssets} a ${ruta}"$,Colors.Green) - End If - skmt.Initialize(ruta, BDName, True) - Return skmt -End Sub - -'Agrega una columna a la tabla especificada. -'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC) -'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO") -Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore - Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla - Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$) - c.Position = 0 - If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos - db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) - Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$) - End If - Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch - Try - db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) - Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$) - Catch - Log(LastException) - End Try - End Try -End Sub - -'Regresa el DBReqServer desde CAT_VARIABLES o "N/A" si no existe. -Sub traeDBReqServerDeBD(dbx As SQL) As String 'ignore - Dim srvr As String = "N/A" - Dim rs As ResultSet = dbx.ExecQuery("select CAT_VA_VALOR from cat_variables where CAT_VA_DESCRIPCION = 'SERVER'") - If rs.RowCount > 0 Then - rs.NextRow - srvr = rs.GetString("CAT_VA_VALOR") - End If - Return srvr -End Sub - -'Regresa el valor de intervalo desde CAT_VARIABLES o "30" si no existe. -Sub traeIntervaloDeBD As String 'ignore - Dim intrvl As String = "30" - Dim rs As ResultSet = db.ExecQuery("select valor from cat_variables where nombre = 'intervalo'") - If rs.RowCount > 0 Then - rs.NextRow - intrvl = rs.GetString("valor") - End If - Return intrvl -End Sub - -'Regresa el valor timeout desde CAT_VARIABLES o "9000" si no existe. -Sub traeTimeoutDeBD As String 'ignore - Dim tmout As String = "9000" - Dim rs As ResultSet = db.ExecQuery("select valor from cat_variables where nombre = 'timeout'") - If rs.RowCount > 0 Then - rs.NextRow - tmout = rs.GetString("valor") - End If - Return tmout -End Sub - -'Crea una notificación con el "body" dado y regresa el objeto. -Sub CreateNotification (Body As String) As Notification 'ignore - Dim notification As Notification - notification.Initialize2(notification.IMPORTANCE_LOW) - notification.Icon = "icon" - notification.SetInfo("Tester", Body, Main) - Return notification -End Sub - -'Genera una notificacion con importancia alta -Sub notiHigh(title As String, body As String, id As String, activity As Object) 'ignore - activity = Main - Private notif As Notification - notif.Initialize2(notif.IMPORTANCE_HIGH) - notif.Icon = "icon" - notif.Vibrate = False - notif.Sound = False - notif.AutoCancel = True -' If logger Then Log("notiHigh: "&title) - notif.SetInfo(title, body, activity) -' Log("notiHigh SetInfo") - notif.Notify(id) -End Sub - -'Regresa el objeto de una notificacion con importancia baja -Sub notiLowReturn(title As String, Body As String, id As Int) As Notification 'ignore - Private notification As Notification - notification.Initialize2(notification.IMPORTANCE_LOW) -' Log("notiLowReturn: "&title) - notification.Icon = "icon" - notification.Sound = False - notification.Vibrate = False - notification.SetInfo(title, Body, Main) - notification.Notify(id) -' Log("notiLowReturn SetInfo") - Return notification -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 = db.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") - c.Position = 0 - a = C.GetString("ID_ALMACEN") - c.Close - Return a -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 = db.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 - -'Mandamos los pedidos pendientes (pc_envio_ok <> 1). -Sub mandaPendientes 'ignore - Private logger As Boolean = False - 'PEDIDO_CLIENTE (Pendientes) - Private c As Cursor = db.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_envio_ok <> 1") - If logger Then Log($"Pedido_Cliente PENDIENTE: ${c.RowCount}"$) - Private almacen As String = traeAlmacen - Private ruta As String = traeRuta - If c.RowCount>0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "DELETE_PEDIDO_MARDS_PC" - cmd.Parameters = Array As Object(almacen, ruta, c.GetString("PC_CLIENTE") ) - reqManager.ExecuteCommand(cmd , "DEL_PC") - - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "insert_pedidos_MARDS" - If logger Then Log($"${c.GetString("PC_CLIENTE")}, ${almacen}"$) - 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")) - reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_head_${c.GetString("PC_CLIENTE")}"$) - Next - End If - - 'PEDIDO (Pendientes) - c=Starter.skmt.ExecQuery("SELECT PC_ENVIO_OK, 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_cliente left join PEDIDO where pc_cliente = pe_cliente and pc_envio_ok <> 1") - If logger Then Log($"Pedido PENDIENTE: ${c.RowCount}"$) - If c.RowCount>0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim cmd As DBCommand - - cmd.Initialize - cmd.Name = "DELETE_PEDIDO_MARDS_PE" - cmd.Parameters = Array As Object(almacen, ruta,c.GetString("PE_CLIENTE") ) - reqManager.ExecuteCommand(cmd , "DEL_PE") - - 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")) - reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}"$) - Next - End If - - 'ABONOS - Dim ab As Cursor = db.ExecQuery($"SELECT * from ABONOS where a_enviado is null"$) - If logger Then 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_MARDS" - 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") ) - reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) - If logger Then Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) - Next - End If - ab.Close -End Sub - -'Borra el pedido del cliente actual. -'Borra los registros de la tabla "pedido" y "pedido_cliente" -'Actualiza las tablas "cat_gunaprod" y "kmt_info". -Sub borraPedidoClienteActual As String - Private thisC As Cursor - thisC=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") - If thisC.RowCount>0 Then - For i=0 To thisC.RowCount -1 - thisC.Position=i - Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(thisC.GetString("PE_CANT"),thisC.GetString("PE_PROID"))) - Starter.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen, thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1)) - Next - End If - Starter.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") - Starter.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)") - Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)") - Return 1 -End Sub \ No newline at end of file diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 8e250a7..3c88b58 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Files/clientes.bal b/B4A/Files/clientes.bal index 2cee098..77bc7a6 100644 Binary files a/B4A/Files/clientes.bal and b/B4A/Files/clientes.bal differ diff --git a/B4A/Files/engrane.jpg b/B4A/Files/engrane.jpg index 01159de..a2c770f 100644 Binary files a/B4A/Files/engrane.jpg and b/B4A/Files/engrane.jpg differ diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 6f412c3..6091b86 100644 Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ diff --git a/B4A/Files/mapa_rutas.bal b/B4A/Files/mapa_rutas.bal index da1d154..7b00c89 100644 Binary files a/B4A/Files/mapa_rutas.bal and b/B4A/Files/mapa_rutas.bal differ diff --git a/B4A/Files/nota.bal b/B4A/Files/nota.bal index dc491f7..8f105d8 100644 Binary files a/B4A/Files/nota.bal and b/B4A/Files/nota.bal differ diff --git a/B4A/Files/noventa.bal b/B4A/Files/noventa.bal index 3756c95..da000d8 100644 Binary files a/B4A/Files/noventa.bal and b/B4A/Files/noventa.bal differ diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index 0852a50..d7f2161 100644 Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 0adc930..a2b2de3 100644 Binary files a/B4A/Files/principal.bal and b/B4A/Files/principal.bal differ diff --git a/B4A/Files/proditem.bal b/B4A/Files/proditem.bal index dc03e73..968995a 100644 Binary files a/B4A/Files/proditem.bal and b/B4A/Files/proditem.bal differ diff --git a/B4A/Files/proditempromo.bal b/B4A/Files/proditempromo.bal index 1f4ea06..abdc957 100644 Binary files a/B4A/Files/proditempromo.bal and b/B4A/Files/proditempromo.bal differ diff --git a/B4A/Files/productos.bal b/B4A/Files/productos.bal index aecbb73..9bd3686 100644 Binary files a/B4A/Files/productos.bal and b/B4A/Files/productos.bal differ diff --git a/B4A/Files/promociones.bal b/B4A/Files/promociones.bal index f437224..44a9e70 100644 Binary files a/B4A/Files/promociones.bal and b/B4A/Files/promociones.bal differ diff --git a/B4A/Files/resdia.bal b/B4A/Files/resdia.bal index b61d557..84ca015 100644 Binary files a/B4A/Files/resdia.bal and b/B4A/Files/resdia.bal differ diff --git a/B4A/Files/ticketsdia.bal b/B4A/Files/ticketsdia.bal index dd12242..d8f1ecb 100644 Binary files a/B4A/Files/ticketsdia.bal and b/B4A/Files/ticketsdia.bal differ diff --git a/B4A/Mariana.b4a b/B4A/Mariana.b4a index dfe733d..fe261a5 100644 --- a/B4A/Mariana.b4a +++ b/B4A/Mariana.b4a @@ -1,503 +1,515 @@ Build1=Default,md.keymon.com.mx,HU2_PUBLIC File1=alert2.png -File10=fondo_kmt.jpg -File100=marker-azul-31.png -File101=marker-azul-32.png -File102=marker-azul-33.png -File103=marker-azul-34.png -File104=marker-azul-35.png -File105=marker-azul-36.png -File106=marker-azul-37.png -File107=marker-azul-38.png -File108=marker-azul-39.png -File109=marker-azul-4.png -File11=Hacer pedido.jpg -File110=marker-azul-40.png -File111=marker-azul-41.png -File112=marker-azul-42.png -File113=marker-azul-43.png -File114=marker-azul-44.png -File115=marker-azul-45.png -File116=marker-azul-46.png -File117=marker-azul-47.png -File118=marker-azul-48.png -File119=marker-azul-49.png -File12=intmex_logo_192x192.jpg -File120=marker-azul-5.png -File121=marker-azul-50.png -File122=marker-azul-51.png -File123=marker-azul-52.png -File124=marker-azul-53.png -File125=marker-azul-54.png -File126=marker-azul-55.png -File127=marker-azul-56.png -File128=marker-azul-57.png -File129=marker-azul-58.png -File13=intmex_logo_192x192.png -File130=marker-azul-59.png -File131=marker-azul-6.png -File132=marker-azul-60.png -File133=marker-azul-61.png -File134=marker-azul-62.png -File135=marker-azul-63.png -File136=marker-azul-64.png -File137=marker-azul-65.png -File138=marker-azul-66.png -File139=marker-azul-67.png -File14=intmex_logo_192x192_OLD.jpg -File140=marker-azul-68.png -File141=marker-azul-69.png -File142=marker-azul-7.png -File143=marker-azul-70.png -File144=marker-azul-71.png -File145=marker-azul-72.png -File146=marker-azul-73.png -File147=marker-azul-74.png -File148=marker-azul-75.png -File149=marker-azul-76.png -File15=itembuttonblue.png -File150=marker-azul-77.png -File151=marker-azul-78.png -File152=marker-azul-79.png -File153=marker-azul-8.png -File154=marker-azul-80.png -File155=marker-azul-81.png -File156=marker-azul-82.png -File157=marker-azul-83.png -File158=marker-azul-84.png -File159=marker-azul-85.png -File16=kmt.db -File160=marker-azul-86.png -File161=marker-azul-87.png -File162=marker-azul-88.png -File163=marker-azul-89.png -File164=marker-azul-9.png -File165=marker-azul-90.png -File166=marker-azul-91.png -File167=marker-azul-92.png -File168=marker-azul-93.png -File169=marker-azul-94.png -File17=login.bal -File170=marker-azul-95.png -File171=marker-azul-96.png -File172=marker-azul-97.png -File173=marker-azul-98.png -File174=marker-azul-99.png -File175=marker-rojo-0.png -File176=marker-rojo-1.png -File177=marker-rojo-10.png -File178=marker-rojo-100.png -File179=marker-rojo-101.png -File18=Logo_192x192.jpg -File180=marker-rojo-102.png -File181=marker-rojo-103.png -File182=marker-rojo-104.png -File183=marker-rojo-105.png -File184=marker-rojo-106.png -File185=marker-rojo-107.png -File186=marker-rojo-108.png -File187=marker-rojo-109.png -File188=marker-rojo-11.png -File189=marker-rojo-110.png -File19=logo_mariana.jpeg -File190=marker-rojo-111.png -File191=marker-rojo-112.png -File192=marker-rojo-113.png -File193=marker-rojo-114.png -File194=marker-rojo-115.png -File195=marker-rojo-116.png -File196=marker-rojo-117.png -File197=marker-rojo-118.png -File198=marker-rojo-119.png -File199=marker-rojo-12.png +File10=durakelo.png +File100=marker-azul-26.png +File101=marker-azul-27.png +File102=marker-azul-28.png +File103=marker-azul-29.png +File104=marker-azul-3.png +File105=marker-azul-30.png +File106=marker-azul-31.png +File107=marker-azul-32.png +File108=marker-azul-33.png +File109=marker-azul-34.png +File11=engrane.jpg +File110=marker-azul-35.png +File111=marker-azul-36.png +File112=marker-azul-37.png +File113=marker-azul-38.png +File114=marker-azul-39.png +File115=marker-azul-4.png +File116=marker-azul-40.png +File117=marker-azul-41.png +File118=marker-azul-42.png +File119=marker-azul-43.png +File12=fondo_kmt.jpg +File120=marker-azul-44.png +File121=marker-azul-45.png +File122=marker-azul-46.png +File123=marker-azul-47.png +File124=marker-azul-48.png +File125=marker-azul-49.png +File126=marker-azul-5.png +File127=marker-azul-50.png +File128=marker-azul-51.png +File129=marker-azul-52.png +File13=gps20.png +File130=marker-azul-53.png +File131=marker-azul-54.png +File132=marker-azul-55.png +File133=marker-azul-56.png +File134=marker-azul-57.png +File135=marker-azul-58.png +File136=marker-azul-59.png +File137=marker-azul-6.png +File138=marker-azul-60.png +File139=marker-azul-61.png +File14=Hacer pedido.jpg +File140=marker-azul-62.png +File141=marker-azul-63.png +File142=marker-azul-64.png +File143=marker-azul-65.png +File144=marker-azul-66.png +File145=marker-azul-67.png +File146=marker-azul-68.png +File147=marker-azul-69.png +File148=marker-azul-7.png +File149=marker-azul-70.png +File15=hacerpedido30.jpg +File150=marker-azul-71.png +File151=marker-azul-72.png +File152=marker-azul-73.png +File153=marker-azul-74.png +File154=marker-azul-75.png +File155=marker-azul-76.png +File156=marker-azul-77.png +File157=marker-azul-78.png +File158=marker-azul-79.png +File159=marker-azul-8.png +File16=hacerpedido30.png +File160=marker-azul-80.png +File161=marker-azul-81.png +File162=marker-azul-82.png +File163=marker-azul-83.png +File164=marker-azul-84.png +File165=marker-azul-85.png +File166=marker-azul-86.png +File167=marker-azul-87.png +File168=marker-azul-88.png +File169=marker-azul-89.png +File17=intmex_logo_192x192.jpg +File170=marker-azul-9.png +File171=marker-azul-90.png +File172=marker-azul-91.png +File173=marker-azul-92.png +File174=marker-azul-93.png +File175=marker-azul-94.png +File176=marker-azul-95.png +File177=marker-azul-96.png +File178=marker-azul-97.png +File179=marker-azul-98.png +File18=intmex_logo_192x192.png +File180=marker-azul-99.png +File181=marker-rojo-0.png +File182=marker-rojo-1.png +File183=marker-rojo-10.png +File184=marker-rojo-100.png +File185=marker-rojo-101.png +File186=marker-rojo-102.png +File187=marker-rojo-103.png +File188=marker-rojo-104.png +File189=marker-rojo-105.png +File19=intmex_logo_192x192_OLD.jpg +File190=marker-rojo-106.png +File191=marker-rojo-107.png +File192=marker-rojo-108.png +File193=marker-rojo-109.png +File194=marker-rojo-11.png +File195=marker-rojo-110.png +File196=marker-rojo-111.png +File197=marker-rojo-112.png +File198=marker-rojo-113.png +File199=marker-rojo-114.png File2=alerta_amarilla.png -File20=MainPage.bal -File200=marker-rojo-120.png -File201=marker-rojo-121.png -File202=marker-rojo-122.png -File203=marker-rojo-123.png -File204=marker-rojo-124.png -File205=marker-rojo-125.png -File206=marker-rojo-126.png -File207=marker-rojo-127.png -File208=marker-rojo-128.png -File209=marker-rojo-129.png -File21=Malo.jpg -File210=marker-rojo-13.png -File211=marker-rojo-130.png -File212=marker-rojo-131.png -File213=marker-rojo-132.png -File214=marker-rojo-133.png -File215=marker-rojo-134.png -File216=marker-rojo-135.png -File217=marker-rojo-136.png -File218=marker-rojo-137.png -File219=marker-rojo-138.png -File22=mapa_rutas.bal -File220=marker-rojo-139.png -File221=marker-rojo-14.png -File222=marker-rojo-140.png -File223=marker-rojo-141.png -File224=marker-rojo-142.png -File225=marker-rojo-143.png -File226=marker-rojo-144.png -File227=marker-rojo-145.png -File228=marker-rojo-146.png -File229=marker-rojo-147.png -File23=mariana_ico.png -File230=marker-rojo-148.png -File231=marker-rojo-149.png -File232=marker-rojo-15.png -File233=marker-rojo-150.png -File234=marker-rojo-16.png -File235=marker-rojo-17.png -File236=marker-rojo-18.png -File237=marker-rojo-19.png -File238=marker-rojo-2.png -File239=marker-rojo-20.png -File24=marker-azul-0.png -File240=marker-rojo-21.png -File241=marker-rojo-22.png -File242=marker-rojo-23.png -File243=marker-rojo-24.png -File244=marker-rojo-25.png -File245=marker-rojo-26.png -File246=marker-rojo-27.png -File247=marker-rojo-28.png -File248=marker-rojo-29.png -File249=marker-rojo-3.png -File25=marker-azul-1.png -File250=marker-rojo-30.png -File251=marker-rojo-31.png -File252=marker-rojo-32.png -File253=marker-rojo-33.png -File254=marker-rojo-34.png -File255=marker-rojo-35.png -File256=marker-rojo-36.png -File257=marker-rojo-37.png -File258=marker-rojo-38.png -File259=marker-rojo-39.png -File26=marker-azul-10.png -File260=marker-rojo-4.png -File261=marker-rojo-40.png -File262=marker-rojo-41.png -File263=marker-rojo-42.png -File264=marker-rojo-43.png -File265=marker-rojo-44.png -File266=marker-rojo-45.png -File267=marker-rojo-46.png -File268=marker-rojo-47.png -File269=marker-rojo-48.png -File27=marker-azul-100.png -File270=marker-rojo-49.png -File271=marker-rojo-5.png -File272=marker-rojo-50.png -File273=marker-rojo-51.png -File274=marker-rojo-52.png -File275=marker-rojo-53.png -File276=marker-rojo-54.png -File277=marker-rojo-55.png -File278=marker-rojo-56.png -File279=marker-rojo-57.png -File28=marker-azul-101.png -File280=marker-rojo-58.png -File281=marker-rojo-59.png -File282=marker-rojo-6.png -File283=marker-rojo-60.png -File284=marker-rojo-61.png -File285=marker-rojo-62.png -File286=marker-rojo-63.png -File287=marker-rojo-64.png -File288=marker-rojo-65.png -File289=marker-rojo-66.png -File29=marker-azul-102.png -File290=marker-rojo-67.png -File291=marker-rojo-68.png -File292=marker-rojo-69.png -File293=marker-rojo-7.png -File294=marker-rojo-70.png -File295=marker-rojo-71.png -File296=marker-rojo-72.png -File297=marker-rojo-73.png -File298=marker-rojo-74.png -File299=marker-rojo-75.png +File20=itembuttonblue.png +File200=marker-rojo-115.png +File201=marker-rojo-116.png +File202=marker-rojo-117.png +File203=marker-rojo-118.png +File204=marker-rojo-119.png +File205=marker-rojo-12.png +File206=marker-rojo-120.png +File207=marker-rojo-121.png +File208=marker-rojo-122.png +File209=marker-rojo-123.png +File21=kmt.db +File210=marker-rojo-124.png +File211=marker-rojo-125.png +File212=marker-rojo-126.png +File213=marker-rojo-127.png +File214=marker-rojo-128.png +File215=marker-rojo-129.png +File216=marker-rojo-13.png +File217=marker-rojo-130.png +File218=marker-rojo-131.png +File219=marker-rojo-132.png +File22=login.bal +File220=marker-rojo-133.png +File221=marker-rojo-134.png +File222=marker-rojo-135.png +File223=marker-rojo-136.png +File224=marker-rojo-137.png +File225=marker-rojo-138.png +File226=marker-rojo-139.png +File227=marker-rojo-14.png +File228=marker-rojo-140.png +File229=marker-rojo-141.png +File23=Logo_192x192.jpg +File230=marker-rojo-142.png +File231=marker-rojo-143.png +File232=marker-rojo-144.png +File233=marker-rojo-145.png +File234=marker-rojo-146.png +File235=marker-rojo-147.png +File236=marker-rojo-148.png +File237=marker-rojo-149.png +File238=marker-rojo-15.png +File239=marker-rojo-150.png +File24=logo_mariana.jpeg +File240=marker-rojo-16.png +File241=marker-rojo-17.png +File242=marker-rojo-18.png +File243=marker-rojo-19.png +File244=marker-rojo-2.png +File245=marker-rojo-20.png +File246=marker-rojo-21.png +File247=marker-rojo-22.png +File248=marker-rojo-23.png +File249=marker-rojo-24.png +File25=MainPage.bal +File250=marker-rojo-25.png +File251=marker-rojo-26.png +File252=marker-rojo-27.png +File253=marker-rojo-28.png +File254=marker-rojo-29.png +File255=marker-rojo-3.png +File256=marker-rojo-30.png +File257=marker-rojo-31.png +File258=marker-rojo-32.png +File259=marker-rojo-33.png +File26=Malo.jpg +File260=marker-rojo-34.png +File261=marker-rojo-35.png +File262=marker-rojo-36.png +File263=marker-rojo-37.png +File264=marker-rojo-38.png +File265=marker-rojo-39.png +File266=marker-rojo-4.png +File267=marker-rojo-40.png +File268=marker-rojo-41.png +File269=marker-rojo-42.png +File27=mapa_rutas.bal +File270=marker-rojo-43.png +File271=marker-rojo-44.png +File272=marker-rojo-45.png +File273=marker-rojo-46.png +File274=marker-rojo-47.png +File275=marker-rojo-48.png +File276=marker-rojo-49.png +File277=marker-rojo-5.png +File278=marker-rojo-50.png +File279=marker-rojo-51.png +File28=mariana.jpg +File280=marker-rojo-52.png +File281=marker-rojo-53.png +File282=marker-rojo-54.png +File283=marker-rojo-55.png +File284=marker-rojo-56.png +File285=marker-rojo-57.png +File286=marker-rojo-58.png +File287=marker-rojo-59.png +File288=marker-rojo-6.png +File289=marker-rojo-60.png +File29=mariana_ico.png +File290=marker-rojo-61.png +File291=marker-rojo-62.png +File292=marker-rojo-63.png +File293=marker-rojo-64.png +File294=marker-rojo-65.png +File295=marker-rojo-66.png +File296=marker-rojo-67.png +File297=marker-rojo-68.png +File298=marker-rojo-69.png +File299=marker-rojo-7.png File3=anterior.jpg -File30=marker-azul-103.png -File300=marker-rojo-76.png -File301=marker-rojo-77.png -File302=marker-rojo-78.png -File303=marker-rojo-79.png -File304=marker-rojo-8.png -File305=marker-rojo-80.png -File306=marker-rojo-81.png -File307=marker-rojo-82.png -File308=marker-rojo-83.png -File309=marker-rojo-84.png -File31=marker-azul-104.png -File310=marker-rojo-85.png -File311=marker-rojo-86.png -File312=marker-rojo-87.png -File313=marker-rojo-88.png -File314=marker-rojo-89.png -File315=marker-rojo-9.png -File316=marker-rojo-90.png -File317=marker-rojo-91.png -File318=marker-rojo-92.png -File319=marker-rojo-93.png -File32=marker-azul-105.png -File320=marker-rojo-94.png -File321=marker-rojo-95.png -File322=marker-rojo-96.png -File323=marker-rojo-97.png -File324=marker-rojo-98.png -File325=marker-rojo-99.png -File326=marker-verde-0.png -File327=marker-verde-1.png -File328=marker-verde-10.png -File329=marker-verde-100.png -File33=marker-azul-106.png -File330=marker-verde-101.png -File331=marker-verde-102.png -File332=marker-verde-103.png -File333=marker-verde-104.png -File334=marker-verde-105.png -File335=marker-verde-106.png -File336=marker-verde-107.png -File337=marker-verde-108.png -File338=marker-verde-109.png -File339=marker-verde-11.png -File34=marker-azul-107.png -File340=marker-verde-110.png -File341=marker-verde-111.png -File342=marker-verde-112.png -File343=marker-verde-113.png -File344=marker-verde-114.png -File345=marker-verde-115.png -File346=marker-verde-116.png -File347=marker-verde-117.png -File348=marker-verde-118.png -File349=marker-verde-119.png -File35=marker-azul-108.png -File350=marker-verde-12.png -File351=marker-verde-120.png -File352=marker-verde-121.png -File353=marker-verde-122.png -File354=marker-verde-123.png -File355=marker-verde-124.png -File356=marker-verde-125.png -File357=marker-verde-126.png -File358=marker-verde-127.png -File359=marker-verde-128.png -File36=marker-azul-109.png -File360=marker-verde-129.png -File361=marker-verde-13.png -File362=marker-verde-130.png -File363=marker-verde-131.png -File364=marker-verde-132.png -File365=marker-verde-133.png -File366=marker-verde-134.png -File367=marker-verde-135.png -File368=marker-verde-136.png -File369=marker-verde-137.png -File37=marker-azul-11.png -File370=marker-verde-138.png -File371=marker-verde-139.png -File372=marker-verde-14.png -File373=marker-verde-140.png -File374=marker-verde-141.png -File375=marker-verde-142.png -File376=marker-verde-143.png -File377=marker-verde-144.png -File378=marker-verde-145.png -File379=marker-verde-146.png -File38=marker-azul-110.png -File380=marker-verde-147.png -File381=marker-verde-148.png -File382=marker-verde-149.png -File383=marker-verde-15.png -File384=marker-verde-150.png -File385=marker-verde-16.png -File386=marker-verde-17.png -File387=marker-verde-18.png -File388=marker-verde-19.png -File389=marker-verde-2.png -File39=marker-azul-111.png -File390=marker-verde-20.png -File391=marker-verde-21.png -File392=marker-verde-22.png -File393=marker-verde-23.png -File394=marker-verde-24.png -File395=marker-verde-25.png -File396=marker-verde-26.png -File397=marker-verde-27.png -File398=marker-verde-28.png -File399=marker-verde-29.png -File4=carrito.png -File40=marker-azul-112.png -File400=marker-verde-3.png -File401=marker-verde-30.png -File402=marker-verde-31.png -File403=marker-verde-32.png -File404=marker-verde-33.png -File405=marker-verde-34.png -File406=marker-verde-35.png -File407=marker-verde-36.png -File408=marker-verde-37.png -File409=marker-verde-38.png -File41=marker-azul-113.png -File410=marker-verde-39.png -File411=marker-verde-4.png -File412=marker-verde-40.png -File413=marker-verde-41.png -File414=marker-verde-42.png -File415=marker-verde-43.png -File416=marker-verde-44.png -File417=marker-verde-45.png -File418=marker-verde-46.png -File419=marker-verde-47.png -File42=marker-azul-114.png -File420=marker-verde-48.png -File421=marker-verde-49.png -File422=marker-verde-5.png -File423=marker-verde-50.png -File424=marker-verde-51.png -File425=marker-verde-52.png -File426=marker-verde-53.png -File427=marker-verde-54.png -File428=marker-verde-55.png -File429=marker-verde-56.png -File43=marker-azul-115.png -File430=marker-verde-57.png -File431=marker-verde-58.png -File432=marker-verde-59.png -File433=marker-verde-6.png -File434=marker-verde-60.png -File435=marker-verde-61.png -File436=marker-verde-62.png -File437=marker-verde-63.png -File438=marker-verde-64.png -File439=marker-verde-65.png -File44=marker-azul-116.png -File440=marker-verde-66.png -File441=marker-verde-67.png -File442=marker-verde-68.png -File443=marker-verde-69.png -File444=marker-verde-7.png -File445=marker-verde-70.png -File446=marker-verde-71.png -File447=marker-verde-72.png -File448=marker-verde-73.png -File449=marker-verde-74.png -File45=marker-azul-117.png -File450=marker-verde-75.png -File451=marker-verde-76.png -File452=marker-verde-77.png -File453=marker-verde-78.png -File454=marker-verde-79.png -File455=marker-verde-8.png -File456=marker-verde-80.png -File457=marker-verde-81.png -File458=marker-verde-82.png -File459=marker-verde-83.png -File46=marker-azul-118.png -File460=marker-verde-84.png -File461=marker-verde-85.png -File462=marker-verde-86.png -File463=marker-verde-87.png -File464=marker-verde-88.png -File465=marker-verde-89.png -File466=marker-verde-9.png -File467=marker-verde-90.png -File468=marker-verde-91.png -File469=marker-verde-92.png -File47=marker-azul-119.png -File470=marker-verde-93.png -File471=marker-verde-94.png -File472=marker-verde-95.png -File473=marker-verde-96.png -File474=marker-verde-97.png -File475=marker-verde-98.png -File476=marker-verde-99.png -File477=nota.bal -File478=noventa.bal -File479=nuevocliente.bal -File48=marker-azul-12.png -File480=Nvo Cliente.jpg -File481=palomita_verde.png -File482=pedido.bal -File483=planfia_logo.png -File484=principal.bal -File485=proditem.bal -File486=proditempromo.bal -File487=productos.bal -File488=promociones.bal -File489=resdia.bal -File49=marker-azul-120.png -File490=ResDia.jpg -File491=salma.jpg -File492=salma.png -File493=senial.jpg -File494=sync.png -File495=tache_rojo.png -File496=Ticket dia.jpg -File497=ticketsdia.bal -File498=Tiendita.jpg -File499=verde.png -File5=celltitle.bal -File50=marker-azul-121.png -File51=marker-azul-122.png -File52=marker-azul-123.png -File53=marker-azul-124.png -File54=marker-azul-125.png -File55=marker-azul-126.png -File56=marker-azul-127.png -File57=marker-azul-128.png -File58=marker-azul-129.png -File59=marker-azul-13.png -File6=cliente.bal -File60=marker-azul-130.png -File61=marker-azul-131.png -File62=marker-azul-132.png -File63=marker-azul-133.png -File64=marker-azul-134.png -File65=marker-azul-135.png -File66=marker-azul-136.png -File67=marker-azul-137.png -File68=marker-azul-138.png -File69=marker-azul-139.png -File7=clientes.bal -File70=marker-azul-14.png -File71=marker-azul-140.png -File72=marker-azul-141.png -File73=marker-azul-142.png -File74=marker-azul-143.png -File75=marker-azul-144.png -File76=marker-azul-145.png -File77=marker-azul-146.png -File78=marker-azul-147.png -File79=marker-azul-148.png -File8=durakelo.png -File80=marker-azul-149.png -File81=marker-azul-15.png -File82=marker-azul-150.png -File83=marker-azul-16.png -File84=marker-azul-17.png -File85=marker-azul-18.png -File86=marker-azul-19.png -File87=marker-azul-2.png -File88=marker-azul-20.png -File89=marker-azul-21.png -File9=engrane.jpg -File90=marker-azul-22.png -File91=marker-azul-23.png -File92=marker-azul-24.png -File93=marker-azul-25.png -File94=marker-azul-26.png -File95=marker-azul-27.png -File96=marker-azul-28.png -File97=marker-azul-29.png -File98=marker-azul-3.png -File99=marker-azul-30.png +File30=marker-azul-0.png +File300=marker-rojo-70.png +File301=marker-rojo-71.png +File302=marker-rojo-72.png +File303=marker-rojo-73.png +File304=marker-rojo-74.png +File305=marker-rojo-75.png +File306=marker-rojo-76.png +File307=marker-rojo-77.png +File308=marker-rojo-78.png +File309=marker-rojo-79.png +File31=marker-azul-1.png +File310=marker-rojo-8.png +File311=marker-rojo-80.png +File312=marker-rojo-81.png +File313=marker-rojo-82.png +File314=marker-rojo-83.png +File315=marker-rojo-84.png +File316=marker-rojo-85.png +File317=marker-rojo-86.png +File318=marker-rojo-87.png +File319=marker-rojo-88.png +File32=marker-azul-10.png +File320=marker-rojo-89.png +File321=marker-rojo-9.png +File322=marker-rojo-90.png +File323=marker-rojo-91.png +File324=marker-rojo-92.png +File325=marker-rojo-93.png +File326=marker-rojo-94.png +File327=marker-rojo-95.png +File328=marker-rojo-96.png +File329=marker-rojo-97.png +File33=marker-azul-100.png +File330=marker-rojo-98.png +File331=marker-rojo-99.png +File332=marker-verde-0.png +File333=marker-verde-1.png +File334=marker-verde-10.png +File335=marker-verde-100.png +File336=marker-verde-101.png +File337=marker-verde-102.png +File338=marker-verde-103.png +File339=marker-verde-104.png +File34=marker-azul-101.png +File340=marker-verde-105.png +File341=marker-verde-106.png +File342=marker-verde-107.png +File343=marker-verde-108.png +File344=marker-verde-109.png +File345=marker-verde-11.png +File346=marker-verde-110.png +File347=marker-verde-111.png +File348=marker-verde-112.png +File349=marker-verde-113.png +File35=marker-azul-102.png +File350=marker-verde-114.png +File351=marker-verde-115.png +File352=marker-verde-116.png +File353=marker-verde-117.png +File354=marker-verde-118.png +File355=marker-verde-119.png +File356=marker-verde-12.png +File357=marker-verde-120.png +File358=marker-verde-121.png +File359=marker-verde-122.png +File36=marker-azul-103.png +File360=marker-verde-123.png +File361=marker-verde-124.png +File362=marker-verde-125.png +File363=marker-verde-126.png +File364=marker-verde-127.png +File365=marker-verde-128.png +File366=marker-verde-129.png +File367=marker-verde-13.png +File368=marker-verde-130.png +File369=marker-verde-131.png +File37=marker-azul-104.png +File370=marker-verde-132.png +File371=marker-verde-133.png +File372=marker-verde-134.png +File373=marker-verde-135.png +File374=marker-verde-136.png +File375=marker-verde-137.png +File376=marker-verde-138.png +File377=marker-verde-139.png +File378=marker-verde-14.png +File379=marker-verde-140.png +File38=marker-azul-105.png +File380=marker-verde-141.png +File381=marker-verde-142.png +File382=marker-verde-143.png +File383=marker-verde-144.png +File384=marker-verde-145.png +File385=marker-verde-146.png +File386=marker-verde-147.png +File387=marker-verde-148.png +File388=marker-verde-149.png +File389=marker-verde-15.png +File39=marker-azul-106.png +File390=marker-verde-150.png +File391=marker-verde-16.png +File392=marker-verde-17.png +File393=marker-verde-18.png +File394=marker-verde-19.png +File395=marker-verde-2.png +File396=marker-verde-20.png +File397=marker-verde-21.png +File398=marker-verde-22.png +File399=marker-verde-23.png +File4=bus-ar.png +File40=marker-azul-107.png +File400=marker-verde-24.png +File401=marker-verde-25.png +File402=marker-verde-26.png +File403=marker-verde-27.png +File404=marker-verde-28.png +File405=marker-verde-29.png +File406=marker-verde-3.png +File407=marker-verde-30.png +File408=marker-verde-31.png +File409=marker-verde-32.png +File41=marker-azul-108.png +File410=marker-verde-33.png +File411=marker-verde-34.png +File412=marker-verde-35.png +File413=marker-verde-36.png +File414=marker-verde-37.png +File415=marker-verde-38.png +File416=marker-verde-39.png +File417=marker-verde-4.png +File418=marker-verde-40.png +File419=marker-verde-41.png +File42=marker-azul-109.png +File420=marker-verde-42.png +File421=marker-verde-43.png +File422=marker-verde-44.png +File423=marker-verde-45.png +File424=marker-verde-46.png +File425=marker-verde-47.png +File426=marker-verde-48.png +File427=marker-verde-49.png +File428=marker-verde-5.png +File429=marker-verde-50.png +File43=marker-azul-11.png +File430=marker-verde-51.png +File431=marker-verde-52.png +File432=marker-verde-53.png +File433=marker-verde-54.png +File434=marker-verde-55.png +File435=marker-verde-56.png +File436=marker-verde-57.png +File437=marker-verde-58.png +File438=marker-verde-59.png +File439=marker-verde-6.png +File44=marker-azul-110.png +File440=marker-verde-60.png +File441=marker-verde-61.png +File442=marker-verde-62.png +File443=marker-verde-63.png +File444=marker-verde-64.png +File445=marker-verde-65.png +File446=marker-verde-66.png +File447=marker-verde-67.png +File448=marker-verde-68.png +File449=marker-verde-69.png +File45=marker-azul-111.png +File450=marker-verde-7.png +File451=marker-verde-70.png +File452=marker-verde-71.png +File453=marker-verde-72.png +File454=marker-verde-73.png +File455=marker-verde-74.png +File456=marker-verde-75.png +File457=marker-verde-76.png +File458=marker-verde-77.png +File459=marker-verde-78.png +File46=marker-azul-112.png +File460=marker-verde-79.png +File461=marker-verde-8.png +File462=marker-verde-80.png +File463=marker-verde-81.png +File464=marker-verde-82.png +File465=marker-verde-83.png +File466=marker-verde-84.png +File467=marker-verde-85.png +File468=marker-verde-86.png +File469=marker-verde-87.png +File47=marker-azul-113.png +File470=marker-verde-88.png +File471=marker-verde-89.png +File472=marker-verde-9.png +File473=marker-verde-90.png +File474=marker-verde-91.png +File475=marker-verde-92.png +File476=marker-verde-93.png +File477=marker-verde-94.png +File478=marker-verde-95.png +File479=marker-verde-96.png +File48=marker-azul-114.png +File480=marker-verde-97.png +File481=marker-verde-98.png +File482=marker-verde-99.png +File483=nota.bal +File484=noventa.bal +File485=nuevocliente.bal +File486=nuevocliente.jpg +File487=nuevo-cliente20.png +File488=Nvo Cliente.jpg +File489=palomita_verde.png +File49=marker-azul-115.png +File490=pedido.bal +File491=planfia_logo.png +File492=principal.bal +File493=proditem.bal +File494=proditempromo.bal +File495=productos.bal +File496=promociones.bal +File497=resdia.bal +File498=ResDia.jpg +File499=resdia20.png +File5=carrito.png +File50=marker-azul-116.png +File500=resumendia.jpg +File501=salma.jpg +File502=salma.png +File503=senial.jpg +File504=sync.png +File505=tache_rojo.png +File506=Ticket dia.jpg +File507=ticketdia20.jpg +File508=ticketdia20.png +File509=ticketsdia.bal +File51=marker-azul-117.png +File510=Tiendita.jpg +File511=verde.png +File52=marker-azul-118.png +File53=marker-azul-119.png +File54=marker-azul-12.png +File55=marker-azul-120.png +File56=marker-azul-121.png +File57=marker-azul-122.png +File58=marker-azul-123.png +File59=marker-azul-124.png +File6=celltitle.bal +File60=marker-azul-125.png +File61=marker-azul-126.png +File62=marker-azul-127.png +File63=marker-azul-128.png +File64=marker-azul-129.png +File65=marker-azul-13.png +File66=marker-azul-130.png +File67=marker-azul-131.png +File68=marker-azul-132.png +File69=marker-azul-133.png +File7=cliente.bal +File70=marker-azul-134.png +File71=marker-azul-135.png +File72=marker-azul-136.png +File73=marker-azul-137.png +File74=marker-azul-138.png +File75=marker-azul-139.png +File76=marker-azul-14.png +File77=marker-azul-140.png +File78=marker-azul-141.png +File79=marker-azul-142.png +File8=clientes.bal +File80=marker-azul-143.png +File81=marker-azul-144.png +File82=marker-azul-145.png +File83=marker-azul-146.png +File84=marker-azul-147.png +File85=marker-azul-148.png +File86=marker-azul-149.png +File87=marker-azul-15.png +File88=marker-azul-150.png +File89=marker-azul-16.png +File9=desvanecido.png +File90=marker-azul-17.png +File91=marker-azul-18.png +File92=marker-azul-19.png +File93=marker-azul-2.png +File94=marker-azul-20.png +File95=marker-azul-21.png +File96=marker-azul-22.png +File97=marker-azul-23.png +File98=marker-azul-24.png +File99=marker-azul-25.png FileGroup1=Default Group FileGroup10=Default Group FileGroup100=Default Group @@ -944,7 +956,19 @@ FileGroup498=Default Group FileGroup499=Default Group FileGroup5=Default Group FileGroup50=Default Group +FileGroup500=Default Group +FileGroup501=Default Group +FileGroup502=Default Group +FileGroup503=Default Group +FileGroup504=Default Group +FileGroup505=Default Group +FileGroup506=Default Group +FileGroup507=Default Group +FileGroup508=Default Group +FileGroup509=Default Group FileGroup51=Default Group +FileGroup510=Default Group +FileGroup511=Default Group FileGroup52=Default Group FileGroup53=Default Group FileGroup54=Default Group @@ -1033,7 +1057,7 @@ Library6=bctoast Library7=bitmapcreator Library8=byteconverter Library9=camera -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~'AddApplicationText(~\n~')~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~ ~\n~ AddManifestText(~\n~ ~\n~ )~\n~ ~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~)~\n~ +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~'AddApplicationText(~\n~')~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~ ~\n~ AddManifestText(~\n~ ~\n~ )~\n~ ~\n~ Module1=appUpdater Module10=C_NuevoCliente Module11=C_Pedidos @@ -1041,20 +1065,19 @@ Module12=C_Principal Module13=C_Productos Module14=C_Promos Module15=C_RespaldoDiario -Module16=C_Subs_XXX +Module16=C_Subs Module17=C_TicketsDia Module18=C_UpdateAvailable Module19=CameraExClass2 Module2=B4XMainPage Module20=DBRequestManager Module21=FileHandler -Module22=kms_helperSubs -Module23=ManageExternalStorage -Module24=MAPA_RUTAS -Module25=NotificationService -Module26=Starter -Module27=Subs -Module28=Tracker +Module22=ManageExternalStorage +Module23=MAPA_RUTAS +Module24=NotificationService +Module25=Starter +Module26=Subs +Module27=Tracker Module3=BatteryUtilities Module4=C_Cliente Module5=C_Clientes @@ -1062,15 +1085,15 @@ Module6=C_Historico Module7=C_Mapas Module8=C_Nota Module9=C_NoVenta -NumberOfFiles=499 +NumberOfFiles=511 NumberOfLibraries=35 -NumberOfModules=28 -Version=12.8 +NumberOfModules=27 +Version=12.5 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Mariana #VersionCode: 1 - #VersionName: 4.05.16 + #VersionName: 4.04.24 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Mariana.b4a.meta b/B4A/Mariana.b4a.meta index 7e5c0e1..0c2d9cc 100644 --- a/B4A/Mariana.b4a.meta +++ b/B4A/Mariana.b4a.meta @@ -19,7 +19,6 @@ ModuleBookmarks24= ModuleBookmarks25= ModuleBookmarks26= ModuleBookmarks27= -ModuleBookmarks28= ModuleBookmarks3= ModuleBookmarks4= ModuleBookmarks5= @@ -48,7 +47,6 @@ ModuleBreakpoints24= ModuleBreakpoints25= ModuleBreakpoints26= ModuleBreakpoints27= -ModuleBreakpoints28= ModuleBreakpoints3= ModuleBreakpoints4= ModuleBreakpoints5= @@ -77,7 +75,6 @@ ModuleClosedNodes24= ModuleClosedNodes25= ModuleClosedNodes26= ModuleClosedNodes27= -ModuleClosedNodes28= ModuleClosedNodes3= ModuleClosedNodes4=2 ModuleClosedNodes5= @@ -85,6 +82,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=Starter,Service_Start,50,2,Starter,Process_Globals,32,1,Starter,Service_Create,37,2,B4XMainPage,B_SERVER_Click,728,1,B4XMainPage,i_engrane_Click,714,0,B4XMainPage,b_importarBD_Click,787,0,B4XMainPage,b_envioBD_Click,766,5,Visual Designer,login.bal,-100,3,B4XMainPage,B4XPage_Appear,296,0,B4XMainPage,B4XPage_Created,282,0 +NavigationStack=C_Nota,b_desc_Click,231,0,C_Nota,B4XPage_Appear,105,0,B4XMainPage,B4XPage_Created,173,0,Main,Activity_KeyPress,42,0,C_Principal,Class_Globals,0,0,C_Principal,p_marcascodigo_Click,2567,0,C_Principal,checaPedido,2568,0,C_Principal,B4XPage_Appear,312,0,C_Principal,B_OK_PAS_Click,2024,0,Main,Activity_ActionBarHomeClick,37,0,Main,Globals,24,0 SelectedBuild=0 -VisibleModules=2,12,4,5,6,27,22,10,28,26,16 +VisibleModules=2,12,4,5,6,26,10,27,25,8 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 1171fc7..d262105 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -16,7 +16,7 @@ Sub Process_Globals Dim skmt As SQL Dim ph As Phone Public rp As RuntimePermissions - Dim kh As kms_helperSubs + Dim s As C_Subs Public FLP As FusedLocationProvider ' Private flpStarted As Boolean Dim reqManager As DBRequestManager @@ -40,8 +40,8 @@ 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. - kh.Initialize(Me, "Subs") 'Inicializamos la clase Subs - skmt = kh.inicializaBD(File.DirInternal, "kmt.db") + s.Initialize(Me, "Subs") 'Inicializamos la clase Subs + skmt = s.inicializaBD(File.DirInternal, "kmt.db") gps.Initialize("GPS") Timer1.Initialize("Timer1", Interval * 1000) Timer1.Enabled = True @@ -56,7 +56,7 @@ End Sub Sub Service_Start (StartingIntent As Intent) Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases. Subs.revisaBD - If kh.traeDBReqServerDeBD(skmt) <> "N/A" Then DBReqServer = kh.traeDBReqServerDeBD(skmt) + If s.traeDBReqServerDeBD(skmt) <> "N/A" Then DBReqServer = s.traeDBReqServerDeBD(skmt) reqManager.Initialize(Me, DBReqServer) ' StartService(NotificationService) End Sub diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas deleted file mode 100644 index 9ac3dab..0000000 --- a/B4A/kms_helperSubs.bas +++ /dev/null @@ -1,654 +0,0 @@ -B4A=true -Group=Default Group -ModulesStructureVersion=1 -Type=Class -Version=12.8 -@EndOfDesignText@ -Sub Class_Globals - 'These global variables will be declared once when the application starts. - 'These variables can be accessed from all modules. -' Public GZip As GZipStrings 'Usa la libreria CompressStrings -' Private su As StringUtils 'Usa la libreria StringUtils - Dim reqManager As DBRequestManager - Private EventName As String 'ignore - Private CallBack As Object 'ignore - Dim phn As Phone - Dim devModel As String - Dim db, kmt, errorLog As SQL 'Requiere la libreria "SQL" 'ignore - Dim ssid As String 'ignore - Dim reqsList As List - Dim reqError As Boolean = False - Private subsLogs As Boolean = False - Dim in As Intent - Dim intentUsado As Boolean = False -End Sub - -'You can add more parameters here. -Public Sub Initialize (vCallback As Object, vEventName As String) As Object - reqsList.Initialize - EventName = vEventName - CallBack = vCallback - db = dbInit - reqManager = reqManagerInit - Return Me -End Sub - -'Inicializa la BD con "kmt.db" en File.DirInternal, si el archivo no existe, lo copia desde File.DirAssets. -'Dispara el evento "dbOk" cuando termina. -Sub dbInit As SQL - If File.Exists(File.DirInternal, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db") - db.Initialize(File.DirInternal,"kmt.db", True) - dbOk(True) -' Log(db.IsInitialized) - Return db -End Sub - -Sub dbOk(Success As Boolean) - If SubExists(CallBack, EventName & "_dbOk") Then - CallSub2(CallBack, EventName & "_dbOk", Success) - End If -End Sub - -'Inicializamos el DBReqServer. -Sub reqManagerInit As DBRequestManager - Private rm As DBRequestManager - rm.Initialize(Me, traeDBReqServerDeBD(db)) - Log($"Inicializamos reqManager con ${traeDBReqServerDeBD(db)}"$) - Return rm -End Sub - -'Reinicializamos el DBReqServer de C_Subs. -Sub reqManagerReInit - Log("reqManager ReInit") - reqManager = reqManagerInit -End Sub - -Sub envioTest - reqsList.Initialize ' Ponemos la lista de DBRequests en cero. - Private cmd As DBCommand - cmd.Initialize - cmd.Name = "select_fecha" - For i = 0 To 50 -' Sleep(200) - reqManager.ExecuteQuery(cmd, 0, $"select_fecha_${i}"$) - reqsList.Add($"select_fecha_${i}"$) - Next -End Sub - -'Dispara el evento "_envioOk" del caller. -Sub envioOk(Success As Boolean) -' Log($"_ENVIOOK_"$) - If SubExists(CallBack, EventName & "_envioOk") Then - CallSub2(CallBack, EventName & "_envioOk", Success) - End If -End Sub - -Sub JobDone(Job As HttpJob) - LogColor("C_SUBS JOBDONE - " & Job.Success, Colors.Red) - If Job.Success = False Then - Log($"Error en el request ${Job.Tag}"$) - LogColor("** " & Job.Tag & " Error: " & Job.ErrorMessage, Colors.Red) - If reqsList.IndexOf(Job.Tag) > -1 Then reqsList.RemoveAt(reqsList.IndexOf(Job.Tag)) - reqError = True - Else - If Job.JobName = "DBRequest" Then - Dim resultado As DBResult = reqManager.HandleJob(Job) - If reqsList.IndexOf(resultado.Tag) > -1 Then reqsList.RemoveAt(reqsList.IndexOf(resultado.Tag)) - If resultado.Tag = "select_fecha" Then - 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 - End If - End If - Log(reqsList.Size) - If reqsList.Size = 0 Then 'Ya no hay DBReqs pendientes. - Log(reqError) - If Not(reqError) Then - envioOk(True) - Else - envioOk(False) - End If - reqError = False - Log("-= FIN =-") - End If - Job.Release -End Sub - -'Pone el valor de phn.Model en la variable global "devModel" -Sub getPhnId As String 'ignore - 'Requiere la libreria "Phone" - devModel = phn.Model - If devModel.Length <= 3 Then 'Si phn.Model esta en blanco ... - Dim t As String = phn.GetSettings("android_id") 'Intentamos con "android_id" - devModel = t - End If - If devModel.Length >= 3 Then 'Si tenemos valor para phn.Model - File.WriteString(File.DirInternal, "phnId.txt", devModel) 'Sobreescribimos archivo phnId.txt with deviceId -' Log("Tenemos phnId: "&devModel&" "&File.DirInternal&"/phn.txt sobreescrito") - Else If devModel.Length < 3 Then ' Si no tenemos valor, lo leemos de phnId.txt - Dim s As String = File.ReadString(File.DirInternal, "phnId.txt") - devModel = s -' Log("Leemos id de "&File.DirInternal&"/phnId.txt") -' Log(devModel) - End If - Return devModel -End Sub - -'Convierte una fecha al formato yyMMddHHmmss -Sub fechaKMT(fecha As String) As String 'ignore -' 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 -' Log(nuevaFecha) - Return nuevaFecha -End Sub - -'Escribimos las coordenadas y fecha a un archivo de texto -Sub guardaInfoEnArchivo(coords As String) 'ignore - ' Cambiamos el formato de la hora - Dim OrigFormat As String=DateTime.DateFormat 'save orig date format - DateTime.DateFormat="MMM-dd HH:mm:ss" - Dim lastUpdate As String=DateTime.Date(DateTime.Now) - DateTime.DateFormat=OrigFormat 'return to orig date format - - Dim ubic As String = coords&","&lastUpdate - Dim out As OutputStream = File.OpenOutput(File.DirInternal, "gps.txt", True) - Dim s As String = ubic & CRLF - Dim t() As Byte = s.GetBytes("UTF-8") - out.WriteBytes(t, 0, t.Length) - out.Close -End Sub - -'Escribimos las coordenadas (latitud, longitud, fecha) y fecha a una BD -Sub guardaInfoEnBD(coords As String) 'ignore - Log("Guardamos ubicacion en BD - "&coords) - Try - Dim latlon() As String = Regex.Split("\|", coords) - If latlon.Length < 2 Then latlon = Regex.Split(",", coords) 'Si son menos de 2, entonces estan separadas por comas y no por "|" - If subsLogs Then Log("LatLon="&latlon) - kmt.ExecNonQuery2("INSERT INTO RUTA_GPS(FECHA, LAT, LON) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1))) - Catch - LogColor(LastException, Colors.red) - End Try -End Sub - -'Limpiamos la tabla RUTA_GPS de la BD -Sub deleteGPS_DB 'ignore - kmt.ExecNonQuery("delete from RUTA_GPS") - kmt.ExecNonQuery("vacuum;") - ToastMessageShow("Borramos BD Coords GPS", False) -End Sub - -'Limpiamos la tabla errorLog de la BD -Sub deleteErrorLog_DB 'ignore - errorLog.ExecNonQuery("delete from errores") - errorLog.ExecNonQuery("vacuum;") - ToastMessageShow("BD Errores Borrada", False) -End Sub - -'Mandamos "coords" en un mensaje a "Sprvsr" -'Sub mandamosLoc(coords As String) 'ignore -'' Log("Iniciamos mandamosLoc "&coords) -'' Log("locRequest="&Tracker.locRequest) -' guardaInfoEnBD(coords)'Escribimos coordenadas y fecha a una bd -' Dim t As String -' If Tracker.locRequest="Activa" Then -' If PushService.au = 1 Then -' t = "au" ' es una actualizacion -' Else -' t = "u" ' es una peticion -' End If -' Dim params As Map = CreateMap("topic":"Sprvsr", "coords":coords, "t":t, "b":PushService.battery, "mt":Main.montoActual) -' CallSub2(PushService, "mandaMensaje",params) -' Tracker.locRequest="Enviada" -' CallSubDelayed(Tracker,"CreateLocationRequest") -' End If -'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 - Log("Hoy="&h) - Return h -End Sub - -'Guardamos "texto" a la bitacora -Sub log2DB(texto As String) 'ignore - LogColor(fechaKMT(DateTime.Now)&" - log2BD: '"&texto&"'", Colors.LightGray) - kmt.ExecNonQuery2("INSERT INTO bitacora(fecha, texto) VALUES (?,?)", Array As Object (fechaKMT(DateTime.now), texto)) -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 - ' 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 - ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now)) - Return True - Else - ' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now)) - Return False - End If - Catch - Log(LastException) - End Try -End Sub - -'Limpiamos la tabla "bitacora" de la BD -Sub borraLogDB 'ignore - LogColor("Borramos BD de log", Colors.Magenta) - kmt.ExecNonQuery("delete from bitacora") - kmt.ExecNonQuery("vacuum;") -End Sub - -'Monitoreamos los servicios para ver si estan activos (No pausados), y si no, los reniciamos -'Sub Monitor 'ignore -' Private monitorStatus As Boolean = True -' LogColor("Corriendo Subs.Monitor", Colors.RGB(161,150,0)) -' If IsPaused(Tracker) Then -' log2DB("Reiniciando 'Tracker Pausado' desde Subs.Monitor") -' StartService(Tracker) -' monitorStatus = False -' Else -' CallSubDelayed(Tracker, "revisaFLP") -' End If -' If IsPaused(PushService) Then -' log2DB("Reiniciando 'PushService Pausado' desde Subs.Monitor") -' StartService(PushService) -' monitorStatus = False -' Else -' revisaPushService -' End If -' If monitorStatus Then LogColor(" +++ +++ Servicios Activos", Colors.Green) -'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) - 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) - LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red) - Return 0 - End Try -End Sub - -Sub InstallAPK(dir As String, apk As String) 'ignore - If File.Exists(dir, apk) Then - Dim i As Intent - i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(dir, apk)) - i.SetType("application/vnd.android.package-archive") - StartActivity(i) - End If -End Sub - -'Copia la base de datos del almacenamiento interno al externo en el directorio kmts. -Sub copiaDB(result As Boolean) 'ignore - ToastMessageShow("copiaDB", False) - If result Then - Dim p As String - If File.ExternalWritable Then - p = File.DirInternal -' Log("Externo") - Else - p = File.DirInternal -' Log("Interno") - End If - Dim theDir As String - Try - File.MakeDir(File.DirInternal,"kmts") - theDir = "/kmts" - Catch - theDir = "" - End Try - Try - File.Copy(File.DirInternal,"kmt.db",File.DirInternal&theDir,"cedex_kmt.db") - File.Copy(File.DirInternal,"errorLog.db",File.DirInternal&theDir,"cedex_errorLog.db") - ToastMessageShow("BD copiada!", False) - Catch - ToastMessageShow("No se pudo hacer la copia: "&LastException, True) - End Try - Log("rootExternal="&p) - Log("File.DirInternal="&File.DirInternal) - Log("File.DirInternal="&File.DirInternal) - Else - ToastMessageShow("Sin permisos", False) - End If -End Sub - -'Hace visible y trae al frente 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 - -'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 horizontalmente dentro de un elemento superior. -Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore - elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) -End Sub - -'Centra un panel verticalmente dentro de un elemento superior. -Sub centraPanelV(elemento As Panel, altoElementoSuperior As Int) 'ignore - elemento.Top = Round(altoElementoSuperior/2)-(elemento.Height/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 - -'Regresa la fecha en el formato "MM/dd/yyyy" -Sub traeFecha As String 'ignore - DateTime.DateFormat = "MM/dd/yyyy" - Private sDate As String = DateTime.Date(DateTime.Now) - Private sTime As String = DateTime.Time(DateTime.Now) - Return sDate & sTime -End Sub - -'Guarda el nombre y version de la app en CAT_VARIABLES. -Sub guardaAppInfo(skmt As SQL) 'ignore - skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'") - skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$) - skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_VERSION', '${Application.VersionName}')"$) -End Sub - -'Muestra en el Log los campos y valores que regresan en el JobDone. -Sub logJobDoneResultados(resultado As DBResult) 'ignore - 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 - -'Regresa la base de datos especificada ya inicializada. -Sub inicializaBD(ruta As String, BDName As String) As SQL 'ignore - Dim skmt As SQL - If File.Exists(ruta, BDName) = False Then - File.Copy(File.DirAssets, BDName, ruta, BDName) - LogColor($"Copiamos ${BDName} de ${File.DirAssets} a ${ruta}"$,Colors.Green) - End If - skmt.Initialize(ruta, BDName, True) - Return skmt -End Sub - -'Agrega una columna a la tabla especificada. -'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC) -'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO") -Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore - Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla - Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$) - c.Position = 0 - If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos - db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) - Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$) - End If - Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch - Try - db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) - Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$) - Catch - Log(LastException) - End Try - End Try -End Sub - -'Regresa el DBReqServer desde CAT_VARIABLES o "N/A" si no existe. -Sub traeDBReqServerDeBD(dbx As SQL) As String 'ignore - Dim srvr As String = "N/A" - Dim rs As ResultSet = dbx.ExecQuery("select CAT_VA_VALOR from cat_variables where CAT_VA_DESCRIPCION = 'SERVER'") - If rs.RowCount > 0 Then - rs.NextRow - srvr = rs.GetString("CAT_VA_VALOR") - End If - Return srvr -End Sub - -'Regresa el valor de intervalo desde CAT_VARIABLES o "30" si no existe. -Sub traeIntervaloDeBD As String 'ignore - Dim intrvl As String = "30" - Dim rs As ResultSet = db.ExecQuery("select valor from cat_variables where nombre = 'intervalo'") - If rs.RowCount > 0 Then - rs.NextRow - intrvl = rs.GetString("valor") - End If - Return intrvl -End Sub - -'Regresa el valor timeout desde CAT_VARIABLES o "9000" si no existe. -Sub traeTimeoutDeBD As String 'ignore - Dim tmout As String = "9000" - Dim rs As ResultSet = db.ExecQuery("select valor from cat_variables where nombre = 'timeout'") - If rs.RowCount > 0 Then - rs.NextRow - tmout = rs.GetString("valor") - End If - Return tmout -End Sub - -'Crea una notificación con el "body" dado y regresa el objeto. -Sub CreateNotification (Body As String) As Notification 'ignore - Dim notification As Notification - notification.Initialize2(notification.IMPORTANCE_LOW) - notification.Icon = "icon" - notification.SetInfo("Tester", Body, Main) - Return notification -End Sub - -'Genera una notificacion con importancia alta -Sub notiHigh(title As String, body As String, id As String, activity As Object) 'ignore - activity = Main - Private notif As Notification - notif.Initialize2(notif.IMPORTANCE_HIGH) - notif.Icon = "icon" - notif.Vibrate = False - notif.Sound = False - notif.AutoCancel = True -' If logger Then Log("notiHigh: "&title) - notif.SetInfo(title, body, activity) -' Log("notiHigh SetInfo") - notif.Notify(id) -End Sub - -'Regresa el objeto de una notificacion con importancia baja -Sub notiLowReturn(title As String, Body As String, id As Int) As Notification 'ignore - Private notification As Notification - notification.Initialize2(notification.IMPORTANCE_LOW) -' Log("notiLowReturn: "&title) - notification.Icon = "icon" - notification.Sound = False - notification.Vibrate = False - notification.SetInfo(title, Body, Main) - notification.Notify(id) -' Log("notiLowReturn SetInfo") - Return notification -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 = db.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") - c.Position = 0 - a = C.GetString("ID_ALMACEN") - c.Close - Return a -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 = db.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 - -'Mandamos los pedidos pendientes (pc_envio_ok <> 1). -Sub mandaPendientes 'ignore - Private logger As Boolean = False - 'PEDIDO_CLIENTE (Pendientes) - Private c As Cursor = db.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_envio_ok <> 1") - If logger Then Log($"Pedido_Cliente PENDIENTE: ${c.RowCount}"$) - Private almacen As String = traeAlmacen - Private ruta As String = traeRuta - If c.RowCount>0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "DELETE_PEDIDO_MARDS_PC" - cmd.Parameters = Array As Object(almacen, ruta, c.GetString("PC_CLIENTE") ) - reqManager.ExecuteCommand(cmd , "DEL_PC") - - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "insert_pedidos_MARDS" - If logger Then Log($"${c.GetString("PC_CLIENTE")}, ${almacen}"$) - 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")) - reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_head_${c.GetString("PC_CLIENTE")}"$) - Next - End If - - 'PEDIDO (Pendientes) - c=Starter.skmt.ExecQuery("SELECT PC_ENVIO_OK, 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_cliente left join PEDIDO where pc_cliente = pe_cliente and pc_envio_ok <> 1") - If logger Then Log($"Pedido PENDIENTE: ${c.RowCount}"$) - If c.RowCount>0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim cmd As DBCommand - - cmd.Initialize - cmd.Name = "DELETE_PEDIDO_MARDS_PE" - cmd.Parameters = Array As Object(almacen, ruta,c.GetString("PE_CLIENTE") ) - reqManager.ExecuteCommand(cmd , "DEL_PE") - - 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")) - reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}"$) - Next - End If - - 'ABONOS - Dim ab As Cursor = db.ExecQuery($"SELECT * from ABONOS where a_enviado is null"$) - If logger Then 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_MARDS" - 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") ) - reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) - If logger Then Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) - Next - End If - ab.Close -End Sub - -'Borra el pedido del cliente actual. -'Borra los registros de la tabla "pedido" y "pedido_cliente" -'Actualiza las tablas "cat_gunaprod" y "kmt_info". -Sub borraPedidoClienteActual As String - Private thisC As Cursor - thisC=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") - If thisC.RowCount>0 Then - For i=0 To thisC.RowCount -1 - thisC.Position=i - Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(thisC.GetString("PE_CANT"),thisC.GetString("PE_PROID"))) - Starter.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen, thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1)) - Next - End If - Starter.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") - Starter.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)") - Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)") - Return 1 -End Sub - -'Regresa si se debe de usar el intent de importar la base d datos desde Whatsapp. -Sub traeUsarIntentBDWA As Boolean 'ignore - Private BDWA As Boolean = False - Private x As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'"$) - If x.RowCount > 0 Then - x.Position = 0 - If x.GetString("CAT_VA_VALOR") = "true" Then BDWA = True - End If -' Log($"cb_importarBDWA = ${BDWA}"$) - Return BDWA -End Sub - -' Se revisa si hay una intención (intent) de abrir una base de datos y si es así, entonces se importa esa base de datos. -Sub importaBDDesdeWhatsApp - Private tmpBDWA As Boolean = traeUsarIntentBDWA - If Not(in.IsInitialized) Then in = B4XPages.GetNativeParent(B4XPages.MainPage).GetStartingIntent ' Si se usa esta funcion en Mainpage, se pone "Me" en lugar de B4XPages.MainPage. - If Not(intentUsado) And in <> Null Then -' Log(in) - intentUsado = True -' Log(in.As(String)) - If in.GetData <> Null Then - Dim XmlData As String - XmlData = in.GetData - 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 ToastMessageShow("BD cargada desde Whatsapp", False) - Catch - Log(LastException) - End Try -' ExitApplication - db.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'") - db.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${tmpBDWA}')"$) - Private a As Cursor = db.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'APP_NAME'"$) - If a.RowCount > 0 Then - a.Position = 0 - ToastMessageShow($"BD de "${a.GetString("CAT_VA_VALOR")}" cargada."$, True) - End If - End If - End If -End Sub \ No newline at end of file