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