diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 5d35772..ec19c44 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -5,7 +5,6 @@ Type=Class
Version=9.85
@EndOfDesignText@
#Region Shared Files
-#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
'###########################################################################################################
@@ -20,8 +19,6 @@ Version=9.85
'###########################################################################################################
#End Region
-'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
-
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
@@ -30,14 +27,14 @@ Sub Class_Globals
Public principal As C_Principal 'Antes seleccion
Public clientes As C_Clientes 'Antes Colonia
Public cliente As C_Cliente 'Antes fila
- Public productos As C_Productos 'Antes colonia2
- Public updateAvailable As C_updateAvailable
-' Public mapas As C_Mapas
-' Public nuevoCliente As C_NuevoCliente
- Public ticketsDia As C_TicketsDia 'Antes buscar
+' Public productos As C_Productos 'Antes colonia2
+' Public updateAvailable As C_updateAvailable
+'' Public mapas As C_Mapas
+'' Public nuevoCliente As C_NuevoCliente
+' Public ticketsDia As C_TicketsDia 'Antes buscar
Public noVenta As C_NoVenta 'Antes nopago
Public nota As C_Nota 'Antes tarjeta
- Public promos As C_Promos
+' Public promos As C_Promos
Public historico As C_Historico 'Antes historico
Dim reqManager As DBRequestManager
@@ -90,6 +87,9 @@ Sub Class_Globals
Private l_server As Label
Public rutaBDBackup As String = ""
Private b_envioBD As Button
+ Dim kh As kms_helperSubs
+ Private p_login As Panel
+ Private l_version As Label
End Sub
Public Sub Initialize
@@ -105,7 +105,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
' Root.LoadLayout("MainPage")
Root.LoadLayout("login")
- B4XPages.SetTitle(Me, "Kelloggs Preventa")
+ B4XPages.SetTitle(Me, "Durakelo")
login.Initialize
B4XPages.AddPage("Login", login)
principal.Initialize
@@ -114,350 +114,271 @@ Private Sub B4XPage_Created (Root1 As B4XView)
B4XPages.AddPage("Clientes", clientes)
cliente.Initialize
B4XPages.AddPageAndCreate("Cliente", cliente)
- productos.Initialize
- B4XPages.AddPage("Productos", productos)
- updateAvailable.Initialize
- B4XPages.AddPage("updateAvailable", updateAvailable)
- mapas.Initialize
- B4XPages.AddPage("Mapas", mapas)
- nuevoCliente.Initialize
- B4XPages.AddPageAndCreate("NuevoCliente", nuevoCliente)
- ticketsDia.Initialize
- B4XPages.AddPage("TicketsDia", ticketsDia)
+' productos.Initialize
+' B4XPages.AddPage("Productos", productos)
+' updateAvailable.Initialize
+' B4XPages.AddPage("updateAvailable", updateAvailable)
+' mapas.Initialize
+' B4XPages.AddPage("Mapas", mapas)
+' nuevoCliente.Initialize
+' B4XPages.AddPageAndCreate("NuevoCliente", nuevoCliente)
+' ticketsDia.Initialize
+' B4XPages.AddPage("TicketsDia", ticketsDia)
noVenta.Initialize
B4XPages.AddPage("NoVenta", noVenta)
nota.Initialize
B4XPages.AddPage("Nota", nota)
- pedidos.Initialize
- B4XPages.AddPage("Pedidos", pedidos)
- promos.Initialize
- B4XPages.AddPage("Promos", promos)
+' pedidos.Initialize
+' B4XPages.AddPage("Pedidos", pedidos)
+' promos.Initialize
+' B4XPages.AddPage("Promos", promos)
historico.Initialize
B4XPages.AddPage("Historico", historico)
- checklist.Initialize
- B4XPages.AddPage("CheckList", checklist)
- ruta = Starter.ruta
+' checklist.Initialize
+' B4XPages.AddPage("CheckList", checklist)
+' ruta = Starter.ruta
ruta = File.DirInternal
- Starter.tiempos.Initialize
+ kh.Initialize(Me, "kh")
+' If(FirstTime) Then
+' g.Initialize("GPS")
+' End If
+ ' se crea o no el archivo de la base de ddatos de kmt
+ 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE
+ 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA
+ 'SI SE REGRESA A ESTE ACTIVIDAD.
+' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
+' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
+ kh.guardaAppInfo(Starter.skmt)
Dim sDate, sTime As String
DateTime.DateFormat = "yyyyMMdd"
sDate=DateTime.Date(DateTime.Now)
- Starter.db.ExecNonQuery("DROP TABLE IF EXISTS PEDIDO3")
- Starter.db.ExecNonQuery("CREATE TABLE PEDIDO3 (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS DESC_CLIENTES (DC_CL_CLIENTE TEXT, CAT_CL_DESCUENTO_SS TEXT, CAT_CL_DESCUENTO_RTEC TEXT, CAT_CL_DESCUENTO_PING TEXT, CAT_CL_TIPOCLIENTE TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_DESCUENTOS_SKU (CAT_DS_CLIENTE TEXT, CAT_DS_PRODID TEXT, CAT_DS_PORCENTAJE TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENVIOS (HE_FECHA TEXT, HE_CUANTOS TEXT, HE_TIPO TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FOTOS (HF_FOTO BLOB, HF_CUENTA TEXT, HF_IDENCUESTA TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_IMPRESO (CI_CUENTA TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_MONTO (CPM_IDPROMO TEXT, CPM_MONTO TEXT, CPM_PROID TEXT, CPM_CLIENTE TEXT, CPM_CANT TEXT, CPM_RANGO TEXT, CPM_DESC TEXT)")
- Starter.db.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_EXHIBIDORES2 (HIST_EX_ID_CLIENTE TEXT, HIST_EX_TIPO TEXT, HIST_EX_CANT TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PROMO_WHATS(HIST_CLIENTE TEXT, HIST_RESPUESTA_PROMO)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RMI(CAT_GP_ID TEXT,CAT_GP_NOMBRE TEXT,CAT_GP_PRECIO TEXT)")
- ''' PARA LO DE DOE---
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD_DOE (CAT_GP_ID TEXT,CAT_GP_NOMBRE TEXT,CAT_GP_IMP1 TEXT,CAT_GP_IMP2 TEXT,CAT_GP_PRECIO TEXT,CAT_GP_CLASIF TEXT,CAT_GP_STS TEXT,CAT_GP_TIPO TEXT,CAT_GP_SUBTIPO TEXT,CAT_GP_IMG TEXT,CAT_GP_ALMACEN TEXT,CAT_GP_TIPOPROD TEXT,CAT_GP_INICIATIVA TEXT,CAT_GP_DEV TEXT,CAT_GP_CODPROMO TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_DOE (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
- ''' FIN DOE
+ Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS PEDIDO3")
+' skmt.ExecNonQuery("DROP VIEW TOTAL_MARCAS")
- Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
- c=Starter.db.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'")
- c.Position = 0
- If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
- Starter.db.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
- End If
- Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
- Try
- Starter.db.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
- Catch
- Log(LastException)
- End Try
- End Try
- Try 'Agregamos columna fecha a usuarioa
- c=Starter.db.ExecQuery("SELECT fecha FROM usuarioa")
- Catch
- LogColor("Agregamos columna fecha a usuarioa", Colors.red)
- Starter.db.ExecNonQuery("ALTER TABLE usuarioa ADD COLUMN FECHA TEXT")
- End Try
-' If sDate = "20190523" Then
-' Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
-' Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.server))
-' End If
-' Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
-' Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", "MAIN"))
- c=Starter.db.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
+ Starter.skmt.ExecNonQuery("CREATE VIEW IF NOT EXISTS CATALOGO AS Select CAT_GP_CLASIF, CAT_GP_ID FROM CAT_GUNAPROD UNION Select CAT_GP_CLASIF, CAT_GP_ID FROM CAT_GUNAPROD2 GROUP BY CAT_GP_CLASIF, CAT_GP_ID")
+ Starter.skmt.ExecNonQuery("create view IF NOT EXISTS total_marcas AS 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")
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_EXHIBIDORES (CAT_EX_ID TEXT, CAT_EX_TIPO TEXT, CAT_EX_VALOR TEXT)")
+ Starter.skmt.ExecNonQuery("CREATE TABLE PEDIDO3 (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT)")
+ If sDate = "20190523" Then
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
+
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",Starter.skmt))
+ End If
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT)")
+
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA2 (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_PRECIO TEXT)")
+
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)")
+
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA5P (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)")
+
+ c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.server))
-' Else
-' c=Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
-' c.Position = 0
-' Starter.server = c.GetString("CAT_VA_VALOR")
-' reqManager.Initialize(Me, Starter.server)
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",Starter.DBReqServer))
+ Else
+ c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
+ c.Position =0
+ Starter.DBReqServer = c.GetString("CAT_VA_VALOR")
End If
-' reqManager.Initialize(Me, Starter.server)
-' Activity.LoadLayout("login")
- Label1.Text = Application.VersionName
-
-' Log("Pedimos permisos de almacenamiento externo")
-' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
-' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
-' If Result Then Log("Tenemos permisos de escritura externa.")
- c=Starter.db.ExecQuery("SELECT COUNT(*) as CUANTOS FROM TMP_INSPECCION_AUTO_DIARIA")
- c.Position = 0
- CUANTOS = c.GetString("CUANTOS")
- c.Close
- If CUANTOS = 0 Then
- Dim theDir As String
- If File.IsDirectory("/","kmts") Then
- theDir = "/kmts"
- End If
- Try
- File.MakeDir(File.DirInternal,"kmts")
- theDir = "/kmts"
- Catch
- theDir = ""
- End Try
- Try
- foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista1.png"))
- Dim SALIDA As OutputStream
- SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO1.jpg", False)
- SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
- SALIDA.Close
-' If Logger Then LogColor("** ** Creamos FOTO1.jpg en "&File.DirInternal, Colors.Blue)
- Catch
- Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
- End Try
- Try
- foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista3.png"))
- Dim SALIDA As OutputStream
- SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO2.jpg", False)
- SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
- SALIDA.Close
- Catch
- Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
- End Try
- Try
- foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista2.png"))
- Dim SALIDA As OutputStream
- SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO3.jpg", False)
- SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
- SALIDA.Close
- Catch
- Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
- End Try
- Try
- foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista4.png"))
- Dim SALIDA As OutputStream
- SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO4.jpg", False)
- SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
- SALIDA.Close
- Catch
- Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
- End Try
- End If
-' Dim ph As Phone 'Get Id Device
- Dim DeviceID As String = Starter.ph.GetSettings("android_id").ToUpperCase
- If logger Then Log($"Marca: ${Starter.ph.manufacturer}, Modelo: ${Starter.ph.model}"$)
- If logger Then LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue)
-' If Logger Then LogColor("Revisa permisos Phone_State", Colors.Green)
- 'este codigo es para lo del menu
-' PopupMenu.Initialize("PopupMenu", b_menu)
-' PopupMenu.AddMenuItem(0, 0, "View")
-' PopupMenu.AddMenuItem(1, 1, "Edit")
-' PopupMenu.AddMenuItem(2, 2, "Details")
-' PopupMenu.AddMenuItem(3, 3, "Remove")
- ' menu fin
-' Subs.borraArribaDe100Errores
- Log("Pedimos permisos de estado del cel")
- rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE)
- Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
+ Dim P As PhoneId
+ 'user.Text = P.GetDeviceId
+ Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
+ Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then
- Dim Phn As PhoneId
- IMEN.Text = "" 'Phn.GetDeviceId
- IMEI ="" ' Phn.GetDeviceId
- If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue)
+ Dim P As PhoneId
+ 'user.Text = P.GetDeviceId
+ IMEI = P.GetDeviceId
+ IMEI = ""
+ Else
+ If logger Then Log("Sin permisos para leer los datos del celular")
End If
- Log("Permisos cel terminados")
-
+
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
- Wait For B4XPAge_PermissionResult (Permission As String, Result As Boolean)
+ Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then
StartService(Tracker)
- If logger Then Log("Start Tracker")
- Else
- ToastMessageShow("Sin permisos para GPS", True)
+ Log("Start Tracker")
End If
-
-' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT"))
-' Log("REVISAMOS PERMISOS DE BT")
-' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
-' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
-' If Result Then Log("Tenemos permisos de bluetooth.")
-' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
-' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE))
+ p_login.Height = Root.Height
+ p_login.Width = Root.Width
+
End Sub
Sub B4XPage_Appear
-' server = "http://keymon.com.mx:1782"
-' server = "http://201.99.139.28:1782"
-' server = "http://177.244.63.54:1782"
- reqManager.Initialize(Me, Starter.server)
- Starter.montoActual = 0
- Starter.clientesTotal = 0
- Starter.clientesVenta = 0
- Starter.clientesVisitados = 0
- almacen = 0
- Starter.rutaPreventa = 0
- Starter.CANTIDADPROD = 0
+ l_version.Text = Application.VersionName
+' copiaDB
+' server = "http://10.0.0.205:1782"
+
+ reqManager.Initialize(Me, Starter.DBReqServer)
+ Log(Starter.DBReqServer)
+' If g.GPSEnabled=False Then
+ ' ToastMessageShow("Habilitar el GPS", True)
+ ' StartActivity(g.LocationSettingsIntent)
+ ' Else
+ ' g.Start(0,0)
+ ' End If
+' user.Text ="GPS"
+ c = Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
+ c.Position =0
+ If c.GetString("CUANTOS") = 0 Then
+ cmd.Initialize
+ cmd.Name = "select_fechat"
+ reqManager.ExecuteQuery(cmd , 0, "fecha")
+
+ 'Msgbox("AJUSTAR FECHA","AVISO")
+ B4XPage_Appear
+ Else
+ c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
+ c.Position =0
+ Dim sDate,sTime As String
+
+ DateTime.dateFormat = "yyyyMMddHHmm"
+ sDate=DateTime.Date(DateTime.Now)
+
+ 'Msgbox("aaa"& sDate,"aviso")
+ If c.GetString("CAT_VA_VALOR") > sDate & sTime Then
+' Msgbox("AJUSTAR LA FECHA YA QUE ES MENOR AL SISTEMA " & " "& c.GetString("CAT_VA_VALOR") & " " & sDate & sTime ,"AVISO")
+ DateTime.TimeFormat = "MM/dd/yyyyHH:mm:ss"
+ B4XPage_Appear
+ End If
+ DateTime.TimeFormat = "MM/dd/yyyyHH:mm:ss"
+ End If
c.Close
- c=Starter.db.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
+ c = Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
c.Position =0
CUANTOS = c.GetString("CUANTOS")
c.Close
If CUANTOS > 0 Then
- c=Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
+ c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
c.Position =0
If c.GetString("CAT_VA_VALOR") = "743" Then
Entrar.Visible = True
End If
c.Close
Else
- Log("INSERTAMOS CODIGO EN CAT_VARIABLES")
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO","743"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO","0"))
End If
- c=Starter.db.ExecQuery2("select COUNT(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
+
+ c=Starter.skmt.ExecQuery2("select COUNT(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
End If
- D=Starter.db.ExecQuery("select COUNT(*) AS CUANTOS from version")
- D.Position=0
- If D.GetString("CUANTOS") > 0 Then
- c=Starter.db.ExecQuery("select NOVERSION from version")
- c.Position = 0
- If c.GetString("NOVERSION") = "2.1" Then
- Starter.db.ExecNonQuery("delete from VERSION")
- End If
- c.Close
+
+ c=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS FROM VERSION")
+ c.Position= 0
+
+ If c.GetString("CUANTOS") = 0 Then
+ Starter.skmt.ExecNonQuery("delete from VERSION")
+ Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.6"))
End If
- D.Close
- D=Starter.db.ExecQuery("select COUNT(*) AS CUANTOS from version")
- D.Position=0
- If D.GetString("CUANTOS") > 0 Then
- c=Starter.db.ExecQuery("select NOVERSION from version")
- c.Position = 0
- If c.GetString("NOVERSION") <> "2.95" Then
- Msgbox("INSTALAR NUEVO APK" ,"AVISO") 'ignore
- B4XPage_Appear
- End If
- c.Close
+ c.Close
+
+ c=Starter.skmt.ExecQuery("select NOVERSION FROM VERSION")
+ c.Position = 0
+
+ If c.GetString("NOVERSION") <> "2.6" Then
+' Msgbox("VERSION INCORRECTA SOLICITAR O DESCARGAR LA NUEVA","ALERTA")
+ B4XPage_Appear
End If
+ Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
+ Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
+ If Result Then
+ StartService(Tracker)
+ If logger Then Log("Start Tracker")
+ Else
+ ToastMessageShow("No permission", True)
+ End If
+ Starter.usuario = kh.traeUsuarioDeDB(Starter.skmt)
+' dameUsuario 'Obtenemos el usuario registrado
+ CallSubDelayed(FirebaseMessaging, "SubscribeToTopics")
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Entrar_Click
- DateTime.DateFormat = "yyyyMMdd"
- If user.Text = "ALTERNO" Then
- c=Starter.db.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
- c.Position =0
- Starter.server = c.GetString("CAT_CO_CONFIGURACION")
- alterno = c.GetString("CAT_CO_RESULTADO")
- c.Close
- If alterno = 1 Then
- Starter.db.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER"))
- Starter.db.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER"))
- Else if alterno = 2 Then
- Starter.db.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER"))
- Starter.db.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER"))
- End If
- c=Starter.db.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
- c.Position =0
- Starter.server = c.GetString("CAT_CO_CONFIGURACION")
- user.Text = Starter.server
- c.Close
-' reqManager.Initialize(Me, Starter.server)
- else if user.Text = "KMTSKLL1" Then
- Starter.db.ExecNonQuery("delete from usuarioa")
- Starter.db.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?,?)", Array As Object(user.Text, pass.Text, DateTime.Date(DateTime.Now)))
- Starter.db.ExecNonQuery("delete from cat_almacen")
- Starter.db.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text))
- Starter.db.ExecNonQuery("delete from VERSION")
- Starter.db.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95"))
+ If user.Text = "ROOT" Then
+ Starter.skmt.ExecNonQuery("delete from usuarioa")
+ Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text))
+
+ Starter.skmt.ExecNonQuery("delete from cat_almacen")
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text))
B4XPages.ShowPage("Principal")
End If
-' c=Starter.db.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
- c=Starter.db.ExecQuery2($"select count(*) as EXISTE1 from usuarioa where usuario = ? and fecha = ${DateTime.Date(DateTime.Now)}"$, Array As String(user.Text))
+
+ c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
c.Position=0
existe = c.GetString("EXISTE1")
-' Log($"${existe}, ${DateTime.Date(DateTime.Now)}, ${user.Text}"$ )
+
'existe = 1
If existe = 0 Then
'skmt.ExecNonQuery("delete from usuarioa")
Dim cmd As DBCommand
cmd.Initialize
- cmd.Name = "select_usuario_guna_KELL"
+ cmd.Name = "select_usuario_guna_DUR"
cmd.Parameters = Array As Object(user.Text, pass.Text)
reqManager.ExecuteQuery(cmd , 0, "usuario")
+
Dim cmd As DBCommand
cmd.Initialize
- cmd.Name = "select_version_KELL"
- Starter.reqManager.ExecuteQuery(cmd , 0, "version")
+ cmd.Name = "select_version_DUR"
+ reqManager.ExecuteQuery(cmd , 0, "version")
Else
- Subs.iniciaActividad("Principal")
-' B4XPages.ShowPage("Principal")
+ B4XPages.ShowPage("Principal")
End If
+
End Sub
Sub JobDone(Job As HttpJob)
- Log("JOBDONE MAINPAGE")
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
- If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "version" Then 'query tag
For Each records() As Object In result.Rows
- Starter.db.ExecNonQuery("delete from VERSION")
+ Starter.skmt.ExecNonQuery("delete from VERSION")
Dim CAT_VE_VERSION As String = records(result.Columns.Get("CAT_VE_VERSION"))
- Starter.db.ExecNonQuery("delete from VERSION")
- Starter.db.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
+ Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
+ If CAT_VE_VERSION <> "2.6" Then
+ Msgbox("VERSION INCORRECTA SOLICITAR O DESCARGAR LA NUEVA","ALERTA")
+ B4XPage_Appear
+ End If
Next
End If
End If
-
+
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "agencia" Then 'query tag
For Each records() As Object In result.Rows
Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN"))
Next
+
End If
End If
-
+
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "fecha" Then 'query tag
For Each records() As Object In result.Rows
- Starter.FECHA_HOY = records(result.Columns.Get("FECHA"))
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA", Starter.FECHA_HOY))
+ Dim FECHA_HOY As String = records(result.Columns.Get("FECHA"))
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",FECHA_HOY))
Next
End If
End If
-
+
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "usuario" Then 'query tag
For Each records() As Object In result.Rows
Dim name As String = records(result.Columns.Get("USUARIO"))
Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA"))
- If logger Then Log(name)
- ' Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO"))
+' Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO"))
Next
paso1 = 1
End If
@@ -466,66 +387,54 @@ Sub JobDone(Job As HttpJob)
End If
If paso1 =1 Then
- If name = "OKActivo" Then
- LogColor("Borramos e insertamos a usuarioa", Colors.green)
- DateTime.DateFormat = "yyyyMMdd"
- Starter.db.ExecNonQuery("delete from usuarioa")
- Starter.db.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?,?)", Array As Object(user.Text, pass.Text, DateTime.Date(DateTime.Now)))
- Starter.db.ExecNonQuery("delete from cat_almacen")
- Starter.db.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN))
- almacen = ID_ALMACEN
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
-' B4XPages.ShowPage("Principal")
- Subs.iniciaActividad("principal")
- Else If name = "OKExpirado" Then
- Msgbox("Usuario Expirado llamar al administrador","") 'ignore
- Else If name = "OKCancelado" Then
- Msgbox("Usuario Cancelado llamar al administrador","") 'ignore
+ If name = "OKActivo" & IMEI Then
+ Starter.skmt.ExecNonQuery("delete from usuarioa")
+ Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text))
+ Starter.skmt.ExecNonQuery("delete from cat_almacen")
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN))
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
+ B4XPages.ShowPage("Principal")
+ Else If name = "OKExpirado"& IMEI Then
+ Msgbox("Usuario Expirado llamar al administrador","")
+ Else If name = "OKCancelado"& IMEI Then
+ Msgbox("Usuario Cancelado llamar al administrador","")
Else
- Msgbox("Usuario o password No validos","") 'ignore
+ Msgbox("Usuario o password No validos","")
End If
paso1 = 0
End If
End Sub
-Private Sub B4XPage_CloseRequest As ResumableSub
+Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
- 'Return True to close, False to cancel
- Log("BACK")
- If Panel1.Visible Then
- Panel1.Visible = False
- Entrar.Visible = True
- Return True
- Else
- If logger Then Log("Saliendo")
- B4XPages.ClosePage(Me)
- Subs.cierraActividades
- Return True
+ If key=KeyCodes.KEYCODE_BACK Then
+ ' I want to capture the key here so I return True
+ 'StartActivity(Main)
+ ExitApplication
+ 'Return True
End If
+ ' Returning False signals the system to handle the key
+ Return False
End Sub
Sub GPS_LocationChanged (Location1 As Location)
If user.text = "GPS" Then
+ 'user.Text=Location1.ConvertToMinutes(Location1.Latitude)
+ 'pass.text=Location1.ConvertToMinutes(Location1.Longitude)
user.Text=Location1.Latitude
pass.text=Location1.Longitude
+ 'btnTakePicture.Enabled = True
+ 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps))
End If
End Sub
-Sub PopupMenu_Dismiss
- ToastMessageShow("PopupMenu dismissed", False)
-End Sub
-
Sub PopupMenu_MenuItemClick (ItemId As Int) As Boolean
ToastMessageShow("Item " & ItemId & " clicked.", False)
Return False
End Sub
-Sub b_menu_Click
-' PopupMenu.Show
-End Sub
-
-Sub IMEN_EnterPressed
+Sub PDF_Click
End Sub
@@ -533,57 +442,38 @@ Sub user_EnterPressed
If user.Text = "CODIGO" Then
IMEN.Visible = True
user.Text = ""
- End If
- DateTime.DateFormat = "yyyyMMdd"
- c=Starter.db.ExecQuery2($"select count(*) as EXISTE1 from usuarioa where usuario = ? and fecha = ${DateTime.Date(DateTime.Now)}"$, Array As String(user.Text))
- c.Position=0
- existe = c.GetString("EXISTE1")
- If existe = 1 Then Subs.iniciaActividad("Principal")
+ End If
End Sub
Sub ImageView4_Click
Entrar.Visible = False
-' Starter.server = "http://201.99.139.28:1782"
-' Starter.server = "http://177.244.63.54:1782"
-' Starter.server = "http://keymon.com.mx:1782"
ListView1.Clear
Dim Label1 As Label
Label1 = ListView1.SingleLineLayout.Label
Label1.TextSize = 20
Label1.TextColor = Colors.Black
- If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://10.0.0.205:1782")
- ListView1.AddSingleLine("http://keymon.lat:1782")
- c=Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
+ ListView1.AddSingleLine(Starter.DBReqServer)
+
+ c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
E_SERVER.text = c.GetString("CAT_VA_VALOR")
- Panel1.Visible = True
- Panel1.Width = Root.Width * 0.95
- Panel1.Left = (Root.Width/2) - (Panel1.Width/2)
- Panel1.Top = (Root.Height/2) - (Panel1.Height/2)
- Panel1.Elevation = 100
- Panel1.BringToFront
-End Sub
-
-Private Sub ImageView4_LongClick
-' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
-' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
-' Subs.copiaDB(Result)
+' Panel1.Visible = True
+ kh.panelVisible(Panel1, 0, 0)
End Sub
Sub B_SERVER_Click
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",E_SERVER.text))
- Starter.server = E_SERVER.text
- If logger Then Log("Inicializamos reqManager con " & Starter.server)
- reqManager.Initialize(Me, Starter.server)
- CallSubDelayed(Starter, "reinicializaReqManager")
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",E_SERVER.text))
+ reqManager.Initialize(Me, E_SERVER.text.trim)
+ Starter.DBReqServer = E_SERVER.text.trim
Panel1.Visible = False
Entrar.Visible = True
End Sub
-Sub B_MACIMP_Click
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
+Sub B_FECHA_Click
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
Panel1.Visible = False
End Sub
@@ -591,49 +481,50 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
E_SERVER.text = Value
End Sub
-Sub ImageView1_Click
-
+Sub B_IMPRESORA_Click
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
+ Panel1.Visible = False
End Sub
-Sub B_BorrarFinDia_Click
- p_finDia.Visible = True
- p_finDia.BringToFront
-End Sub
-
-Sub b_fdCancelar_Click
- p_finDia.Visible = False
- p_finDia.SendToBack
-End Sub
-
-Sub b_findiaOk_Click
- c=Starter.db.ExecQuery2("select count(*) as passOk from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ? and CAT_VA_VALOR = ?", Array As String ("FINDIA_PASS", et_autSup.Text))
- c.Position =0
- If c.GetString("passOk") = 1 Or et_autSup.Text = "FinDiaAutOk" Then
- Starter.db.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'")
- ToastMessageShow("Ya se puede hacer FIN DIA!!", True)
- p_finDia.Visible = False
- p_finDia.SendToBack
- Else
- Msgbox("Código de autorización equivocado", "AVISO") 'ignore
- End If
+Sub dameUsuario
+ c=Starter.skmt.ExecQuery("select count(*) as EXISTE1 from usuarioa")
+ c.Position=0
+ existe = c.GetString("EXISTE1")
c.Close
+ If existe > 0 Then
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
+ c.Position=0
+ Starter.usuario = c.GetString("USUARIO")
+ Else
+ Starter.usuario = "SINUSUARIO"
+ End If
End Sub
-'Enviamos la base de datos por correo
-Private Sub b_envioBD_Click
- Public Provider As FileProvider
- Provider.Initialize
- Dim FileName As String = "kmt.db"
- Log("************* : "&Provider.SharedFolder)
- Sleep(1000)
- 'Copy the shared file to the shared folder
- File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName)
- Dim email As Email
- email.To.Add("soporte@keymonsoft.com")
- email.Subject = "Envío base de datos de ruta con problemas."
- 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
- StartActivity(in)
+'Copia la base de datos del almacenamiento interno al externo en el directorio kmts
+Sub copiaDB
+ Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
+ Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
+ If Result Then
+ Dim theDir As String
+ Try
+ File.MakeDir(File.DirRootExternal,"kmts")
+ theDir = "/kmts"
+ Catch
+ theDir = ""
+ End Try
+ Try
+ File.Copy(File.DirInternal,"kmt.db",File.DirRootExternal&theDir,"dura_kmt.db")
+ ToastMessageShow("Listo, copiada a " & File.DirRootExternal&theDir & "/dura_kmt.db", False)
+ LogColor("copiado", Colors.red)
+ Catch
+ ToastMessageShow("No se pudo hacer la copia: "&LastException, True)
+ LogColor("no copiado", Colors.red)
+ End Try
+' Log("rootExternal="&p)
+' Log("File.DirInternal="&File.DirInternal)
+' Log("File.DirRootExternal="&File.DirRootExternal)
+ Else
+ ToastMessageShow("Sin permisos", True)
+ End If
End Sub
diff --git a/B4A/BatteryUtilities.bas b/B4A/BatteryUtilities.bas
new file mode 100644
index 0000000..ebb4448
--- /dev/null
+++ b/B4A/BatteryUtilities.bas
@@ -0,0 +1,126 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Class
+Version=10.2
+@EndOfDesignText@
+'Class module
+Sub Class_Globals
+ Private nativeMe As JavaObject
+
+End Sub
+'Initializes the object.
+Public Sub Initialize
+ nativeMe = Me
+End Sub
+'Return information about the battery status. It returns the following 11 values in an integer Array:
+'EXTRA_LEVEL = current battery level, from 0 To EXTRA_SCALE.
+'EXTRA_SCALE = the maximum battery level possible.
+'EXTRA_HEALTH = the current health constant.
+'EXTRA_ICON_SMALL = the resource ID of a small status bar icon indicating the current battery state.
+'EXTRA_PLUGGED = whether the device is plugged into a Power source; 0 means it is on battery, other constants are different types of Power sources.
+'EXTRA_STATUS = the current status constant.
+'EXTRA_TEMPERATURE = the current battery temperature.
+'EXTRA_VOLTAGE = the current battery voltage level.
+'A value indicating if the battery is being charged or fully charged (If neither it returns 0 Else it returns 1)
+'A value indicating if it is charging via USB (0 = Not USB, 2 = USB)
+'A value indicating if it is charging via AC (0 = Not AC, 1 = AC)
+Public Sub getBatteryInformation () As Int()
+
+ Dim batteryInfo(11) As Int
+ batteryInfo = nativeMe.RunMethod("getBatteryInformation",Null)
+ Return batteryInfo
+
+End Sub
+
+Public Sub getBatteryTechnolgy() As String
+
+ Dim batterytech As String
+ batterytech = nativeMe.RunMethod("getBatteryTechnology",Null)
+ Return batterytech
+
+End Sub
+
+
+
+#If Java
+
+import android.os.BatteryManager;
+import android.os.Bundle;
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+ public int[] getBatteryInformation() {
+
+ int[] mybat = new int[11];
+
+ Intent batteryIntent = ba.context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+
+ int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
+ mybat[0] = level;
+ int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
+ mybat[1] = scale;
+ int health = batteryIntent.getIntExtra(BatteryManager.EXTRA_HEALTH,-1);
+ mybat[2] = health;
+ int icon_small = batteryIntent.getIntExtra(BatteryManager.EXTRA_ICON_SMALL,-1);
+ mybat[3] = icon_small;
+ int plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);
+ mybat[4] = plugged;
+// boolean present = batteryIntent.getExtras().getBoolean(BatteryManager.EXTRA_PRESENT);
+ int status = batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS,-1);
+ mybat[5] = status;
+// String technology = batteryIntent.getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY);
+// BA.Log("Technology = " + technology);
+ int temperature = batteryIntent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,-1);
+ mybat[6] = temperature;
+ int voltage = batteryIntent.getIntExtra(BatteryManager.EXTRA_VOLTAGE,-1);
+ mybat[7] = voltage;
+// int ac = batteryIntent.getIntExtra("plugged",BatteryManager.BATTERY_PLUGGED_AC);
+// mybat[8] = ac;
+// int usb = batteryIntent.getIntExtra("plugged",BatteryManager.BATTERY_PLUGGED_USB);
+// mybat[9] = usb;
+
+ boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
+ status == BatteryManager.BATTERY_STATUS_FULL;
+ mybat[8] = 0;
+ if (isCharging == true) {
+ mybat[8] = 1;
+ }
+
+ // How are we charging?
+ mybat[9] = 0;
+ mybat[10] = 0;
+ int chargePlug = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
+ boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
+ if (usbCharge == true) {
+ mybat[9] = 2;
+ }
+
+ boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
+ if (acCharge == true) {
+ mybat[10] = 1;
+ }
+
+ return mybat;
+ }
+
+
+ public String getBatteryTechnology() {
+
+ Intent batteryIntent = ba.context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+
+ String technology = batteryIntent.getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY);
+
+ return technology;
+ }
+
+
+
+
+
+
+
+#End If
\ No newline at end of file
diff --git a/B4A/C_Calculadora.bas b/B4A/C_Calculadora.bas
deleted file mode 100644
index b9774e4..0000000
--- a/B4A/C_Calculadora.bas
+++ /dev/null
@@ -1,710 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
-Sub Class_Globals
- Private Root As B4XView 'ignore
- Private xui As XUI 'ignore
- '--***---- BOLETA DE LIQUIDACION
- Private P_BOLETA As Panel
- '------ BILLETES
- Private LBL_TMIL As Label
- Private LBL_TQUIN As Label
- Private LBL_TDOS As Label
- Private LBL_TCIEN As Label
- Private LBL_TCIN As Label
- Private LBL_TVEIN As Label
- Private LBL_MIL As Label
- Private LBL_QUIN As Label
- Private LBL_DOSC As Label
- Private LBL_CIEN As Label
- Private LBL_CINCUEN As Label
- Private LBL_VEINTE As Label
- Private EDT_CANVEIN As EditText
- Private EDT_CANCIN As EditText
- Private EDT_CANCIEN As EditText
- Private EDT_CANDOS As EditText
- Private EDT_CANQUIN As EditText
- Private EDT_CANMIL As EditText
- Private Btn_TOTALBILLETE As Button
- Private Pnl_Billete As Panel
- Private Pnl_Moneda As Panel
- Private L_CALCULA_BILLE As Label
- '------ BOTONES MAS Y MENOS
- Private B_MENMIL As Button
- Private B_SUMIL As Button
- Private B_MENQUI As Button
- Private B_SUQUI As Button
- Private B_MENDOS As Button
- Private B_SUDOS As Button
- Private B_MENCIE As Button
- Private B_SUCIEN As Button
- Private B_MENCIN As Button
- Private B_SUCIN As Button
- Private B_MENVEI As Button
- Private B_SUVEI As Button
- '------ MONEDAS
- Private L_DIEZ As Label
- Private L_CINCO As Label
- Private L_DOS As Label
- Private L_UNO As Label
- Private L_CENTAVO As Label
- Private LBL_TDIEZ As Label
- Private LBL_TCI As Label
- Private LBL_TDO As Label
- Private LBL_TUN As Label
- Private LBL_TCEN As Label
- Private EDT_CANCEN As EditText
- Private EDT_CANUN As EditText
- Private EDT_CANDO As EditText
- Private EDT_CANCI As EditText
- Private EDT_CANDIEZ As EditText
- Private L_CALCULA_MONEDA As Label
- Private B_TOTALMONEDA As Button
- '------ BOTONES MAS Y MENOS
- Private B_MENCENT As Button
- Private B_MENUN As Button
- Private B_MENDO As Button
- Private B_MENCI As Button
- Private B_MENDIEZ As Button
- Private B_SUMDIEZ As Button
- Private B_SUMCIN As Button
- Private B_SUMDO As Button
- Private B_SUMUN As Button
- Private B_SUMCENT As Button
- '------ SUMA TOTALES
- Private B_AGREGAMONE As Button
- Private B_AGREGABILL As Button
- Private TOTALES As Label
- Private B_SUM_TOTAL As Button
- Private TOTALBILLETES As Button
- Private TOTALMONEDA As Button
- Private PNL_TOTALES As Panel
- Private LBL_RETURN As Label
- Private IMG_IMPRESORA As Label
- Private LBL_REGRESA As Label
- '--***---- FIN BOLETA
-' Private P_INF_GENERAL As Panel
- Private B_Regresar As Button
-' Private ABORDO As String
- Private a_inicial As String
- Private a_total As String
- Private a_venta As String
- Private a_final As String
- Private a_VENTA_F As String
- Private a_inicial_5 As String
- Private L_INVA As ListView
- Private B_IMP_INV As Button
- Private B_CERRAR_I As Button
- Private Panel_INV_A As Panel
- Private LBL_TVEINTE As Label
- Private B_SUMVEINTE As Button
- Private EDT_CANVEINTE As EditText
- Private B_MENVEINTE As Button
- Private L_VEINTE As Label
- Dim RutaBoleta As String
- Dim Id_Almacen As String
- Dim cursorBoleta As Cursor
- Private Bt_GuardarBoleta As Button
- Private CUANTOS1 As String
- Private Panel9 As Panel
- Private t_tenc As Label
- Private E_RES_E As EditText
- Private B_E_NEXT As Button
- Private Label26 As Label
- Private l_chk_e As Label
- Private Chk_1 As CheckBox
- Private chk_2 As CheckBox
- Private chk_3 As CheckBox
- Private b_chk_e As Button
- Private Panel10 As Panel
- Private chk_1_valor As String
- Private chk_2_valor As String
- Private chk_3_valor As String
- Private p_encuesta As Panel
- Private b_encuesta_1 As Button
- Private b_encuesta_2 As Button
- Private b_encuesta_3 As Button
- Private l_titEncuesta As Label
- Private l_txtEncuesta As Label
- Private encuestaRes As String
- Private botonPresionado As Int
- Private B_IMP2 As Button
- Dim impresoraConectada As Boolean = False
- Private l_categoria2 As Label
- Private l_exhibidor2 As Label
- Private p_exhibidores As Panel
- Private Button1 As Button
- Private b_exhibidor As Button
- Private l_exhibidores3 As Label
- Private l_segmento2 As Label
- Private et_encuesta As EditText
- Private b_encuesta_continuar As Button
- Dim muestraBoleta As Boolean = False
- Private Panel4 As Panel
-
- Private Edt_FH As EditText
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize As Object
- Return Me
-End Sub
-
-'This event will be called once, before the page becomes visible.
-Private Sub B4XPage_Created (Root1 As B4XView)
- Root = Root1
- 'load the layout to Root
- Root.LoadLayout("calculadora")
-End Sub
-
-'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
-
-Sub LLAMA_BOLETA
- '' FECHA DE TELEFONO
- DateTime.DateFormat="dd/MM/yyyy"
- Edt_FH.Text=DateTime.Date(DateTime.Now)
- Subs.panelAnchoAlto(PNL_TOTALES, Root.Width, Root.Height)
- PNL_TOTALES.Visible=True
- Pnl_Billete.Visible=True
- Pnl_Moneda.visible=True
- LBL_RETURN.Visible=False
- LBL_REGRESA.Visible=False
- P_BOLETA.Visible=True
-' P_INF_GENERAL.Visible=False
- LBL_REGRESA.Visible=True
- Private c As Cursor = Starter.skmt.ExecQuery("select * from TMP_CAT_BILLETE join TMP_CAT_MONEDAS")
- If c.RowCount > 0 Then
- c.Position = 0
- Log("==================== CALCULADORA "&c.ColumnCount)
-' Traemos billetes
- EDT_CANMIL.Text = "0"
- If IsNumber(c.GetString("TMP_BILLE_MIL")) Then EDT_CANMIL.Text = c.GetString("TMP_BILLE_MIL")
- EDT_CANQUIN.Text = "0"
- If c.GetString("TMP_BILLE_QUINIENTOS")<> Null Then EDT_CANQUIN.Text = c.GetString("TMP_BILLE_QUINIENTOS")
- EDT_CANDOS.Text = "0"
- If c.GetString("TMP_BILLE_DOSCIENTOS") <>Null Then EDT_CANDOS.Text = c.GetString("TMP_BILLE_DOSCIENTOS")
- EDT_CANCIEN.Text = "0"
- If c.GetString("TMP_BILLE_CIEN")<> Null Then EDT_CANCIEN.Text = c.GetString("TMP_BILLE_CIEN")
- EDT_CANCIN.Text = "0"
- If c.GetString("TMP_BILLE_CINCUENTA")<> Null Then EDT_CANCIN.Text = c.GetString("TMP_BILLE_CINCUENTA")
- EDT_CANVEIN.Text = "0"
- If c.GetString("TMP_BILLE_VEINTE")<> Null Then EDT_CANVEIN.Text = c.GetString("TMP_BILLE_VEINTE")
-' Traemos monedas
- EDT_CANVEINTE.Text = "0"
- If c.GetString("TMP_MON_VEINTE")<> Null Then EDT_CANVEINTE.Text = c.GetString("TMP_MON_VEINTE")
- EDT_CANDIEZ.Text = "0"
- If c.GetString("TMP_MON_DIEZ")<> Null Then EDT_CANDIEZ.Text = c.GetString("TMP_MON_DIEZ")
- EDT_CANCI.Text = "0"
- If c.GetString("TMP_MON_CINCO")<> Null Then EDT_CANCI.Text = c.GetString("TMP_MON_CINCO")
- EDT_CANDO.Text = "0"
- If c.GetString("TMP_MON_DOS")<> Null Then EDT_CANDO.Text = c.GetString("TMP_MON_DOS")
- EDT_CANUN.Text = "0"
- If c.GetString("TMP_MON_UN")<> Null Then EDT_CANUN.Text = c.GetString("TMP_MON_UN")
- EDT_CANCEN.Text = "0"
- If c.GetString("TMP_MON_CENTAVOS")<> Null Then EDT_CANCEN.Text = c.GetString("TMP_MON_CENTAVOS")
- L_CALCULA_BILLE_CLICK
- L_CALCULA_MONEDA_Click
- B_SUM_TOTAL.Text = TOTALBILLETES.Text + TOTALMONEDA.text
- End If
- Starter.boleta = 0
- muestraBoleta = False
- c.Close
-End Sub
-
-'''BILLETES
-Sub L_CALCULA_BILLE_CLICK
- If EDT_CANMIL.Text="" Or EDT_CANQUIN.Text="" Or EDT_CANDOS.Text="" Or EDT_CANCIEN.Text="" Or EDT_CANCIN.Text="" Or EDT_CANVEIN.Text="" Then
- Pnl_Billete.RequestFocus
- Msgbox("Por favor llena todas las cantidades","") 'ignore
- Else
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-'20
-Private Sub EDT_CANVEIN_FocusChanged (HasFocus As Boolean)
- If EDT_CANVEIN.Text = "" Then EDT_CANVEIN.Text = "0"
- EDT_CANVEIN.Text = Round (EDT_CANVEIN.Text)
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUVEI_Click
- If EDT_CANVEIN.Text = "" Then
- EDT_CANVEIN.Text=0
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Else
- EDT_CANVEIN.Text = Round (EDT_CANVEIN.Text + 1)
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENVEI_Click
- If EDT_CANVEIN.Text = "" Then
- EDT_CANVEIN.Text=0
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Else IF EDT_CANVEIN.Text > 0 Then
- EDT_CANVEIN.Text = Round(EDT_CANVEIN.Text -1)
- LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-'50
-Private Sub EDT_CANCIN_FocusChanged (HasFocus As Boolean)
- If EDT_CANCIN.Text = "" Then EDT_CANCIN.Text = "0"
- EDT_CANCIN.Text = Round (EDT_CANCIN.Text)
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUCIN_Click
- If EDT_CANCIN.Text = "" Then
- EDT_CANCIN.Text =0
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- Else
- EDT_CANCIN.Text = Round (EDT_CANCIN.Text + 1)
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENCIN_Click
- If EDT_CANCIN.Text = "" Then
- EDT_CANCIN.Text =0
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- Else IF EDT_CANCIN.Text > 0 Then
- EDT_CANCIN.Text = Round(EDT_CANCIN.Text -1)
- LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-'100
-Private Sub EDT_CANCIEN_FocusChanged (HasFocus As Boolean)
- If EDT_CANCIEN.Text = "" Then EDT_CANCIEN.Text = "0"
- EDT_CANCIEN.Text = Round (EDT_CANCIEN.Text)
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUCIEN_Click
- If EDT_CANCIEN.Text = "" Then
- EDT_CANCIEN.Text = 0
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- Else
- EDT_CANCIEN.Text = Round (EDT_CANCIEN.Text + 1)
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENCIE_Click
- If EDT_CANCIEN.Text = "" Then
- EDT_CANCIEN.Text = 0
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- Else IF EDT_CANCIEN.Text > 0 Then
- EDT_CANCIEN.Text = Round(EDT_CANCIEN.Text -1)
- LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-'200
-Private Sub EDT_CANDOS_FocusChanged (HasFocus As Boolean)
- If EDT_CANDOS.Text = "" Then EDT_CANDOS.Text = "0"
- EDT_CANDOS.Text = Round (EDT_CANDOS.Text)
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUDOS_Click
- If EDT_CANDOS.Text = "" Then
- EDT_CANDOS.Text = 0
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- Else
- EDT_CANDOS.Text = Round (EDT_CANDOS.Text + 1)
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENDOS_Click
- If EDT_CANDOS.Text = "" Then
- EDT_CANDOS.Text = 0
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- Else IF EDT_CANDOS.Text > 0 Then
- EDT_CANDOS.Text = Round(EDT_CANDOS.Text -1)
- LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-'500
-Private Sub EDT_CANQUIN_FocusChanged (HasFocus As Boolean)
- If EDT_CANQUIN.Text = "" Then EDT_CANQUIN.Text = "0"
- EDT_CANQUIN.Text = Round (EDT_CANQUIN.Text)
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUQUI_Click
- If EDT_CANQUIN.Text = "" Then
- EDT_CANQUIN.Text =0
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- Else
- EDT_CANQUIN.Text = Round (EDT_CANQUIN.Text + 1)
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENQUI_Click
- If EDT_CANQUIN.Text = "" Then
- EDT_CANQUIN.Text =0
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- Else IF EDT_CANQUIN.Text > 0 Then
- EDT_CANQUIN.Text = Round(EDT_CANQUIN.Text -1)
- LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-'1000
-Private Sub EDT_CANMIL_FocusChanged (HasFocus As Boolean)
- If EDT_CANMIL.Text = "" Then EDT_CANMIL.Text = "0"
- EDT_CANMIL.Text = Round (EDT_CANMIL.Text )
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
-End Sub
-
-Sub B_SUMIL_Click
- If EDT_CANMIL.Text = "" Then
- EDT_CANMIL.Text = 0
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- Else
- EDT_CANMIL.Text = Round (EDT_CANMIL.Text + 1)
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-Sub B_MENMIL_Click
- If EDT_CANMIL.Text = "" Then
- EDT_CANMIL.Text = 1
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- Else IF EDT_CANMIL.Text > 0 Then
- EDT_CANMIL.Text = Round(EDT_CANMIL.Text -1)
- LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
- Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
- TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
- End If
-End Sub
-
-'''' MONEDAS
-Sub L_CALCULA_MONEDA_Click
- If EDT_CANDIEZ.Text="" Or EDT_CANCI.Text="" Or EDT_CANDO.Text="" Or EDT_CANUN.Text="" Or EDT_CANCEN.Text="" Or EDT_CANVEINTE.Text="" Then
- Msgbox("Por favor llena todas las cantidades","") 'ignore
- Pnl_Billete.RequestFocus
- Else
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- LBL_TVEINTE.Text=L_VEINTE.Tag * EDT_CANVEINTE.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-'0.50
-Private Sub EDT_CANCEN_FocusChanged (HasFocus As Boolean)
- If EDT_CANCEN.Text = "" Then EDT_CANCEN.Text = "0"
- EDT_CANCEN.Text = Round (EDT_CANCEN.Text)
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_SUMCENT_Click
- If EDT_CANCEN.Text = "" Then
- EDT_CANCEN.Text = 0
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- Else
- EDT_CANCEN.Text = Round (EDT_CANCEN.Text + 1)
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_MENCENT_Click
- If EDT_CANCEN.Text = "" Then
- EDT_CANCEN.Text =0
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- Else IF EDT_CANCEN.Text > 0 Then
- EDT_CANCEN.Text = Round(EDT_CANCEN.Text -1)
- LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-'1
-Private Sub EDT_CANUN_FocusChanged (HasFocus As Boolean)
- If EDT_CANUN.Text = "" Then EDT_CANUN.Text = "0"
- EDT_CANUN.Text = Round (EDT_CANUN.Text)
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_SUMUN_Click
- If EDT_CANUN.Text = "" Then
-
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- Else
- EDT_CANUN.Text = Round (EDT_CANUN.Text + 1)
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_MENUN_Click
- If EDT_CANUN.Text = "" Then
- EDT_CANUN.Text = 0
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- Else IF EDT_CANUN.Text > 0 Then
- EDT_CANUN.Text = Round(EDT_CANUN.Text -1)
- LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-'2
-Private Sub EDT_CANDO_FocusChanged (HasFocus As Boolean)
- If EDT_CANDO.Text = "" Then EDT_CANDO.Text = "0"
- EDT_CANDO.Text = Round (EDT_CANDO.Text)
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_SUMDO_Click
- If EDT_CANDO.Text = "" Then
- EDT_CANDO.Text =0
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- Else
- EDT_CANDO.Text = Round (EDT_CANDO.Text + 1)
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_MENDO_Click
- If EDT_CANDO.Text = "" Then
- EDT_CANDO.Text=0
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- Else IF EDT_CANDO.Text > 0 Then
- EDT_CANDO.Text = Round(EDT_CANDO.Text -1)
- LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-'5
-Private Sub EDT_CANCI_FocusChanged (HasFocus As Boolean)
- If EDT_CANCI.Text = "" Then EDT_CANCI.Text = "0"
- EDT_CANCI.Text = Round (EDT_CANCI.Text)
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_SUMCIN_Click
- If EDT_CANCI.Text = "" Then
- EDT_CANCI.Text =0
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- Else
- EDT_CANCI.Text = Round (EDT_CANCI.Text + 1)
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_MENCI_Click
- If EDT_CANCI.Text = "" Then
- EDT_CANCI.Text =0
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- Else IF EDT_CANCI.Text > 0 Then
- EDT_CANCI.Text = Round(EDT_CANCI.Text -1)
- LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-'10
-Private Sub EDT_CANDIEZ_FocusChanged (HasFocus As Boolean)
- If EDT_CANDIEZ.Text = "" Then EDT_CANDIEZ.Text = "0"
- EDT_CANDIEZ.Text = Round (EDT_CANDIEZ.Text)
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_SUMDIEZ_Click
- If EDT_CANDIEZ.Text = "" Then
- EDT_CANDIEZ.Text =0
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- Else
- EDT_CANDIEZ.Text = Round (EDT_CANDIEZ.Text + 1)
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_MENDIEZ_Click
- If EDT_CANDIEZ.Text = "" Then
- EDT_CANDIEZ.Text = 0
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- Else IF EDT_CANDIEZ.Text > 0 Then
- EDT_CANDIEZ.Text = Round(EDT_CANDIEZ.Text -1)
- LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-'20
-Private Sub EDT_CANVEINTE_FocusChanged (HasFocus As Boolean)
- If EDT_CANVEINTE.Text = "" Then EDT_CANVEINTE.Text = "0"
- EDT_CANVEINTE.Text = Round(EDT_CANVEINTE.Text)
- LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
-End Sub
-
-Sub B_MENVEINTE_Click
- If EDT_CANVEINTE.Text = "" Then
- EDT_CANVEINTE.Text = 0
- LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
- Else IF EDT_CANVEINTE.Text > 0 Then
- EDT_CANVEINTE.Text = Round(EDT_CANVEINTE.Text -1)
- LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-Sub B_SUMVEINTE_Click
- If EDT_CANVEINTE.Text = "" Then
- EDT_CANVEINTE.Text =0
- LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
- Else
- EDT_CANVEINTE.Text = Round (EDT_CANVEINTE.Text + 1)
- LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
- B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
- TOTALMONEDA.Text=B_TOTALMONEDA.Text
- End If
-End Sub
-
-''''''TOTALES
-Sub TOTALES_Click
- If TOTALMONEDA.Text="" Or TOTALBILLETES.Text="" Then
- TOTALMONEDA.Text=0
- TOTALBILLETES.Text=0
- B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
- Else
- B_SUM_TOTAL.Text= "$"&(TOTALMONEDA.Text + TOTALBILLETES.Text)
- End If
-End Sub
-
-Sub B_AGREGABILL_Click
- Pnl_Billete.Visible=True
- Pnl_Moneda.Visible=False
- PNL_TOTALES.Visible=False
- LBL_RETURN.Visible=True
- LBL_REGRESA.Visible=True
-End Sub
-
-Sub B_AGREGAMONE_Click
- Pnl_Billete.Visible=False
- Pnl_Moneda.Visible=True
- PNL_TOTALES.Visible=False
- LBL_RETURN.Visible=True
- LBL_REGRESA.Visible=True
-End Sub
-
-Sub LBL_RETURN_Click
- Pnl_Billete.Visible=False
- Pnl_Moneda.Visible=False
- PNL_TOTALES.Visible=True
- LBL_RETURN.Visible=False
- LBL_REGRESA.Visible=False
- ''' CALCULO FINAL
- If TOTALMONEDA.Text="" Or TOTALBILLETES.Text="" Then
- TOTALMONEDA.Text=0
- TOTALBILLETES.Text=0
- B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
- Else
- B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
- End If
-End Sub
-
-Sub LBL_REGRESA_Click
- Pnl_Billete.Visible=False
- Pnl_Moneda.Visible=False
- LBL_RETURN.Visible=False
- LBL_REGRESA.Visible=False
- PNL_TOTALES.Visible=True
- LBL_REGRESA.Visible=True
-End Sub
-
-Sub B_Regresar_Click
-' StartActivity("SELECCION")
- Subs.iniciaActividad("principal")
-' B4XPages.ShowPage("Principal")
-' Activity.Finish
- PNL_TOTALES.Visible=False
- Pnl_Billete.Visible=False
- Pnl_Moneda.visible=False
- PNL_TOTALES.Visible=False
- LBL_RETURN.Visible=False
- LBL_REGRESA.Visible=False
- P_BOLETA.Visible=False
-' P_INF_GENERAL.Visible=True
- LBL_REGRESA.Visible=False
-End Sub
\ No newline at end of file
diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas
index 926187a..f1f93f2 100644
--- a/B4A/C_Cliente.bas
+++ b/B4A/C_Cliente.bas
@@ -11,7 +11,6 @@ Sub Class_Globals
'These variables can be accessed from all modules.
Dim g As GPS
Dim ruta As String
- Dim skmt As SQL
Dim clie_id As String
Dim sDate,sTime As String
Dim usuario As String
@@ -29,7 +28,7 @@ Sub Class_Globals
Dim cuenta As String
' Dim tipov As String
Dim Printer1 As EscPosPrinter
- Dim MAC_IMPRESORA As String
+' Dim MAC_IMPRESORA As String
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
@@ -90,7 +89,7 @@ Sub Class_Globals
Private b_mapa As Button
Dim CUANTOS As String
Private B_IMP As Button
- Dim Toggla As Toggle
+' Dim Toggla As Toggle
Private B_VENTA As Button
Dim PASA_IMP As String
Dim sucursal As String
@@ -135,88 +134,56 @@ Sub Class_Globals
Dim printer As TextWriter
End Sub
+Sub initialize
+
+End Sub
+
Private Sub B4XPage_Created (Root1 As B4XView)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Root = Root1
Root.RemoveAllViews
- Root.LoadLayout("info_gral")
- ' valido donde escribo el archivo de la base de datos de kmt
- ruta = File.DirInternal
- If File.Exists(ruta, "kmt.db") = False Then
- File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
+ Root.LoadLayout("Cliente")
+ c=Starter.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ If c.RowCount > 0 Then
+ c.Position = 0
+ la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
+ cuenta = c.GetString("CAT_CL_CODIGO")
+ La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
+ la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT")
+ la_col.Text = c.GetString("CAT_CL_COLONIA")
+ la_edo.Text = c.GetString("CAT_CL_EDO")
+ la_cp.Text = c.GetString("CAT_CL_CP")
+ l_entre1.Text = c.GetString("CAT_CL_CALLE1")
+ l_entre2.Text = c.GetString("CAT_CL_CALLE2")
+ l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
+ l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
+ la_saldotot.Text = c.GetString("CAT_CL_TELEFONO")
+ la_saldooper.Text = c.GetString("CAT_CL_EMAIL")
+ MONTO_COMPRA = c.GetString("CAT_CL_MTOCOMPRA")
+ FACTURA = c.GetString("CAT_CL_BFACTURA")
+ CREDITO = c.GetString("CAT_CL_BCREDITO")
End If
- skmt.Initialize(ruta,"kmt.db", True)
- c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- s=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- s.Position=0
- c.Position=0
- la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
- cuenta = c.GetString("CAT_CL_CODIGO")
- La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
- la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT")
- la_col.Text = c.GetString("CAT_CL_COLONIA")
- la_edo.Text = c.GetString("CAT_CL_EDO")
- la_cp.Text = c.GetString("CAT_CL_CP")
- l_entre1.Text = c.GetString("CAT_CL_CALLE1")
- l_entre2.Text = c.GetString("CAT_CL_CALLE2")
- l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
- l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
- la_saldotot.Text = c.GetString("CAT_CL_TELEFONO")
- la_saldooper.Text = c.GetString("CAT_CL_EMAIL")
- l_total.Text = s.GetString("TOTAL_CLIE")
- total_cliente = s.GetString("TOTAL_CLIE")
- MONTO_COMPRA = c.GetString("CAT_CL_MTOCOMPRA")
- FACTURA = c.GetString("CAT_CL_BFACTURA")
- CREDITO = c.GetString("CAT_CL_BCREDITO")
-
-
- ' la_producto.Text = c.GetString("CDPROD")
- 'la_numero.Text = c.GetString("CDNUMEXT")
- 'la_nint.Text = c.GetString("CDNUMINT")
- 'la_pob.Text = c.GetString("CFSDOGLOBAL")
-
- 'la_saldooper.Text = c.GetString("CAT_CL_FALTA")
- 'Label10.Text = "FECHA DE ALTA"
- 'Label11.Text = "# ENCUESTAS"
-
- 'c=skmt.ExecQuery("select MGCTA, MGACTT, MGGESTT, MGDTEACTT, COMM from hist_gest where MGCTA In (Select cuenta from cuentaa)")
- 'c.Position=0
- 'la_comm.Text = c.GetString("COMM")
- 'la_actdte.Text = C.GetString("MGDTEACTT")
- 'la_usuario.Text = c.GetString("MGGESTT")
- 'la_resultado.Text = c.GetString("MGACTT")
-
-
- 'la_padre.Text = c.GetString("PR_CF_FECHA_DISP")
- 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT")
-
- ' se crea o no el archivo de la base de ddatos de kmt
- 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE
- 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA
- 'SI SE REGRESA A ESTE ACTIVIDAD.
- 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia"))
- ' Next
- 'End If
- ' SE COMENTA IMPRESORA ANTERIOR
-' If FirstTime Then
-' btAdmin.Initialize("BlueTeeth")
-' cmp20.Initialize("Printer")
-' End If
-
- c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
- c.Position = 0
- MAC_IMPRESORA = c.GetString("CAT_VA_VALOR")
- If MAC_IMPRESORA = "" Then MAC_IMPRESORA = "0"
- Starter.MAC_IMPRESORA = MAC_IMPRESORA
- Log("|" & MAC_IMPRESORA & "|")
- If FirstTime Then
- Printer1.Initialize(Me, "Printer1")
-
+ If s.RowCount > 0 Then
+ s.Position = 0
+ l_total.Text = s.GetString("TOTAL_CLIE")
+ total_cliente = s.GetString("TOTAL_CLIE")
End If
+ c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
+ If c.RowCount > 0 Then
+ c.Position = 0
+ Starter.MAC_IMPRESORA = c.GetString("CAT_VA_VALOR")
+ End If
+ If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0"
+ Log("|" & Starter.MAC_IMPRESORA & "|")
+ Printer1.Initialize(Me, "Printer1")
TOMAR_FOTO = 0
-
+ g.Initialize("GPS")
+ Panel1.Top = La_nombre.Top + La_nombre.Height + 5 : Panel1.left = 0
+ Panel9.Top = La_nombre.Top + La_nombre.Height + 5 : Panel9.left = 0
+ Panel10.Top = La_nombre.Top + La_nombre.Height + 5 : Panel10.left = 0
End Sub
Sub B4XPage_Appear
@@ -229,10 +196,8 @@ Sub B4XPage_Appear
Else
g.Start(0,0)
End If
-
- skmt.Initialize(ruta,"kmt.db", True)
- c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- s=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0
c.Position=0
@@ -282,12 +247,12 @@ Sub B4XPage_Appear
Else
L_QR.Visible = False
End If
- S2=skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
+ S2=Starter.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
S2.Position =0
CUANTOS = S2.GetString("CUANTOS")
S2.Close
If CUANTOS > 0 Then
- c2=skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS TOTAL from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
+ c2=Starter.skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS TOTAL from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
c2.Position =0
MONTO_COMPRA = c2.GetString("TOTAL")
c2.Close
@@ -330,14 +295,11 @@ Sub GPS_LocationChanged (Location1 As Location)
'lon_gps=Location1.Longitude
' BT_QR.Enabled = True
Dim sDate,sTime As String
-
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
-
- skmt.ExecNonQuery("DELETE FROM HIST_GPS")
-
- skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Main.lat_gps, Main.lon_gps))
+ Starter.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
+ Starter.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Starter.lat_gps, Starter.lon_gps))
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
@@ -345,21 +307,22 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub
Sub gest_Click
- Main.tipov = "PREVENTA"
+ Starter.tipov = "PREVENTA"
' StartActivity(colonia2)
cuestionario
End Sub
Sub Tels_Click
' skmt.ExecNonQuery("delete from PEDIDO")
- StartActivity(nopago)
+' StartActivity(nopago)
+ B4XPages.ShowPage("NoVenta")
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
- StartActivity(colonia)
+' StartActivity(colonia)
'Return True
End If
' Returning False signals the system to handle the key
@@ -367,58 +330,59 @@ Sub Activity_KeyPress (key As Int) As Boolean
End Sub
Sub Tar_Click
- StartActivity(tarjeta)
+' StartActivity(tarjeta)
+ B4XPages.ShowPage("Nota")
End Sub
Sub DATOS_Click
- StartActivity(telefonos)
+' StartActivity(telefonos)
End Sub
Sub Guardar_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- c=skmt.ExecQuery("Select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
- c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
- skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps))
- skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
+ Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
c.Close
- skmt.ExecNonQuery("delete from pedido3")
- skmt.ExecNonQuery("INSERT INTO PEDIDO3 SELECT PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, 1 As PE_FECHA, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
- c=skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from pedido3")
+ Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 SELECT PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, 1 As PE_FECHA, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
+ c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
- skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ?", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
-
+ Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ?", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
Next
End If
- skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
+ Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
+ Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
-
- StartActivity(seleccion)
+ B4XPages.ShowPage("Principal")
+' StartActivity(seleccion)
End Sub
Sub NUEVO_Click
- StartActivity(nuevocliente)
+' StartActivity(nuevocliente)
End Sub
Sub HIST_Click
- StartActivity(Historico)
+' StartActivity(Historico)
+ B4XPages.ShowPage("Historico")
End Sub
Sub BT_QR_Click
@@ -432,7 +396,7 @@ End Sub
Sub sc_result(atype As String,Values As String)
CODIGO = Values
- skmt.ExecNonQuery2("UPDATE kmt_info set CAT_CL_NUM_SERIEFISICO = ?, CAT_CL_LONG = ?, CAT_CL_LAT =? where CAT_CL_CODIGO In (select cuenta from cuentaa)", Array As Object(CODIGO, Main.lon_gps, Main.lat_gps))
+ Starter.skmt.ExecNonQuery2("UPDATE kmt_info set CAT_CL_NUM_SERIEFISICO = ?, CAT_CL_LONG = ?, CAT_CL_LAT =? where CAT_CL_CODIGO In (select cuenta from cuentaa)", Array As Object(CODIGO, Starter.lon_gps, Starter.lat_gps))
End Sub
Sub sc_noScan
@@ -456,30 +420,30 @@ Sub calc_ean_checksum(number As String) As String 'this has now become
End Sub
Sub b_mapa_Click
- StartActivity(mapas)
+' StartActivity(mapas)
End Sub
Sub B_IMP_Click
- c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
+ c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
c.Position =0
perfil = c.GetString("CUANTOS")
c.Close
If perfil > 0 Then
- c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
+ c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
c.Position =0
perfil = c.GetString("CAT_VA_VALOR")
c.Close
End If
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
- c=skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
+ c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
c.Position = 0
sucursal = c.GetString("CAT_VA_VALOR")
c.Close
@@ -548,7 +512,7 @@ Sub B_IMP_Click
If perfil = "V-ESPECIAL" Then 'Or perfil = "V-SUPER"
Printer1.WriteString("-----------PREVENTA-----------" & CRLF)
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_PRECIO2 as PE_COSTOU, length(PE_PRECIO2) as L_COSTOU,PE_CANT * PE_PRECIO2 AS PE_COSTO_TOT, length(PE_CANT * PE_PRECIO2) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID ", Array As String("PREVENTA"))
+ s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_PRECIO2 as PE_COSTOU, length(PE_PRECIO2) as L_COSTOU,PE_CANT * PE_PRECIO2 AS PE_COSTO_TOT, length(PE_CANT * PE_PRECIO2) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID ", Array As String("PREVENTA"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
@@ -575,7 +539,7 @@ Sub B_IMP_Click
Next
End If
s.Close
- s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA"))
+ s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA"))
s.Position =0
If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")) & CRLF)
@@ -586,7 +550,7 @@ Sub B_IMP_Click
Else
Printer1.WriteString("-----------PREVENTA-----------" & CRLF)
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
+ s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
@@ -613,7 +577,7 @@ Sub B_IMP_Click
Next
End If
s.Close
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
+ s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
If S.RowCount>0 Then
Printer1.WriteString("----PROMOS----" & CRLF)
For i=0 To S.RowCount -1
@@ -643,7 +607,7 @@ Sub B_IMP_Click
End If
s.Close
- s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA"))
+ s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL, SUM(PE_PRECIO2 * PE_CANT) AS TOTAL2 FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("PREVENTA"))
s.Position =0
' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")))
@@ -672,26 +636,26 @@ Sub B_IMP_Click
End Sub
Sub B_IMP2_Click
- c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
+ c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
c.Position =0
perfil = c.GetString("CUANTOS")
c.Close
If perfil > 0 Then
- c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
+ c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
c.Position =0
perfil = c.GetString("CAT_VA_VALOR")
c.Close
End If
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
- c=skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
+ c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
c.Position = 0
sucursal = c.GetString("CAT_VA_VALOR")
c.Close
@@ -760,7 +724,7 @@ Sub B_IMP2_Click
Printer1.WriteString("-----------ENTREGA------------" & CRLF)
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE", Array As String("VENTA"))
+ s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE", Array As String("VENTA"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
@@ -788,7 +752,7 @@ Sub B_IMP2_Click
End If
s.Close
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("VENTA"))
+ s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("VENTA"))
If S.RowCount>0 Then
Printer1.WriteString("----PROMOS----" & CRLF)
@@ -822,7 +786,7 @@ Sub B_IMP2_Click
s.Close
Printer1.WriteString(" " & CRLF)
- s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA"))
+ s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA"))
s.Position =0
Printer1.WriteString("Total entrega: $" & s.GetString("TOTAL") & CRLF)
s.Close
@@ -846,14 +810,14 @@ Sub B_IMP2_Click
End Sub
Sub B_INV_Click
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
-
+
TAMANO = 5
ESPACIO = 21
BLANCO = " "
@@ -864,11 +828,10 @@ Sub B_INV_Click
Printer1.WriteString("Vendedor:" & usuario & CRLF )
Printer1.WriteString("-------------VENTA-------------" & CRLF)
- E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("VENTA"))
+ E1=Starter.skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("VENTA"))
E1.Position = 0
If E1.GetString("CUANTOS") > 0 Then
-
- c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("VENTA"))
+ c=Starter.skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("VENTA"))
c.Position = 0
Printer1.WriteString("VENTA: " & c.GetString("MONTO_DIA") & CRLF)
c.Close
@@ -876,13 +839,11 @@ Sub B_INV_Click
Printer1.WriteString("VENTA: " & "0" & CRLF)
End If
E1.Close
-
-
- E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("PREVENTA"))
+
+ E1=Starter.skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("PREVENTA"))
E1.Position = 0
If E1.GetString("CUANTOS") > 0 Then
-
- c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("PREVENTA"))
+ c=Starter.skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("PREVENTA"))
c.Position = 0
Printer1.WriteString("PREVENTA: " & c.GetString("MONTO_DIA") & CRLF)
c.Close
@@ -890,13 +851,11 @@ Sub B_INV_Click
Printer1.WriteString("PREVENTA: " & "0" & CRLF)
End If
E1.Close
-
-
- E1=skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO"))
+
+ E1=Starter.skmt.ExecQuery2("Select count(*) As CUANTOS from pedido where PE_TIPO = ?", Array As String("ABORDO"))
E1.Position = 0
If E1.GetString("CUANTOS") > 0 Then
-
- c=skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO"))
+ c=Starter.skmt.ExecQuery2("Select sum(PE_COSTO_TOT) As MONTO_DIA from pedido where PE_TIPO = ?", Array As String("ABORDO"))
c.Position = 0
Printer1.WriteString("ABORDO: " & c.GetString("MONTO_DIA") & CRLF)
c.Close
@@ -907,21 +866,15 @@ Sub B_INV_Click
Printer1.WriteString("-----------INVENTARIO-----------" & CRLF)
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
- s=skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS"))
-
-
+ s=Starter.skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS"))
+
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
-
Printer1.WriteString(s.GetString("CAT_GP_NOMBRE") & CRLF)
-
Printer1.WriteString("CANTIDAD: " & s.GetString("CAT_GP_ALMACEN") & CRLF)
-
-
TAMANO = TAMANO + 1
If TAMANO > 40 Then
-
t3.Initialize("T3", 4000) ' 1000 = 1 second
t3.Enabled = True
Wait For t3_tick
@@ -934,23 +887,21 @@ Sub B_INV_Click
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("-----------RMI----------------" & CRLF)
Printer1.WriteString(" " & CRLF)
- 'c=skmt.ExecQuery2("select count(*) as CUANTOS from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO"))
+ 'c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO"))
'c.Position =0
'Cuantos = c.GETSTRING("CUANTOS")
'c.Close
'If Cuantos >0 Then
- c=skmt.ExecQuery2("select SUM(PE_CANT) AS CANTIDAD,PE_PRONOMBRE from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO"))
-
+ c=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS CANTIDAD,PE_PRONOMBRE from pedido where substr(pe_pronombre,1,6) = ? GROUP BY PE_PRONOMBRE", Array As String("CAMBIO"))
If C.RowCount>0 Then
For i=0 To C.RowCount -1
C.Position=i
Printer1.WriteString(C.GetString("CANTIDAD") & " " & C.GetString("PE_PRONOMBRE") & CRLF )
Next
End If
-
c.Close
'End If
-
+
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("Nombre y Firma" & CRLF)
Printer1.WriteString(" " & CRLF)
@@ -966,7 +917,7 @@ Sub B_INV_Click
End Sub
Sub B_VENTA_Click
- Main.tipov = "VENTA"
+ Starter.tipov = "VENTA"
'StartActivity(colonia2)
cuestionario
End Sub
@@ -1015,16 +966,16 @@ Sub B_GUARDAR_Click
Guardar.Visible = True
B_INV.Visible = True
- c=skmt.ExecQuery("select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("select CUENTA from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
- skmt.ExecNonQuery2("INSERT INTO HIST_EXIBIDORES(CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR) VALUES(?,?,?)", Array As Object(cuenta,TIPOEX,E_CUANTOS_E.Text))
+ Starter.skmt.ExecNonQuery2("INSERT INTO HIST_EXIBIDORES(CAT_CL_CLIENTE,CAT_CL_EXHIBIDOR,CAT_CL_BEXHIBIDOR) VALUES(?,?,?)", Array As Object(cuenta,TIPOEX,E_CUANTOS_E.Text))
End Sub
Sub B_EXIBI_Click
- s=skmt.ExecQuery("select CAT_EX_ID, CAT_EX_TIPO, CAT_EX_VALOR FROM CAT_EXHIBIDORES")
+ s=Starter.skmt.ExecQuery("select CAT_EX_ID, CAT_EX_TIPO, CAT_EX_VALOR FROM CAT_EXHIBIDORES")
If s.RowCount>0 Then
For i=0 To s.RowCount -1
@@ -1069,8 +1020,8 @@ Sub Printer1_Connected (Success As Boolean)
Log("Impresora conectada.")
If Success Then
ToastMessageShow("Connected successfully", False)
- skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
- skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Main.mac_impresora))
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP", Starter.mac_impresora))
B_IMP.Enabled = True
impresoraConectada = True
Else
@@ -1126,14 +1077,14 @@ Sub cuestionario
sTime=DateTime.Time(DateTime.Now)
If TOMAR_FOTO = 0 Then
- s=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)")
+ s=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)")
s.Position= 0
CUANTOS = s.GetString("CUANTOS")
Else
CUANTOS = 0
End If
If CUANTOS = 0 Then
- c=skmt.ExecQuery("SELECT CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)")
+ c=Starter.skmt.ExecQuery("SELECT CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
If TOMAR_FOTO = 1 Then
@@ -1152,25 +1103,25 @@ Sub cuestionario
id_encuesta = c.GetString("CAT_EP_ID")
TOMAR_FOTO = 1
CURSOR_FOTO = i
- StartActivity(foto)
+' StartActivity(foto)
' Msgbox("paso2","a")
Exit
ELSE IF c.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then
res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
If res = DialogResponse.POSITIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID")))
Else IF res = DialogResponse.NEGATIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID")))
Else IF res = DialogResponse.CANCEL Then
i = i -1
End If
ELSE IF c.GetString("CAT_EP_IDTIPOPREGUNTA") = 4 Then
res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
If res = DialogResponse.POSITIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,c.GetString("CAT_EP_ID")))
'i = c.GetString("CAT_EP_RES1_PRED") -1
Else IF res = DialogResponse.NEGATIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,c.GetString("CAT_EP_ID")))
i = c.GetInt("CAT_EP_RES2_PRED") -2
Else IF res = DialogResponse.CANCEL Then
i = i -1
@@ -1179,11 +1130,11 @@ Sub cuestionario
ELSE If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then
res = Msgbox2(c.GetString("CAT_EP_PREGUNTA"),c.GetString("CAT_CE_DESCRIPCION"), c.GetString("CAT_EP_RES1_PRED"), c.GetString("CAT_EP_RES2_PRED"),c.GetString("CAT_EP_RES3_PRED"),LoadBitmap(File.DirAssets,"alert2.png"))
If res = DialogResponse.POSITIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES1_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES1_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
Else IF res = DialogResponse.NEGATIVE Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES3_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES3_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
Else IF res = DialogResponse.CANCEL Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES2_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, c.GetString("CAT_EP_RES2_PRED"),sDate & sTime,c.GetString("CAT_EP_ID")))
End If
' Msgbox("paso4","a")
ELSE If c.GetString("CAT_EP_IDTIPOPREGUNTA") = 6 Then
@@ -1212,23 +1163,23 @@ Sub cuestionario
Exit
Else
' Main.tipov = "VENTA"
- StartActivity(colonia2)
+' StartActivity(colonia2)
End If
Next
Else
' Main.tipov = "VENTA"
- StartActivity(colonia2)
+' StartActivity(colonia2)
End If
Else
' Main.tipov = "VENTA"
- StartActivity(colonia2)
+' StartActivity(colonia2)
End If
End Sub
Sub B_E_NEXT_Click
Panel9.Visible = False
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, E_RES_E.Text ,sDate & sTime,c.GetString("CAT_EP_ID")))
- Main.tipov = "VENTA"
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, E_RES_E.Text ,sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.tipov = "VENTA"
'TOMAR_FOTO = 1
cuestionario
'StartActivity(colonia2)
@@ -1239,13 +1190,13 @@ Sub b_chk_e_Click
Panel10.Visible = False
If Chk_1.Checked = True Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_1_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_1_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
else if chk_2.Checked = True Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_2_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_2_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
else if chk_3.Checked = True Then
- skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_3_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
+ Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, chk_3_valor,sDate & sTime,c.GetString("CAT_EP_ID")))
End If
- Main.tipov = "VENTA"
+ Starter.tipov = "VENTA"
'TOMAR_FOTO = 1
cuestionario
End Sub
\ No newline at end of file
diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas
index 3832df0..c35f70c 100644
--- a/B4A/C_Clientes.bas
+++ b/B4A/C_Clientes.bas
@@ -24,22 +24,26 @@ Sub Class_Globals
Dim colonia As String
Private b_qr As Button
Private qr As QRCode
- Dim sc As Zxing_scanner
+' Dim sc As Zxing_scanner
Dim CODIGO As String
End Sub
+Sub initialize
+
+End Sub
+
Private Sub B4XPage_Created (Root1 As B4XView)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Root = Root1
- Root.LoadLayout("fila")
+ Root.LoadLayout("Clientes")
entro ="2"
' valido donde escribo el archivo de la base de datos de kmt
ruta = File.DirInternal
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If
- qr.initialize
+' qr.initialize
End Sub
Sub B4XPage_Appear
@@ -103,7 +107,8 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
Else If entro = "4" Then
skmt.ExecNonQuery("delete from CUENTAA")
skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
- StartActivity(fila)
+' StartActivity(fila)
+ B4XPages.ShowPage("Cliente")
End If
End Sub
@@ -122,7 +127,8 @@ Sub Activity_KeyPress (key As Int) As Boolean
' I want to capture the key here so I return True
- StartActivity(seleccion)
+' StartActivity(seleccion)
+ B4XPages.ShowPage("Principal")
Return False
'End If
End If
@@ -157,15 +163,13 @@ Sub BUSCA_TextChanged (Old As String, New As String)
c2.Close
End Sub
-
-
Sub b_qr_Click
'StartActivity(QR_MODULE)
Dim scan_width As Int
Dim scan_height As Int
scan_width = 400
scan_height = 400
- sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height)
+' sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height)
End Sub
@@ -184,7 +188,7 @@ Sub sc_result(atype As String,Values As String)
skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(s.GetString("CAT_CL_CODIGO")))
s.Close
b_qr.Visible = False
- StartActivity(fila)
+' StartActivity(fila)
Else
Msgbox("CODIGO " & CODIGO & " NO ENCONTRADO","AVISO")
End If
diff --git a/B4A/C_Foto.bas b/B4A/C_Foto.bas
deleted file mode 100644
index cb0f9fb..0000000
--- a/B4A/C_Foto.bas
+++ /dev/null
@@ -1,184 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
-Sub Class_Globals
- Private Root As B4XView 'ignore
- Private xui As XUI 'ignore
- '//Process Globals
- Dim ruta As String
- Dim g As GPS
- Private frontCamera As Boolean = False
- Dim quien_llamo As String
- Dim foto_g () As Byte
- Dim foto_g1 () As Byte
- Dim foto_g2 () As Byte
- Dim foto_g3 () As Byte
- Dim foto_g4 () As Byte
- '//Globals
- Dim btnTakePicture As Button
- Dim Panel1 As Panel
- Dim c As Cursor
- Dim cuenta As String
- Dim lat_gps As String
- Dim lon_gps As String
- Private camEx As CameraExClass
- Private i_foto As ImageView
- Private b_guardar As Button
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize As Object
- Return Me
-End Sub
-
-'This event will be called once, before the page becomes visible.
-Private Sub B4XPage_Created (Root1 As B4XView)
- Root = Root1
- 'load the layout to Root
- Root.LoadLayout("foto")
- Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
- Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
- ruta = File.DirInternal
-End Sub
-
-'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
-
-
-Sub Camera1_Ready (Success As Boolean)
- If Success Then
- ' camEx.SetJpegQuality(90)
- ' camEx.CommitParameters
- Dim ps As CameraSize
- ps.Width =640'480 '1280
- ps.Height =480'360 '960
- camEx.SetPictureSize(ps.Width, ps.Height)
- camEx.CommitParameters
- Try
- camEx.StartPreview
- Catch
- camEx.Release
- Subs.iniciaActividad("CHECKLIST_AUTO")
- End Try
- ' Dim ps As CameraSize
- ' ps.Width =640 '1280
- ' ps.Height =480 '960
- ' camEx.SetPictureSize(ps.Width, ps.Height)
- ' camEx.CommitParameters
-
- ' Log(camEx.GetPreviewSize)
- 'Msgbox(camEx.GetPreviewSize,"aviso") 'ignore
- Else
- Subs.iniciaActividad("CHECKLIST_AUTO")
- 'ToastMessageShow("Cannot open camera.", True)
- End If
-End Sub
-
-Sub Activity_Resume
- i_foto.Visible = False
-' If g.GPSEnabled=False Then
-' ToastMessageShow("Habilitar el GPS", True)
-' StartActivity(g.LocationSettingsIntent)
-' Else
-' g.Start(0,0)
-' End If
- InitializeCamera
- btnTakePicture.Enabled = True
- b_guardar.Enabled = False
-End Sub
-
-Sub Activity_Pause (UserClosed As Boolean)
- camEx.Release
-End Sub
-
-Sub GPS_LocationChanged (Location1 As Location)
-' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
-' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
-' 'btnTakePicture.Enabled = True
-' 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps))
-End Sub
-
-Private Sub InitializeCamera
- camEx.Initialize(Panel1, frontCamera, Me, "Camera1")
- frontCamera = camEx.Front
-End Sub
-
-Sub Camera1_PictureTaken (Data() As Byte)
- btnTakePicture.Enabled = True
- Dim filename As String = "2.jpg"
- Dim dir As String = File.DirRootExternal
- camEx.SavePictureToFile(Data, dir, filename)
- camEx.StartPreview 'restart preview
- i_foto.Visible = True
- i_foto.Bitmap = LoadBitmap(File.DirRootExternal, "2.jpg")
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- Dim InputStream1 As InputStream
- InputStream1 = File.OpenInput(File.DirRootExternal, "2.jpg")
- Dim OutputStream1 As OutputStream
- OutputStream1.InitializeToBytesArray(500)
- File.Copy2(InputStream1, OutputStream1)
- foto_g = OutputStream1.ToBytesArray
- End If
- b_guardar.Enabled = True
- camEx.Release
- InitializeCamera
- btnTakePicture.Enabled = True
-End Sub
-
-Sub Activity_KeyPress (key As Int) As Boolean
- ' BACK key pressed
- If key=KeyCodes.KEYCODE_BACK Then
- ' I want to capture the key here so I return True
- B4XPages.ShowPage("Principal")
- 'Return True
- End If
- ' Returning False signals the system to handle the key
- Return False
-End Sub
-
-Sub b_guardar_Click
- camEx.Release
- 'If quien_llamo = "1" Then
- Try
- If quien_llamo = "1" Then
- File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO1.jpg")
- Subs.iniciaActividad("CHECKLIST_AUTO")
- else if quien_llamo = "2" Then
- File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO2.jpg")
- Subs.iniciaActividad("CHECKLIST_AUTO")
- else if quien_llamo = "3" Then
- File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO3.jpg")
- Subs.iniciaActividad("CHECKLIST_AUTO")
- else if quien_llamo = "4" Then
- File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO4.jpg")
- Subs.iniciaActividad("CHECKLIST_AUTO")
- End If
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- c=Starter.skmt.ExecQuery("select cuenta from cuentaa")
- c.Position = 0
- cuenta = c.GetString("CUENTA")
- c.Close
- Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTOS (HF_FOTO, HF_CUENTA, HF_IDENCUESTA) VALUES(?,?,?) ", Array As Object (foto_g,cuenta, B4XPages.MainPage.cliente.id_encuesta ))
- Subs.iniciaActividad("fila")
- End If
- Catch
- Msgbox("ERROR EN FOTO","") 'ignore
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- Subs.iniciaActividad("fila")
- Else
- Subs.iniciaActividad("CHECKLIST_AUTO")
- End If
- End Try
-End Sub
-
-Sub btnTakePicture_Click
- btnTakePicture.Enabled = False
- Dim ps As CameraSize
- ps.Width =640'480 '1280
- ps.Height =480'360 '960
- camEx.SetPictureSize(ps.Width, ps.Height)
- camEx.CommitParameters
- camEx.TakePicture
-End Sub
\ No newline at end of file
diff --git a/B4A/C_Historico.bas b/B4A/C_Historico.bas
index 57eede6..f036d4f 100644
--- a/B4A/C_Historico.bas
+++ b/B4A/C_Historico.bas
@@ -9,7 +9,7 @@ Sub Class_Globals
Private xui As XUI 'ignore
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
- Dim skmt As SQL
+' Dim skmt As SQL
Dim g As GPS
Dim clie_id As String
Dim sDate,sTime As String
@@ -20,8 +20,6 @@ Sub Class_Globals
Dim c As Cursor
Dim ruta As String
Dim Regresar As Button
-
-
Dim ListView1 As ListView
Dim L_CANT As Label
Dim L_TOTAL As Label
@@ -30,44 +28,41 @@ Sub Class_Globals
Dim result As String
' Dim lat_gps, lon_gps As String
-
Private Titulo As Label
Private b_desc As Button
Private ListView2 As ListView
Private B_RMI As Button
End Sub
+Sub initialize
+
+End Sub
+
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
- ruta = File.DirInternal
- Root.LoadLayout("tarjeta")
- B_RMI.Visible = True
+ Root.LoadLayout("Historico")
borra.Visible = False
Titulo.Text = "Acumulado"
b_desc.Visible = False
- If File.Exists(ruta, "kmt.db") = False Then
- File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
- End If
- skmt.Initialize(ruta,"kmt.db", True)
+ g.Initialize("gps")
End Sub
Sub B4XPage_Appear
+ B_RMI.Visible = True
If g.GPSEnabled=False Then
ToastMessageShow("Habilitar el GPS", True)
StartActivity(g.LocationSettingsIntent)
Else
g.Start(0,0)
End If
-
L_CANT.Text =""
L_TOTAL.Text=""
- c=skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
- c=skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc")
+ c=Starter.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc")
ListView1.Clear
-
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
@@ -83,7 +78,7 @@ Sub B4XPage_Appear
Next
End If
If Existe <> 0 Then
- c=skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)")
C.Position=0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
@@ -100,15 +95,15 @@ End Sub
Sub Regresar_Click
B_RMI.Visible = False
- StartActivity(fila)
-
+' StartActivity(fila)
+ B4XPages.ShowPage("Cliente")
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
- StartActivity(seleccion)
+' StartActivity(seleccion)
'Return True
End If
' Returning False signals the system to handle the key
@@ -124,7 +119,7 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
ListView2.Visible = True
ListView1.Visible = False
Dim label1 As Label
-
+ ListView2.Clear
For i=0 To 20
label1 = ListView2.SingleLineLayout.Label
label1.TextSize = 15
@@ -134,10 +129,9 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
End Sub
Sub B_RMI_Click
- c=skmt.ExecQuery("select HR_CLIENTE,HR_PRONOMBRE,HR_CANT from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select HR_CLIENTE,HR_PRONOMBRE,HR_CANT from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa)")
ListView1.Clear
-
- If c.RowCount>0 Then
+ If c.RowCount > 0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas
index 4980bae..6945449 100644
--- a/B4A/C_NoVenta.bas
+++ b/B4A/C_NoVenta.bas
@@ -29,15 +29,14 @@ Sub Class_Globals
Dim r_4 As RadioButton
End Sub
+Sub initialize
+
+End Sub
+
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
- Root.LoadLayout("nopago")
- ' valido donde escribo el archivo de la base de datos de kmt
- ruta = File.DirInternal
- If File.Exists(ruta, "kmt.db") = False Then
- File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
- End If
- skmt.Initialize(ruta,"kmt.db", True)
+ Root.LoadLayout("NoVenta")
+ g.Initialize("gps")
End Sub
Sub B4XPage_Appear
@@ -56,7 +55,8 @@ Sub GPS_LocationChanged (Location1 As Location)
End Sub
Sub CANCELA_Click
- StartActivity(fila)
+' StartActivity(fila)
+ B4XPages.ShowPage("Cliente")
End Sub
Sub GUARDA_Click
@@ -72,23 +72,24 @@ Sub GUARDA_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- c=skmt.ExecQuery("select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("select CUENTA from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
- c=skmt.ExecQuery("select usuario from usuarioa")
+ c=Starter.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
- c=skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
+ c=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
- skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Next
End If
- skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
- skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
+ 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)")
- skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text,Main.lat_gps,Main.lon_gps))
- skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- StartActivity(seleccion)
+ Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text,Starter.lat_gps,Starter.lon_gps))
+ Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+' StartActivity(seleccion)
+ B4XPages.ShowPage("Principal")
End Sub
\ No newline at end of file
diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas
index b132b15..4acaa62 100644
--- a/B4A/C_Nota.bas
+++ b/B4A/C_Nota.bas
@@ -21,7 +21,6 @@ Sub Class_Globals
Dim ruta As String
Dim Regresar As Button
-
Dim ListView1 As ListView
Dim L_CANT As Label
Dim L_TOTAL As Label
@@ -38,32 +37,26 @@ Sub Class_Globals
Dim TIPO As String
End Sub
+Sub initialize
+
+End Sub
+
Private Sub B4XPage_Created (Root1 As B4XView)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Root = Root1
g.Initialize("GPS")
ruta = File.DirInternal
- Root.LoadLayout("tarjeta")
+ Root.LoadLayout("historico")
borra.Visible = True
Titulo.Text = "Pedido Actual"
- ' se crea o no el archivo de la base de ddatos de kmt
- 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE
- 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA
- 'SI SE REGRESA A ESTE ACTIVIDAD.
- If File.Exists(ruta, "kmt.db") = False Then
- File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
- End If
-
- skmt.Initialize(ruta,"kmt.db", True)
- skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
- c=skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
+ c=Starter.skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
- c=skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
+ c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
ListView1.Clear
-
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
@@ -80,18 +73,11 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Next
End If
If Existe <> 0 Then
- c=skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
C.Position=0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
End If
- 'la_no_ird.Text = c.GetString("PR_CF_SALDO_ACORT")
-
-
- 'ListView1.AddTwoLines(c.GetString("pr_cd_nombre"),c.GetString("pr_cd_colonia"))
- ' Next
- 'End If
-
End Sub
Sub B4XPage_Appear
@@ -104,13 +90,13 @@ Sub B4XPage_Appear
L_CANT.Text =""
L_TOTAL.Text=""
- skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
+ Starter.skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
- c=skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
- c=skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
+ c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
ListView1.Clear
If c.RowCount>0 Then
@@ -129,12 +115,12 @@ Sub B4XPage_Appear
Next
End If
If Existe <> 0 Then
- c=skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
C.Position=0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
c.Close
- c=skmt.ExecQuery("select SUM(IFNULL(PE_DESC,0)) AS DESCUENTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select SUM(IFNULL(PE_DESC,0)) AS DESCUENTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
DESC = c.GetString("DESCUENTO")
'If L_TOTAL.Text > 1000 And DESC = 0 Then
@@ -166,14 +152,15 @@ Sub GPS_LocationChanged (Location1 As Location)
End Sub
Sub Regresar_Click
- StartActivity(fila)
+' StartActivity(fila)
+ B4XPages.ShowPage("Cliente")
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
- StartActivity(seleccion)
+' StartActivity(seleccion)
'Return True
End If
' Returning False signals the system to handle the key
@@ -182,78 +169,78 @@ End Sub
Sub borra_Click
If folio <> "" Then
- result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
+ result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
- c=skmt.ExecQuery("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
+ c=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
TIPO = c.GetString("PE_TIPO")
If c.GetString("PE_TIPO") = "VENTA" Then
- skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Else
- skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
End If
Next
End If
- skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
- skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
- skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ 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)")
B4XPage_Appear
End If
Else
- Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO")
+ Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
End If
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
- result = Msgbox2("Seguro que desa borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
+ result = Msgbox2("Seguro que desa borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
' If TIPO = "VENTA" Then
-' c=skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod2 where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
+' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod2 where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
' Else
-' c=skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
+' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
' End If
- c=skmt.ExecQuery2("SELECT COUNT(*) as CUANTOS FROM PEDIDO WHERE pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3 ", Array As String(Value))
+ c=Starter.skmt.ExecQuery2("SELECT COUNT(*) as CUANTOS FROM PEDIDO WHERE pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3 ", Array As String(Value))
c.Position=0
If c.GetString("CUANTOS") > 0 Then
- d=skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3", Array As String(Value))
+ d=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and length(pe_cedis) > 3", Array As String(Value))
If d.RowCount>0 Then
For i=0 To d.RowCount -1
d.Position=i
TIPO = d.GetString("PE_TIPO")
If d.GetString("PE_TIPO") = "VENTA" Then
- skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
Else
- skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
End If
Next
End If
d.Close
- skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
+ Starter.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
Else
- d=skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
+ d=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
d.Position = 0
TIPO = d.GetString("PE_TIPO")
If d.GetString("PE_TIPO") = "VENTA" Then
- skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
Else
- skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
+ Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(d.GetString("PE_CANT"),d.GetString("PE_PROID")))
End If
d.Close
- skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
+ Starter.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
End If
@@ -262,22 +249,22 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- c=skmt.ExecQuery("Select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
- c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
- skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps))
- skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
+ Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Else
- skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
B4XPage_Appear
End If
@@ -288,21 +275,21 @@ Sub b_desc_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- c=skmt.ExecQuery("Select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
- result = Msgbox2("Seguro que desa dar descuento del 5%?","Dar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
+ result = Msgbox2("Seguro que desa dar descuento del 5%?","Dar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
- skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT * .95, PE_DESC = 5 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
- c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT * .95, PE_DESC = 5 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
+ c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
- skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Main.lon_gps, Main.lat_gps))
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
c.Close
B4XPage_Appear
End If
@@ -310,21 +297,21 @@ Sub b_desc_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- c=skmt.ExecQuery("Select CUENTA from cuentaa")
+ c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
- c=skmt.ExecQuery("select USUARIO from usuarioa")
+ c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
- result = Msgbox2("Seguro que desa CANCELAR el descuento?","Cancelar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"))
+ result = Msgbox2("Seguro que desa CANCELAR el descuento?","Cancelar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
- skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT / .95, PE_DESC = 0 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
- c=skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT / .95, PE_DESC = 0 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
+ c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
- skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"),Main.lon_gps, Main.lat_gps))
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"),Starter.lon_gps, Starter.lat_gps))
c.Close
B4XPage_Appear
End If
diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas
deleted file mode 100644
index 0172bfa..0000000
--- a/B4A/C_NuevoCliente.bas
+++ /dev/null
@@ -1,6 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas
index 3d4be6a..fecd550 100644
--- a/B4A/C_Principal.bas
+++ b/B4A/C_Principal.bas
@@ -156,15 +156,21 @@ Sub Class_Globals
Private cuantos_exib As String
Dim ime As IME
Private l_monto_kc As Label
+ Private l_version As Label
End Sub
+Sub initialize
+
+End Sub
+
+
Private Sub B4XPage_Created (Root1 As B4XView)
EJECUTANDO=1
SERVER = Starter.DBReqServer
reqManager.Initialize(Me, SERVER)
Log(SERVER)
Root = Root1
- Root.LoadLayout("seleccion")
+ Root.LoadLayout("principal")
img2.Visible =False
' valido donde escribo el archivo de la base de datos de kmt
@@ -180,10 +186,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
DateTime.DateFormat = "MM/dd/yyyy"
fecha=DateTime.Date(DateTime.Now)
skmt.Initialize(ruta,"kmt.db", True)
- c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
- c.Position =0
- SERVER = c.GetString("CAT_CO_CONFIGURACION")
- c.Close
b=skmt.ExecQuery("Select count(*) as CUANTOS from pedido_cliente")
b.Position=0
@@ -243,7 +245,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_VALOR,CAT_VA_DESCRIPCION) VALUES (?,?)" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
End If
DateTime.TimeFormat = "HH:mm:ss"
-
+ P1.Top = 0 : P1.left = 0
+ P_RESUMEN.Top = 0 : P_RESUMEN.left = 0
+ P_RESUMEN.Width = Root.Width
End Sub
Sub IsConnectedToInternet As Boolean
@@ -298,20 +302,7 @@ Sub B4XPage_Appear
l_ruta.Text = f.GetString("CAT_CL_RUTA")
f.Close
End If
-
- ' c=skmt.ExecQuery("select noversion from version")
-' c.Position=0
-' If c.GetString("NOVERSION") <> "2.1" Then
-' ToastMessageShow("EXISTE UNA NUEVA VERSION ACTUALIZA POR FAVOR." , True)
-' cargar.Visible = False
-' Subir.Visible = False
-' connecta.Visible = False
-' trabajar.Visible = False
-' BUSCA.Visible = False
-' inv.Visible = False
-'
- ' End If
- ' c.Close
+
c=skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
@@ -393,76 +384,13 @@ Sub B4XPage_Appear
End If
-' bu.Initialize
-' batterystatus = bu.BatteryInformation
-'
-' sb.Initialize
-' PHONE.Shell("ping -c1 -W1 google.com",Null, sb,Null)
- '
-' c = skmt.ExecQuery2("select count(CAT_VA_DESCRIPCION) as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso"))
-' c.Position = 0
-'
-' 'Valida si ya se cuenta con hora para enviar cada 5 min-----------
-' If c.GetString("HoraIngreso") > 0 Then
-' D2 = skmt.ExecQuery2("select CAT_VA_VALOR as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso"))
-' D2.Position = 0
-' HORAINGRESO = D2.GetString("HoraIngreso")
-' D2.Close
-' End If
-' DateTime.TimeFormat = "HHmmss"
- '
-' If HORAINGRESO + 500 < DateTime.Time(DateTime.Now) Then
- '
-'
-' If sb.Length > 2 And sb.ToString.SubString2(110,114) <> "smit" Then
-' c=skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS")
-'
-' If c.RowCount>0 Then
-' For i=0 To c.RowCount -1
-' c.Position=i
-' ' s=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO")))
-' ' s.Position =0
-' 'LO DOCUMENTO PARA NO HACER TAN PESADO LA TRAN DE DATOS QUE SOLO MANDE UNO
- '' Dim cmd As DBCommand
- '' cmd.Initialize
- '' cmd.Name = "insert_gps_actual_GUNA"
- '' cmd.Parameters = Array As Object(c.GetString("hglat"),c.GetString("hglon"),usuario,ALMACEN,l_ruta.Text )
- '' 'cmd.Parameters = Array As Object(C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON") )
-'
-' 'reqManager.ExecuteQuery(cmd , 0, "inst_visitas")
-'
-' cmd.Initialize
-' cmd.Name = "select_fechat"
-' reqManager.ExecuteQuery(cmd , 0, "fechat")
-'
-'
-' Dim cmd As DBCommand
-' cmd.Initialize
-' cmd.Name = "UPDATE_DURK_ACTUAL2_GPS"
-' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,c.GetString("hglat"),c.GetString("hglon"),batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text )
-' reqManager.ExecuteCommand(cmd,"inst_visitas")
-' skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
- '
-'
-'
-' ' Dim cmd As DBCommand
-' ' cmd.Initialize
-' ' cmd.Name = "update_gps_actual_TKM"
-' ' cmd.Parameters = Array As Object(C.GetString("HGLAT"),C.GetString("HGLON"),usuario )
-' ' reqManager.ExecuteQuery(cmd , 0, "inst_visitas")
-' 'lv.AddTwoLines(c.GetString("HIST_VI_CREDITO"),c.GetString("HIST_VI_RESULTADO"))
-' Next
-' End If
-' c.Close
-' End If
-' End If
- Main.montoActual = L_MONTOD.Text
- Main.clientestotal = L_CUANTOST.Text
- Main.clientesventa = l_cuantosc.Text
- Main.clientesvisitados = l_porvisitar.TEXT
- Main.ALMACEN = ALMACEN
- Main.rutapreventa = l_ruta.text
+' Main.montoActual = L_MONTOD.Text
+' Main.clientestotal = L_CUANTOST.Text
+' Main.clientesventa = l_cuantosc.Text
+' Main.clientesvisitados = l_porvisitar.TEXT
+' Main.ALMACEN = ALMACEN
+' Main.rutapreventa = l_ruta.text
DateTime.TimeFormat = "HH:mm:ss"
@@ -496,7 +424,9 @@ Sub trabajar_Click
c.Close
skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_CLASIF NOT IN (" & MARCASQ &")" )
skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_DP_ID FROM CAT_DETALLES_PAQ WHERE CAT_DP_IDPROD NOT IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD))")
- StartActivity(colonia)
+
+' StartActivity(colonia)
+ B4XPages.ShowPage("Clientes")
End Sub
@@ -1975,18 +1905,15 @@ Sub GPS_LocationChanged (Location1 As Location)
End Sub
Sub connecta_Click
-' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("RUTA"))
-' c.Position =0
-' If c.GetString("CAT_VA_VALOR") = l_ruta.Text Then
ime.HideKeyboard
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "UPDATE_DURK_ACTUAL2_GPS"
- cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text )
- reqManager.ExecuteCommand(cmd,"inst_visitas")
+' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text )
+' reqManager.ExecuteCommand(cmd,"inst_visitas")
connecta1 = connecta1 + 1
- imei = p.GetDeviceId
+ imei = ""
conn = "1"
Dim cmd As DBCommand
cmd.Initialize
@@ -2007,17 +1934,14 @@ Sub connecta_Click
e_ruta.Text = ""
End If
ToastMessageShow("Validando Conexión." , True)
-' Else
-' Msgbox("LA RUTA NO ES CORRECTA","")
-' End If
End Sub
Sub BUSCA_Click
- StartActivity(BUSCAR)
+' StartActivity(BUSCAR)
End Sub
Sub b_mapa_Click
- StartActivity(mapas)
+' StartActivity(mapas)
End Sub
Sub e_ruta_EnterPressed
@@ -2318,7 +2242,7 @@ Sub B_OK_PAS_Click
End Sub
Sub NUEVO_Click
- StartActivity(nuevocliente)
+' StartActivity(nuevocliente)
End Sub
Sub B_OK_RES_Click
@@ -2518,10 +2442,10 @@ Sub Resumen_Click
End Sub
Sub B_PROXIMA_Click
- skmt.ExecNonQuery("delete from CUENTAA")
- skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))
- Main.tipov = "ABORDO"
- StartActivity(colonia2)
+' skmt.ExecNonQuery("delete from CUENTAA")
+' skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))
+' Main.tipov = "ABORDO"
+'' StartActivity(colonia2)
End Sub
@@ -2633,7 +2557,7 @@ Sub Btn_UbicarR_Click
c.Close
skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_CLASIF NOT IN (" & MARCASQ &")" )
skmt.ExecNonQuery("delete from CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_DP_ID FROM CAT_DETALLES_PAQ WHERE CAT_DP_IDPROD NOT IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD))")
- StartActivity(MAPA_RUTAS)
+' StartActivity(MAPA_RUTAS)
End Sub
Sub SUBIR_P_Click
@@ -2794,9 +2718,9 @@ Sub SUBIR_P_Click
End Sub
Sub b_e_resumen_Click
- Dim cmd As DBCommand
- cmd.Initialize
- cmd.Name = "UPDATE_DURK_ACTUAL2_GPS"
- cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text )
- reqManager.ExecuteCommand(cmd,"inst_visitas")
+' Dim cmd As DBCommand
+' cmd.Initialize
+' cmd.Name = "UPDATE_DURK_ACTUAL2_GPS"
+' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,Main.lat_gps,Main.lon_gps,batterystatus(0),0, 0, 0,ALMACEN,l_ruta.Text )
+' reqManager.ExecuteCommand(cmd,"inst_visitas")
End Sub
\ No newline at end of file
diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas
index b0723c0..ef40fbe 100644
--- a/B4A/C_Productos.bas
+++ b/B4A/C_Productos.bas
@@ -162,14 +162,14 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
'StartActivity(fila)
- If Value = "PROMOS" And fila.cuenta <> "N" Then
- entro = "3"
- marca = "PROMOS"
- tipo = "PROMOS"
- Else if Value = "PROMOS" And fila.cuenta = "N" Then
- entro = "5"
- StartActivity(fila)
- End If
+' If Value = "PROMOS" And fila.cuenta <> "N" Then
+' entro = "3"
+' marca = "PROMOS"
+' tipo = "PROMOS"
+' Else if Value = "PROMOS" And fila.cuenta = "N" Then
+' entro = "5"
+'' StartActivity(fila)
+' End If
If entro = "1" Then
marca = Value
skmt.Initialize(ruta,"kmt.db", True)
@@ -246,7 +246,7 @@ Sub Activity_KeyPress (key As Int) As Boolean
' I want to capture the key here so I return True
- StartActivity(fila)
+' StartActivity(fila)
Return False
End If
End If
@@ -760,7 +760,7 @@ End Sub
Sub Terminar_Click
If cantidad.Text = "" Then
- StartActivity(fila)
+' StartActivity(fila)
ELSE If cantidad.Text > l_bodega.Text Then
Msgbox("Exede la existencia", "ADVERTENCIA")
@@ -892,7 +892,7 @@ Sub Terminar_Click
skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- StartActivity(fila)
+' StartActivity(fila)
else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then
skmt.ExecNonQuery("delete from PROIDID")
@@ -965,8 +965,8 @@ Sub Terminar_Click
End If
skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
-
- StartActivity(fila)
+'
+' StartActivity(fila)
Else
@@ -1017,7 +1017,7 @@ Sub Terminar_Click
skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- StartActivity(fila)
+' StartActivity(fila)
End If
End Sub
Sub i_fotol_Click
@@ -1029,7 +1029,7 @@ Sub DESC_PROMO_Click
skmt.ExecNonQuery("delete from PROIDID")
skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- StartActivity(detalle_promo)
+' StartActivity(detalle_promo)
End Sub
Sub nopromo_Click
c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CAMBIOS"))
diff --git a/B4A/C_Productos2.bas b/B4A/C_Productos2.bas
deleted file mode 100644
index 6ac5a66..0000000
--- a/B4A/C_Productos2.bas
+++ /dev/null
@@ -1,1331 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
-Sub Class_Globals
- Private Root As B4XView 'ignore
- Private xui As XUI 'ignore
- '// Process Gloals
- Dim g As GPS
- Dim ruta As String
- Dim q_buscar As String
- '// Globals
- Dim c As Cursor
- Dim c2 As Cursor
- Dim ListView1 As ListView
- Dim entro As String = 0
- Dim lfila As Label
- Dim marca As String
- Dim tipo As String
- Private BUSCA As EditText
- Dim ya_entro As String
- Dim bmp As Bitmap
- Dim c As Cursor
- Dim e As Cursor
- Dim f As Cursor
- Dim h As Cursor
- Dim CC As Cursor
- Dim DD As Cursor
- Dim l_tipo As Label
- Dim l_sub As Label
- Dim l_marca As Label
- Dim l_desc As Label
- Dim l_precio As Label
- Dim l_bodega As Label
- Dim cantidad As EditText
- Dim guardar As Button
- Dim Terminar As Button
- Dim img_prod As ImageView
- Dim IMG_PASO() As Byte
- Dim L_PROID As Label
- Dim clie_id As String
- Dim sDate,sTime As String
- Dim usuario As String
- Dim lat_gps, lon_gps As String
- Dim t_venta As Label
- Dim PROMO_C As String
- Dim i_fotol As ImageView
- Private DESC_PROMO As Button
- Private nopromo As Button
- Dim TOT_ART_PROMO As String
- Dim cambio As String
- Dim COSTO_TOT As String
- Dim ALMACEN As String
- Dim preciosin As String
- Dim cl_ruta As String
- Dim d As Cursor
- Dim TOT_ART_PROMOR As String
- Dim PROMO_CR As String
- Dim TOTAL_PROMO As String
- Dim HCCP_CANT As String
- Private Panel1 As Panel
- Dim query As String
- Private t_precio As Label
- Private LV_PRECIOS As ListView
- Private PERFIL As String
- Private EXISTE_CAMBIO As String
- Private QUERY2 As String
- Dim CAMBIOS As String
- Dim precio2 As String
- Private B_MENOS As Button
- Private B_MAS As Button
- Private E_CAMBIO As EditText
- Private B_MENOSC As Button
- Private B_MASC As Button
- Private limite_abordo As String
- Private limite_anterior As String
- Private cuenta As String
- Private limite_actual As String
- Private l_invact As Label
- Private L_LINV As Label
- Private L_CANT As Label
- Private V_ANT_SALIR As String
- Private L_CARGA As Label
- Private DESC_SS As String
- Private DESC_PING As String
- Private DESC_RTEC As String
- Private TIPO_CLIENTE As String
- Private PROMOS_VENTAS As String
- Private Label3 As Label
- Private ImageView4 As ImageView
- Dim PRECIO_CERO As String
- Private SI_APLICA_PROMO As String
- Private PROMO_ESP As String
- Private TOTAL_PROMO_CLIE As String
- Private INV_TOTAL_PROMO As String
- Private YA_IMPRIMIO As String
- Private HCCP_CANT_E As String
- Dim lvClic As Map
- Private TECLA_BACK As String = 0
- Private lv_producto2 As ListView
- Private lv_subtipo As ListView
- Dim logger As Boolean = True
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize As Object
- Return Me
-End Sub
-
-'This event will be called once, before the page becomes visible.
-Private Sub B4XPage_Created (Root1 As B4XView)
- If Not(Starter.Logger) Then logger = False
- Root = Root1
- 'load the layout to Root
- Root.LoadLayout("productos")
- ruta = File.DirInternal
- Panel1.Visible= False
- lvClic.Initialize
-End Sub
-
-'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
-
-Sub B4XPage_Appear
-' If Subs.traeUltimaActividadBD <> "Productos" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD)
- Terminar.Enabled = True
- guardar.Enabled = True
- If Subs.clienteActual <> "0" Then Starter.tipov = "VENTA" Else Starter.tipov = "ABORDO"
- If logger Then Log(Subs.clienteActual & "|" &Starter.tipov)
- If logger Then Log("Entro="&entro)
- If logger Then Log("ya_entro="&ya_entro)
- If Starter.tipov = "PREVENTA" Then
- query = "cat_gunaprod"
- QUERY2 = "COUNT_GUNAPROD"
- Else IF Starter.tipov = "VENTA" Then
- query = "cat_gunaprod2"
- QUERY2= " COUNT_GUNAPROD2"
- ELSE IF Starter.tipov = "ABORDO" Then
- query = "cat_gunaprod"
- QUERY2 = "COUNT_GUNAPROD"
- Else
- query = "cat_gunaprod"
- QUERY2 = "COUNT_GUNAPROD"
- End If
- E_CAMBIO.Text = "0"
- cantidad.Text = "0"
- If ya_entro <> "1" Then
- If entro=0 Then entro ="2"
- ya_entro ="1"
- Dim label1 As Label
- label1 = ListView1.TwoLinesLayout.Label
- label1.TextSize = 14
- label1.TextColor = Colors.Black
- Dim label2 As Label
- label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 14
- label2.TextColor = Colors.Black
- c2=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS, CAT_GP_TIPO from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_TIPO ORDER BY CAT_GP_TIPO ASC")
- ListView1.Clear
- lfila.text = "TIPO"
- lvClic.Put("PASO", "TIPO")
- If c2.RowCount>0 Then
- For i=0 To c2.RowCount -1
- c2.Position=i
- ListView1.AddTwoLines(c2.GetString("CAT_GP_TIPO"),c2.GetString("CUANTOS"))
- Next
- End If
- entro = "2"
- Else
- entro = "3"
- If logger Then LogColor($"Entro=${entro}"$, Colors.Blue)
- ListView1_ItemClick(1,V_ANT_SALIR)
- End If
- c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
- c.Position =0
- PERFIL = c.GetString("CAT_VA_VALOR")
- c.Close
- If PERFIL = "V-COSTO" Then
- Starter.skmt.ExecNonQuery("DELETE FROM CAT_GUNAPROD2 WHERE CAT_GP_ID IN (SELECT CAT_GP_ID FROM LISTA_PRECIOS WHERE NLISTA = '9' AND PRECIO = '0')")
- End If
- ListView1.Visible = True
- If cuenta = "0" Then
- B4XPages.mainpage.Cliente.CREDITO_DISPONIBLE = 10000000
- End If
-
- LogColor(ListView1.Visible,Colors.Red)
-End Sub
-
-Sub ListView1_ItemClick (Position As Int, Value As Object)
- Private l As List
- l.Initialize
- l.Add(Position)
- l.Add(Value)
- If lvClic.ContainsKey("ultimo") Then lvClic.Put("anterior", lvClic.get("ultimo"))
- lvClic.Put("ultimo", l)
-' If Logger Then Log($"lvClic=${lvClic}"$)
- Private Subrutina As Map =CreateMap("nombre":"ListView1_ItemClick", "param1":Position, "param2":Value)
- Starter.sesion = CreateMap("actividad":Me, "sub":Subrutina)
-' If Logger Then LogColor($"Entro=${entro}, Value=${Value}"$, Colors.Blue)
- If Value = "PROMOS" And B4XPages.mainpage.Cliente.cuenta <> "N" Then
- entro = "3"
- marca = "PROMOS"
- tipo = "PROMOS"
- Else if Value = "PROMOS" And B4XPages.mainpage.Cliente.cuenta = "N" Then
- entro = "5"
- Subs.iniciaActividad("Cliente")
- End If
- If entro = "1" Then
- marca = Value
- c2=Starter.skmt.ExecQuery2("select COUNT(*) AS CUANTOS, CAT_GP_TIPO from " & query & " where CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF = ? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_TIPO ORDER BY CAT_GP_TIPO ASC", Array As String(Value))
- ListView1.Clear
- lfila.text = "TIPO"
- lvClic = CreateMap("PASO":0, "TIPO":0, "SUB-TIPO":0)
- lvClic.Put("TIPO", l)
- lvClic.Put("PASO", lfila.Text)
- If logger Then Log("lvClic="&lvClic)
- If c2.RowCount>0 Then
- For i=0 To c2.RowCount -1
- c2.Position=i
- ListView1.AddTwoLines(c2.GetString("CAT_GP_TIPO"),c2.GetString("CUANTOS"))
- Next
- End If
- entro = "3"
- Else If entro = "2" Then 'Or lvClic.Get("PASO") = "TIPO" Then
- tipo = Value
- c2=Starter.skmt.ExecQuery2("select COUNT(*) AS CUANTOS, CAT_GP_SUBTIPO from " & query & " where CAT_GP_ALMACEN > 0 and CAT_GP_TIPO = ? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) GROUP BY CAT_GP_SUBTIPO ORDER BY CAT_GP_SUBTIPO ASC ", Array As String( Value))
- ListView1.Clear
- lfila.text = "SUB-TIPO"
- lvClic.Put("PASO", lfila.Text)
- lvClic.Put("SUB-TIPO", l)
-' If Logger Then Log("lvClic="&lvClic)
- If c2.RowCount>0 Then
- For i=0 To c2.RowCount -1
- c2.Position=i
- ListView1.AddTwoLines(c2.GetString("CAT_GP_SUBTIPO"),c2.GetString("CUANTOS"))
- Next
- End If
- entro = "3"
-' If Logger Then LogColor($"Entro=${entro}, Value=${Value}"$, Colors.Blue)
- Else If entro = "3" Then
- TECLA_BACK = 0
- If tipo = "PROMOS" Then TECLA_BACK = 1
-' If Logger Then LogColor($"Entro=${entro}, Value=${Value}"$, Colors.Blue)
- V_ANT_SALIR = Value
- c2=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( tipo, Value))
- ListView1.Clear
- lfila.text = "PRODUCTO"
- lvClic.Put("PASO", lfila.Text)
- lvClic.Put("PRODUCTO", l)
-' If Logger Then Log("lvClic="&lvClic)
- Dim ins As InputStream
- Dim bmp As Bitmap
- Dim jpeg() As Byte
- If c2.RowCount>0 Then
- For i=0 To c2.RowCount -1
- c2.Position=i
- jpeg = c2.GetBlob("CAT_GP_IMG")
- ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
- bmp.Initialize2(ins)
- ListView1.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO"))
- Next
- End If
- entro = "4"
-' LogColor($"Entro=${entro}, Value=${Value}"$, Colors.Blue)
- Else If entro = "4" Then
-' If Logger Then LogColor($"Entro=${entro}, Value=${Value}"$, Colors.Blue)
- Starter.skmt.ExecNonQuery("delete from PROID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(Value))
- HACER_PEDIDO
- End If
-End Sub
-
-Private Sub lv_subtipo_ItemClick (Position As Int, Value As Object)
-
-End Sub
-
-Private Sub lv_producto2_ItemClick (Position As Int, Value As Object)
-
-End Sub
-
-Sub B4XPage_CloseRequest As ResumableSub'ignore
- ' BACK key pressed
- If logger Then LogColor("BACK", Colors.Red)
-' If Logger Then Log("entro=" & entro)
-' If Logger Then Log("lvClic="&lvClic)
- If TECLA_BACK = 1 Then entro ="2"
-' If key=KeyCodes.KEYCODE_BACK Then
- ya_entro ="0"
- If entro = "4" Or entro = "3" Then
- entro = "2"
- TECLA_BACK = 1
- ListView1_ItemClick(1,tipo)
- Return True
- Else If entro = "2" Then 'Antes 3
- B4XPage_Appear
- Return False
- Else
- If logger Then LogColor($"Entro=${entro} - BACK"$, Colors.Blue)
- Return False
- End If
-' End If
- ' Returning False signals the system to handle the key
-End Sub
-
-Sub BUSCA_TextChanged (Old As String, New As String)
- q_buscar = "%" & BUSCA.Text & "%"
- c=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO,CAT_GP_IMG from " & query & " where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_NOMBRE like ? and CAT_GP_CLASIF <> ? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_GP_NOMBRE asc", Array As String(q_buscar,"PROMOS"))
- ListView1.Clear
- Dim ins As InputStream
- Dim bmp As Bitmap
- Dim jpeg() As Byte
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- jpeg = c.GetBlob("CAT_GP_IMG")
- ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
- bmp.Initialize2(ins)
- ListView1.AddTwoLines(c.GetString("CAT_GP_NOMBRE"),"Existencia " & c.GetString("CAT_GP_ALMACEN") & " Precio $" & c.GetString("CAT_GP_PRECIO"))
- Next
- End If
- c.Close
- entro= "4"
-End Sub
-
-Sub HACER_PEDIDO
- ListView1.Visible = False
- c=Starter.skmt.ExecQuery("Select SUBSTR(CUENTA,1,1) AS CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
-' If Logger Then Log("+ + + "&c.RowCount)
- c.Position=0
- cuenta = c.GetString("CUENTA")
- c.Close
- Panel1.Visible= True
- cambio = "0"
- cantidad.Text = "0"
- c=Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
-' If Logger Then Log("+ + + "&c.RowCount)
- C.Position =0
- ALMACEN = C.GetString("ID_ALMACEN")
- C.Close
- i_fotol.Visible = False
- c=Starter.skmt.ExecQuery("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV from " & query & " where CAT_GP_NOMBRE In (Select PDESC from PROID)")
- c.Position=0
- L_PROID.Text = c.GetString("CAT_GP_ID")
- l_tipo.Text = c.GetString("CAT_GP_TIPO")
- l_sub.Text = c.GetString("CAT_GP_SUBTIPO")
- l_marca.Text = c.GetString("CAT_GP_CLASIF")
- l_desc.Text = c.GetString("CAT_GP_NOMBRE")
- If PERFIL = "V-SUPER" Then
- c2=Starter.skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = '10' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC")
- If logger Then Log("+ + + "&c.RowCount)
- c2.Position=0
- l_precio.Text = c2.GetString("PRECIO")
- c2.Close
- Else
- l_precio.Text = c.GetDouble("CAT_GP_PRECIO")
- End If
- l_bodega.Text = c.GetString("CAT_GP_ALMACEN")
- PROMOS_VENTAS = c.GetString("CAT_GP_ALMACEN")
- IMG_PASO = c.GetBlob("CAT_GP_IMG")
- PROMO_C = c.GetString("CAT_GP_STS")
- cambio = c.GetString("CAT_GP_DEV")
- preciosin = c.GetString("CAT_GP_IMP2")
- PROMO_CR = c.GetString("CAT_GP_IMP1")
- precio2 = l_precio.Text
- c=Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'LIMITE'")
-' If Logger Then Log("+ + + "&c.RowCount)
- If c.RowCount > 0 Then
- C.Position = 0
- limite_abordo = C.GetString("CAT_VA_VALOR")
- End If
- C.Close
- c=Starter.skmt.ExecQuery2("select sum(cat_gp_precio * cat_gp_almacen) as MONTO from cat_gunaprod2 where cat_gp_almacen > 0 and cat_gp_clasif <> ? ", Array As String("PROMOS"))
-' If Logger Then Log("+ + + "&c.RowCount)
- c.Position = 0
- limite_anterior = c.GetString("MONTO")
- c.Close
- If clie_id = "0" Then
- l_invact.Visible=True
- L_LINV.Visible=True
- L_CARGA.Visible = True
- L_CANT.Text ="PEDIDO"
- c2=Starter.skmt.ExecQuery("select count(*) as CUANTOS from cat_gunaprod2 where CAT_GP_NOMBRE In (Select PDESC from PROID)")
-' If Logger Then Log("+ + + "&c2.RowCount)
- c2.Position =0
- If c2.GetString("CUANTOS") > 0 Then
- c=Starter.skmt.ExecQuery("select CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_NOMBRE In (Select PDESC from PROID)")
- C.Position =0
- l_invact.text = C.GetString("CAT_GP_ALMACEN")
- C.Close
- Else
- l_invact.text = 0
- End If
- Label3.Visible = False
- ImageView4.Visible = False
- E_CAMBIO.Visible = False
- B_MENOSC.Visible = False
- B_MASC.Visible = False
- Else
- l_invact.Visible=False
- L_LINV.Visible=False
- L_CARGA.Visible = False
- L_CANT.Text ="VENTA"
- Label3.Visible = True
- ImageView4.Visible = True
- E_CAMBIO.Visible = True
- B_MENOSC.Visible = True
- B_MASC.Visible = True
- End If
- DESC_SS = 0
- DESC_PING = 0
- DESC_RTEC = 0
- CC=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM DESC_CLIENTES WHERE DC_CL_CLIENTE IN (Select cuenta from cuentaa) ")
-' If Logger Then Log("+ + + "&CC.RowCount)
- CC.Position =0
- If CC.GetString("CUANTOS") > 0 Then
- DD=Starter.skmt.ExecQuery("SELECT DC_CL_CLIENTE , CAT_CL_DESCUENTO_SS , CAT_CL_DESCUENTO_RTEC , CAT_CL_DESCUENTO_PING, CAT_CL_TIPOCLIENTE FROM DESC_CLIENTES WHERE DC_CL_CLIENTE IN (Select cuenta from cuentaa) ")
-' If Logger Then Log("+ + + "&DD.RowCount)
- DD.Position =0
- DESC_SS = DD.GetString("CAT_CL_DESCUENTO_SS")
- DESC_RTEC = DD.GetString("CAT_CL_DESCUENTO_RTEC")
- DESC_PING = DD.GetString("CAT_CL_DESCUENTO_PING")
- TIPO_CLIENTE = DD.GetString("CAT_CL_TIPOCLIENTE")
- DD.Close
- Else
- DESC_SS = 0
- DESC_PING = 0
- DESC_RTEC = 0
- TIPO_CLIENTE = 0
- End If
- CC.Close
- '' esto es de las promos para activarlas despues
- If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" Then
- DESC_PROMO.Visible = True
- CC=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM PROMOS_COMP WHERE CAT_PA_ID = ?", Array As String(L_PROID.Text))
- CC.Position =0
- If CC.GetString("CUANTOS") = 0 Then
- l_bodega.Text = "1"
- Else
- CC.Close
- CC=Starter.skmt.ExecQuery2("select CAT_PA_MAXPROM, CAT_PA_MAXPROMREC, CAT_PA_MAXPROMCLIE FROM PROMOS_COMP WHERE CAT_PA_ID = ?", Array As String(L_PROID.Text))
- CC.Position =0
-
- DD=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) AND HCCP_PROMO =?", Array As String(L_PROID.Text))
- DD.Position =0
- If DD.GetString("CUANTOS") = 0 Then
- HCCP_CANT_E = 0
- Else
- DD.Close
- DD=Starter.skmt.ExecQuery2("SELECT HCCP_CANT FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) AND HCCP_PROMO =?", Array As String(L_PROID.Text))
- DD.Position =0
- HCCP_CANT_E = DD.GetString("HCCP_CANT")
- DD.Close
- End If
- DD=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select cuenta from cuentaa) AND HVD_PRONOMBRE =?", Array As String(l_desc.Text))
- DD.Position =0
- If DD.GetString("CUANTOS") = 0 Then
- HCCP_CANT = 0
- Else
- DD.Close
- DD=Starter.skmt.ExecQuery2("SELECT SUM(HVD_CANT) AS HCCP_CANT FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select cuenta from cuentaa) AND HVD_PRONOMBRE =?", Array As String(l_desc.Text))
- DD.Position =0
- HCCP_CANT = DD.GetString("HCCP_CANT")
- DD.Close
- End If
- HCCP_CANT_E = HCCP_CANT_E - HCCP_CANT
- TOTAL_PROMO = CC.GetString("CAT_PA_MAXPROMCLIE") - HCCP_CANT
- If HCCP_CANT = 0 Then
- PROMOS_VENTAS = CC.GetString("CAT_PA_MAXPROM")
- Else IF TOTAL_PROMO > CC.GetString("CAT_PA_MAXPROMREC") Then
- PROMOS_VENTAS = CC.GetString("CAT_PA_MAXPROMREC")
- Else
- PROMOS_VENTAS = TOTAL_PROMO
- End If
- End If
- Else
- DESC_PROMO.Visible = False
- End If
- c.Close
- c=Starter.skmt.ExecQuery("select CASE WHEN pe_costo_tot is null then 0 else sum( pe_costo_tot ) end as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- t_venta.Text = c.GetString("TOTAL_CLIE")
- c.Close
- Terminar.Visible = True
- guardar.Visible = True
- cantidad.Visible = True
- If cambio = "1" Then
- nopromo.Visible = True
- Else
- nopromo.Visible = False
- End If
- Dim out As OutputStream
- out = File.OpenOutput(ruta, "1.jpg", False)
- out.WriteBytes(IMG_PASO, 0, IMG_PASO.Length)
- out.Close
- img_prod.Bitmap = LoadBitmap(ruta,"1.jpg")
- TOT_ART_PROMO = "0"
- TOT_ART_PROMOR = "0"
- If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And l_bodega.Text = "0" Then
- MsgboxAsync("ALERTA","EL CLIENTE YA NO PUEDE TENER ESTA PROMOCION") 'ignore
- Panel1.Visible= False
- End If
- If marca = "PROMOS" Then
- DD=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM PROMOS_COMP WHERE CAT_PA_ID =?", Array As String(L_PROID.Text))
- DD.Position =0
- If DD.GetString("CUANTOS") > 0 Then
- C=Starter.skmt.ExecQuery2("SELECT CAT_PA_MAXPROMCLIE FROM PROMOS_COMP WHERE CAT_PA_ID =?", Array As String(L_PROID.Text))
- C.Position =0
- TOTAL_PROMO_CLIE = c.GetString("CAT_PA_MAXPROMCLIE")
- c.Close
- Else
- TOTAL_PROMO_CLIE = 0
- End If
- DD.Close
- Else
- If TIPO_CLIENTE = "TDCK" Then
-
- c=Starter.skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA ='10' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC")
- c.Position=0
- l_precio.Text = c.GetString("PRECIO")
- c.Close
- End If
- End If
- If l_tipo.Text = "SALTY SNACKS" Then
- l_precio.Text = Round2(l_precio.Text -(l_precio.Text * DESC_SS/100),2)
- ELSE IF l_tipo.Text = "PING" Then
- l_precio.Text = Round2(l_precio.Text - (l_precio.Text * DESC_PING/100),2)
- ELSE IF l_tipo.Text = "RTEC" Then
- l_precio.Text = Round2(l_precio.Text - (l_precio.Text * DESC_RTEC/100),2)
- End If
-
- If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And l_bodega.Text = "0" Then
- MsgboxAsync("ALERTA","EL CLIENTE NO PUEDE TENER ESTA PROMOCION") 'ignore
- Panel1.Visible= False
- End If
- DD=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) AND HCCP_PROMO =?", Array As String(L_PROID.Text))
- DD.Position =0
- SI_APLICA_PROMO = DD.GetString("CUANTOS")
- DD.Close
- DD=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_PROMO =?", Array As String(L_PROID.Text))
- DD.Position =0
- PROMO_ESP = DD.GetString("CUANTOS")
- DD.Close
- If PROMO_ESP > 0 And SI_APLICA_PROMO = 0 Then
- MsgboxAsync("ALERTA","EL CLIENTE NO PUEDE TENER ESTA PROMOCION 1") 'ignore
- Panel1.Visible= False
- End If
- If L_PROID.Text = "PROMO58" Then
- l_bodega.Text = 1
- End If
- If L_PROID.Text = "PROMO58" And HCCP_CANT_E < 1 Then
- MsgboxAsync("ALERTA","EL CLIENTE NO PUEDE TENER ESTA PROMOCION <")
- Panel1.Visible= False
- End If
- If HCCP_CANT_E = 0 And ( L_PROID.Text = "1000000001" Or L_PROID.Text = "PROMO243" Or L_PROID.Text = "PROMO244" Or L_PROID.Text = "PROMO245" )Then
- MsgboxAsync("ALERTA","EL CLIENTE NO PUEDE TENER ESTA PROMOCION 0 " &HCCP_CANT & " "& L_PROID.Text) 'ignore
- Panel1.Visible= False
- Else IF L_PROID.Text = "1000000001" Or L_PROID.Text = "PROMO243" Or L_PROID.Text = "PROMO244" Or L_PROID.Text = "PROMO245" Then
- l_bodega.Text = 1
- End If
- If L_PROID.Text = "PROMO76" And HCCP_CANT = 0 Then
- MsgboxAsync("ALERTA","EL CLIENTE NO PUEDE TENER ESTA PROMOCION 2") 'ignore
- Panel1.Visible= False
- Else IF L_PROID.Text = "PROMO76" Then
- l_bodega.Text = 1
- End If
- C=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM CAT_DESCUENTOS_SKU WHERE CAT_DS_CLIENTE IN (Select cuenta from cuentaa) AND CAT_DS_PRODID = " & "'" &L_PROID.TEXT&"' ")
- C.Position =0
- If c.GetString("CUANTOS") > 0 Then
- DD=Starter.skmt.ExecQuery("SELECT CAT_DS_PORCENTAJE FROM CAT_DESCUENTOS_SKU WHERE CAT_DS_CLIENTE IN (Select cuenta from cuentaa) AND CAT_DS_PRODID = " & "'" &L_PROID.TEXT&"' ")
- DD.Position =0
- l_precio.Text = Round2(l_precio.Text - (l_precio.Text * DD.GetString("CAT_DS_PORCENTAJE")/100),2)
- End If
- c.Close
- '' ESTO ES PARA NO PASAR DE LAS PROMOS ABORDO Y MANDARLAS AL MINIMO INICIO
- If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" Then
- e=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM pedido WHERE PE_PROID = ? AND PE_CLIENTE IN (Select cuenta from cuentaa) ", Array As String(L_PROID.Text))
- e.Position =0
- If e.GetString("CUANTOS") = 0 Then
- l_bodega.Text = PROMOS_VENTAS
- e=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ? and cat_dp_tipo = 0", Array As String(L_PROID.Text) )
- e.Position = 0
- If e.GetString("CUANTOS") > 0 Then
- F=Starter.skmt.ExecQuery2("select CAT_DP_IDPROD, sum(CAT_DP_PZAS) as CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ? and cat_dp_tipo = 0 GROUP BY CAT_DP_IDPROD", Array As String(L_PROID.Text) )
- 'se coloco el if por la mala promocion.
- For i=0 To F.RowCount -1
- F.Position=i
- c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from cat_gunaprod2 where CAT_GP_ID = ? and cat_gp_almacen > 0 ", Array As String(f.GetString("CAT_DP_IDPROD")))
- c.Position=0
- If c.GetString("CUANTOS") > 0 Then
- h=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE, CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD")))
- h.Position=0
- If TOTAL_PROMO_CLIE > l_bodega.Text Then
- INV_TOTAL_PROMO = l_bodega.Text
- Else
- INV_TOTAL_PROMO = TOTAL_PROMO_CLIE
- End If
- If h.GetString("CAT_GP_ALMACEN") < INV_TOTAL_PROMO * f.GetString("CAT_DP_PZAS") Then
- If h.GetString("CAT_GP_ALMACEN") < f.GetString("CAT_DP_PZAS") Then
- l_bodega.Text = "0"
- Else
- l_bodega.Text = Round(h.GetString("CAT_GP_ALMACEN") / f.GetString("CAT_DP_PZAS"))
- End If
- End If
- h.Close
- else if c.GetString("CUANTOS") = 0 Then
- l_bodega.Text = "0"
- End If
- c.Close
- Next
- f.Close
- End If
- e.Close
- If l_bodega.Text = "0" Then
- Msgbox ("PROMO LLEGO AL LIMITE PARA ESTE CLIENTE", "AVISO") 'ignore
- Panel1.Visible= False
- l_bodega.Text = "0"
- Subs.iniciaActividad("Cliente")
- End If
- Else
- Msgbox ("YA SE VENDIO LA PROMO.", "AVISO") 'ignore
- Panel1.Visible= False
- l_bodega.Text = "0"
- Subs.iniciaActividad("Cliente")
- End If
- End If
- If l_marca.text = "PROMOS" And B4XPages.MainPage.cliente.YA_IMPRIMIO2 = 1 Then
- Msgbox ("YA SE IMPRIMIO EL TICKET.", "AVISO") 'ignore
- Panel1.Visible= False
- l_bodega.Text = "0"
- Subs.iniciaActividad("Cliente")
- End If
-End Sub
-
-Sub guardar_Click
- guardar.Enabled = False
- Panel1.Visible=False
- If cantidad.Text = "" Then
- cantidad.Text = 0
- End If
- limite_actual = t_venta.Text + (cantidad.Text * l_precio.Text)
- Log($"Limite actual=${limite_actual}"$)
- If cuenta = "0" Then
- limite_actual = limite_actual + limite_anterior
- End If
- Log($"Limite actual=${limite_actual}"$)
- If Starter.lat_gps = 0 Or Starter.lat_gps = Null Then
- Private coords As List = Subs.traeCoordsDeBD
- Starter.lat_gps = coords.Get(0)
- Starter.lon_gps = coords.Get(1)
- End If
-' If Logger Then Log($"cuenta: ${cuenta}, limite_actual:${limite_actual}, limite_abordo:${limite_abordo}"$)
- If limite_abordo = "" Then limite_abordo = 0 'Mod por CHV - 211213 - Para que si limite_abordo no tiene valor, no nos saque de la app.
- If cuenta ="0" And limite_actual > limite_abordo And cantidad.Text <> 0 And cantidad.Text <> "" Then
- Log($"${cuenta},${limite_actual > limite_abordo},${cantidad.text}"$)
- Msgbox("Excede el limite abordo","limite") 'ignore
- Else IF (cuenta <> "0" And limite_actual < B4XPages.MainPage.cliente.CREDITO_DISPONIBLE) Or (cuenta ="0" And limite_actual < limite_abordo) Then
- If E_CAMBIO.Text = "" Or E_CAMBIO.Text = "0" Then
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
- Else
- If E_CAMBIO.Text = "" Then E_CAMBIO.Text = "0"
- If E_CAMBIO.Text * l_precio.Text > t_venta.Text Then
- Msgbox("Excede EL MONTO DE LA VENTA", "ADVERTENCIA") 'ignore
- else if E_CAMBIO.Text + cantidad.Text > l_bodega.Text Then
- Msgbox("Excede existencia", "ADVERTENCIA") 'ignore
- Else
- Subs.guardaCambiosDeProducto(E_CAMBIO.text, l_desc.text, L_PROID.Text, precio2, query)
- E_CAMBIO.Text = ""
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
- End If
- End If
- If cantidad.Text = "" Or cantidad.Text = "0.0" Or cantidad.Text = "0" Then
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
- ELSE If cantidad.Text > l_bodega.Text Then
- Msgbox("Excede la existencia", "ADVERTENCIA") 'ignore
- Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then
- Starter.skmt.ExecNonQuery("delete from PROIDID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- c=Starter.skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1)")
- c.Position =0
- If c.GetString("CUANTOSD") = 0 Then
- Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") 'ignore
- Else
- c=Starter.skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1)")
- C.Position =0
- TOT_ART_PROMO = C.GetString("TOT_ART_PROMO")
- COSTO_TOT = C.GetString("COSTO_TOT")
- C.Close
- ' se agrego and PE_COSTOU > 0 para que no tome los cambios
- c=Starter.skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1)")
- c.Position =0
- If c.GetString("CUANTOSD") = 0 Then
- TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") 'ignore
- Else
- c=Starter.skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1)")
- C.Position =0
- TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO")
- End If
- C.Close
- If PROMO_C = "" Then PROMO_C = "0"
- PROMO_C = PROMO_C * cantidad.Text
- If PROMO_CR = "" Then PROMO_CR = "0"
- PROMO_CR = PROMO_CR * cantidad.Text
- If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CEDIS not like 'PROMO%' and PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text))
- D=Starter.skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 1 AND CAT_DP_TIPO = 1") ' MODIFCADO 05/05/2021 PARA QUE NO TOME LOS CAMBIOS
- If D.RowCount>0 Then
- For i=0 To D.RowCount -1
- D.Position=i
- ' se agrega esta linea para que no tome los cambios
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1 AND CAT_DP_PRECIO > 1) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD")))
- Next
- End If
- D.Close
- D=Starter.skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1")
- If D.RowCount>0 Then
- For i=0 To D.RowCount -1
- D.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) AND PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD")))
- Next
- End If
- D.Close
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- cl_ruta = "0"
- If c.RowCount > 0 Then
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- End If
- c.Close
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- usuario = ""
- If c.RowCount > 0 Then
- c.Position=0
- usuario = c.GetString("USUARIO")
- End If
- 'para insertar la promo de ades el de regalo en 0
- e=Starter.skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 ")
- e.Position =0
- If e.GetString("CUANTOS") > 0 Then
- F=Starter.skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS,CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 ")
- 'meter el otro
- If f.RowCount>0 Then
- For i=0 To f.RowCount -1
- f.Position=i
- 'F.Position =0
- PRECIO_CERO = f.GetString("CAT_DP_PRECIO")
- h=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD")))
- h.Position=0
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,PRECIO_CERO * f.GetString("CAT_DP_PZAS") * cantidad.text, PRECIO_CERO, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- 'ESTO LO CAMBIE POR QUE NO DESCUENTA EL INVENTARIO ABORDO CON LAS PROMOS
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD")))
- h.Close
- Next
- End If
- f.Close
- End If
- e.Close
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- Else
- Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") 'ignore
- End If
- End If
- cantidad.Text = ""
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
-
- ''''' PROMOS QUE NO SON VARIABLE
- else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then
- Starter.skmt.ExecNonQuery("delete from PROIDID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- c.Close
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- usuario = c.GetString("USUARIO")
- 'para insertar la promo de ades el de regalo en 0
- e=Starter.skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ")
- e.Position =0
- If e.GetString("CUANTOS") > 0 Then
- F=Starter.skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)")
- For i =0 To f.RowCount -1
- F.Position =i
- h=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD")))
- h.Position=0
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- 'ESTO LO CAMBIE POR QUE NO DESCUENTA EL INVENTARIO ABORDO CON LAS PROMOS
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD")))
- h.Close
- Next
- f.Close
- End If
- e.Close
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- cantidad.Text = ""
- c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
- Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps,ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN")))
- Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
- Else
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- c.Close
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- usuario = c.GetString("USUARIO")
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
- Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN")))
- Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- Panel1.Visible= False
- entro = "3"
- If BUSCA.Text = "" Then
- ListView1_ItemClick(1,V_ANT_SALIR)
- Else
- BUSCA_TextChanged(1, BUSCA.Text)
- End If
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ") 'Mod por CHV - 220302 - Agregué PE_FECHA al select/insert
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- 'StartActivity(fila)
- End If
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ") 'Mod por CHV - 220302 - Agregue PE_FECHA al select/insert
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- Else
- Log($"${cuenta},${limite_actual > limite_abordo},${cantidad.text},${B4XPages.MainPage.cliente.CREDITO_DISPONIBLE},${limite_actual},${limite_abordo}"$)
- Msgbox("EXCEDE EL LIMITE DE CREDITO","AVISO") 'ignore
- End If
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- If cuenta <> "0" Then
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- End If
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_FECHA, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ") 'Mod por CHV - 220302 - Agregué PE_FECHA al select/insert
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- ListView1.Visible = True
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_FECHA = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_FECHA IS NULL", Array As Object(sDate & sTime))
- guardar.Enabled = True
-End Sub
-
-Sub GPS_LocationChanged (Location1 As Location)
-' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
-' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
-End Sub
-
-Sub Terminar_Click
- Terminar.Enabled = False
- Panel1.Visible=False
- If cantidad.Text = "" Then
- cantidad.Text = 0
- End If
- If Starter.lat_gps = 0 Or Starter.lat_gps = Null Then
- Private coords As List = Subs.traeCoordsDeBD
- Starter.lat_gps = coords.Get(0)
- Starter.lon_gps = coords.Get(1)
- End If
- limite_actual = t_venta.Text + (cantidad.Text * l_precio.Text)
- Log($"Limite actual=${limite_actual}"$)
- If cuenta = "0" Then
- limite_actual = limite_actual + limite_anterior
- End If
- Log($"Limite actual=${limite_actual}"$)
- If limite_abordo = "" Then limite_abordo = 0 'Mod por CHV - 211213 - Para que si limite_abordo no tiene valor, no nos saque de la app.
- If cuenta ="0" And limite_actual > limite_abordo And cantidad.Text <> 0 And cantidad.Text <> "" Then
- Msgbox("excede el limite abordo","limite") 'ignore
- Else IF (cuenta <> "0" And limite_actual < B4XPages.MainPage.cliente.CREDITO_DISPONIBLE) Or (cuenta ="0" And limite_actual < limite_abordo) Then
- If E_CAMBIO.Text = "" Or E_CAMBIO.Text = "0" Then
- Panel1.Visible= False
- Else
- If E_CAMBIO.Text = "" Then E_CAMBIO.Text = "0"
- If E_CAMBIO.Text * l_precio.Text > t_venta.Text Then
- Msgbox("Excede EL MONTO DE LA VENTA", "ADVERTENCIA") 'ignore
- else if E_CAMBIO.Text + cantidad.Text > l_bodega.Text Then
- Msgbox("Excede existencia", "ADVERTENCIA") 'ignore
- Else
- Subs.guardaCambiosDeProducto(E_CAMBIO.text, l_desc.text, L_PROID.Text, precio2, query)
- E_CAMBIO.Text = ""
- Panel1.Visible= False
- End If
- End If
- If cantidad.Text = "" Or cantidad.Text = "0.0" Or cantidad.Text = "0" Then
- B4XPages.ShowPage("Cliente")
- ELSE If cantidad.Text > l_bodega.Text Then
- Msgbox("Excede la existencia", "ADVERTENCIA") 'ignore
- Else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C > 0 And cantidad.Text > 0 Then
- Starter.skmt.ExecNonQuery("delete from PROIDID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- c=Starter.skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1)")
- c.Position =0
- If c.GetString("CUANTOSD") = 0 Then
- Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") 'ignore
- Else
- c=Starter.skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1)")
- TOT_ART_PROMO = 0
- COSTO_TOT = 0
- If c.RowCount > 0 Then
- c.Position =0
- TOT_ART_PROMO = c.GetString("TOT_ART_PROMO")
- COSTO_TOT = c.GetString("COSTO_TOT")
- End If
- C.Close
- ' Se agrego and PE_COSTOU > 0 para que no tome los cambios
- c=Starter.skmt.ExecQuery("Select count(*) as CUANTOSD from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1)")
- c.Position =0
- If c.GetString("CUANTOSD") = 0 Then
- TOT_ART_PROMOR = "0" 'Msgbox("No tiene venta el cliente para la promo", "ADVERTENCIA") 'ignore
- Else
- c=Starter.skmt.ExecQuery("Select sum(pe_cant) As TOT_ART_PROMO, sum(PE_COSTO_TOT) as COSTO_TOT from pedido where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1)")
- TOT_ART_PROMOR = 0
- If c.RowCount > 0 Then
- C.Position =0
- TOT_ART_PROMOR = C.GetString("TOT_ART_PROMO")
- End If
- End If
- C.Close
- If PROMO_C = "" Then PROMO_C = "0"
- PROMO_C = PROMO_C * cantidad.Text
- If PROMO_CR = "" Then PROMO_CR = "0"
- PROMO_CR = PROMO_CR * cantidad.Text
- If TOT_ART_PROMO = PROMO_C And TOT_ART_PROMOR = PROMO_CR Then
- ' anterior a 29/06/2015
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_CEDIS = (?) WHERE PE_CEDIS not like 'PROMO%' and PE_CLIENTE IN (Select CUENTA from cuentaa) and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID))", Array As Object(L_PROID.text))
- D=Starter.skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND CAT_DP_PRECIO > 1 AND CAT_DP_TIPO = 1") ' MODIFCADO 05/05/2021 PARA QUE NO TOME LOS CAMBIOS
- If D.RowCount>0 Then
- For i=0 To D.RowCount -1
- D.Position=i
- ' se agrega esta linea para que no tome los cambios
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) And PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1 AND CAT_DP_PRECIO > 1) ",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD")))
- Next
- End If
- D.Close
- D=Starter.skmt.ExecQuery("select CAT_DP_ID, CAT_DP_PRECIO, CAT_DP_PRECIO_SIMPTOS, CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) AND (CAT_DP_PRECIO = 0.01 or CAT_DP_PRECIO = 1 OR CAT_DP_PRECIO = 0) AND CAT_DP_TIPO = 1")
- If D.RowCount>0 Then
- For i=0 To D.RowCount -1
- D.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_COSTOU = (?), PE_COSTO_TOT = PE_CANT * (?) , PE_COSTO_SIN = (?) WHERE PE_PROID = (?) AND PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_COSTOU > 0 and pe_proid In (Select cat_dp_idprod from CAT_DETALLES_PAQ WHERE CAT_DP_ID In (Select PROIDID from PROIDID) AND CAT_DP_TIPO = 1",Array As Object( D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO"), D.GetString("CAT_DP_PRECIO_SIMPTOS"),D.GetString("CAT_DP_IDPROD")))
- Next
- End If
- D.Close
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
-
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- cl_ruta = 0
- If c.RowCount > 0 Then
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- End If
- c.Close
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- usuario = "0"
- If c.RowCount > 0 Then
- c.Position=0
- usuario = c.GetString("USUARIO")
- End If
- 'para insertar la promo de ades el de regalo en 0
- e=Starter.skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 ")
- e.Position =0
- If e.GetString("CUANTOS") > 0 Then
- F=Starter.skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS,CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) and CAT_DP_TIPO = 0 ")
- 'meter el otro
- If f.RowCount>0 Then
- For i=0 To f.RowCount -1
- f.Position=i
- PRECIO_CERO = f.GetString("CAT_DP_PRECIO")
- h=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD")))
- h.Position=0
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,PRECIO_CERO * f.GetString("CAT_DP_PZAS") * cantidad.text, PRECIO_CERO, f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- 'ESTO LO CAMBIE POR QUE NO DESCUENTA EL INVENTARIO ABORDO CON LAS PROMOS
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD")))
- h.Close
- Next
- End If
- f.Close
- End If
- e.Close
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- Else
- Msgbox("Tiene " & TOT_ART_PROMO & " " & TOT_ART_PROMOR & " y necesita " & PROMO_C & " " & PROMO_CR & " Para la Promo. " , "ADVERTENCIA") 'ignore
- End If
- End If
- cantidad.Text = ""
- Panel1.Visible= False
- Subs.iniciaActividad("Cliente")
- else If l_marca.text = "PROMOS" And l_tipo.Text ="PROMOS" And PROMO_C = 0 Then
- Starter.skmt.ExecNonQuery("delete from PROIDID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- clie_id = "0"
- If c.RowCount > 0 Then
- c.Position=0
- clie_id = c.GetString("CUENTA")
- End If
- c.Close
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
-
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- c.Close
-
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- usuario = c.GetString("USUARIO")
- 'para insertar la promo de ades el de regalo en 0
- e=Starter.skmt.ExecQuery("select count(*) as CUANTOS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID) ")
- e.Position =0
- If e.GetString("CUANTOS") > 0 Then
- F=Starter.skmt.ExecQuery("select CAT_DP_IDPROD, CAT_DP_PZAS, CAT_DP_PRECIO FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (Select PROIDID from PROIDID)")
- For i =0 To f.RowCount -1
- F.Position =i
- h=Starter.skmt.ExecQuery2("select CAT_GP_NOMBRE from " & query & " where CAT_GP_ID = ? ", Array As String(f.GetString("CAT_DP_IDPROD")))
- h.Position=0
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,f.GetString("CAT_DP_PRECIO") * cantidad.text * f.GetString("CAT_DP_PZAS"), f.GetString("CAT_DP_PRECIO"), f.GetString("CAT_DP_PZAS") * cantidad.text, h.GetString("CAT_GP_NOMBRE"), f.GetString("CAT_DP_IDPROD"),clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- 'ESTO LO CAMBIE POR QUE NO DESCUENTA EL INVENTARIO ABORDO CON LAS PROMOS
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(f.GetString("CAT_DP_PZAS") * cantidad.text, f.GetString("CAT_DP_IDPROD")))
- h.Close
- Next
- f.Close
- End If
- e.Close
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (L_PROID.text,0, 0, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- cantidad.Text = ""
- c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
- Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN")))
- Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- Subs.iniciaActividad("Cliente")
- Else
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate=DateTime.Date(DateTime.Now)
- sTime=DateTime.Time(DateTime.Now)
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- clie_id = c.GetString("CUENTA")
- c.Close
- c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
- c.Position=0
- cl_ruta = c.GetString("CAT_CL_RUTA")
- c.Close
-
- c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- usuario = c.GetString("USUARIO")
-
- Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_TIPO,PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (ALMACEN,cantidad.Text * l_precio.Text, l_precio.text, cantidad.text, l_desc.text, L_PROID.Text,clie_id, sDate & sTime, usuario,cl_ruta,preciosin,Starter.tipov,precio2))
- Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad.Text, L_PROID.Text))
- c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
- Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, ALMACEN,cl_ruta,c.GetString("TOTAL_CLIE_SIN")))
- Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- Panel1.Visible= False
-
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
-
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
-
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- Subs.iniciaActividad("Cliente")
- End If
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- Else
- Log($"${cuenta},${limite_actual > limite_abordo},${cantidad.text},${B4XPages.MainPage.cliente.CREDITO_DISPONIBLE},${limite_actual},${limite_abordo}"$)
- Msgbox("EXCEDE EL LIMITE DE CREDITO","AVISO") 'ignore
- End If
- Starter.skmt.ExecNonQuery("delete from pedido3")
- Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- If cuenta <> "0" Then
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- End If
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
- c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? ", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS")))
- Next
- End If
- c.Close
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
- Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- ListView1.Visible = True
- Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_FECHA = ? where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_FECHA IS NULL", Array As Object(sDate & sTime))
- Terminar.Enabled = True
- Subs.iniciaActividad("Cliente")
-End Sub
-
-Sub i_fotol_Click
- i_fotol.Visible = False
-End Sub
-
-Sub DESC_PROMO_Click
- Starter.skmt.ExecNonQuery("delete from PROIDID")
- Starter.skmt.ExecNonQuery2("INSERT INTO PROIDID VALUES (?)", Array As Object(L_PROID.text))
- Subs.iniciaActividad("detalle_promo")
-End Sub
-
-Sub nopromo_Click
- If cantidad.Text = "" Then
- Panel1.Visible= False
- Else
- If cantidad.Text * l_precio.Text > t_venta.Text Then
- Msgbox("Excede EL MONTO DE LA VENTA", "ADVERTENCIA") 'ignore
- Else
- Subs.guardaCambiosDeProducto(cantidad.Text, l_desc.text, L_PROID.Text, precio2, query)
- cantidad.Text = ""
- Panel1.Visible= False
- End If
- End If
-End Sub
-
-Sub LV_PRECIOS_ItemClick (Position As Int, Value As Object)
- c=Starter.skmt.ExecQuery("select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA = " & "'" & Value &"' AND CAT_GP_ID =" & "'" &L_PROID.TEXT&"' ORDER BY NLISTA ASC")
- c.Position=0
- l_precio.Text = c.GetString("PRECIO")
- c.Close
-End Sub
-
-Sub B_MENOS_Click
- If cantidad.Text = "" Then
- cantidad.Text = ""
- Else IF cantidad.Text > 0 Then
- cantidad.Text = cantidad.Text -1
- End If
-End Sub
-
-Sub B_MAS_Click
- If cantidad.Text = "" Then
- cantidad.Text = 1
- Else
- cantidad.Text = cantidad.Text + 1
- End If
-End Sub
-
-Sub B_MENOSC_Click
- If E_CAMBIO.Text = "" Then
- E_CAMBIO.Text = ""
- Else IF E_CAMBIO.Text > 0 Then
- E_CAMBIO.Text = E_CAMBIO.Text -1
- End If
-End Sub
-
-Sub B_MASC_Click
- If E_CAMBIO.Text = "" Then
- E_CAMBIO.Text = 1
- Else
- E_CAMBIO.Text = E_CAMBIO.Text + 1
- End If
-End Sub
diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas
deleted file mode 100644
index c0d40d1..0000000
--- a/B4A/C_Promos.bas
+++ /dev/null
@@ -1,430 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
-Sub Class_Globals
- Private Root As B4XView 'ignore
- Private xui As XUI
- Private l_promoDesc As Label
- Private lv_prodsFijos As ListView
- Private clv_prodsVariabes As CustomListView
- Private l_prodsFijos As Label
- Private l_prodsVariables As Label
- Private i_prod As ImageView
- Private l_prodX As Label
- Private p_prods As Panel
- Private b_prodMenos As Button
- Private et_pCant As EditText
- Private b_prodMas As Button
- Private l_pCant As Label
- Dim totalProds As Int = 0
- Dim prodsVarReq As Int = 0
- Dim prodsVarReq2 As Int = 0
- Dim totalCompra As Float = 0
- Dim prodsFijosTot As Float = 0
- Dim tpf As Int = 0
- Dim tpf2 As Int = 0
- Dim maxCantPromos As Int = 1
- Private l_totProds As Label
- Private l_total As Label
- Private b_terminar1 As Button
- Private p_promociones As Panel
- Dim prodsIds, prodsCants, prodsPrecios, prodsIds2, prodsCants2, prodsPrecios2 As List
- Dim estaPromo, esteCliente As String
- Private b_promoMas As Button
- Private b_promoMenos As Button
- Private et_promoCant As EditText
- Private l_promosCant As Label
- Private b_continuar As Button
- Private p_prodsVariables As Panel
- Dim laPromo = "", elCliente = "" As String
- Dim prodsPedidoActual As String
- Dim montoPedidoActual As String
- Dim promosMap As Map
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize As Object
- Return Me
-End Sub
-
-'This event will be called once, before the page becomes visible.
-Private Sub B4XPage_Created (Root1 As B4XView)
- Root = Root1
- 'load the layout to Root
- Root.LoadLayout("promociones")
- promosMap.Initialize
- p_promociones.Top=0
- p_promociones.Left=0
- p_promociones.Height=Root.Height
- p_promociones.Width=Root.Width
- b_terminar1.Left = Root.Width - (b_terminar1.Width + 10)
- b_continuar.Left = Root.Width - b_terminar1.Width - (b_continuar.Width + 20)
-End Sub
-
-Sub B4XPage_Appear
-' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.blue)
- prodsIds.Initialize
- prodsCants.Initialize
- prodsPrecios.Initialize
- prodsIds2.Initialize
- prodsCants2.Initialize
- prodsPrecios2.Initialize
- Dim m As Map = Subs.traeTotalesClienteActual
- prodsPedidoActual = m.Get("productos")
- montoPedidoActual = m.Get("monto")
- Log($"laPromo=${laPromo}, el cliente=${elCliente}"$)
- If laPromo <> "" Then muestraPromo(laPromo, elCliente)
-End Sub
-'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
-
-Sub muestraPromo(promo As String, cliente As String)
- Log("muestraPromo:"&promo)
- Private thisLog As Boolean = False
-' If thisLog Then Log(promo)
- estaPromo = promo
- esteCliente = cliente
- Private mp As Map = Subs.traePromo(promo, cliente)
- If thisLog Then LogColor(mp, Colors.blue)
- Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
-' Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo)
- Private invDispPromo As Map = Subs.restaFijosPromo(mp)
- If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
- If thisLog Then Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp))
- If thisLog Then Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
- maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
- et_promoCant.Text = 1
- l_promosCant.text = "Max promos: " & maxCantPromos
- Private cs As CSBuilder
- cs.Initialize
- If thisLog Then Log(mp)
- If thisLog Then Log(prodsPromo)
- 'Ponemos la promo y descripción.
-' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$
-' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(promo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall
- l_promoDesc.Text = cs.Color(Colors.RGB(100,149,237)).append("Promocion: ").pop.append(CRLF).Append(promo).append(CRLF).Append(mp.Get("descripcion")).Popall
- prodsFijosTot = 0
- 'Ponemos el texto en las etiquetas de la cantidad de productos.
-' Dim pf As List = mp.Get("prodsFijos")
- Dim pv As List = mp.Get("prodsVariables")
- Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
-' Logcolor(listaPreciosPV, Colors.red)
- If thisLog Then Log(mp)
- tpf = 0
- For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
- tpf = tpf + pfp
- Next
- tpf2 = tpf
-' tpf = tpf * maxCantPromos
- l_prodsFijos.Text = $"Productos fijos (${tpf})"$
- prodsVarReq = mp.Get("prodsVariablesRequeridos")
- prodsVarReq2 = prodsVarReq
- l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
- If prodsVarReq = 0 Then
- p_prodsVariables.Visible = False
- Else
- p_prodsVariables.Visible = True
- End If
- 'Llenamos el listview con los productos fijos.
- Dim label1 As Label
- label1 = lv_prodsFijos.SingleLineLayout.Label
- label1.TextSize = 13
- label1.TextColor = Colors.black
- lv_prodsFijos.SingleLineLayout.ItemHeight = 30dip
- lv_prodsFijos.Clear
-' If pf.Size < 1 Then pf.Add("Sin productos fijos.")
- lv_prodsFijos.Clear
- agregaFijosALista(mp, True)
- If thisLog Then Log("Total prods fijos = " & prodsFijosTot)
-' If thisLog Then Log("======="&prodsMap)
- l_totProds.text = $"Productos: ${tpf}"$
- l_total.Text = $"Total: $$1.2{prodsFijosTot}"$
-' Dim ins As InputStream
-' Dim bmp As Bitmap
-' Dim jpeg() As Byte
-
- 'Llenamos el listview con los productos variables.
- If thisLog Then Log("Prods variables: " & pv)
-' If thisLog Then Log("invDisp=" & invDispPromo)
- clv_prodsVariabes.Clear
- For Each p As String In pv
- If invDispPromo.ContainsKey(p) Then 'Si no esta en la lista de productos con inventario no lo mostramos.
- If thisLog Then Log("Prod Variable: " & invDispPromo.get(p))
- Private existenciaProdVariable As String = invDispPromo.get(p)
-' c2.Position=i
-' jpeg = c2.GetBlob("CAT_GP_IMG")
-' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
-' bmp.Initialize2(ins)
- Private indicePV = pv.IndexOf(p)
- Private estePrecio = listaPreciosPV.Get(indicePV)
- Private thisProd As Map = prodsPromo.Get(p)
- If thisLog Then Log(thisProd)
- If existenciaProdVariable > 0 Then clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p)
- End If
- Next
- b_terminar1.Visible = False
- b_continuar.Visible = False
- cuentaProds
-End Sub
-
-'Agregamos los productos fijos a una lista para despues meterlos en el pedido.
-Sub agregaFijosALista(mp As Map, addListItem As Boolean)
- Private thisLog As Boolean = False
- Private cont As Int = 0
- prodsFijosTot = 0
- Dim pf As List = mp.Get("prodsFijos")
- If pf.Size < 1 Then pf.Add("Sin productos fijos.")
-' Private m As Map
-' prodsMap.Put(estaPromo, CreateMap("cant":1, "precio":0))
-' prodsIds.Add(estaPromo)
- prodsIds.clear
- prodsCants.clear
- prodsPrecios.clear
- prodsIds.Add(estaPromo)
- prodsCants.Add(et_promoCant.text.As(Int))
- prodsPrecios.Add(0)
- For Each p As String In pf
-' Log($"cont=${cont}, mp=${mp}"$)
- If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
- Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
- Else
- Private tpi As String = 0
- End If
- If mp.Get("prodsFijosPrecios").As(List).Size > 0 Then
- Private tpr As String = mp.Get("prodsFijosPrecios").As(List).Get(cont)
- Else
- Private tpr As String = 0
- End If
- prodsFijosTot = prodsFijosTot + (tpi * tpr)
- If thisLog Then Log("|"&tpi&"|"&p)
- Private ntpi As Int = tpi * et_promoCant.text
- If addListItem And tpi > 0 Then lv_prodsFijos.AddSingleLine(ntpi & " " & Subs.traeProdNombre(p) & " - $" & tpr)
- cont = cont+1
-' m=CreateMap("cant":tpi, "precio":tpr)
-' prodsMap.Put(p, m)
- prodsIds.Add(p)
- prodsCants.Add(tpi.As(Int)*et_promoCant.text.As(Int))
- prodsPrecios.Add(tpr) '*et_promoCant.text.As(Int)
- Next
-End Sub
-
-Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String) As Panel 'ignore
- Dim p As B4XView = xui.CreatePanel("")
- p.SetLayoutAnimated(0, 0, 0, Width, Height)
- p.LoadLayout("prodItem")
- l_prodX.Text = Text
- l_prodX.Tag = inv
- l_prodX.TextSize = 13
- p_prods.Height = Height
- l_prodX.Height = Height
-' l_pCant.Text = 0
- l_pCant.Tag = precioU&"|"&inv&"|"&prodId
- et_pCant.Tag = precioU&"|"&inv&"|"&prodId
- et_pCant.BringToFront
-' i_prod.Bitmap = img
- Return p
-End Sub
-
-Sub b_prodMenos_Click
- Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
- Dim pnl As B4XView = pnl0.GetView(0)
-' Dim laCant As B4XView = pnl.GetView(5)
- Dim laCant As B4XView = pnl.GetView(2).GetView(4)
-' Log($"precio|stock:${laCant.tag}"$)
- laCant.Text = $"$1.0{laCant.Text-1}"$
- If laCant.Text < 0 Then laCant.Text = 0
-
-' Log(Regex.Split("\|", laCant.tag)(0))
- Private precio As String = Regex.Split("\|", laCant.tag)(0)
-' Private inv As String = Regex.Split("\|", laCant.tag)(1)
- Private prodId As String = Regex.Split("\|", laCant.tag)(2)
- Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
- Log(tmpMap)
- promosMap.Put(prodId, tmpMap)
- If laCant.Text = 0 Then promosMap.Remove(prodId)
- LogColor(promosMap, Colors.Magenta)
- cuentaProds
-' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
-' l_totProds.text = $"Total Productos: ${totalProds}"$
-End Sub
-
-Sub b_prodMas_Click
-' LogColor($"prodmas clic - ${Starter.cp_running}"$,Colors.Magenta)
- If totalProds < prodsVarReq + tpf Then
- Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
- Dim pnl As B4XView = pnl0.GetView(0)
-' Dim laCant As B4XView = pnl.GetView(5)
- Dim laCant As B4XView = pnl.GetView(2).GetView(4)
-' Log($"precio|stock:${laCant.tag}"$)
-' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$)
- Dim esteTag As List = Regex.Split("\|", laCant.Tag)
-' Log(esteTag)
- If laCant.Text + 1 <= esteTag.get(1) Then
- laCant.Text = $"$1.0{laCant.Text+1}"$
- cuentaProds
- End If
-' Log(Regex.Split("\|", laCant.tag)(0))
- Private precio As String = Regex.Split("\|", laCant.tag)(0)
-' Private inv As String = Regex.Split("\|", laCant.tag)(1)
- Private prodId As String = Regex.Split("\|", laCant.tag)(2)
- Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
-' Log(tmpMap)
- promosMap.Put(prodId, tmpMap)
-' LogColor(promosMap, Colors.Magenta)
- End If
-' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
-' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
-' l_totProds.text = $"Total Productos: ${totalProds}"$
-End Sub
-
-Private Sub et_pCant_TextChanged (Old As String, New As String)
-' LogColor($"txt changed - ${Starter.cp_running}"$,Colors.Magenta)
- cuentaProds
-' Starter.cp_running = False
-End Sub
-
-Sub cuentaProds
-' Log("=====================================================")
-' Log($"Inicia cuentaProds - ${Starter.cp_running}"$)
-' Starter.cp_running = True
- Private thisLog As Boolean = False
- If thisLog Then LogColor($"ProdsFijos=${tpf}, totalProds=${totalProds}, totalCompra=${totalCompra}"$, Colors.Red)
- prodsIds2.Clear
- prodsCants2.Clear
- prodsPrecios2.Clear
- lv_prodsFijos.Clear
- agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True)
-' Log(prodsIds)
- Private tcpf As Float = 0 'Total de compra de productos fijos.
- For pf = 0 To prodsIds.Size - 1
- If thisLog Then Log($"${tcpf} + ${prodsCants.Get(pf)} * ${prodsPrecios.Get(pf)} = ${(prodsPrecios.Get(pf) * prodsCants.Get(pf))}"$)
- tcpf = tcpf + (prodsPrecios.Get(pf) * prodsCants.Get(pf))
- Next
-' Log("Total compra prodsFijos = " & tcpf)
- totalCompra = tcpf
- totalProds = tpf 'Cantidad total de productos fijos.
- For i = 0 To clv_prodsVariabes.GetSize - 1
- Private p0 As B4XView = clv_prodsVariabes.GetPanel(i)
- Private p As B4XView = p0.GetView(0)
- Private cant1 As B4XView = p.GetView(2).GetView(4)
-' If cant1.Text = "" Then cant1.Text = 0
- totalProds = totalProds + cant1.Text
- Private esteTag As List = Regex.Split("\|", cant1.Tag)
- If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1)
- If cant1.Text > 0 Then
-' Log(esteTag.Get(2) & "|" & cant1.Text)
- totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
- If thisLog Then Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
- prodsIds2.Add(esteTag.Get(2))
- prodsCants2.Add(cant1.Text)
- prodsPrecios2.Add(esteTag.get(0))
- End If
- l_total.Text = $"Total: $$1.2{totalCompra}"$
- l_totProds.text = $"Productos: ${totalProds}"$
- Next
- If thisLog Then Log($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$)
- l_total.Text = $"Total: $$1.2{totalCompra}"$
- l_totProds.text = $"Productos: ${totalProds}"$
- If totalProds < prodsVarReq + tpf Or totalProds > prodsVarReq + tpf Then
-' Log("INCOMPLETA")
- b_terminar1.Visible = False
- b_continuar.Visible = False
- Else
-' Log("COMPLETA")
- b_terminar1.Visible = True
- b_continuar.Visible = True
- End If
- If thisLog Then LogColor($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$, Colors.blue)
- If thisLog Then LogColor($"${prodsIds2}${CRLF}${prodsCants2}${CRLF}${prodsPrecios2}"$, Colors.Magenta)
-' LogColor($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$, Colors.Blue)
-' Log($"Termina cuentaProds - ${Starter.cp_running}"$)
-End Sub
-
-Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
-' LogColor("Focus changed", Colors.Magenta)
- cuentaProds
-' Starter.cp_running = False
-End Sub
-
-Private Sub b_promoMenos_Click
- If et_promoCant.Text > 1 Then
- et_promoCant.Text = et_promoCant.Text.As(Int) - 1
- End If
- l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
- l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
- tpf = tpf2 * et_promoCant.Text.As(Int)
- prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
- Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
- cuentaProds
-End Sub
-
-Private Sub b_promoMas_Click
- If et_promoCant.Text < maxCantPromos Then
- et_promoCant.Text = et_promoCant.Text.As(Int) + 1
- l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
- l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
- tpf = tpf2 * et_promoCant.Text.As(Int)
- prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
- Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
- End If
- If et_promoCant.text > maxCantPromos Then et_promoCant.Text = maxCantPromos
- cuentaProds
-End Sub
-
-Private Sub b_terminar1_Click
- cuentaProds
-' Log("====================================================================")
-' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
- For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
- Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
- If prodsCants.Get(t) > 0 Then Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
- Next
- For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
- Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
- Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
- Next
- lv_prodsFijos.Clear
- B4XPages.MainPage.bTerminarClicked = True
- B4XPages.ShowPage("productos")
- B4XPages.MainPage.productos.b_terminar1_Click
-End Sub
-
-Private Sub b_continuar_Click
- cuentaProds
- Log("====================================================================")
-' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
- For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
- Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
- Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
- Next
- For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
- Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
- Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
- Next
- lv_prodsFijos.Clear
-' Activity_KeyPress(KeyCodes.KEYCODE_BACK)
-' CallSubDelayed2(productos, "Activity_KeyPress", KeyCodes.KEYCODE_BACK)
- Private prodspage As C_Productos
- If prodspage.IsInitialized Then
- prodspage.lv_catalogos.Visible = True
- prodspage.lv_promos.Visible = False
- prodspage.clv_productos.AsView.Visible = False
- End If
- B4XPages.MainPage.bTerminarClicked = True
- B4XPages.ShowPage("productos")
-End Sub
-
-'Sub Activity_KeyPress (key As Int) As Boolean 'ignore
-' ' BACK key pressed
-' Log("Keypress")
-' If key=KeyCodes.KEYCODE_BACK Then
-' Log("BACK")
-' Return False
-' End If
-' Return False
-' ' Returning False signals the system to handle the key
-'End Sub
\ No newline at end of file
diff --git a/B4A/C_Promos2.bas b/B4A/C_Promos2.bas
deleted file mode 100644
index 36fa8d1..0000000
--- a/B4A/C_Promos2.bas
+++ /dev/null
@@ -1,24 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=11.5
-@EndOfDesignText@
-Sub Class_Globals
- Private Root As B4XView 'ignore
- Private xui As XUI 'ignore
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize As Object
- Return Me
-End Sub
-
-'This event will be called once, before the page becomes visible.
-Private Sub B4XPage_Created (Root1 As B4XView)
- Root = Root1
- 'load the layout to Root
-
-End Sub
-
-'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
\ No newline at end of file
diff --git a/B4A/C_Subs.bas b/B4A/C_Subs.bas
deleted file mode 100644
index 188e185..0000000
--- a/B4A/C_Subs.bas
+++ /dev/null
@@ -1,436 +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
- 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 wifi As MLwifi
- Dim ssid As String 'ignore
- Private subsLogs As Boolean = False
-End Sub
-
-'You can add more parameters here.
-Public Sub Initialize (vCallback As Object, vEventName As String) As Object
- EventName = vEventName
- CallBack = vCallback
- 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)
- Return db
-End Sub
-
-Sub dbOk(Success As Boolean)
- If SubExists(CallBack, EventName & "_dbOk") Then
- CallSub2(CallBack, EventName & "_dbOk", Success)
- End If
-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.DirRootExternal, "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.DirRootExternal
-' Log("Externo")
- Else
- p = File.DirInternal
-' Log("Interno")
- End If
- Dim theDir As String
- Try
- File.MakeDir(File.DirRootExternal,"kmts")
- theDir = "/kmts"
- Catch
- theDir = ""
- End Try
- Try
- File.Copy(File.DirInternal,"kmt.db",File.DirRootExternal&theDir,"cedex_kmt.db")
- File.Copy(File.DirInternal,"errorLog.db",File.DirRootExternal&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.DirRootExternal="&File.DirRootExternal)
- 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 el usuario de la tabla USUARIOA si es que existe, si no existe, regresa "SinUsuario".
-Sub buscaDBUsuario As String 'ignore
- Private c As Cursor
- Private usuario As String = "SinUsuario"
- c=kmt.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- If c.RowCount > 0 Then usuario = c.GetString("USUARIO")
- Return usuario
-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
- 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 = Starter.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
- Starter.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
- Starter.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 As String 'ignore
- Dim srvr As String = "N/A"
- Dim rs As ResultSet = Starter.db.ExecQuery("select valor from cat_variables where nombre = 'servidor'")
- If rs.RowCount > 0 Then
- rs.NextRow
- srvr = rs.GetString("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 = Starter.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 = Starter.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
- 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
\ No newline at end of file
diff --git a/B4A/C_TicketsDia.bas b/B4A/C_TicketsDia.bas
index 82c48c7..2a6f13c 100644
--- a/B4A/C_TicketsDia.bas
+++ b/B4A/C_TicketsDia.bas
@@ -82,14 +82,14 @@ Sub B4XPage_Appear
End Sub
Sub Regresar_Click
- StartActivity(fila)
+' StartActivity(fila)
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
- StartActivity(seleccion)
+' StartActivity(seleccion)
'Return True
End If
' Returning False signals the system to handle the key
@@ -99,7 +99,7 @@ End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
skmt.ExecNonQuery("delete from CUENTAA")
skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
- StartActivity(fila)
+' StartActivity(fila)
End Sub
Sub b_noventa_Click
diff --git a/B4A/CameraExClass.bas b/B4A/CameraExClass.bas
index 8960471..7da8e8f 100644
--- a/B4A/CameraExClass.bas
+++ b/B4A/CameraExClass.bas
@@ -50,7 +50,7 @@ Private Sub FindCamera (frontCamera As Boolean) As CameraInfoAndId
r.RunStaticMethod("android.hardware.Camera", "getCameraInfo", Array As Object(i, cameraInfo), _
Array As String("java.lang.int", "android.hardware.Camera$CameraInfo"))
r.target = cameraInfo
- If r.GetField("facing") = cameraValue Then 'ignore
+ If r.GetField("facing") = cameraValue Then
ci.cameraInfo = r.target
ci.Id = i
Return ci
@@ -76,7 +76,7 @@ Private Sub SetDisplayOrientation
Else
previewResult = (orientation - degrees + 360) Mod 360
result = previewResult
-' Log(previewResult)
+ Log(previewResult)
End If
r.target = nativeCam
r.RunMethod2("setDisplayOrientation", previewResult, "java.lang.int")
@@ -103,7 +103,6 @@ Sub Camera_Preview (Data() As Byte)
CallSub2(target, event & "_preview", Data)
End If
End Sub
-
Public Sub TakePicture
cam.TakePicture
End Sub
@@ -242,24 +241,24 @@ Public Sub PreviewImageToJpeg(data() As Byte, quality As Int) As Byte()
End Sub
Public Sub GetSupportedFocusModes As List
- r.target = parameters
- Return r.RunMethod("getSupportedFocusModes")
+ r.target = parameters
+ Return r.RunMethod("getSupportedFocusModes")
End Sub
Public Sub SetContinuousAutoFocus
- Dim modes As List = GetSupportedFocusModes
- If modes.IndexOf("continuous-picture") > -1 Then
- SetFocusMode("continuous-picture")
- Else If modes.IndexOf("continuous-video") > -1 Then
- SetFocusMode("continuous-video")
- Else
- Log("Continuous focus mode is not available")
- End If
+ Dim modes As List = GetSupportedFocusModes
+ If modes.IndexOf("continuous-picture") > -1 Then
+ SetFocusMode("continuous-picture")
+ Else If modes.IndexOf("continuous-video") > -1 Then
+ SetFocusMode("continuous-video")
+ Else
+ Log("Continuous focus mode is not available")
+ End If
End Sub
Public Sub SetFocusMode(Mode As String)
- r.target = parameters
- r.RunMethod2("setFocusMode", Mode, "java.lang.String")
+ r.target = parameters
+ r.RunMethod2("setFocusMode", Mode, "java.lang.String")
End Sub
Public Sub GetFocusDistances As Float()
@@ -268,7 +267,6 @@ Public Sub GetFocusDistances As Float()
r.RunMethod4("getFocusDistances", Array As Object(F), Array As String("[F"))
Return F
End Sub
-
'This method should only be called if you need to immediately release the camera.
'For example if you need to start another application that depends on the camera.
Public Sub CloseNow
@@ -276,12 +274,10 @@ Public Sub CloseNow
r.target = cam
r.RunMethod2("releaseCameras", True, "java.lang.boolean")
End Sub
-
'Calls AutoFocus and then takes the picture if focus was successfull.
Public Sub FocusAndTakePicture
cam.AutoFocus
End Sub
-
Private Sub Camera_FocusDone (Success As Boolean)
If Success Then
TakePicture
diff --git a/B4A/DBRequestManager.bas b/B4A/DBRequestManager.bas
index d8ebf11..af77225 100644
--- a/B4A/DBRequestManager.bas
+++ b/B4A/DBRequestManager.bas
@@ -4,7 +4,9 @@ ModulesStructureVersion=1
Type=Class
Version=6.8
@EndOfDesignText@
-''Class module
+'Necesita la libreria RandomAccessFile, ByteConverter
+
+'Class module
Sub Class_Globals
Private mTarget As Object
Type DBResult (Tag As Object, Columns As Map, Rows As List)
@@ -15,7 +17,7 @@ Sub Class_Globals
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
Private VERSION As Float = 0.9
Private tempArray(1) As Object
- Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
+ Dim jobTagAnterior As String = "" 'Mod por CHV - 211027
End Sub
'Target - The module that handles JobDone (usually Me).
@@ -113,7 +115,7 @@ Private Sub WriteObject(o As Object, out As OutputStream)
Else If GetType(tempArray(0)) = "[B" Then
data = o
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
- WriteInt(data.Length, out)
+ WriteInt(data.Length, out)
Else 'If o Is String Then (treat all other values as string)
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
data = bc.StringToBytes(o, "UTF8")
@@ -186,7 +188,7 @@ End Sub
'Handles the Job result and returns a DBResult.
Public Sub HandleJob(Job As HttpJob) As DBResult
- Dim start As Long = DateTime.Now 'ignore
+' Dim start As Long = DateTime.Now
Dim In As InputStream = Job.GetInputStream
Dim cs As CompressedStreams
In = cs.WrapInputStream(In, "gzip")
@@ -197,8 +199,8 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
table.Columns.Initialize
table.rows.Initialize
table.Tag = Job.Tag
- If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109
- jobTagAnterior = Job.Tag 'Mod por CHV - 211109
+ If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211023
+ jobTagAnterior = Job.Tag 'Mod por CHV - 211023
If method = "query" Then
Dim numberOfColumns As Int = ReadInt(In)
For i = 0 To numberOfColumns - 1
@@ -220,7 +222,7 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
Next
End If
In.Close
-' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
+' Log("HandleJob: " & (DateTime.Now - start))
Return table
End Sub
'Reads a file and returns the file as a bytes array.
@@ -232,6 +234,7 @@ Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
out.Close
Return out.ToBytesArray
End Sub
+
'Converts an image to a bytes array (for BLOB fields).
Public Sub ImageToBytes(Image As Bitmap) As Byte()
Dim out As OutputStream
@@ -240,6 +243,7 @@ Public Sub ImageToBytes(Image As Bitmap) As Byte()
out.Close
Return out.ToBytesArray
End Sub
+
'Converts a bytes array to an image (for BLOB fields).
Public Sub BytesToImage(bytes() As Byte) As Bitmap
Dim In As InputStream
@@ -248,6 +252,7 @@ Public Sub BytesToImage(bytes() As Byte) As Bitmap
bmp.Initialize2(In)
Return bmp
End Sub
+
'Prints the table to the logs.
Public Sub PrintTable(Table As DBResult)
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
diff --git a/B4A/DownloadService.bas b/B4A/DownloadService.bas
deleted file mode 100644
index 036d602..0000000
--- a/B4A/DownloadService.bas
+++ /dev/null
@@ -1,114 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Service
-Version=5.5
-@EndOfDesignText@
-#Region Service Attributes
- #StartAtBoot: False
-#End Region
-
-Sub Process_Globals
- Private jobs As Map
- Private timer1 As Timer
- Type DownloadData (url As String, Target As Object, EventName As String)
- Type JobTag (Data As DownloadData, _
- CountingStream As CountingOutputStream, Total As Long)
- Private pw As PhoneWakeState
-End Sub
-Sub Service_Create
- jobs.Initialize
- timer1.Initialize("timer1", 1000)
-End Sub
-
-Sub Service_Start (StartingIntent As Intent)
-
-End Sub
-
-Sub Service_Destroy
-
-End Sub
-
-Private Sub StartTimer (Target As Object)
- Dim n As Notification
- n.Initialize2(n.IMPORTANCE_LOW)
- n.Icon = "icon"
- n.Vibrate = False
- n.Sound = False
- n.Light = False
- n.SetInfo("Downloading file...", "", Target)
- Service.StartForeground(1, n)
- timer1.Enabled = True
- pw.PartialLock
-End Sub
-
-Private Sub EndTimer 'ignore
- Service.StopForeground(1)
- timer1.Enabled = False
- pw.ReleasePartialLock
-End Sub
-
-Public Sub StartDownload(data As DownloadData)
- If jobs.ContainsKey(data.url) Then
- Log("Ignoring duplicate request.")
- Return
- End If
- Dim J As HttpJob
- J.Initialize(data.url, Me)
- Log(J)
- Dim tag As JobTag
- tag.Initialize
- tag.data = data
- Log(tag)
- J.tag = tag
- jobs.Put(data.url, J)
- Log(jobs)
- J.Download(data.url)
- If timer1.Enabled = False Then StartTimer(data.Target)
-End Sub
-
-Public Sub CancelDownload(url As String)
- If jobs.ContainsKey(url) = False Then
- Log("Ignoring cancel request.")
- Return
- End If
- Dim job As HttpJob = jobs.Get(url)
- Dim jt As JobTag = job.Tag
- If jt.CountingStream.IsInitialized Then
- jt.CountingStream.Close
- Else
- jt.Data.url = ""
- End If
-End Sub
-
-Sub timer1_tick
- For Each job As HttpJob In jobs.Values
- Dim jt As JobTag = job.Tag
- If jt.CountingStream.IsInitialized Then
- CallSub3(jt.Data.Target, jt.Data.EventName & "_Progress", _
- jt.CountingStream.Count, jt.Total)
- End If
- Next
-End Sub
-
-Sub JobDone(job As HttpJob)
-' Log("1")
-' jobs.Remove(job.JobName)
-' Dim jt As JobTag = job.Tag
-' Log(jt)
-' If jobs.Size = 0 Then EndTimer
-' Log(jobs.Size)
-' If job.Success Then
-' Log("5-"&jt.Data.Target&"-"&jt.Data.EventName&"-"&jt.CountingStream.Count&"-"&jt.Total)
-' CallSubDelayed3(jt.Data.Target, jt.Data.EventName & "_Progress", jt.CountingStream.Count, jt.Total)
-' Log("6")
-' CallSubDelayed2(jt.Data.Target, jt.Data.EventName & "_Complete", job)
-' Log("7")
-' Else
-' Log(job.ErrorMessage)
-' Log("8")
-' CallSubDelayed2(jt.Data.Target, jt.Data.EventName & "_Complete", job)
-' Log("9")
-' End If
-' Log("10")
-End Sub
diff --git a/B4A/Durakelo.b4a b/B4A/Durakelo.b4a
index 7a969f3..8145209 100644
--- a/B4A/Durakelo.b4a
+++ b/B4A/Durakelo.b4a
@@ -1,57 +1,33 @@
-Build1=Default,kelloggsV2.keymon.lat,HU2_PUBLIC
+Build1=Default,durakelo.keymon.com.mx,HU2_PUBLIC
File1=alcancia.png
-File10=durakelo.png
-File11=durakelo1.png
-File12=engrane.jpg
-File13=engrane.png
-File14=fondo_kmt.jpg
-File15=foto.bal
-File16=historico.bal
-File17=INVENTARIO (1).jpg
-File18=INVENTARIO.jpg
-File19=inventario.PNG
-File2=alert2.png
-File20=itembuttonblue.png
-File21=kelloggs.png
-File22=login.bal
-File23=logo2.png
-File24=logo2_192x192.png
-File25=MainPage.bal
-File26=Malo.jpg
-File27=mapas.bal
-File28=nota.bal
-File29=noventa.bal
-File3=alerta_amarilla.png
-File30=nuevocliente.bal
-File31=palomita_verde.png
-File32=pedidoItem.bal
-File33=planfia_logo.png
-File34=principal.bal
-File35=proditem.bal
-File36=productos.bal
-File37=productos2.bal
-File38=profina.jpg
-File39=promociones.bal
-File4=BLACNCO.jpg
-File40=rechazo.jpg
-File41=salma.jpg
-File42=senial.jpg
-File43=sync.png
-File44=ticketsDia.bal
-File45=Tiendita.jpg
-File46=transporte.png
-File47=vista1.png
-File48=vista2.png
-File49=vista3.png
-File5=carrito.png
-File50=vista4.png
-File51=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpg
-File52=whatsapp.png
-File53=WHATSTEL.png
-File6=checklist.bal
-File7=checks.bal
-File8=cliente.bal
-File9=clientes.bal
+File10=fondo_kmt.jpg
+File11=historico.bal
+File12=itembuttonblue.png
+File13=k.png
+File14=K-b27c0809.png
+File15=kelloggs.png
+File16=login.bal
+File17=MainPage.bal
+File18=Malo.jpg
+File19=NoVenta.bal
+File2=alerta_amarilla.png
+File20=nuevocliente.bal
+File21=palomita_verde.png
+File22=planfia_logo.png
+File23=principal.bal
+File24=rechazo.jpg
+File25=salma.jpg
+File26=senial.jpg
+File27=sync.png
+File28=Tiendita.jpg
+File29=unilever.jpg
+File3=carrito.png
+File4=Cliente.bal
+File5=Clientes.bal
+File6=durakelo.png
+File7=durakelo1.png
+File8=engrane.jpg
+File9=espera.gif
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup11=Default Group
@@ -75,116 +51,79 @@ FileGroup27=Default Group
FileGroup28=Default Group
FileGroup29=Default Group
FileGroup3=Default Group
-FileGroup30=Default Group
-FileGroup31=Default Group
-FileGroup32=Default Group
-FileGroup33=Default Group
-FileGroup34=Default Group
-FileGroup35=Default Group
-FileGroup36=Default Group
-FileGroup37=Default Group
-FileGroup38=Default Group
-FileGroup39=Default Group
FileGroup4=Default Group
-FileGroup40=Default Group
-FileGroup41=Default Group
-FileGroup42=Default Group
-FileGroup43=Default Group
-FileGroup44=Default Group
-FileGroup45=Default Group
-FileGroup46=Default Group
-FileGroup47=Default Group
-FileGroup48=Default Group
-FileGroup49=Default Group
FileGroup5=Default Group
-FileGroup50=Default Group
-FileGroup51=Default Group
-FileGroup52=Default Group
-FileGroup53=Default Group
FileGroup6=Default Group
FileGroup7=Default Group
FileGroup8=Default Group
FileGroup9=Default Group
Group=Default Group
-Library1=appupdating
-Library10=fusedlocationprovider
-Library11=googlemaps
-Library12=googlemapsextras
-Library13=gps
-Library14=ime
-Library15=json
-Library16=pdfium
-Library17=phone
-Library18=preoptimizedclv
-Library19=randomaccessfile
-Library2=b4xpages
-Library20=reflection
-Library21=runtimepermissions
-Library22=serial
-Library23=sql
-Library24=stringutils
-Library25=togglelibrary
-Library26=websocket
-Library27=xcustomlistview
-Library28=xui
-Library29=zxing_scanner
-Library3=baqrcode
-Library4=bitmapcreator
-Library5=byteconverter
-Library6=camera
-Library7=contentresolver
-Library8=core
-Library9=fileprovider
-ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~)~\n~'Set activity to Landscape~\n~SetActivityAttribute(foto, android:screenOrientation, "landscape")~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\n~~\n~)~\n~'''' para el teclado~\n~ SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\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~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\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~'Le da mas memoria a la aplicacion~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddManifestText()
+Library1=b4xpages
+Library10=firebasenotifications
+Library11=fusedlocationprovider
+Library12=gifdecoder
+Library13=googlemaps
+Library14=gps
+Library15=ime
+Library16=javaobject
+Library17=json
+Library18=okhttputils2
+Library19=phone
+Library2=baqrcode
+Library20=randomaccessfile
+Library21=reflection
+Library22=runtimepermissions
+Library23=serial
+Library24=sql
+Library25=xcustomlistview
+Library26=zxing_scanner
+Library27=bitmapcreator
+Library3=batteryprogressview
+Library4=byteconverter
+Library5=camera
+Library6=compressstrings
+Library7=core
+Library8=fileprovider
+Library9=firebaseanalytics
+ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~~\n~~\n~)~\n~AddManifestText()~\n~AddManifestText()~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~~\n~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()
Module1=B4XMainPage
-Module10=C_Productos
-Module11=C_Promos
-Module12=C_Subs
-Module13=C_TicketsDia
-Module14=C_updateAvailable
-Module15=CameraExClass
-Module16=DBRequestManager
-Module17=DownloadService
-Module18=errorManager
-Module19=EscPosPrinter
-Module2=C_Cliente
-Module20=foto
-Module21=MAPA_RUTAS
-Module22=SD_Spinner
-Module23=Starter
-Module24=Subs
-Module25=Tracker
-Module3=C_Clientes
-Module4=C_Historico
-Module5=C_Mapas
+Module10=EscPosPrinter
+Module11=FirebaseMessaging
+Module12=kms_helperSubs
+Module13=ManageExternalStorage
+Module14=Starter
+Module15=Tracker
+Module2=BatteryUtilities
+Module3=C_Cliente
+Module4=C_Clientes
+Module5=C_Historico
Module6=C_Nota
Module7=C_NoVenta
-Module8=C_NuevoCliente
-Module9=C_Principal
-NumberOfFiles=53
-NumberOfLibraries=29
-NumberOfModules=25
+Module8=C_Principal
+Module9=DBRequestManager
+NumberOfFiles=29
+NumberOfLibraries=27
+NumberOfModules=15
Version=12.5
@EndOfDesignText@
-#Region Project Attributes
- #ApplicationLabel: Kelloggs Venta
- #VersionCode: 3000
- #VersionName: 3.09.19 PRUEBA V4
+#Region Project Attributes
+ #ApplicationLabel: Durakelo
+ #VersionCode: 1
+ #VersionName: 3.10.09
+ 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
- #BridgeLogger:true
#AdditionalJar: com.android.support:support-v4
#AdditionalJar: com.google.android.gms:play-services-location
- 'Para PDFViewer
- #AdditionalJar: android-pdf-viewer.aar
- #AdditionalJar: Pdfium.aar
#End Region
#Region Activity Attributes
#FullScreen: False
- #IncludeTitle: False
+ #IncludeTitle: True
#End Region
+'#BridgeLogger: True
+
Sub Process_Globals
Public ActionBarHomeClicked As Boolean
End Sub
diff --git a/B4A/Durakelo.b4a.meta b/B4A/Durakelo.b4a.meta
index bd3db4b..fc489ce 100644
--- a/B4A/Durakelo.b4a.meta
+++ b/B4A/Durakelo.b4a.meta
@@ -6,17 +6,7 @@ ModuleBookmarks12=
ModuleBookmarks13=
ModuleBookmarks14=
ModuleBookmarks15=
-ModuleBookmarks16=
-ModuleBookmarks17=
-ModuleBookmarks18=
-ModuleBookmarks19=
ModuleBookmarks2=
-ModuleBookmarks20=
-ModuleBookmarks21=
-ModuleBookmarks22=
-ModuleBookmarks23=
-ModuleBookmarks24=
-ModuleBookmarks25=
ModuleBookmarks3=
ModuleBookmarks4=
ModuleBookmarks5=
@@ -32,17 +22,7 @@ ModuleBreakpoints12=
ModuleBreakpoints13=
ModuleBreakpoints14=
ModuleBreakpoints15=
-ModuleBreakpoints16=
-ModuleBreakpoints17=
-ModuleBreakpoints18=
-ModuleBreakpoints19=
ModuleBreakpoints2=
-ModuleBreakpoints20=
-ModuleBreakpoints21=
-ModuleBreakpoints22=
-ModuleBreakpoints23=
-ModuleBreakpoints24=
-ModuleBreakpoints25=
ModuleBreakpoints3=
ModuleBreakpoints4=
ModuleBreakpoints5=
@@ -52,30 +32,20 @@ ModuleBreakpoints8=
ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
-ModuleClosedNodes10=1,4
+ModuleClosedNodes10=
ModuleClosedNodes11=
ModuleClosedNodes12=
-ModuleClosedNodes13=2
-ModuleClosedNodes14=
+ModuleClosedNodes13=
+ModuleClosedNodes14=1
ModuleClosedNodes15=
-ModuleClosedNodes16=
-ModuleClosedNodes17=
-ModuleClosedNodes18=
-ModuleClosedNodes19=
-ModuleClosedNodes2=1,2,4,28,29,30,31,32,33
-ModuleClosedNodes20=
-ModuleClosedNodes21=
-ModuleClosedNodes22=
-ModuleClosedNodes23=
-ModuleClosedNodes24=
-ModuleClosedNodes25=
-ModuleClosedNodes3=1,3
-ModuleClosedNodes4=1,4,5,7,8,9
+ModuleClosedNodes2=
+ModuleClosedNodes3=
+ModuleClosedNodes4=
ModuleClosedNodes5=
-ModuleClosedNodes6=1,2,3
-ModuleClosedNodes7=2
+ModuleClosedNodes6=
+ModuleClosedNodes7=
ModuleClosedNodes8=
-ModuleClosedNodes9=1,2
-NavigationStack=C_Nota,b_desc_Click,322,0,C_Principal,B4XPage_Appear,467,0,C_Principal,JobDone,1646,0,C_Principal,e_ruta_EnterPressed,2039,0,C_Principal,B_OK_PAS_Click,2185,0,C_Productos,Activity_KeyPress,236,0,C_Clientes,Activity_KeyPress,112,0,Main,Activity_Resume,46,0,Main,Activity_KeyPress,41,0,B4XMainPage,Class_Globals,35,0,C_Promos,b_continuar_Click,423,0
+ModuleClosedNodes9=
+NavigationStack=C_Cliente,Tels_Click,306,0,C_Cliente,B_INV_Click,875,0,C_Cliente,B_IMP_Click,447,0,C_Cliente,B_IMP2_Click,670,0,C_Cliente,Guardar_Click,353,5,C_NoVenta,CANCELA_Click,52,1,C_NoVenta,GUARDA_Click,62,6,C_Cliente,initialize,131,0,Visual Designer,Cliente.bal,-100,6,C_Cliente,B4XPage_Created,162,6
SelectedBuild=0
-VisibleModules=1,9,2,6,10,3,11
+VisibleModules=14,1,8,12,6,3,7
diff --git a/B4A/Files/WHATSTEL.jpeg b/B4A/Files/WHATSTEL.jpeg
deleted file mode 100644
index 5f50eb8..0000000
Binary files a/B4A/Files/WHATSTEL.jpeg and /dev/null differ
diff --git a/B4A/Files/WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg b/B4A/Files/WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg
deleted file mode 100644
index 03a496a..0000000
Binary files a/B4A/Files/WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg and /dev/null differ
diff --git a/B4A/Files/blacnco.jpg b/B4A/Files/blacnco.jpg
deleted file mode 100644
index 1b44567..0000000
Binary files a/B4A/Files/blacnco.jpg and /dev/null differ
diff --git a/B4A/Files/buscar.bal b/B4A/Files/buscar.bal
new file mode 100644
index 0000000..d40f58f
Binary files /dev/null and b/B4A/Files/buscar.bal differ
diff --git a/B4A/Files/celltitle.bal b/B4A/Files/celltitle.bal
new file mode 100644
index 0000000..ecdae05
Binary files /dev/null and b/B4A/Files/celltitle.bal differ
diff --git a/B4A/Files/checklist.bal b/B4A/Files/checklist.bal
deleted file mode 100644
index d05448b..0000000
Binary files a/B4A/Files/checklist.bal and /dev/null differ
diff --git a/B4A/Files/checks.bal b/B4A/Files/checks.bal
deleted file mode 100644
index eac2be3..0000000
Binary files a/B4A/Files/checks.bal and /dev/null differ
diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal
index 42041bd..932e004 100644
Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ
diff --git a/B4A/Files/cliente.bal.bak b/B4A/Files/cliente.bal.bak
deleted file mode 100644
index 6bf71a0..0000000
Binary files a/B4A/Files/cliente.bal.bak and /dev/null differ
diff --git a/B4A/Files/clientes.bal b/B4A/Files/clientes.bal
index 1e03596..6628403 100644
Binary files a/B4A/Files/clientes.bal and b/B4A/Files/clientes.bal differ
diff --git a/B4A/Files/detalle_promo.bal b/B4A/Files/detalle_promo.bal
index c696d91..c8d6b01 100644
Binary files a/B4A/Files/detalle_promo.bal and b/B4A/Files/detalle_promo.bal differ
diff --git a/B4A/Files/durakelo_192x192.png b/B4A/Files/durakelo_192x192.png
new file mode 100644
index 0000000..c1e7bb7
Binary files /dev/null and b/B4A/Files/durakelo_192x192.png differ
diff --git a/B4A/Files/engrane.png b/B4A/Files/engrane.png
deleted file mode 100644
index 5d27e8e..0000000
Binary files a/B4A/Files/engrane.png and /dev/null differ
diff --git a/B4A/Files/engrane3.png b/B4A/Files/engrane3.png
new file mode 100644
index 0000000..2bd5fa0
Binary files /dev/null and b/B4A/Files/engrane3.png differ
diff --git a/B4A/Files/errormanager.bal b/B4A/Files/errormanager.bal
deleted file mode 100644
index ff0d659..0000000
Binary files a/B4A/Files/errormanager.bal and /dev/null differ
diff --git a/B4A/Files/espera.gif b/B4A/Files/espera.gif
new file mode 100644
index 0000000..605679f
Binary files /dev/null and b/B4A/Files/espera.gif differ
diff --git a/B4A/Files/foto.bal b/B4A/Files/foto.bal
index a6ed4a6..3476c4d 100644
Binary files a/B4A/Files/foto.bal and b/B4A/Files/foto.bal differ
diff --git a/B4A/Files/foto1.jpg b/B4A/Files/foto1.jpg
deleted file mode 100644
index 88a6820..0000000
Binary files a/B4A/Files/foto1.jpg and /dev/null differ
diff --git a/B4A/Files/foto2.jpg b/B4A/Files/foto2.jpg
deleted file mode 100644
index ecdc104..0000000
Binary files a/B4A/Files/foto2.jpg and /dev/null differ
diff --git a/B4A/Files/foto3.jpg b/B4A/Files/foto3.jpg
deleted file mode 100644
index 6179697..0000000
Binary files a/B4A/Files/foto3.jpg and /dev/null differ
diff --git a/B4A/Files/foto4.jpg b/B4A/Files/foto4.jpg
deleted file mode 100644
index 9828b3e..0000000
Binary files a/B4A/Files/foto4.jpg and /dev/null differ
diff --git a/B4A/Files/guardagestion.bal b/B4A/Files/guardagestion.bal
index b5b5216..6272b4e 100644
Binary files a/B4A/Files/guardagestion.bal and b/B4A/Files/guardagestion.bal differ
diff --git a/B4A/Files/historico.bal b/B4A/Files/historico.bal
index a70aeb1..f8786e7 100644
Binary files a/B4A/Files/historico.bal and b/B4A/Files/historico.bal differ
diff --git a/B4A/Files/info_gral.resp b/B4A/Files/info_gral.resp
deleted file mode 100644
index 85c1dc6..0000000
Binary files a/B4A/Files/info_gral.resp and /dev/null differ
diff --git a/B4A/Files/inventario (1).jpg b/B4A/Files/inventario (1).jpg
deleted file mode 100644
index 1eccaf3..0000000
Binary files a/B4A/Files/inventario (1).jpg and /dev/null differ
diff --git a/B4A/Files/inventario.jpg b/B4A/Files/inventario.jpg
deleted file mode 100644
index 1b5fd18..0000000
Binary files a/B4A/Files/inventario.jpg and /dev/null differ
diff --git a/B4A/Files/inventario.png b/B4A/Files/inventario.png
deleted file mode 100644
index 952429d..0000000
Binary files a/B4A/Files/inventario.png and /dev/null differ
diff --git a/B4A/Files/itembuttonred.png b/B4A/Files/itembuttonred.png
deleted file mode 100644
index 312b8b8..0000000
Binary files a/B4A/Files/itembuttonred.png and /dev/null differ
diff --git a/B4A/Files/k.png b/B4A/Files/k.png
new file mode 100644
index 0000000..065a070
Binary files /dev/null and b/B4A/Files/k.png differ
diff --git a/B4A/Files/kelloggs.png b/B4A/Files/kelloggs.png
index 6e4ae6f..4debf15 100644
Binary files a/B4A/Files/kelloggs.png and b/B4A/Files/kelloggs.png differ
diff --git a/B4A/Files/kelloggs2.jpg b/B4A/Files/kelloggs2.jpg
deleted file mode 100644
index 74afa95..0000000
Binary files a/B4A/Files/kelloggs2.jpg and /dev/null differ
diff --git a/B4A/Files/kelloggs2.png b/B4A/Files/kelloggs2.png
deleted file mode 100644
index 4c7fa2c..0000000
Binary files a/B4A/Files/kelloggs2.png and /dev/null differ
diff --git a/B4A/Files/kelloggs_chico.png b/B4A/Files/kelloggs_chico.png
deleted file mode 100644
index 86237b6..0000000
Binary files a/B4A/Files/kelloggs_chico.png and /dev/null differ
diff --git a/B4A/Files/kelloggs_original.png b/B4A/Files/kelloggs_original.png
deleted file mode 100644
index dc27268..0000000
Binary files a/B4A/Files/kelloggs_original.png and /dev/null differ
diff --git a/B4A/Files/kmt.db b/B4A/Files/kmt.db
index 6d9dc45..de4ec5a 100644
Binary files a/B4A/Files/kmt.db and b/B4A/Files/kmt.db differ
diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal
index da11282..57df977 100644
Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ
diff --git a/B4A/Files/logo2.png b/B4A/Files/logo2.png
deleted file mode 100644
index 6c8b479..0000000
Binary files a/B4A/Files/logo2.png and /dev/null differ
diff --git a/B4A/Files/logo2_192x192.png b/B4A/Files/logo2_192x192.png
deleted file mode 100644
index d979ea0..0000000
Binary files a/B4A/Files/logo2_192x192.png and /dev/null differ
diff --git a/B4A/Files/logo_192x192.png b/B4A/Files/logo_192x192.png
deleted file mode 100644
index 5f37d45..0000000
Binary files a/B4A/Files/logo_192x192.png and /dev/null differ
diff --git a/B4A/Files/mapa.bal b/B4A/Files/mapa.bal
index de2f3ab..7ed1bb4 100644
Binary files a/B4A/Files/mapa.bal and b/B4A/Files/mapa.bal differ
diff --git a/B4A/Files/mapa_rutas.bal b/B4A/Files/mapa_rutas.bal
index 3da2b5d..da1d154 100644
Binary files a/B4A/Files/mapa_rutas.bal and b/B4A/Files/mapa_rutas.bal differ
diff --git a/B4A/Files/mapas.bal b/B4A/Files/mapas.bal
deleted file mode 100644
index 27ff766..0000000
Binary files a/B4A/Files/mapas.bal and /dev/null differ
diff --git a/B4A/Files/nota.bal b/B4A/Files/nota.bal
deleted file mode 100644
index 43a2a81..0000000
Binary files a/B4A/Files/nota.bal and /dev/null differ
diff --git a/B4A/Files/noventa.bal b/B4A/Files/noventa.bal
index 4e8d932..7b1ac25 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 a5150c0..0ef6fcf 100644
Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ
diff --git a/B4A/Files/palomita_verde.png b/B4A/Files/palomita_verde.png
index e235a2f..f8e11e6 100644
Binary files a/B4A/Files/palomita_verde.png and b/B4A/Files/palomita_verde.png differ
diff --git a/B4A/Files/palomita_verde_original.png b/B4A/Files/palomita_verde_original.png
deleted file mode 100644
index f8e11e6..0000000
Binary files a/B4A/Files/palomita_verde_original.png and /dev/null differ
diff --git a/B4A/Files/pedido.bal b/B4A/Files/pedido.bal
index ed7d7ef..30db91e 100644
Binary files a/B4A/Files/pedido.bal and b/B4A/Files/pedido.bal differ
diff --git a/B4A/Files/pedidoitem.bal b/B4A/Files/pedidoitem.bal
deleted file mode 100644
index 4edaba3..0000000
Binary files a/B4A/Files/pedidoitem.bal and /dev/null differ
diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal
index f810c55..7f616b6 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
deleted file mode 100644
index dc03e73..0000000
Binary files a/B4A/Files/proditem.bal and /dev/null differ
diff --git a/B4A/Files/productos.bal b/B4A/Files/productos.bal
index de5aa63..51d45cc 100644
Binary files a/B4A/Files/productos.bal and b/B4A/Files/productos.bal differ
diff --git a/B4A/Files/productos2.bal b/B4A/Files/productos2.bal
deleted file mode 100644
index 7e954d6..0000000
Binary files a/B4A/Files/productos2.bal and /dev/null differ
diff --git a/B4A/Files/profina.jpg b/B4A/Files/profina.jpg
deleted file mode 100644
index f092f0f..0000000
Binary files a/B4A/Files/profina.jpg and /dev/null differ
diff --git a/B4A/Files/profina.png b/B4A/Files/profina.png
deleted file mode 100644
index d307055..0000000
Binary files a/B4A/Files/profina.png and /dev/null differ
diff --git a/B4A/Files/promociones.bal b/B4A/Files/promociones.bal
deleted file mode 100644
index 0adcb28..0000000
Binary files a/B4A/Files/promociones.bal and /dev/null differ
diff --git a/B4A/Files/tache_rojo.png b/B4A/Files/tache_rojo.png
index 20aad1d..2f5f59d 100644
Binary files a/B4A/Files/tache_rojo.png and b/B4A/Files/tache_rojo.png differ
diff --git a/B4A/Files/tache_rojo_original.png b/B4A/Files/tache_rojo_original.png
deleted file mode 100644
index 2f5f59d..0000000
Binary files a/B4A/Files/tache_rojo_original.png and /dev/null differ
diff --git a/B4A/Files/ticketsdia.bal b/B4A/Files/ticketsdia.bal
deleted file mode 100644
index bdd4cac..0000000
Binary files a/B4A/Files/ticketsdia.bal and /dev/null differ
diff --git a/B4A/Files/transporte.png b/B4A/Files/transporte.png
deleted file mode 100644
index e03cfc0..0000000
Binary files a/B4A/Files/transporte.png and /dev/null differ
diff --git a/B4A/Files/unilever.jpg b/B4A/Files/unilever.jpg
new file mode 100644
index 0000000..a144bdf
Binary files /dev/null and b/B4A/Files/unilever.jpg differ
diff --git a/B4A/Files/vista1.png b/B4A/Files/vista1.png
deleted file mode 100644
index 9de6491..0000000
Binary files a/B4A/Files/vista1.png and /dev/null differ
diff --git a/B4A/Files/vista2.png b/B4A/Files/vista2.png
deleted file mode 100644
index ba7da40..0000000
Binary files a/B4A/Files/vista2.png and /dev/null differ
diff --git a/B4A/Files/vista3.png b/B4A/Files/vista3.png
deleted file mode 100644
index cb02c91..0000000
Binary files a/B4A/Files/vista3.png and /dev/null differ
diff --git a/B4A/Files/vista4.png b/B4A/Files/vista4.png
deleted file mode 100644
index 5331963..0000000
Binary files a/B4A/Files/vista4.png and /dev/null differ
diff --git a/B4A/Files/whatsapp image 2022-11-17 at 11.50.59 am.jpg b/B4A/Files/whatsapp image 2022-11-17 at 11.50.59 am.jpg
deleted file mode 100644
index 03a496a..0000000
Binary files a/B4A/Files/whatsapp image 2022-11-17 at 11.50.59 am.jpg and /dev/null differ
diff --git a/B4A/Files/whatsapp.png b/B4A/Files/whatsapp.png
deleted file mode 100644
index 38201c7..0000000
Binary files a/B4A/Files/whatsapp.png and /dev/null differ
diff --git a/B4A/Files/whatsapp_original.png b/B4A/Files/whatsapp_original.png
deleted file mode 100644
index 9fe9a80..0000000
Binary files a/B4A/Files/whatsapp_original.png and /dev/null differ
diff --git a/B4A/Files/whatstel.png b/B4A/Files/whatstel.png
deleted file mode 100644
index 314da67..0000000
Binary files a/B4A/Files/whatstel.png and /dev/null differ
diff --git a/B4A/FirebaseMessaging.bas b/B4A/FirebaseMessaging.bas
new file mode 100644
index 0000000..5d2157b
--- /dev/null
+++ b/B4A/FirebaseMessaging.bas
@@ -0,0 +1,253 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Service
+Version=10.2
+@EndOfDesignText@
+'///////////////////////////////////////////////////////////////////////////////////////
+'/// Agregar estas lineas al editor de manifiestos
+'
+' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
+' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
+' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)
+' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)
+'
+'/// Agregar modulo de servicio nuevo FirebaseMessaging y copiar este modulo
+'
+'/// Bajar el archivo google-services.json de la consola de Firebase (https://console.firebase.google.com/)
+'/// El nombre de la app en el archivo json tiene que ser el mismo que el nombre del paquete (Proyecto/Conf de Compilacion/Paquete)
+'
+'/// En Starter agregar esta linea
+'
+' Sub Service_Create
+' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics")
+' End Sub
+'
+'/// En Main en Sub Process_Globals agregar esta linea
+'
+' Private const API_KEY As String = "AAAAv__xxxxxxxxxxxxx-xxxxxxxxxxxxxx-xxxxxxxxxxxx"
+'
+'/// Esta llave se consigue igualmente en la consola de Firebase, configuracion de proyecto, Cloud Messaging,
+'/// es la clave de servidor.
+'///
+'/// Se necesitan agregar las librerías: FirebaseAnalitics, FirebaseNotifications, JSON y OkHttpUtils2
+'/// ... JSON es necesario si se van a enviar mensajes, si solo se van a recibir, no es necesario.
+'
+'///////////////////////////////////////////////////////////////////////////////////////
+
+Sub Process_Globals
+ Private fm As FirebaseMessaging
+ Private const API_KEY As String = "AAAAv1qt3Lk:APA91bECIR-pHn6ul53eYyoVlpPuOo85RO-0zcAgEXwE7vqw8DFSbBtCaCINiqWQAkBBZXxHtQMdpU6B-jHIqgFKVL196UgwHv0Gw6_IgmipfV_NiItjzlH9d2QNpGLp9y_JUKVjUEhP"
+ Dim locRequest As String
+ Dim phn As Phone
+ Dim devModel As String
+ Dim pe As PhoneEvents
+ Dim c As Cursor
+ Public GZip As GZipStrings
+ Dim Subscrito As String = ""
+ Dim au As String
+ Dim puntosRuta As Int = 380
+End Sub
+
+Sub Service_Create
+ fm.Initialize("fm") 'Inicializamos FirebaseMessaging
+ pe.Initialize("pe") 'Para obtener la bateria
+End Sub
+
+Public Sub SubscribeToTopics
+' fm.SubscribeToTopic("Trckr") 'Global (you can subscribe to more topics)
+ fm.SubscribeToTopic("Trckr") 'Tracker global
+ Log("Subscrito al tracker global")
+ fm.SubscribeToTopic("Trckr-Durakelo") 'Global (you can subscribe to more topics)
+ Log("Subscrito a Trckr-Durakelo")
+ If Starter.usuario <> Subscrito Then
+ fm.SubscribeToTopic(Starter.usuario) 'Propio (you can subscribe to more topics)
+ fm.UnsubscribeFromTopic(Subscrito) 'Unsubscribe from topic
+ End If
+ If Starter.logger Then Log("Subscrito a "&Starter.usuario)
+ Subscrito = Starter.usuario
+End Sub
+
+Sub Service_Start (StartingIntent As Intent)
+ If StartingIntent.IsInitialized Then fm.HandleIntent(StartingIntent)
+ Sleep(0)
+ Service.StopAutomaticForeground 'remove if not using B4A v8+.
+ StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True) 'Iniciamos servicio cada XX minutos
+End Sub
+
+Sub fm_MessageArrived (Message As RemoteMessage)
+ If Starter.logger Then Log("Message arrived")
+ If Starter.logger Then Log($"Message data: ${Message.GetData}"$)
+' getPhnId
+ If Message.GetData.ContainsKey("t") Then
+ Dim tipos As List = Regex.Split(",",Message.GetData.Get("t"))
+ If tipos.IndexOf("pu") <> -1 Or tipos.IndexOf("au") <> -1 Then 'Si es una peticion de ubicacion
+ If Starter.logger Then Log("Es una peticion de ubicacion")
+ locRequest="Activa"
+ If Starter.logger Then Log("Llamamos StartFLP2Reqs")
+ CallSubDelayed(Tracker, "StartFLP2Reqs")
+ CallSubDelayed(Tracker, "StartFLP")
+ End If
+ If tipos.IndexOf("au") <> -1 Then 'Si es una actualizacion de ubicacion
+ au = 1
+ End If
+ If tipos.IndexOf("ping") <> -1 Then 'Si es un ping
+ If Starter.logger Then Log("Es un ping")
+ If Starter.logger Then Log("Mandamos pong")
+ Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"pong", "body":Starter.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"pong")
+ SendMessage(params)
+ End If
+ If tipos.IndexOf("bgps") <> -1 Then 'Si es una instruccion de borrar archivo gps
+ If Starter.logger Then Log("Es una instruccion de borrar archivo gps")
+ If Starter.logger Then Log("Borramos archivo gps")
+ borramosArchivoGPS
+ End If
+ If tipos.IndexOf("dr") <> -1 Then 'Si es una peticion de ruta gps
+ If Starter.logger Then Log("Es una peticion de Ruta GPS")
+ Dim rutaGpsCmp As String = dameRuta
+ Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"ruta", "body":Starter.usuario&" - Recibi mensaje "&Message.GetData.Get("title"), "t":"ruta", "r":rutaGpsCmp)
+ SendMessage(params)
+ End If
+ If tipos.IndexOf("bgps2") <> -1 Then 'Si es una instruccion de borrar DB gps
+ If Starter.logger Then Log("Es una instruccion de borrar BD gps")
+ If Starter.logger Then Log("Borramos BD gps")
+ borraGPSHist
+ End If
+ If tipos.IndexOf("pu") = -1 And tipos.IndexOf("au") = -1 And tipos.IndexOf("ping") = -1 And tipos.IndexOf("dr") = -1 Then
+ If Starter.logger Then Log("No es ping ni solicitud de ubicacion o ruta, entonces no hacemos nada")
+ End If
+ End If
+End Sub
+
+Sub Service_Destroy
+
+End Sub
+
+Sub SendMessage(params As Map)
+' Dim topic As String= params.Get("topic")
+' Dim title As String= params.Get("title")
+' Dim body As String= params.Get("body")
+' Dim tipo As String= params.Get("t")
+' If params.ContainsKey("r") Then
+' If Starter.logger Then Log("Con ruta")
+' Dim rutaGpsCmp As String= params.Get("r")
+' Else
+' If Starter.logger Then Log("Sin ruta")
+' Dim rutaGpsCmp As String = ""
+' End If
+' Dim Job As HttpJob
+' Job.Initialize("fcm", Me)
+' Dim m As Map = CreateMap("to": $"/topics/${topic}"$)
+' Dim data As Map = CreateMap("title":title, "body":body, "d":Starter.usuario, "t":tipo, "b":Main.batt, "mt":Main.montoActual, "r":rutaGpsCmp, "v":Main.v)
+' m.Put("data", data)
+' Dim jg As JSONGenerator
+' jg.Initialize(m)
+' Job.PostString("https://fcm.googleapis.com/fcm/send", jg.ToString)
+' Job.GetRequest.SetContentType("application/json;charset=UTF-8")
+' Job.GetRequest.SetHeader("Authorization", "key=" & API_KEY)
+' If Starter.logger Then Log(m)
+End Sub
+
+Sub mandamosLoc(coords As String)
+' If Starter.logger Then Log("Iniciamos mandamosLoc "&coords)
+' If Starter.logger Then Log("locRequest="&locRequest)
+' Dim t As String
+' guardaInfoEnArchivo(coords)'Escribimos coordenadas y fecha a un archivo de texto
+' If locRequest="Activa" Then 'Si hay solicitud de ubicacion, entonces la mandamos ...
+' If au = 1 Then
+' t = "au" ' es una actualizacion
+' Else
+' t = "u" ' es una peticion
+' End If
+' Dim params As Map = CreateMap("topic":"Sprv-Durakelo","title":"ubicacionRecibida", "body":coords, "t":t)
+' SendMessage(params)
+' locRequest="Enviada"
+' CallSubDelayed(Tracker,"CreateLocationRequest")
+' End If
+End Sub
+
+Sub guardaInfoEnArchivo(coords As String) 'Escribimos coordenadas y fecha a un archivo de texto
+'' 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
+'
+' If Starter.logger Then Log("Guardamos ubicacion en db")
+' Dim latlon() As String = Regex.Split(",", coords)
+' Try
+' Main.skmt.ExecNonQuery2("INSERT INTO RUTA_GPS(fecha, lat, lon) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1)))
+' Catch
+' If Starter.logger Then Log("Error guardando ubicacion") 'Si la horaMinSeg es el mismo no lo guarda
+' Log(LastException)
+' End Try
+End Sub
+
+Sub borramosArchivoGPS
+ Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "gps.txt", False)
+ Dim s As String = ""
+ Dim t() As Byte = s.GetBytes("UTF-8")
+ out.WriteBytes(t, 0, t.Length)
+ out.Close
+End Sub
+
+Sub pe_BatteryChanged (Level As Int, Scale As Int, Plugged As Boolean, Intent As Intent)
+' Main.batt=Level
+End Sub
+
+Sub compress(str As String) As String
+ ' Compression
+ Private su As StringUtils
+ Dim compressed() As Byte = GZip.compress(str)
+ If Starter.logger Then Log($"CompressedBytesLength: ${compressed.Length}"$)
+ Dim base64 As String = su.EncodeBase64(compressed)
+ If Starter.logger Then Log($"CompressedBytes converted to base64 Length: ${base64.Length}"$)
+ If Starter.logger Then Log($"CompressedBytes converted to base64: ${base64}"$)
+ Return base64
+End Sub
+
+Sub decompress(base64 As String) As String
+ ' Decompression
+ Private su As StringUtils
+ Dim decompressedbytes() As Byte = su.DecodeBase64(base64)
+ If Starter.logger Then Log($"decompressedbytesLength: ${decompressedbytes.Length}"$)
+ Dim bc As ByteConverter
+ Dim uncompressed As String = bc.StringFromBytes(decompressedbytes,"UTF8")
+ If Starter.logger Then Log($"uncompressedLength: ${uncompressed.Length}"$) ' 6163 Bytes
+ If Starter.logger Then Log($"Decompressed String = ${uncompressed}"$)
+ Return uncompressed
+End Sub
+
+Sub dameRuta As String
+' If Starter.logger Then Log("dameRuta")
+' Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
+' DateTime.DateFormat="yyMMdd"
+'' Dim lastUpdate As String=DateTime.Date(fecha)
+' Dim hoy As String = DateTime.Date(DateTime.Now)&"000000"
+' DateTime.DateFormat=OrigFormat 'return to orig date format
+' If Starter.logger Then Log(hoy)
+' Dim c As Cursor
+' c = Main.skmt.ExecQuery("select LAT, LON from RUTA_GPS where fecha > "& hoy &" order by fecha desc limit "&puntosRuta)
+' c.Position = 0
+' Dim ruta2 As String = ""
+' If c.RowCount>0 Then
+' For i=0 To c.RowCount -1
+' c.Position=i
+' ruta2=ruta2&CRLF&c.GetString("LAT")&","&c.GetString("LON")
+' Next
+' End If
+' c.Close
+' Return compress(ruta2)
+End Sub
+
+Sub borraGPSHist
+' c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS")
+' c.Position=0
+' If Starter.logger Then Log(c.GetInt("cuantos"))
+' Main.skmt.ExecNonQuery("delete from RUTA_GPS")
+' c=Main.skmt.ExecQuery("select count(*) as cuantos FROM RUTA_GPS")
+' c.Position=0
+' Log(c.GetInt("cuantos"))
+' Log("Borramos RUTA_GPS")
+' c.Close
+End Sub
\ No newline at end of file
diff --git a/B4A/HttpUtils2Service.bas b/B4A/HttpUtils2Service.bas
deleted file mode 100644
index 0a01215..0000000
--- a/B4A/HttpUtils2Service.bas
+++ /dev/null
@@ -1,86 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Service
-Version=5.5
-@EndOfDesignText@
-#Region Module Attributes
- #StartAtBoot: False
-#End Region
-
-'Modified version of HttpUtils2
-'Service module
-Sub Process_Globals
- Private hc As OkHttpClient
- Private TaskIdToJob As Map
- Public TempFolder As String
- Private taskCounter As Int
-End Sub
-
-Sub Service_Create
- TempFolder = File.DirInternalCache
- hc.Initialize("hc")
- TaskIdToJob.Initialize
-End Sub
-
-Sub Service_Start (StartingIntent As Intent)
-
-End Sub
-
-Sub Service_Destroy
-
-End Sub
-
-Public Sub SubmitJob(job As HttpJob) As Int
- taskCounter = taskCounter + 1
- TaskIdToJob.Put(taskCounter, job)
- If job.Username <> "" And job.Password <> "" Then
- hc.ExecuteCredentials(job.GetRequest, taskCounter, job.Username, job.Password)
- Else
- hc.Execute(job.GetRequest, taskCounter)
- End If
- Return taskCounter
-End Sub
-
-Sub hc_ResponseSuccess (Response As OkHttpResponse, TaskId As Int)
- ' ********** Modified code *************
- Dim cs As CountingOutputStream
- cs.Initialize(File.OpenOutput(TempFolder, TaskId, False))
- Dim j As HttpJob = TaskIdToJob.Get(TaskId)
- Dim jt As JobTag = j.Tag
- jt.CountingStream = cs
- jt.Total = Response.ContentLength
- If jt.Data.url = "" Then
- Log("Job cancelled before downloaded started")
- cs.Close
- End If
- Response.GetAsynchronously("response", cs , _
- True, TaskId)
- '**************************************
-End Sub
-
-Sub Response_StreamFinish (Success As Boolean, TaskId As Int)
- If Success Then
- CompleteJob(TaskId, Success, "")
- Else
- CompleteJob(TaskId, Success, LastException.Message)
- End If
-End Sub
-
-Sub hc_ResponseError (Response As OkHttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
- If Response <> Null Then
- Log(Response.ErrorResponse)
- Response.Release
- End If
- CompleteJob(TaskId, False, Reason)
-End Sub
-
-Sub CompleteJob(TaskId As Int, success As Boolean, errorMessage As String)
- Dim job As HttpJob
- job = TaskIdToJob.Get(TaskId)
- TaskIdToJob.Remove(TaskId)
- job.success = success
- job.errorMessage = errorMessage
- job.Complete(TaskId)
-End Sub
-
diff --git a/B4A/MAPA_RUTAS.bas b/B4A/MAPA_RUTAS.bas
deleted file mode 100644
index 0663b01..0000000
--- a/B4A/MAPA_RUTAS.bas
+++ /dev/null
@@ -1,323 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Activity
-Version=9.3
-@EndOfDesignText@
-#Region Activity Attributes
- #FullScreen: False
- #IncludeTitle: False
-#End Region
-
-'Activity module
-Sub Process_Globals
-' Dim GPS As GPS
-' Dim rp As RuntimePermissions
- Dim ruta As String
- Dim skmt As SQL
- Dim c As Cursor
- Dim c2 As Cursor
- Dim c3 As Cursor
-End Sub
-
-Sub Globals
- Private gmap As GoogleMap
- Private MapFragment1 As MapFragment
- Dim Latitud As Double = 0
- Dim Longitud As Double = 0
- Dim Lat2 As Double = 0
- Dim Lon2 As Double = 0
- Dim p1, p2 As Location
- Dim Distance As Float
- Dim boton1 As Button
- Dim HUE_BLUE As Float
- Dim HUE_RED As Float
- Dim HUE_GREEN As Float
- Private B_AZUL As Button
- Private B_ROJO As Button
- Private B_VERDE As Button
- Private B_TODOS As Button
- Dim Tienda As String
- Dim LatitudRu As Double
- Dim LongitudRU As Double
- Dim LIST_AZUL As List
- Dim LIST_ROJO As List
- Dim LIST_VERDE As List
- Dim MARK_AZUL As Marker
- Dim MARK_ROJO As Marker
- Dim MARK_VERDE As Marker
- Dim MARK_CEDIS As Marker
- Dim rojo As String
- Dim azul As String
- Dim verde As String
- Dim todos As String
- Dim NumSerie As Int
- Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener
- Dim GoogleMapEXTRA As GoogleMapsExtras
- Dim CODIGO As String
- Private SEMANA As String
-
-
-End Sub
-
-Sub Activity_Create(FirstTime As Boolean)
- Activity.LoadLayout("MAPA_RUTAS")
- ruta = File.DirInternal
- If File.Exists(ruta, "kmt.db") = False Then
- File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
- End If
- skmt.Initialize(ruta,"kmt.db", True)
- 'GPS
-' If(FirstTime) Then
-' GPS.Initialize("GPS")
-' End If
-
- If MapFragment1.IsGooglePlayServicesAvailable = False Then
- ToastMessageShow("Please install Google Play Services.", True)
- End If
-
- 'Boton velocidad'
-' boton1.Initialize(0)
-' boton1.Text = 0 &" "&"km/h"
-' boton1.TextColor = Colors.Red
-' boton1.TextSize = 15
-' Activity.AddView(boton1, 40%x, 5dip, 25%x, 40dip)
- 'Fin Boton velocidad'
- 'MARK_CEDIS.IsInitialized
- MARK_AZUL.IsInitialized
- MARK_ROJO.IsInitialized
- MARK_VERDE.IsInitialized
-
- LIST_AZUL.Initialize
- LIST_ROJO.Initialize
- LIST_VERDE.Initialize
-
- verde = 0
- azul = 0
- rojo = 0
- todos = 1
-' c=skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
-' c.Position =0
-' SEMANA = c.GetString("CUANTOS")
-' c.Close
-'
-' If SEMANA > 0 Then
-' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
-' c.Position =0
-' SEMANA = c.GetString("CAT_VA_VALOR")
-' c.Close
-' End If
-
-
-End Sub
-
-Sub MapFragment1_Ready
-' skmt.Initialize(ruta,"kmt.db", True)
- gmap = MapFragment1.GetMap
- gmap.IsInitialized
- 'todos= 1
- 'permisos
- Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
- Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
- gmap.MyLocationEnabled = Result
-
- Dim JavaMapsObject As JavaObject
- JavaMapsObject = gmap.GetUiSettings
- JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
-
- '''''''----------------------------MARKER AZUL - POR VISITAR
-
- If azul = 1 Or todos = 1 Then
- c.IsInitialized
- '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS PENDIENTES POR VISITAR
- c=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 0 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO ")
- If c.RowCount > 0 Then
- For i = 0 To c.RowCount -1
- c.Position = i
- LatitudRu = c.GetDouble("CAT_CL_LAT")
- LongitudRU = c.GetDouble("CAT_CL_LONG")
- CODIGO=c.GetString("CAT_CL_CODIGO")
- Tienda= c.GetString("CAT_CL_NOMBRE")
- NumSerie=c.GetInt("CAT_CL_NUM_SERIEFISICO")
-
- MARK_AZUL = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO,LoadBitmap(File.DirAssets, "marker-azul-" & NumSerie &".png"))
- MARK_AZUL.Snippet = Tienda
- ' MARK_AZUL = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO, gmap.HUE_BLUE)
- ' MARK_AZUL.Snippet = Tienda
- Next
- LIST_AZUL.Add(MARK_AZUL)
- End If
- c.Close
- End If
-
- '''''''----------------------------MARKER VERDE - VENTA
- If verde = 1 Or todos = 1 Then
- c2.IsInitialized
- '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS
- c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO")
- For i = 0 To c2.RowCount -1
- c2.Position = i
- LongitudRU = c2.GetDouble("CAT_CL_LONG")
- LatitudRu = c2.GetDouble("CAT_CL_LAT")
- CODIGO=c2.GetString("CAT_CL_CODIGO")
- Tienda= c2.GetString("CAT_CL_NOMBRE")
- NumSerie=c2.GetInt("CAT_CL_NUM_SERIEFISICO")
- MARK_VERDE = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-verde-"&NumSerie&".png"))
- MARK_VERDE.Snippet = Tienda
-' MARK_VERDE = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO,gmap.HUE_GREEN)
-' MARK_VERDE.Snippet = Tienda
- Next
- Else
- '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LA VENTAS--- ESTE VA IGUAL QUE EL ANTERIOR
- If verde =1 Or todos = 1 Then
- c2.IsInitialized
- c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO")
- For i = 0 To c2.RowCount -1
- c2.Position = i
- LongitudRU = c2.GetDouble("CAT_CL_LONG")
- LatitudRu = c2.GetDouble("CAT_CL_LAT")
- CODIGO=c2.GetString("CAT_CL_CODIGO")
- Tienda= c2.GetString("CAT_CL_NOMBRE")
-
- NumSerie=c2.GetInt("CAT_CL_NUM_SERIEFISICO")
- MARK_VERDE = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-verde-"&NumSerie&".png"))
- MARK_VERDE.Snippet = Tienda
-' MARK_VERDE = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO,gmap.HUE_GREEN)
-' MARK_VERDE.Snippet = Tienda
- Next
- c2 .Close
- LIST_VERDE.Add(MARK_VERDE)
- End If
- End If
-
-' '''''''----------------------------MARKER ROJO - NO VENTA
- '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LAS NO VENTAS
- If rojo =1 Or todos = 1 Then
- c3.IsInitialized
- c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT ,CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO")
- For i = 0 To c3.RowCount -1
- c3.Position = i
- LongitudRU = c3.GetDouble("CAT_CL_LONG")
- LatitudRu = c3.GetDouble("CAT_CL_LAT")
- Tienda= c3.GetString("CAT_CL_NOMBRE")
- NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO")
- MARK_ROJO = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png"))
- MARK_ROJO.Snippet = Tienda
-' MARK_ROJO = gmap.AddMarker2(LatitudRu,LongitudRU,Tienda, gmap.HUE_RED)
-' MARK_ROJO.Snippet = Tienda
- Next
-
- Else
- '''''''''VERIFICAR EN QUE TABLA O EN QUE CAMPO NOS LEE LAS NO VENTAS- ESTE VA IGUAL QUE EL ANTERIOR
- If rojo =1 Or todos = 1 Then
- c3.IsInitialized
- c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_NUM_SERIEFISICO from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 AND CAT_CL_NOMBRE <>'VENTA ABORDO' ORDER BY CAT_CL_NUM_SERIEFISICO")
- For i = 0 To c3.RowCount -1
- c3.Position = i
- LongitudRU = c3.GetDouble("CAT_CL_LONG")
- LatitudRu = c3.GetDouble("CAT_CL_LAT")
- Tienda= c3.GetString("CAT_CL_NOMBRE")
- NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO")
- MARK_ROJO = gmap.AddMarker3(LongitudRU,LatitudRu,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png"))
- MARK_ROJO.Snippet = Tienda
-' MARK_ROJO = gmap.AddMarker2(LatitudRu,LongitudRU,Tienda, gmap.HUE_RED)
-' MARK_ROJO.Snippet = Tienda
- Next
- LIST_ROJO.Add(MARK_ROJO)
- c3.Close
- End If
- End If
- ''------------------------------
-
-' MARK_CEDIS = gmap.AddMarker3("19.3961802","-99.0784293","CEDIS", LoadBitmap(File.DirAssets, "marker-azul-0.png"))
-' If MARK_VERDE.Visible Or MARK_ROJO.Visible Then
-' MARK_CEDIS.Remove
-' End If
- Dim aa As CameraPosition
- aa.Initialize(LongitudRU,LatitudRu,15)''' RECOMENDABLE CAMBIAR A 10 PARA QUE SE VEAN MAS MARCADORES
- gmap.AnimateCamera(aa)
-
- '''''---------------------- ESTO ES PARA LOS CLICK EN LAS VENTANAS DE INFORMACION-----------
- Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener
- OnInfoWindowClickListener1.Initialize("OnInfoWindowClickListener1")
- GoogleMapEXTRA.SetOnInfoWindowClickListener(gmap, OnInfoWindowClickListener1)
-
-End Sub
-
-Sub OnInfoWindowClickListener1_click(Marker1 As Marker)
- skmt.ExecNonQuery("delete from CUENTAA")
- skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?) ", Array As Object(Marker1.Title))
- StartActivity(fila)
-End Sub
-
-Sub GPS_LocationChanged (Parametro As Location)
- MARK_CEDIS.IsInitialized
-' Parametro.ConvertToSeconds(Parametro.Latitude)
-' Parametro.ConvertToSeconds(Parametro.Longitude)
-'
-' Dim sp As Int
-' sp = Ceil(Parametro.Speed * 3.6)
-' boton1.Text = sp &" "&"km/h"
-' Latitud = Parametro.Latitude
-' Longitud = Parametro.Longitude
-' p2.Initialize2(Latitud,Longitud)
-' p1.Initialize2(Lat2, Lon2)
-' Distance = p1.DistanceTo(p2)
-' If Latitud <> 0 And Longitud <> 0 Then
-' If Distance > 10 Then
-' Lat2 = Latitud
-' Lon2 = Longitud
-' Dim cp As CameraPosition
-' cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0)
-' gmap.AnimateCamera(cp)
-' End If
-' End If
-End Sub
-
-Sub Activity_Resume
-' If GPS.GPSEnabled = False Then
-' ToastMessageShow("Debe Activar el GPS del Equipo.", True)
-' StartActivity(GPS.LocationSettingsIntent)
-' Else
-' GPS.Start(0, 0)
-' End If
-End Sub
-
-Sub Activity_Pause (UserClosed As Boolean)
-' GPS.Stop
-End Sub
-
-Sub B_TODOS_Click
- todos =1
- verde = 0
- azul = 0
- rojo = 0
- MapFragment1_Ready
-End Sub
-
-Sub B_VERDE_Click
- verde = 1
- azul = 0
- rojo = 0
- todos = 0
- gmap.Clear
- MapFragment1_Ready
-End Sub
-
-Sub B_ROJO_Click
- rojo = 1
- verde = 0
- azul = 0
- todos = 0
- gmap.Clear
- MapFragment1_Ready
-End Sub
-
-Sub B_AZUL_Click
- azul = 1
- verde = 0
- rojo = 0
- todos = 0
- gmap.Clear
- MapFragment1_Ready
-End Sub
diff --git a/B4A/ManageExternalStorage.bas b/B4A/ManageExternalStorage.bas
new file mode 100644
index 0000000..f14c1f7
--- /dev/null
+++ b/B4A/ManageExternalStorage.bas
@@ -0,0 +1,79 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Class
+Version=10.7
+@EndOfDesignText@
+' Version 1.00
+#Event: StorageAvailable
+Sub Class_Globals
+ Private ion As Object
+ Private mCallback As Object
+ Private mEventName As String
+
+End Sub
+
+
+' This pretty trivial class is modelled on (plagiarised from!) Erel's ExternalStorage class
+' It applies to devices implementing SDK30 and later
+' It allows apps to access the internal 'external' storage as was possible on earlier Android versions ussing traditional file I/O
+' You must manually add 'AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)' to the manifest
+' You must ensure that you provide the package name of your app in Sub GetPermission
+' This class uses the MANAGE_APP_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page
+' They must enable the option on that page to give permission
+
+'Initializes the object
+Public Sub Initialize (Callback As Object, EventName As String)
+ mCallback = Callback
+ mEventName = EventName
+End Sub
+
+
+' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager()
+' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission
+Public Sub HasPermission As Boolean
+ Dim has As Boolean
+ Dim jo As JavaObject
+ jo.InitializeStatic("android.os.Environment")
+ has = jo.RunMethod("isExternalStorageManager", Null)
+ Return has
+End Sub
+
+' Check whether this app has MANAGE_EXTERNAL_STORAGE permission
+' If not show the user a dialog to enable MANAGE_EXTERNAL_STORAGE permission for this app
+' Raises the StorageAvailable event in the calling activity when complete
+Public Sub GetPermission
+ If HasPermission Then
+ RaiseEvent
+ Return
+ End If
+ Dim in As Intent
+ ' Be sure to reference your app package name in "pakageg:xxx"
+ in.Initialize("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION", $"package:${Application.PackageName}"$)
+ StartActivityForResult(in)
+End Sub
+
+
+Private Sub RaiseEvent
+ Log("Calling : " & mEventName & "_StorageAvailable")
+ CallSubDelayed(mCallback, mEventName & "_StorageAvailable")
+End Sub
+
+
+Private Sub ion_Event (MethodName As String, Args() As Object) As Object
+ RaiseEvent
+ Return Null
+End Sub
+
+
+Private Sub StartActivityForResult(i As Intent)
+ Dim jo As JavaObject = GetBA
+ ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
+ jo.RunMethod("startActivityForResult", Array As Object(ion, i))
+End Sub
+
+Private Sub GetBA As Object
+ Dim jo As JavaObject = Me
+ Return jo.RunMethod("getBA", Null)
+End Sub
+
diff --git a/B4A/Mods.bas b/B4A/Mods.bas
deleted file mode 100644
index c0672eb..0000000
--- a/B4A/Mods.bas
+++ /dev/null
@@ -1,15 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=StaticCode
-Version=11.5
-@EndOfDesignText@
-Sub process_globals
-End Sub
-
-'Ver 2.10.17
-'Se corrigieron en "mapas_rutas" y en "c_mapas" errores donde la longitud y latitud estaban invertidas y marcaba las tiendas en Africa.
-'Ver 2.09.03
-'Se agregó código en "C_Cliente.GPS_LocationChanged" para que cuando haya un cambio de ubicacion, se actualize el texto del boton "b_ubicacion".
-'Se agregó código en "C_Cliente.B4XPage_Appear" para que cuando se entre a "C_Cliente" el cambio minimo de distancia (SetSmallestDisplacement) de la ubicacion sea 1,
-'y cuando se salga de "C_Cliente" regrese a 75 (C_Cliente.Guardar_Click).
\ No newline at end of file
diff --git a/B4A/Objects/b4xlibs/Files/b4xinputtemplate.bal b/B4A/Objects/b4xlibs/Files/b4xinputtemplate.bal
deleted file mode 100644
index a143b40..0000000
Binary files a/B4A/Objects/b4xlibs/Files/b4xinputtemplate.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/datepicker.bal b/B4A/Objects/b4xlibs/Files/datepicker.bal
deleted file mode 100644
index 82ab2fc..0000000
Binary files a/B4A/Objects/b4xlibs/Files/datepicker.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/datetemplate.bal b/B4A/Objects/b4xlibs/Files/datetemplate.bal
deleted file mode 100644
index bb5b387..0000000
Binary files a/B4A/Objects/b4xlibs/Files/datetemplate.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/listtemplate.bal b/B4A/Objects/b4xlibs/Files/listtemplate.bal
deleted file mode 100644
index ada8853..0000000
Binary files a/B4A/Objects/b4xlibs/Files/listtemplate.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/longtexttemplate.bal b/B4A/Objects/b4xlibs/Files/longtexttemplate.bal
deleted file mode 100644
index 7fe9911..0000000
Binary files a/B4A/Objects/b4xlibs/Files/longtexttemplate.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/pclvseekbar.bal b/B4A/Objects/b4xlibs/Files/pclvseekbar.bal
deleted file mode 100644
index 0dac6e1..0000000
Binary files a/B4A/Objects/b4xlibs/Files/pclvseekbar.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/searchtemplate.bal b/B4A/Objects/b4xlibs/Files/searchtemplate.bal
deleted file mode 100644
index 931f029..0000000
Binary files a/B4A/Objects/b4xlibs/Files/searchtemplate.bal and /dev/null differ
diff --git a/B4A/Objects/b4xlibs/Files/timeddialogtemplate.bal b/B4A/Objects/b4xlibs/Files/timeddialogtemplate.bal
deleted file mode 100644
index e05943e..0000000
Binary files a/B4A/Objects/b4xlibs/Files/timeddialogtemplate.bal and /dev/null differ
diff --git a/B4A/SD_Spinner.bas b/B4A/SD_Spinner.bas
deleted file mode 100644
index 7e35139..0000000
--- a/B4A/SD_Spinner.bas
+++ /dev/null
@@ -1,491 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Class
-Version=8.3
-@EndOfDesignText@
-' Update 1.0.2 (04/01/2018)
-#Event: ItemClick (Position As Int, Value as String)
-#DesignerProperty: Key: TextColor, DisplayName: TextColor, FieldType: Color, DefaultValue: 0xFF000000,Description: Text color
-#DesignerProperty: Key: TextSize, DisplayName: TextSize, FieldType: int, DefaultValue: 14,Description: Label Text Size
-#DesignerProperty: Key: HintColor, DisplayName: HintColor, FieldType: Color, DefaultValue: 0xFF888888,Description: Hint color, noselected opstion
-#DesignerProperty: Key: BackgroundColor, DisplayName: Color background, FieldType: Color, DefaultValue: 0xFFFFFFFF, Description: You can use the built-in color picker to find the color values.
-#DesignerProperty: Key: BackgroundColorList, DisplayName: ListColor background, FieldType: Color, DefaultValue: 0xFF000000, Description: You can use the built-in color picker to find the color values.
-#DesignerProperty: Key: GrayDisplay, DisplayName: Gray Display, FieldType: boolean, DefaultValue: False, Description: Gray Display.
-#DesignerProperty: Key: RoundCorner, DisplayName:RoundCorner, FieldType: boolean, DefaultValue: False, Description: RoundCorner.
-
-Sub Class_Globals
- Public SelectedItem As String
- Public SelectedID As String
- Public SelectedIndex As Int
- Public GrayDisplay As Boolean
- Public BColor, TColor,HintColor, BColorList As Int
- Public RoundCorner As Boolean
- Public ScrollViewParent As ScrollView = Null
-
- Private EventName As String 'ignore
- Private CallBack As Object 'ignore
- Private mBase As Panel
- Public MyAct As Panel
- Private Lab As Label
- Private AppPanel As Panel
- Public Top,Left As Int
- Private ListPanel As ScrollView
-
- Private ListItem As List
- Private TextSize As Int
- Type Item (Text As String,TextHelp As String,ID As String, BackgroundColor As Int, TextColor As Int, Image As Bitmap, G As Int)
-End Sub
-
-Public Sub Initialize (vCallback As Object, vEventName As String)
- EventName = vEventName
- CallBack = vCallback
- ListItem.Initialize
- Lab.Initialize("Lab")
- SelectedItem=""
- SelectedID=""
- SelectedIndex=-1
-
- AppPanel.Initialize("AppPanel")
- ListPanel.Initialize(1000dip)
-End Sub
-
-Public Sub Invalidate
- mBase.Invalidate
-End Sub
-
-Public Sub DesignerCreateView (Base As Panel, Lbl As Label, Props As Map)
- mBase = Base
- mBase.Tag=Me
-
- Left=0
- Top=0
- Try
- Dim Obj As View = mBase
- Log(GetType(Obj))
- Do While Not(GetType(Obj) = "android.widget.FrameLayout")
- Left=Left+Obj.Left
- Top=Top+Obj.Top
- Obj=Obj.Parent
- Loop
- MyAct=Obj
- Catch
- Dim r As Reflector
- r.Target = r.GetActivityBA
- MyAct=r.GetField("vg")
- End Try
-
- If Props.ContainsKey("BackgroundColor") Then BColor=Props.Get("BackgroundColor")
- If Props.ContainsKey("BackgroundColorList") Then BColorList=Props.Get("BackgroundColorList")
- If Props.ContainsKey("TextColor") Then TColor=Props.Get("TextColor")
- If Props.ContainsKey("TextSize") Then TextSize=Props.Get("TextSize")
- If Props.ContainsKey("HintColor") Then HintColor=Props.Get("HintColor")
- If Props.ContainsKey("GrayDisplay") Then GrayDisplay=Props.Get("GrayDisplay")
- If Props.ContainsKey("RoundCorner") Then RoundCorner=Props.Get("RoundCorner")
-
- Lab.TextColor=TColor
- Lab.Color=BColor
- Lab.Gravity=Gravity.CENTER
- Lab.TextSize=TextSize
- Lab.BringToFront
- SetIndex(SelectedIndex)
- mBase.AddView(Lab,0,0,mBase.Width,mBase.Height)
-
- Dim Ima As Panel
- Ima.Initialize("")
- LoadDrawableByName(Ima,"dropdown_ic_arrow_normal_holo_light")
- mBase.AddView(Ima,mBase.Width-40dip,(mBase.Height/2)-20dip,40dip,40dip)
-
-End Sub
-
-Private Sub LoadDrawableByName(Control As View, ImageName As String) As Boolean
- Dim R As Reflector
- Try
- R.Target = R.GetContext
- R.Target = R.RunMethod("getResources")
- R.Target = R.RunMethod("getSystem")
- Dim ID_Drawable As Int
- ID_Drawable = R.RunMethod4("getIdentifier", Array As Object(ImageName, "drawable", "android"), _
- Array As String("java.lang.String", "java.lang.String", "java.lang.String"))
- R.Target = R.GetContext
- R.Target = R.RunMethod("getResources")
- Control.Background = R.RunMethod2("getDrawable", ID_Drawable, "java.lang.int")
- Return True
-
- Catch
- LogColor("ERROR.LoadDrawableByName:" & LastException.Message, Colors.Red)
- Return False
-
- End Try
-End Sub
-
-Public Sub GetBase As Panel
- Return mBase
-End Sub
-
-#Region Private
-
-private Sub Lab_Click
- Dim I As IME
- I.Initialize("")
- I.HideKeyboard
-
- DesignerList
-End Sub
-
-Private Sub AppPanel_Touch (Action As Int, X As Float, Y As Float)
- 'AppPanel.Visible=False
- AppPanel.RemoveView
-End Sub
-
-Sub Corner(Colore As Int) As ColorDrawable
- Dim cdb As ColorDrawable
- cdb.Initialize(Colore, 20dip)
- Return cdb
-End Sub
-
-Sub RoundBorders(B0 As Bitmap, radius As Int) As Bitmap
-
- Dim B1,B2 As Bitmap
- Dim cv As Canvas
- Dim Rect1 As Rect
-
- B2.InitializeMutable(40dip,40dip)
- cv.Initialize2(B2)
- Dim Drawable1 As ColorDrawable
- Drawable1.Initialize(Colors.White,radius)
- Rect1.Initialize(0,0,B2.Width-1,B2.Height-1)
- cv.DrawDrawable(Drawable1,Rect1)
-
- B1.InitializeMutable(40dip,40dip)
- cv.Initialize2(B1)
- cv.DrawBitmap(B0,Null,Rect1)
-
- For r=0 To B2.Height-1
- For c=0 To B2.Width-1
- If B2.GetPixel(c,r)=0 Then
- cv.DrawPoint(c,r,0)
- End If
- Next
- Next
- cv.DrawCircle(20dip,20dip,20dip,Colors.Black,False,1dip)
- 'P.SetBackgroundImage(B1)
- Return B1
-End Sub
-
-private Sub DesignerList
- Dim HeightListView As Int = 0
- Dim Space As Int
-
- If ListItem.size>0 Then
- If AppPanel.IsInitialized Then AppPanel.RemoveView
- MyAct.addview(AppPanel,0,0,100%x,100%Y)
-
- If RoundCorner Then ListPanel.Color=Colors.Transparent Else ListPanel.Color=BColorList
- ListPanel.RemoveView
- ListPanel.Panel.RemoveAllViews
- ListPanel.Panel.Height=0
-
- For i=0 To ListItem.Size-1
- Dim Item As Item
- Item.Initialize
-
- Item = ListItem.Get(i)
- Dim P As Panel
- P.Initialize("PanelClick")
- If RoundCorner Then P.Background=Corner(Item.BackgroundColor) Else P.Color=Item.BackgroundColor
-
- P.Tag=I
- Try
- Space=40dip
- Dim Ima As ImageView
- Ima.Initialize("")
- Ima.Gravity=Gravity.FILL
- If RoundCorner Then
- Ima.SetBackgroundImage(RoundBorders(Item.Image,20dip))
- Else
- Ima.SetBackgroundImage(Item.Image)
- End If
-
- P.AddView(Ima,0dip,5dip,40dip,40dip)
- Catch
- Space=0dip
- End Try
-
- Dim La As Label
- La.Initialize("")
- La.Text=Item.text
- La.TextSize=15
- La.Color=Colors.Transparent
- La.TextColor=Item.TextColor
- La.Typeface=Typeface.DEFAULT_BOLD
- La.Gravity=Item.G
-
- P.AddView(La,Space,0dip,mBase.Width-Space,30dip)
- If Item.texthelp.Trim<>"" Then
- Dim La As Label
- La.Initialize("")
- La.Text=Item.TextHelp
- La.TextSize=12
- La.Color=Colors.Transparent
- La.TextColor=Item.TextColor
- La.Gravity=Item.G
- P.AddView(La,Space,25dip,mBase.Width-Space,30dip)
- Else
- La.Height=50dip
- End If
- ListPanel.Panel.AddView(P,-mBase.Width,HeightListView,mBase.Width-2DIP,49dip)
- P.SetLayoutAnimated(100+(HeightListView/3),1dip,HeightListView,mBase.Width-2DIP,49dip)
- HeightListView=HeightListView+50dip
- Next
- ListPanel.Panel.Height=HeightListView
-
- Dim LeftSpinner,TopSpinner,HeightSpinner,Yafter As Int
-
- If GrayDisplay Then AppPanel.Color=Colors.aRGB(200,0,0,0) Else AppPanel.Color=Colors.Transparent
- If ScrollViewParent.IsInitialized Then
- If Left+mBase.Width+ScrollViewParent.Left>100%x Then LeftSpinner=100%x-mBase.Width Else LeftSpinner=Left
- Else
- If Left+mBase.Width>100%x Then LeftSpinner=100%x-mBase.Width Else LeftSpinner=Left
- End If
-
- Yafter=100%y-Top-mBase.Height
- If ScrollViewParent.IsInitialized Then
- Yafter=Yafter+ScrollViewParent.ScrollPosition
- Top=Top-ScrollViewParent.ScrollPosition
- End If
- If (HeightListView>Top)And (HeightListView>Yafter) Then
- ' Non va bene dappertutto
- If (Top>100%y-Top-mBase.Height) Then
- 'sopra é più grande
- TopSpinner=0dip
- HeightSpinner=Top
- Else
- 'sotto è più grande
- TopSpinner=Top+mBase.Height
- HeightSpinner=100%y-Top-mBase.Height
- End If
- Else if (HeightListView>Top) And (HeightListView<=Yafter) Then
- ' Va bene di sotto
- TopSpinner=Top+mBase.Height
- HeightSpinner=HeightListView
- Else If (HeightListView<=Top)And (HeightListView>Yafter) Then
- ' Va bene di sopra
- TopSpinner=Top+mBase.Height-HeightListView
- HeightSpinner=HeightListView
- Else
- ' Haqspazio sopra e sotto
- TopSpinner=Top+mBase.Height
- HeightSpinner=HeightListView
- End If
-
- If ScrollViewParent.IsInitialized=False Then
- AppPanel.AddView(ListPanel,LeftSpinner,TopSpinner,mBase.Width,HeightSpinner)
- Else
- AppPanel.AddView(ListPanel,LeftSpinner,TopSpinner,mBase.Width,HeightSpinner)
- End If
- 'AppPanel.Visible=True
- End If
-End Sub
-
-Private Sub PanelClick_Click
- Dim P As Panel = Sender
- Dim Position As Int = P.Tag
-
- SelectedIndex=Position
- SelectedID=GetID(Position)
- SelectedItem=GetItem(Position)
- Lab.TextColor=TColor
- Lab.Text=SelectedItem
- Lab.BringToFront
- If SubExists(CallBack,EventName & "_ItemClick") Then CallSub3(CallBack,EventName & "_ItemClick",Position,GetItem(Position))
-
- 'AppPanel.Visible=False
- AppPanel.RemoveView
-End Sub
-
- #End Region
-
- #Region Method
-
-Public Sub Add(Text As String, TextHelp As String,ID As String, BackgroundColor As Int, TextColor As Int, Gravities As Int,Image As Bitmap)
- Dim Item As Item
-
- Item.Initialize
- Item.Text=Text
- Item.TextHelp=TextHelp
- Item.ID=ID
- Item.BackgroundColor=BackgroundColor
- Item.TextColor=TextColor
- Item.G=Gravities
- 'Log(Image)
- If Image.IsInitialized Then
- Item.Image=Image
- Else
- Dim Bmp As Bitmap
- Bmp=Null
- Item.Image=Bmp
- End If
- ListItem.Add(Item)
-
-End Sub
-
-Public Sub AddAll(L As List, TextHelp As String, BackgroundColor As Int, TextColor As Int, Gravities As Int)
- Dim Bmp As Bitmap = Null
-
- For i=0 To L.Size-1
- Dim Item As Item
- Item.Text=L.Get(i)
- Item.TextHelp=TextHelp
- Item.ID=i
- Item.BackgroundColor=BackgroundColor
- Item.TextColor=TextColor
- Item.G=Gravities
- Item.Image=Bmp
- ListItem.Add(Item)
- Next
-End Sub
-
-public Sub Size As Int
- Return ListItem.Size
-End Sub
-
-Public Sub Clear
- ListItem.Clear
- DesignerList
- SelectedIndex=-1
- SelectedID=""
- SelectedItem=""
- Lab.Textcolor=HintColor
- Lab.Text="Seleccionar Categoria"
- Lab.BringToFront
-End Sub
-
-Public Sub RemoveIndex(Position As Int)
- If Position>-1 And Position-1 Then ListItem.RemoveAt(Position)
-End Sub
-
-Public Sub GetItem(Position As Int) As String
- Dim Ret As String = ""
- If Position>-1 And Position-1 And Position-1 And Position-1 And Position= 3 Then 'Si tenemos valor para phn.Model
- File.WriteString(File.DirInternal, "phnId.txt", devModel) 'Sobreescribimos archivo phnId.txt with deviceId
-' if starter.logger then 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
-' if starter.logger then Log("Leemos id de "&File.DirInternal&"/phnId.txt")
-' if starter.logger then Log(devModel)
- End If
- Return devModel
-End Sub
-
-'Comprime y regresa un texto (str) en base64
-Sub compress(str As String) As String 'ignore
- 'Requiere la libreria "CompressStrings"
-' Dim compressed() As Byte = GZip.compress(str)
-' Dim base64 As String = su.EncodeBase64(compressed)
-' if starter.logger then Log($"Comprimido: ${base64.Length}"$)
-' Return base64
-End Sub
-
-'Descomprime y regresa un texto en base64
-Sub decompress(base64 As String) As String 'ignore
- Dim decompressedbytes() As Byte = su.DecodeBase64(base64)
-' if starter.logger then Log($"decompressedbytesLength: ${decompressedbytes.Length}"$)
- Dim bc As ByteConverter
- Dim uncompressed As String = bc.StringFromBytes(decompressedbytes,"UTF8")
- Log($"Descomprimido: ${uncompressed.Length}"$)
-' if starter.logger then Log($"Decompressed String = ${uncompressed}"$)
- Return uncompressed
-End Sub
-
-'Convierte una fecha al formato yyMMddHHmmss
-Sub fechaKMT(fecha As String) As String 'ignore
-' if starter.logger then Log(fecha)
- Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
- DateTime.DateFormat="yyMMddHHmmss"
- Dim nuevaFecha As String=DateTime.Date(fecha)
- DateTime.DateFormat=OrigFormat 'return to orig date format
-' if starter.logger then Log(nuevaFecha)
- Return nuevaFecha
-End Sub
-
-'Genera una notificacion con importancia alta
-Sub notiHigh(title As String, body As String, activity As Object) 'ignore
- Private notif As Notification
- notif.Initialize2(notif.IMPORTANCE_HIGH)
- notif.Icon = "icon"
- notif.Vibrate = False
- notif.Sound = False
- notif.AutoCancel = True
- Log("notiHigh: "&title)
- notif.SetInfo(title, body, activity)
-' if starter.logger then Log("notiHigh SetInfo")
- notif.Notify(777)
-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)
- If Starter.logger Then Log("notiLowReturn: "&title)
- notification.Icon = "icon"
- notification.Sound = False
- notification.Vibrate = False
- notification.SetInfo(title, Body, Main)
- notification.Notify(id)
-' if starter.logger then Log("notiLowReturn SetInfo")
- Return notification
-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 Main.Logger Then Log("LatLon="&latlon)
- If Not(Starter.db.IsInitialized) Then revisaBD
- Starter.db.ExecNonQuery2("INSERT INTO RUTA_GPS(fecha, lat, lon) VALUES (?,?,?)", Array As Object (latlon(2),latlon(0),latlon(1)))
- Catch
- If Starter.logger Then Log(LastException)
- End Try
-End Sub
-
-'Regresa la ruta gps solicitada comprimida y en base64
-Sub dameRutaGPS(inicioRuta As String, origenRuta As String) As String 'ignore
- 'Requiere la libreria "SQL"
- Dim fechaInicio As String
- Try 'incioRuta es numero
- inicioRuta = inicioRuta * 1
-' Log("fechaInicio numerica="&fechaInicio)
- fechaInicio = fechaKMT(DateTime.Now - (DateTime.TicksPerHour * inicioRuta))
- Catch 'inicioRuta es string
- fechaInicio = fechaInicioHoy
-' Log("fechaInicio string="&fechaInicio)
- End Try
- If Starter.logger Then Log("fechaInicio: "&fechaInicio&" | rutaHrsAtras="&rutaHrsAtras) 'fechaKMT(DateTime.Now)
- Dim c As Cursor
- If Starter.db.IsInitialized = False Then Starter.db.Initialize(Starter.ruta, "kmt.db", True)
- If Starter.logger Then Log("select FECHA, LAT, LON from "& origenRuta &" where FECHA > " & fechaInicio & " order by FECHA desc limit " & rutaMaxPoints)
- c = Starter.db.ExecQuery("select FECHA, LAT, LON from "& origenRuta &" where FECHA > " & fechaInicio & " order by FECHA desc limit " & rutaMaxPoints)
- c.Position = 0
- Dim ruta2 As String = ""
- If c.RowCount>0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- ruta2=ruta2&CRLF&c.GetString("LAT")&","&c.GetString("LON")&","&c.GetString("FECHA")
- Starter.fechaRuta = c.GetString("FECHA")
- Next
- End If
- c.Close
- Return compress(ruta2)
-End Sub
-
-'Limpiamos la tabla RUTA_GPS de la BD
-Sub deleteGPS_DB 'ignore
- Starter.db.ExecNonQuery("delete from RUTA_GPS")
- Starter.db.ExecNonQuery("vacuum;")
-End Sub
-
-'Limpiamos la tabla errorLog de la BD
-Sub deleteErrorLog_DB 'ignore
- If Not(Starter.errorLog.IsInitialized) Then revisaBD
- Starter.errorLog.ExecNonQuery("delete from errores")
- Starter.errorLog.ExecNonQuery("vacuum;")
-' ToastMessageShow("Borrada", False)
-End Sub
-
-'Borramos el archio "gps.txt"
-Sub borramosArchivoGPS 'ignore
- Dim out As OutputStream = File.OpenOutput(File.DirInternal, "gps.txt", False)
- Dim s As String = ""
- Dim t() As Byte = s.GetBytes("UTF-8")
- out.WriteBytes(t, 0, t.Length)
- out.Close
-End Sub
-
-'Revisa que exista la BD y si es necesario crea algunas tablas dentro de ella
-Sub revisaBD 'ignore
-' if starter.logger then Log("subs.revisaBD")
- Starter.ruta = File.DirInternal
- If Not(File.Exists(Starter.ruta, "kmt.db")) Then File.Copy(File.DirAssets, "kmt.db", Starter.ruta, "kmt.db")
- If Not(Starter.db.IsInitialized) Then Starter.db.Initialize(Starter.ruta, "kmt.db", True)
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(fecha INTEGER, lat TEXT, lon TEXT)")
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA2(HE_CLIENTE TEXT)")
-' Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS UUC(fecha INTEGER, lat TEXT, lon TEXT)") 'LastKnownLocation
- Starter.db.ExecNonQuery("CREATE TABLE IF NOT EXISTS bitacora(fecha INTEGER, texto TEXT)") 'Bitacora
- Try 'Si no existe la columna CAT_CL_CATEGORIA la agregamos.
- Starter.db.ExecQuery("select count(CAT_CL_CATEGORIA) from kmt_info")
- Catch
- Try
- Starter.db.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN CAT_CL_CATEGORIA TEXT")
- Catch
- If Starter.logger Then LogColor("No pudimos agregar la columna CAT_CL_CATEGORIA.", Colors.Red)
- If Starter.logger Then LogColor(LastException, Colors.Red)
- End Try
- End Try
- Try 'Si no existe la columna CAT_CL_SEGMENTO la agregamos.
- Starter.db.ExecQuery("select count(CAT_CL_SEGMENTO) from kmt_info")
- Catch
- Try
- Starter.db.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN CAT_CL_SEGMENTO TEXT")
- Catch
- If Starter.logger Then LogColor("No pudimos agregar la columna CAT_CL_SEGMENTO.", Colors.Red)
- If Starter.logger Then LogColor(LastException, Colors.Red)
- End Try
- End Try
- 'Tabla para la bitacora de errores
- If Not(Starter.errorLog.IsInitialized) Then Starter.errorLog.Initialize(Starter.ruta, "errorLog.db", True)
- Starter.errorLog.ExecNonQuery("CREATE TABLE IF NOT EXISTS errores(fecha INTEGER, error TEXT)")
-End Sub
-
-'Obtiene el ssid al que esta conectado el telefono
-Sub getSSID 'ignore
-' 'Requiere la libreria "MLWifi400"
-' If wifi.isWifiConnected Then
-' ssid = wifi.WifiSSID
-' End If
-End Sub
-
-'Convierte un texto en formato JSON a un objeto "Map"
-Sub JSON2Map(theJson As String) As Map 'ignore
- 'Requiere la libreria "JSON"
- Try
- Private json As JSONParser
- json.Initialize(theJson)
- Return json.NextObject
- Catch
- Log(LastException)
- log2DB("JSON2Map: "&LastException)
- Private m As Map = CreateMap("title":"Error generating JSON", "t":"Error", "Message":LastException, "text" : LastException)
- Return m
- End Try
-End Sub
-
-'Convierte un mapa a formato JSON
-Sub map2JSON(m As Map) As String 'ignore
- 'Requiere la libreria "JSON"
- 'Convierte un objecto "Map" a JSON
- Dim jg As JSONGenerator
- jg.Initialize(m)
- Dim t As String = jg.ToString
- Return t
-End Sub
-
-'Mandamos "coords" en un mensaje a "Sprvsr"
-Sub mandamosLoc(coords As String) 'ignore
-'' Log("Iniciamos mandamosLoc "&coords)
- '' if starter.logger then 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)
-' 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
- If Starter.logger Then Log("Hoy="&h)
- Return h
-End Sub
-
-'Guardamos "texto" a la bitacora
-Sub log2DB(texto As String) 'ignore
- If Starter.logger Then LogColor(fechaKMT(DateTime.Now)&" - log2BD: '"&texto&"'", Colors.Magenta)
- If Starter.db.IsInitialized Then Starter.db.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
- ' if starter.logger then LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red)
- If fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute < DateTime.Now Then
-' if starter.logger then Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now))
- Return True
- Else
- ' if starter.logger then Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now))
- Return False
- End If
- Catch
- Log(LastException)
- End Try
-End Sub
-
-'Limpiamos la tabla "bitacora" de la BD
-Sub borraLogDB 'ignore
- If Starter.logger Then LogColor("Borramos BD de log", Colors.Magenta)
- Starter.db.ExecNonQuery("delete from bitacora")
- Starter.db.ExecNonQuery("vacuum;")
-End Sub
-
-'Monitoreamos los servicios PushService y Tracker para ver si estan activos (No pausados), y si no, los reniciamos
-Sub Monitor 'ignore
-' Private monitorStatus As Boolean = True
-' if starter.logger then 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
-' 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
-
-'Compara la UUG (Ultima Ubicacion Guardada) con FLP.LastKnowLocation y si
-'cumple con los requisitos de distancia y precision la guardamos en la BD.
-Sub revisaUUG 'ignore
- revisaFLP
- If Tracker.FLP.GetLastKnownLocation.IsInitialized Then
- Dim daa As Int = Tracker.UUGCoords.DistanceTo(Tracker.FLP.GetLastKnownLocation) 'Distancia de la UUG a la actual de Tracker.FLP.GetLastKnownLocation
- If Starter.Logger Then LogColor($"**** UUC "${fechaKMT(Tracker.FLP.GetLastKnownLocation.Time)}|$0.2{Tracker.FLP.GetLastKnownLocation.Accuracy}|$0.8{Tracker.FLP.GetLastKnownLocation.Latitude}|$0.8{Tracker.FLP.GetLastKnownLocation.Longitude}|$0.2{Tracker.FLP.GetLastKnownLocation.Speed}|"$, Colors.RGB(255,112,35))
- If daa > 40 And Tracker.FLP.GetLastKnownLocation.Accuracy < 35 Then 'Si la distancia de la ubicacion anterior es mayor de XX y la precision es menor de XX, la guardamos ...
- Starter.db.ExecNonQuery2("INSERT INTO RUTA_GPS(fecha, lat, lon) VALUES (?,?,?)", Array As Object (fechaKMT(Tracker.FLP.GetLastKnownLocation.Time),Tracker.FLP.GetLastKnownLocation.Latitude,Tracker.FLP.GetLastKnownLocation.Longitude))
- If Starter.Logger Then Log("++++ Distancia a anterior="&daa&"|"&"Precision="&Tracker.FLP.GetLastKnownLocation.Accuracy)
- End If
- Tracker.UUGCoords = Tracker.FLP.GetLastKnownLocation
- End If
-End Sub
-
-'Revisamos que el FLP (FusedLocationProvider) este inicializado y activo
-Sub revisaFLP 'ignore
- If Starter.logger Then LogColor($"**** **** Revisamos FLP - ${fechaKMT(DateTime.Now)}**** ****"$, Colors.RGB(78,0,227))
- Private todoBienFLP As Boolean = True
- If Not(Tracker.FLP.IsInitialized) Then
- log2DB("revisaFLP: No esta inicializado ... 'Reinicializando FLP'")
- Tracker.FLP.Initialize("flp")
- todoBienFLP = False
- End If
- If Tracker.FLP.IsInitialized Then
- If Not(Tracker.FLP.IsConnected) Then
- log2DB("revisaFLP: No esta conectado ... 'Reconectando FLP'")
-' Tracker.FLP.Connect
- CallSubDelayed(Tracker,"StartFLP")
- todoBienFLP = False
- End If
- If Tracker.FLP.IsConnected And _
- Tracker.FLP.GetLastKnownLocation.IsInitialized And _
- Tracker.FLP.GetLastKnownLocation.DistanceTo(Tracker.UUGCoords) > 500 Then
- log2DB("revisaFLP: 'No se esta actualizando, lo reiniciamos ...'")
- StartService(Tracker)
- todoBienFLP = False
- End If
- End If
- If todoBienFLP Then LogColor(" +++ +++ Sin errores en FLP", Colors.Green)
- ' revisar hora de lastKnownlocation y si es mayor de 10 minutos llamar StartFLP
-End Sub
-
-'Revisamos que el servicio "PushService" este inicializado y activo
-Sub revisaPushService 'ignore
-' Private todoBienPS As Boolean = True
- '' if starter.logger then LogColor("**** **** Revisamos PushService **** ****", Colors.RGB(78,0,227))
-' Try
-' If Not(PushService.wsh.IsInitialized) Then 'Si no esta inicializado ...
-' log2DB("revisaPushService: No esta inicializado ... 'Reinicializando PushService'")
-' CallSubDelayed(PushService, "Connect")
-' todoBienPS = False
-' End If
-' Catch
-' Log(LastException)
-' insertaEnErrores("Subs.revisaPushService: Reiniciando - "&LastException)
-' End Try
-' Try
-' If Not(PushService.wsh.ws.Connected) Then 'Si no esta conectado ...
-' log2DB("revisaPushService: No esta conectado ... 'Reconectando PushService'")
-' CallSubDelayed(PushService, "Connect")
-' todoBienPS = False
-' End If
-' Catch
-' Log(LastException)
-' insertaEnErrores("Subs.revisaPushService: Reconectando - "&LastException)
-' End Try
-' Try
-' If masDeXXMinsKMT(Starter.pushServiceActividad, 5) Then 'Si mas de xx minutos de la ultima actividad entonces ...
-' PushService.wsh.Close
-' CallSubDelayed(PushService, "Connect")
-' ' StartService(PushService)
-' ' If Main.Logger Then Log("Ultima act: "&Starter.pushServiceActividad)
-' log2DB("revisaPushService: 'Reconectamos 'PushService' por inactividad")
-' Starter.pushServiceActividad = fechaKMT(DateTime.Now)
-' todoBienPS = False
-' End If
-' Catch
-' Log(LastException)
-' insertaEnErrores("Subs.revisaPushService: Reconectando por inactividad - "&LastException)
-' End Try
-' If todoBienPS Then LogColor(" +++ +++ Sin errores en PushService", Colors.Green)
-End Sub
-
-'Borramos renglones extra de la tabla de errores
-Sub borraArribaDe100Errores 'ignore
- If Not(Starter.errorLog.IsInitialized) Then revisaBD
- If Starter.logger Then LogColor("Recortamos la tabla de Errores, limite de 100", Colors.Magenta)
- Starter.errorLog.ExecNonQuery("DELETE FROM errores WHERE fecha NOT in (SELECT fecha FROM errores ORDER BY fecha desc LIMIT 99 )")
- Starter.errorLog.ExecNonQuery("vacuum;")
-' if starter.logger then Log("Borramos mas de 100 de errorLog")
-End Sub
-
-'Borramos renglones extra de la tabla de bitacora
-Sub borraArribaDe600RenglonesBitacora 'ignore
- revisaBD
- If Starter.logger Then LogColor("Recortamos la tabla de la Bitacora, limite de 600", Colors.Magenta)
- Private c As Cursor
- c = Starter.db.ExecQuery("select fecha from bitacora")
- c.Position = 0
- If c.RowCount > 650 Then
- Starter.db.ExecNonQuery("DELETE FROM bitacora WHERE fecha NOT in (SELECT fecha FROM bitacora ORDER BY fecha desc LIMIT 599 )")
- Starter.db.ExecNonQuery("vacuum;")
-' if starter.logger then Log("Borramos mas de 600 de bitacora")
- End If
- c.Close
-End Sub
-
-'Inserta 50 renglones de prueba a la tabla "errores"
-Sub insertaRenglonesPruebaEnErrorLog 'ignore
- If Not(Starter.errorLog.IsInitialized) Then revisaBD
- Log("insertamos 50 renglones a errorLog")
- For x = 1 To 50
- Starter.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (fechaKMT(DateTime.now), "abc"))
- If Starter.logger Then Log(x)
- Next
-End Sub
-
-'Regresa la tabla "errores" en una lista de mapas convertida a JSON
-Sub dameErroresJSON(SQL As SQL, maxErrores As Int, comprimido As Boolean) As String 'ignore
- If Starter.logger Then Log("dameErroresJSON")
- Private j As JSONGenerator
- Private lim As String
- Private cur As ResultSet
- Private l As List
- Private i As Int = 0
- l.Initialize
- Dim m, m2 As Map
- m2.Initialize
- If maxErrores = 0 Then lim = "" Else lim = "limit "&maxErrores
- cur = SQL.ExecQuery("select * from errores order by fecha desc "&lim)
- Do While cur.NextRow
- m.Initialize
- m.Put("fecha", cur.GetString("fecha"))
- m.Put("error", cur.GetString("error"))
- m2.Put(i,m)
- i = i + 1
- Loop
- cur.Close
- j.Initialize(m2)
- If Starter.logger Then Log(j.ToString)
- If comprimido Then
- Return compress(j.ToString)
- Else
- Return j.ToString
- End If
-End Sub
-
-'Convierte una fecha en formato YYMMDDHHMMSS a Ticks
-Sub fechaKMT2Ticks(fKMT As String) As Long 'ignore
- Try
- If fKMT.Length = 12 Then
- Private parteFecha As String = fKMT.SubString2(0,6)
- Private parteHora As String = fKMT.SubString(6)
- Private OrigFormat As String = DateTime.DateFormat 'save original date format
- DateTime.DateFormat="yyMMdd"
- DateTime.TimeFormat="HHmmss"
- Private ticks As Long = DateTime.DateTimeParse(parteFecha,parteHora)
-' Log(" +++ +++ pFecha:"&parteFecha&" | pHora:"&parteHora)
- DateTime.DateFormat=OrigFormat 'return to original date format
- Return ticks
- Else
- Log("Formato de fecha incorrecto, debe de ser 'yyMMddHHmmss', no '"&fKMT&"' largo="&fKMT.Length)
- Return 0
- End If
- Catch
- Log(LastException)
- If Starter.logger Then LogColor($"Fecha dada: ${fKMT}, Parte Fecha: ${parteFecha}, Parte Hora: ${parteHora}"$, Colors.Red)
- Return 0
- End Try
-End Sub
-
-'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
- If result Then
- Dim p As String
- Dim safeDir As String = Starter.rp.GetSafeDirDefaultExternal("erroresDir")
- p = Starter.ruta
- Dim theDir As String
- Try
- File.MakeDir(p,"kmts")
- theDir = "/kmts"
- Catch
- theDir = ""
- End Try
- Try
- Private nombreDB As String = $"kell_${Starter.rutaPreventa}_kmt.db"$
- File.Copy(p,"kmt.db",File.DirInternal&theDir, nombreDB)
- File.Copy(p,"errorLog.db",File.DirInternal&theDir,"kell_errorLog.db")
- ToastMessageShow("BD copiada a " & File.DirInternal&theDir, False)
- Catch
- Try
- Private nombreDB As String = $"kell_${Starter.rutaPreventa}_kmt.db"$
- File.Copy(p,"kmt.db", safeDir, nombreDB)
- File.Copy(p,"errorLog.db", safeDir,"kell_errorLog.db")
- ToastMessageShow("BD copiada a " & safeDir, False)
- Catch
- ToastMessageShow("No se puedo copiar la base de datos.", False)
- End Try
-' ToastMessageShow("No se pudo hacer la copia: "&LastException, True)
- End Try
- If Starter.logger Then Log("rootExternal="&p)
- If Starter.logger Then Log("safe="&safeDir)
- Else
- ToastMessageShow("Sin permisos", False)
- End If
-End Sub
-
-'Hace visible el panel con los parametros "Top" y "Left" dados
-Sub panelVisible(panel As Panel, top As Int, left As Int) 'ignore
- panel.BringToFront
- panel.Visible = True
- panel.Top = top
- panel.Left = left
-End Sub
-
-'Hace visible el panel usando toda la pantalla
-Sub panelVisibleCompleto(panel As Panel, a As Activity) 'ignore
- panel.BringToFront
- panel.Visible = True
- panel.Top = 0
- panel.Left = 0
- panel.Width = a.Width
- panel.Height = a.Height
-End Sub
-
-'Oculta el panel especificado y lo manda al fondo
-Sub panelOculto(panel As Panel) 'ignore
- panel.SendToBack
- panel.Visible = False
-End Sub
-
-'Centra una etiqueta dentro de un elemento superior
-Sub centraEtiqueta(elemento As Label, anchoElementoSuperior As Int) 'ignore
- elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
-End Sub
-
-'Centra un panel dentro de un elemento superior
-Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore
- elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
-End Sub
-
-Sub centraEditText(elemento As EditText, anchoElementoSuperior As Int) 'ignore
- elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
-End Sub
-
-'Centra una barra de progreso dentro de un elemento superior
-Sub centraProgressBar(elemento As ProgressBar, anchoElementoSuperior As Int) 'ignore
- elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
-End Sub
-
-Sub insertaEnErrores(error As String) 'ignore
- If Not(Starter.errorLog.IsInitialized) Then revisaBD
- Starter.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (fechaKMT(DateTime.now), error))
-End Sub
-
-'Saca el usuario de la tabla USUARIOA
-Sub dameUsuarioDeDB As String 'ignore
- Private c As Cursor
- Private u As String = "SinUsuario"
- If Not(Starter.db.IsInitialized) Then revisaBD
- c=Starter.db.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- If c.RowCount > 0 Then u = c.GetString("USUARIO")
- c.Close
- Return u
-End Sub
-
-'Regresa el tiempo transcurrido entre la primera vez que se llama (paso 1) y la segunda (paso 2), usa el mapa global "Main.tiempos"
-Sub cronoX(thisCrono As String, paso As Int) As String 'ignore
- If paso = 1 Then
- Starter.tiempos.Put(thisCrono, DateTime.Now)
- Else
- Return $"Tiempo transcurrido ${thisCrono}: ${DateTime.Now-Starter.tiempos.Get(thisCrono)} "$
- End If
-End Sub
-
-'Cierra todas las actividades y sale de la aplicacion (Android 4.1+ - API 16+)
-Sub cierraActividades
- If Starter.logger Then Log("closing activities")
- Dim jo As JavaObject
- jo.InitializeContext
- jo.RunMethod("finishAffinity", Null)
-End Sub
-
-'Regresa el cliente actual de CUENTAA como un string, y si no encuenta nada regresa "".
-Sub clienteActual As String
- Private x As String = ""
- Private c As Cursor = Starter.db.ExecQuery("Select CUENTA from cuentaa")
- If c.RowCount > 0 Then
- c.Position = 0
- x = c.GetString("CUENTA")
- End If
- c.Close
- Return x
-End Sub
-
-'Marca un cliente como impreso, lo agrega a la tabla "CLIENTE_IMPRESO" y lo actualiza en "kmt_info" (IMPRESION).
-Sub ponImpreso (cliente As String)
- Starter.db.ExecNonQuery2("UPDATE kmt_info set IMPRESION = 1 where CAT_CL_CODIGO = ?", Array As String(cliente))
- Starter.db.ExecNonQuery2("insert into CLIENTE_IMPRESO (CI_CUENTA) values (?)",Array As String(cliente))
- If Starter.logger Then Log($"Cliente ${cliente} agegado a CLIENTE_IMPRESO y actualizado en kmt_info."$)
-End Sub
-
-'Guarda el nombre de la ultima actividad mostrada "ultimaActividad(Me)".
-Sub ultimaActividad(ea As String)
-' Private x() As String = Regex.Split("\.", ea)
-' Starter.ultimaActividad = ""
-' If x.Length = 4 Then
-' Starter.ultimaActividad = x(3)
-' File.WriteString(File.DirInternal, "ua.txt", Starter.ultimaActividad)
-' End If
-End Sub
-
-'Guarda el nombre de la ultima actividad en base de datos "ultimaActividad(Me)".
-Sub guardaUltimaActividadBD(ua As String)
-' if starter.logger then LogColor($"Guardamos ultima actividad '${ua}'"$, Colors.Blue)
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", ua))
-End Sub
-
-'Regresa la ultima actividad guardada en base de datos.
-Sub traeUltimaActividadBD As String
-' If Starter.logger Then LogColor("Buscamos ultima actividad en BD", Colors.Magenta)
- Private c As Cursor
- Private x As String
- c = Starter.db.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'ULTIMOMODULO'")
- If c.RowCount > 0 Then
- c.Position = 0
- x = c.GetString("CAT_VA_VALOR")
-' If Starter.logger Then Log("Encontramos: " & x)
- End If
- c.Close
- Return x
-End Sub
-
-'Guarda el nombre de la pagina en base de datos la muestra.
-Sub iniciaActividad(ia As String)
- If ia <> "" And ia <> Null Then
- If Starter.logger Then LogColor($"Guardamos en BD '${ia}'"$, Colors.Yellow)
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", ia))
- B4XPages.ShowPage(ia)
-' If Starter.logger Then LogColor("Iniciamos --> " & ia, Colors.Blue)
- End If
-End Sub
-
-'Guarda el nombre de la actividad en base de datos e inicia la actividad.
-Sub iniciaActividad2(ia As String)
-' if starter.logger then LogColor($"Guardamos en BD '${ia}'"$, Colors.Yellow)
- Starter.db.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
- Starter.db.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", ia))
- StartActivity(ia)
-' B4XPages.ShowPage(ia)
-' if starter.logger then LogColor("Iniciamos --> " & ia, Colors.Blue)
-End Sub
-
-'Agrega la variable al mapa de sesion.
-Sub agregaASesion(nombre As String, valor As String) 'ignore
- Starter.sesion.put(nombre, valor)
-' if starter.logger then Log(Starter.sesion)
-End Sub
-
-'Regresa una lista con las coordenadas ( latitud y longitud) guardadas en BD.
-Sub traeCoordsDeBD As List
- Private c As Cursor
- c=Starter.db.ExecQuery("SELECT HGLAT as HGLAT, HGLON as HGLON FROM HIST_GPS")
- c.Position=0
- Private lon As String = c.GetString("HGLON")
- Private lat As String = c.GetString("HGLAT")
- c.Close
- Private coords As List
- coords.Initialize
- coords.Add(lat)
- coords.Add(lon)
- Return coords
-End Sub
-
-'Modifica el ancho y alto de un panel dado con el ancho y alto proporcionados.
-Sub panelAnchoAlto(p As Panel, w As Int, h As Int)
-' If Starter.logger Then Log($"panel:${p}, alncho=${w}, alto=${h}"$)
- p.Top = 0
- p.Left = 0
- p.Width = w
- p.Height = h
-End Sub
-
-'Regresa el dia de HOY como string, en español y mayusculas.
-Sub dameDiaSemana As String
- Private ds As String = DateTime.GetDayOfWeek(DateTime.Now)
- If ds = "1" Then
- ds = "DOMINGO"
- else if ds = "2" Then
- ds = "LUNES"
- else if ds = "3" Then
- ds = "MARTES"
- else if ds = "4" Then
- ds = "MIERCOLES"
- else if ds = "5" Then
- ds = "JUEVES"
- else if ds = "6" Then
- ds = "VIERNES"
- Else
- ds = "SABADO"
- End If
- Return ds
-End Sub
-
-'Regresa cuentos clientes fuera de frecuencia hay con venta.
-Sub dameClientesFueraDeFrecuencia As String
- Private dia_visita As String = dameDiaSemana
- Private f As Cursor = Starter.db.ExecQuery("SELECT CAT_VA_VALOR as dia_visita FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA'")
- If f.RowCount > 0 Then
- f.Position=0
- dia_visita = f.GetString("dia_visita")
- End If
-' Log("-> "&dia_visita)
- f = Starter.db.ExecQuery("Select count(distinct PE_CLIENTE) as cff FROM kmt_info INNER JOIN PEDIDO ON kmt_info.CAT_CL_CODIGO = PEDIDO.PE_CLIENTE WHERE kmt_info.CAT_CL_DIAS_VISITA <> '"&dia_visita&"'")
- f.Position=0
-' Log(f.GetString("cff"))
- Private cff As String = f.GetString("cff")
- f.Close
- Return cff
-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=Starter.db.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
- c.Position = 0
- a = C.GetString("ID_ALMACEN")
- c.Close
- Return a
-End Sub
-
-'Regresa el nombre del producto desde CAT_GUNAPROD
-Sub traeProdNombre(id As String) As String
- Private h As Cursor
- Private n As String
- h=Starter.db.ExecQuery($"select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = '${id.Trim}' union select CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '${id.Trim}'"$)
- If h.RowCount > 0 Then
- h.Position = 0
- n = h.GetString("CAT_GP_NOMBRE")
-' Log(h.RowCount&"|"&id&"|"&n&"|")
- End If
- h.Close
- If n = Null Or n="" Then n = "N/A"
-' Log(h.RowCount&"|"&id&"|"&n&"|")
- Return n
-End Sub
-
-'Regresa el nombre del RMI desde CAT_RMI
-Sub traeRMINombre(id As String) As String
- Private h As Cursor
- Private n As String
- h=Starter.db.ExecQuery2("select CAT_GP_NOMBRE from CAT_RMI where CAT_GP_ID = ? ", Array As String(id.Trim))
- If h.RowCount > 0 Then
- h.Position = 0
- n = h.GetString("CAT_GP_NOMBRE")
-' Log(h.RowCount&"|"&id&"|"&n&"|")
- End If
- h.Close
- If n = Null Or n="" Then n = "N/A"
-' Log(h.RowCount&"|"&id&"|"&n&"|")
- Return n
-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=Starter.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
-
-Sub traeCliente As String 'ignore
- Private c As Cursor
- Private cl As String
- c=Starter.db.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
- cl = c.GetString("CUENTA")
- c.Close
- Return cl
-End Sub
-
-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
-
-'Regresa el usuario de la tabla USUARIOA
-Sub traeUsuarioDeBD As String 'ignore
- Private c As Cursor
- Private u As String = "SinUsuario"
- If Not(Starter.db.IsInitialized) Then revisaBD
- c=Starter.db.ExecQuery("select USUARIO from usuarioa")
- c.Position=0
- If c.RowCount > 0 Then u = c.GetString("USUARIO")
- c.Close
- Return u
-End Sub
-
-'Inserta un producto en la tabla "pedido" y "pedido_cliente".
-'Actualiza "cat_gunaprod" y la columna "gestion" en la tabla "kmt_info".
-'Sub guardaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
-'' LogColor("guardaProducto: "&prodId&", cant="&cant, Colors.Magenta)
-' Private c As Cursor
-' Starter.db.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_RUTA,PE_COSTO_SIN,PE_FOLIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta))
-' Starter.db.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
-' c=Starter.db.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
-' c.Position=0
-' Starter.db.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
-' Starter.db.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, c.GetString("TOTAL_CLIE_SIN")))
-' Starter.db.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
-'End Sub
-
-'Inserta un producto en la tabla "PEDIDO"
-Sub guardaProducto(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, tipoV As String, precio2 As String, query As String) 'ignore
- If nombre.Length < 6 Then ToastMessageShow("(guardaProducto) El nombre del producto no es valido " & nombre, True)
- LogColor("guardaProducto", Colors.Magenta)
- Log($"Guardamos producto ${prodId}"$)
- LogColor("TIPO VENTA="&tipoV, Colors.Magenta)
- Starter.db.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2, PE_RUTA) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, tipoV, precio2, Starter.rutaV))
- Starter.db.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
- ToastMessageShow("guardaProd", False)
-End Sub
-
-'Inserta un producto en la tabla "pedido" y "pedido_cliente" y actualiza "cat_gunaprod".
-'NO ACTUALIZA LA BANDERA DE GESTION EN LA TABLA "kmt_info".
-'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar.
-Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
- If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True)
- LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta)
- Private c As Cursor
-' Private tablaProds As String = "cat_gunaprod2"
-' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod"
- Starter.db.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta))
- 'Actualizamos el inventario en cat_gunaprod solo si no es RMI
- If cedis <> "DUR" Then Starter.db.ExecNonQuery2($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId))
- c=Starter.db.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.db.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- Starter.db.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
-End Sub
-
-Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoV As String, precio2 As String, query As String) 'ignore
- If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSin) El nombre del producto no es valido " & nombre, True)
- LogColor("guardaProductoSin", Colors.Magenta)
- Starter.db.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoV, precio2))
- Starter.db.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
- DateTime.DateFormat = "MM/dd/yyyy"
- Private sDate As String =DateTime.Date(DateTime.Now)
- Private sTime As String =DateTime.Time(DateTime.Now)
- Private c As Cursor = Starter.db.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position=0
- Starter.db.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- Starter.db.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
- Starter.db.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- c.Close
- ToastMessageShow("guardaProdSin", False)
-End Sub
-
-Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
- If nombre.Length < 6 Then ToastMessageShow("(actualizaProducto) El nombre del producto no es valido " & nombre, True)
- LogColor($"actualizaProducto, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta)
-' Private tablaProds As String = "cat_gunaprod2"
-' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod"
- Private c As Cursor=Starter.db.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}'"$)
- If c.RowCount > 0 Then
- LogColor("ACTUALIZAMOS PROD", Colors.Blue)
- c.Position=0
- Private antCant As Int = 0
- If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT")
- Private difCant As Int = cant - antCant
- Starter.db.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))} where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$)
- Starter.db.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$)
- If cant = 0 Then
- LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red)
- Starter.db.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$)
- Log($"Borramos pe_cedis='${cedis}' and pe_proid='${prodId}' and pe_cliente='${clienteId}'"$)
- Private pe As Cursor = Starter.db.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)")
- pe.Position=0
- If pe.GetString("cuantosPedidos") = 0 Then Starter.db.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- End If
- Else
- 'INSERTAMOS
- LogColor("INSERTAMOS PROD", Colors.red)
- If cant > 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta)
- End If
- c.Close
-End Sub
-
-'Regresa un mapa con la información de la promo.
-'Regresa: {id, maxXcliente, maxRecurrente, maxPromos, historico,
-' productos={idProducto={idProducto, preciosimptos, precio, almacen, tipo, piezas, usuario, fecha, regalo, clasif}} 'Mapa con los productos de la promo y los datos de cada uno.
-' tipos={idProducto=tipo} 'Mapa con id y tipo del producto, 0 si es fijo y 1 si es variable.
-' prodsFijos={idProducto,idProducto} 'Lista con los ids de los productos fijos.
-' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables.
-' resultado="OK" 'Ok si existe la promocion.
-' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
-Sub traePromo(promo As String, cliente As String) As Map
- Private thisLog As Boolean = False
- If thisLog Then Log("traePromo:"&promo)
- Private inicioContador As String = DateTime.Now
- Private c As Cursor = Starter.db.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
- Private siHistorico As String = 0
- Private promoMap As Map
- Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariablesPrecios As List
- promoMap.Initialize
- prodsFijos.Initialize
- prodsFijosPrecios.Initialize
- prodsFijosPiezas.Initialize
- prodsVariables.Initialize
- prodsVariablesPrecios.Initialize
- c.Position = 0
- If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM"))
- c = Starter.db.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción.
- c.Position = 0
- If c.GetString("hist") > 0 Then siHistorico = 1
- promoMap.Put("historico", siHistorico)
- c = Starter.db.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
- c.Position = 0
- If c.RowCount > 0 Then
- Private prods, tipos As Map
- prods.Initialize
- tipos.Initialize
- For i=0 To c.RowCount -1
- c.Position=i
- prods.Put(c.GetString("CAT_DP_IDPROD"), CreateMap("idProducto":c.GetString("CAT_DP_IDPROD"), "precioSimptos":c.GetString("CAT_DP_PRECIO_SIMPTOS"), "precio":c.GetString("CAT_DP_PRECIO"), "tipo":c.GetString("CAT_DP_TIPO"), "piezas":c.GetString("CAT_DP_PZAS"), "regalo":c.GetString("CAT_DP_REGALO"), "clasif":c.GetString("CAT_DP_CLASIF")))
- tipos.Put(c.GetString("CAT_DP_IDPROD"), c.GetString("CAT_DP_TIPO"))
- If c.GetString("CAT_DP_TIPO") = "0" Then
- prodsFijos.Add(c.GetString("CAT_DP_IDPROD"))
- prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
- prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
- End If
- If c.GetString("CAT_DP_TIPO") = "1" Then
- prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
- prodsVariablesPrecios.Add(c.GetString("CAT_DP_PRECIO"))
- End If
- If thisLog Then Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
- Next
- promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.)
- promoMap.Put("tipos", tipos) 'Mapa con los productos de la promoción y su tipo (fijo o variable).
- promoMap.Put("prodsFijos", prodsFijos) 'Lista de los productos fijos de la promoción.
- promoMap.Put("prodsVariables", prodsVariables) 'Lista de los productos variables de la promoción.
- promoMap.Put("prodsFijosCant", prodsFijos.Size)
- promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
- promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
- promoMap.Put("prodsVariablesCant", prodsVariables.Size)
- promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios)
- promoMap.Put("resultado", "ok")
- Else
- promoMap.Put("resultado", "No hay datos de la promoción.")
- End If
- c = Starter.db.ExecQuery("Select CAT_GP_STS, CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '"& promo & "'") 'Obtenemos las piezas requeridas de productos variables para la promoción.
- c.Position = 0
- Private pvr As String = 0
- If c.RowCount > 0 Then
- c.Position = 0
- pvr = c.GetString("CAT_GP_STS")
- promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
- promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
- End If
- c.Close
- If thisLog Then Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$)
- If thisLog Then Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
- If thisLog Then LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Blue)
- If thisLog Then LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
- Return promoMap
-End Sub
-
-'Regresa un mapa con el inventario disponible por producto para la promoción (desde la base de datos).
-Sub traemosInventarioDisponibleParaPromo(promo As String) As Map 'ignore
- Private c As Cursor
- c = Starter.db.ExecQuery2("SELECT CAT_GP_ID, CAT_GP_ALMACEN FROM CAT_GUNAPROD2 WHERE CAT_GP_ID IN (select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ?)", Array As String(promo))
-' Private prodInv As Map
-' prodInv.Initialize
- Private prods As Map
- prods.Initialize
- If c.RowCount > 0 Then
- For i=0 To c.RowCount -1
- c.Position=i
- prods.Put(c.GetString("CAT_GP_ID"), c.GetString("CAT_GP_ALMACEN"))
-' Log($"prod:${c.GetString("CAT_GP_ID")}, inventario:${c.GetString("CAT_GP_ALMACEN")}"$)
- Next
-' prodInv.Put("inventarios", prods)
- End If
- Return prods
-End Sub
-
-'Resta los productos fijos del inventario de la promoción (mapa) y regresa un mapa con el nuevo inventario.
-'Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
-'Regresa en el mapa la llave "resultado" que nos da "ok" o "No hay suficiente producto para la promocion".
-Sub restaFijosPromo(promoMap As Map) As Map 'ignore
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
- Private inventariosDisponiblesParaEstaPromo As Map = traemosInventarioDisponibleParaPromo(promoMap.Get("id")) 'Obtenemos un mapa con el inventario disponible para cada producto de la promocion desde la base de datos.
- If thisLog Then LogColor(inventariosDisponiblesParaEstaPromo, Colors.red)
- If thisLog Then LogColor("Inventario inicial antes de FIJOS: "&inventariosDisponiblesParaEstaPromo, Colors.Gray) 'Inventario inicial.
- Private i As Int
- Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
- Private prodsFijos As List = promoMap.get("prodsFijos") 'Obtenemos un a lista con los productos fijos de la promoción.
- For p = 0 To prodsFijos.Size - 1
- Private t As String = prodsFijos.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
- Private p2 As Map = prodsmap.Get(t) 'Obtenemos un mapa con los datos de este producto (id, precio, almacen, tipo, piezas, etc.)
- If thisLog Then Log($"T: ${t}, prod ${p2.Get("idProducto")}, piezas: ${p2.Get("piezas")}"$) 'Producto y piezas requeridas
- If thisLog Then Log("inventariosDisponiblesParaEstaPromo="&inventariosDisponiblesParaEstaPromo)
- If inventariosDisponiblesParaEstaPromo.ContainsKey(t) Then 'Si el mapa del inventario contiene el id del producto entonces ...
- i = inventariosDisponiblesParaEstaPromo.get(t) 'Obtenemos del mapa el inventario de este producto.
- Private nuevoInv As Int = NumberFormat2((i - promoMap.Get("prodsFijosPiezas").As(List).get(p)), 1, 0,0,False)
- If thisLog Then Log($"Nuevo inventario de ${t}: ${i}-${promoMap.Get("prodsFijosPiezas").As(List).get(p)} = ${nuevoInv}"$) 'El nuevo inventario.
- inventariosDisponiblesParaEstaPromo.Put(t, $"${nuevoInv}"$) 'Restamos del inventario las piezas requeridas para la promoción y guardamos el nuevo inventario en el mapa.
- inventariosDisponiblesParaEstaPromo.Put("resultado", "ok")
- Else 'Si en el mapa no esta el id del producto, entonces no tenemos inventario.
- inventariosDisponiblesParaEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.")
- If thisLog Then LogColor("Sin suficiente inventario fijo: " & t, Colors.Blue)
- Exit
- End If
- If i - p2.Get("piezas") < 0 Then
- inventariosDisponiblesParaEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.") 'Si el inventario de este producto sale negativo, quiere decir que no tenemos suficiente inventario para la promoción.
- Exit
- End If
- Next
- If thisLog Then LogColor("Inventario final depues de FIJOS: "&inventariosDisponiblesParaEstaPromo, Colors.blue) 'Inventario final.
- Return inventariosDisponiblesParaEstaPromo
-End Sub
-
-'Revisa si tenemos los productos variables requeridos para la promoción (mapa).
-'Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
-Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As Boolean 'ignore
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
- If thisLog Then LogColor("Inventario inicial: "&inventarioSinFijos, Colors.Gray) 'Inventario inicial.
- Private totalProdsVariables As Int = 0
-' Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
- Private prodsVariables As List = promoMap.get("prodsVariables") 'Obtenemos un a lista con los productos variables de la promoción.
- For p = 0 To prodsVariables.Size - 1
- Private t As String = prodsVariables.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
- If inventarioSinFijos.ContainsKey(t) Then 'Si existe el producto en la lista del inventario, entonces ...
- Private p2 As Int = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
- If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
- totalProdsVariables = totalProdsVariables + p2
- End If
- Next
- If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos"))
- Private res As Boolean = False
- If totalProdsVariables >= promoMap.Get("prodsVariablesRequeridos") Then res = True 'Si el total de inventario de productos variables (totalProdsVariables) es mayor o igual a los productos requeridos entonces regresamos TRUE
- Return res
-End Sub
-
-'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
-Sub traeMaxPromos(pm As Map) As Int
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
- Private maxPromos As List
- Private mp0, mp As String = "0"
- maxPromos.Initialize
- Private hccp As Cursor = Starter.db.ExecQuery($"select HCCP_CANT from HIST_CLIENTE_CANT_PROMOS where HCCP_CLIENTE = '${traeCliente}' and HCCP_PROMO = '${pm.Get("id")}'"$)
-' Log($"select HCCP_CANT from HIST_CLIENTE_CANT_PROMOS where HCCP_CLIENTE = '${traeCliente}' and HCCP_PROMO = '${pm.Get("id")}'"$)
-' If hccp.RowCount > 0 Then
-' hccp.Position = 0
-' LogColor(hccp.GetString("HCCP_CANT"), Colors.Magenta)
-' Else
-' LogColor("SIN HCCP CANT", Colors.Magenta)
-' End If
- If thisLog Then LogColor("==== HISTORICO:"&pm.Get("historico"), Colors.Red)
- If thisLog Then Log(pm)
- If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente")) 'Si hay historico, agregamos maxRecurrente
- maxPromos.Add(pm.Get("maxPromos")) 'Agregamos maxPromos
- maxPromos.Add(pm.Get("maxXcliente")) 'Agregamos maxXcliente
- If hccp.RowCount > 0 Then 'Agregamos promos HCCP
- hccp.Position = 0
- maxPromos.Add(hccp.GetString("HCCP_CANT"))
- End If
- maxPromos.Sort(True)
- If thisLog Then Log(maxPromos)
- mp0 = maxPromos.Get(0)
- mp = mp0 - traePromosVendidas(pm.Get("id"), traeCliente)
- If thisLog Then Log($"Max Promos (${mp0}) - promos vendidas (${(traePromosVendidas(pm.Get("id"), traeCliente)).As(Int)}) = ${mp}"$)
- Return mp 'Regresamos el numero mas pequeño de las opciones.
-End Sub
-
-'Regresa la cantidad de promos que se le han vendido al cliente.
-Sub traePromosVendidas(promo As String, cliente As String) As Int
- Private c As Cursor
- Private pv As Int = 0
- c=Starter.db.ExecQuery($"select sum(PE_CANT) as cuantas from PEDIDO where PE_PROID = '${promo}' and PE_CLIENTE = '${cliente}'"$)
- If c.RowCount > 0 Then
- c.Position = 0
- If c.GetString("cuantas") <> Null Then pv = c.GetString("cuantas")
- End If
- Return pv
-End Sub
-
-Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
- Private inicioContador As String = DateTime.Now
- Private mp = 0
- If thisLog Then LogColor($"********* Iniciamos revision de Promo ${idPromo} *********"$, Colors.red)
- 'Obtenemos el mapa con toda la info de la promoción.
- Private pm As Map = traePromo(idPromo, cliente)
- If thisLog Then LogColor(pm, Colors.Blue)
-' If thisLog Then LogColor("|" & pm.Get("maxPromos") & "|", Colors.Blue)
-' Log("|"&revisaMaxPromosProdsFijosPorInventario(pm)&"|")
- If revisaMaxPromosProdsFijosPorInventario(pm) < 1 Then pm.Put("resultado", 0)
-' Log($"resultado = ${pm.Get("resultado")}"$)
- If pm.Get("resultado") = "ok" Then 'Si encontramos la promoción, entonces ...
- 'Buscamos el máximo de promociones permitidas.
- mp = traeMaxPromos(pm)
-' If thisLog Then LogColor($"Promociones permitidas=${mp}"$, Colors.Blue)
-' If thisLog Then Log("Promos vendidas: " & traePromosVendidas(idPromo, cliente))
- If mp < 1 Then
- If thisLog Then LogColor("Ya se vendieron las promos PERMITIDAS para el cliente", Colors.red)
- Return CreateMap("status":"ko", "mp":pm)
- End If
- 'Restamos del inventario (mapa) las piezas necesarias para los productos fijos.
- Private inventarioSinFijos As Map = restaFijosPromo(pm)
- If thisLog Then LogColor("inventariosfijos="&inventarioSinFijos, Colors.Magenta)
- If inventarioSinFijos.Get("resultado") = "ok" Then
- 'Revisamos que los productos variables requeridos sean menos que el inventario total (mapa).
- Private pv As Boolean = alcanzanLosVariablesParaPromo(pm, inventarioSinFijos)
- If thisLog Then Log("Alcanzan los variables? --> " & pv)
- If pv Then Return CreateMap("status":"ok", "mp":pm) Else Return CreateMap("status":"ko", "mp":pm)
- Else
- If thisLog Then LogColor("NO HAY INVENTARIO SUFICIENTE " & idPromo, Colors.red)
- Return CreateMap("status":"ko", "mp":pm)
- End If
- Else
- Return CreateMap("status":"ko", "mp":pm)
- End If
- ' Si tenemos suficiente inventario para los variables mostramos la promocion, si no ...
- ' break 'NO HAY INVENTARIO SUFICIENTE PARA LA PROMOCION.
-
- LogColor("TIEMPO DE PROCESO ESTA PROMO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
-End Sub
-
-'Regresa cuantas promos alcanzan con los productos FIJOS que hay en inventario.
-Sub revisaMaxPromosProdsFijosPorInventario2(pm As Map) As Int 'ignore
- Private thisLog As Boolean = False
- If thisLog Then Log($"pm=${pm}"$)
-' Private prodsFijos As List = pm.get("prodsFijos")
- Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
- If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
- Private maxPromos As String = traeMaxPromos(pm)
- Private maxPromosFijosXinv As Int = 1
- Private fpf2, pdp2 As Int
- Private salir As Boolean = False
- Private pf As List = pm.Get("prodsFijos")
- Private pfp As List = pm.Get("prodsFijosPiezas")
- If thisLog Then Log($"maxPromos=${maxPromos}, prodsFijos=${pf}, piezas=${pfp}"$)
- If thisLog Then LogColor($"InvFijo disponible=${invDispParaPromo}"$, Colors.Blue)
- Private invFijoXpromo As Map
- invFijoXpromo.Initialize
- For p = 0 To pf.Size -1 'Generamos mapa con los productos fijo y piezas requeridos por promo.
- invFijoXpromo.Put(pf.Get(p), pfp.Get(p))
- Next
- If thisLog Then LogColor("Inv req. de prods fijos x promo" & invFijoXpromo, Colors.Green)
- For i = 1 To maxPromos 'Revisamos cuantas promociones alcanzan, hasta llegar al máximo de promos permitadas.
- If thisLog Then LogColor("Prods para promo " & (i+1), Colors.Magenta)
- For q = 0 To pf.Size - 1
- Private q2 As String = pf.Get(q)
- If thisLog Then Log("q="&q2)
-' fpf2 = invFijoXpromo.Get(q2) * i 'Multiplicamos las piezas requeridas por la cantidad de promos.
- fpf2 = pfp.Get(q) * i 'Multiplicamos las piezas requeridas por la cantidad de promos.
- pdp2 = invDispParaPromo.Get(q2)
- If thisLog Then Log($"pf=${q2}, Actual=${(i)}, max promos: ${pdp2}-${fpf2}=${pdp2 - fpf2}"$)
- If pdp2 - fpf2 < 0 Then 'Si el inventario es negativo, entonces ya no alcanza para este producto.
- salir=True
- Exit
- End If
- Next
- If salir Then Exit
- maxPromosFijosXinv = i
- Next
- If thisLog Then LogColor("InvFijo requerido x promo="&invFijoXpromo, Colors.blue)
- LogColor("Maximo de promociones de prodsFijos POR inventario = " & maxPromosFijosXinv, Colors.Red)
- Return maxPromosFijosXinv
-End Sub
-
-'Regresa cuantas promos alcanzan con los productos FIJOS que hay en inventario.
-Sub revisaMaxPromosProdsFijosPorInventario(pm As Map) As Int
- Private thisLog As Boolean = False
- Private invFijoXpromo As Map
- Private t As List
- t.Initialize
- t.Add(traeMaxPromos(pm)) ' Agregamos a la lista las promos maximas permitidas (recurrente, cliente y promo).
- invFijoXpromo.Initialize
- If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
- Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
- If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
- Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
- Private idProdsFijos As List = pm.Get("prodsFijos")
- For p = 0 To idProdsFijos.Size -1 'Generamos una lista con las promos disponibles por producto (dividimos el inventario total entre las piezas requeridas).
- Private thisInvDisp = 0
- If invDispParaPromo.Get(idProdsFijos.Get(p)) <> Null Then thisInvDisp = invDispParaPromo.Get(idProdsFijos.Get(p))
- If thisLog Then Log($"id=${idProdsFijos.Get(p)}, inv=${thisInvDisp}, pzas=${prodsFijosPiezas.Get(p)}"$)
- If thisLog Then Log($"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$)
- Private x() As String = Regex.Split("\.", $"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$) 'Separamos el resultado de la division por el punto decimal.
- If thisLog Then Log(x(0))
- t.Add(x(0).As(Int)) 'Solo guardamos la parte del entero de la division.
- Next
- t.Sort(True) 'Ordenamos la lista para que en el lugar 0 este el resultao mas pequeño.
- If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
- If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
- If thisLog Then LogColor("Max promos de prodsFijos POR inventario = " & t.Get(0), Colors.red)
- Return t.Get(0) 'Regresamos el resultado mas pequeño.
-End Sub
-
-'Regresa cuantas promos alcanzan con los productos VARIABLES que hay en inventario.
-'La cantidad de promos disponibles se calcula DESPUES de descontar los productos fijos, y si las
-'promos por productos fijos llega al maximo, aunque se puedan mas de producos variables, solo se
-'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
-'fijos es 5, entonces regresamos 5.
-Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
- Private thisLog As Boolean = False
- If thisLog Then Log("======================================================")
- If thisLog Then Log("======================================================")
- Private invFijoXpromo As Map
- invFijoXpromo.Initialize
- Private totalProdsVariablesDisponibles As Int = 0
- If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
- Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
- If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
- Private maxPromos As String = traeMaxPromos(pm)
- Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
- Private idProdsVariables As List = pm.Get("prodsVariables")
- Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
- Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
- Private idProdsFijos As List = pm.Get("prodsFijos")
- For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
- invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
- Private idEsteProd As String = idProdsFijos.Get(p)
- Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
- Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
- If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
-' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
- Next
- If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
- If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
- If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
- Private maxPromosXVariables As Int = 0
- For x = 1 To maxPromosXFijos
- If thisLog Then Log("=====================================================")
- If thisLog Then Log("=====================================================")
- For i = 0 To idProdsFijos.Size - 1
- If thisLog Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosPiezas.Get(i).As(Int)*(i+1)}"$)
- invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosPiezas.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
- Next
- If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
-
- totalProdsVariablesDisponibles = 0
- For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
- If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
- totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
- End If
- Next
- 'Revisamos variables.
- If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
- totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
- If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles)
- If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible.
- maxPromosXVariables = x
- Next
- 'Restamos fijos.
-' LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
- Return maxPromosXVariables
-End Sub
-
-'Regresa la suma del inventario de los productos variables de la promoción dada desde la base de datos.
-Sub cuantosVariablesTengoBD(promo As String) As String 'ignore
-' Private x As String = "0"
-' If promo <> "" Then
-' Private c As Cursor
-' c = Starter.db.ExecQuery2("Select SUM(CAT_GP_ALMACEN) as variables FROM CAT_GUNAPROD2 WHERE CAT_GP_ID IN (Select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ? and cat_dp_tipo = 1 GROUP BY CAT_DP_IDPROD)", Array As String (promo))
-' If c.RowCount > -1 Then
-' c.Position = 0
-' If c.GetString("variables") <> Null Then x = c.GetString("variables")
-' End If
-' End If
-' Return x
-End Sub
-
-'Regresa un mapa con los datos del producto desde la base de datos.
-'el mapa incluye: Id, nombre, tipo y subtipo del producto.
-Sub traeProdIdDeBD As Map 'ignore
- Private c As Cursor
- Private m As Map
- c=Starter.db.ExecQuery("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_TIPO,CAT_GP_SUBTIPO from CAT_GUNAPROD2 where CAT_GP_NOMBRE In (Select PDESC from PROID)")
- If c.RowCount > 0 Then
- c.Position = 0
- m = CreateMap("id":c.GetString("CAT_GP_ID"), "nombre":c.GetString("CAT_GP_NOMBRE"), "tipo":c.GetString("CAT_GP_TIPO"), "subtipo":c.GetString("CAT_GP_SUBTIPO"))
- Else
- m = CreateMap("id":"N/A", "nombre":"N/A", "tipo":"N/A", "subtipo":"N/A")
- End If
- c.Close
- Return m
-End Sub
-
-'Guarda en la base de datos la hora inicial y final de la vista.
-Sub guardaClienteHoraInicio(cliente As String) 'ignore
- Starter.db.ExecNonQuery2("insert into PEDIDO_INICIO_FINAL(PIF_CLIENTE, PIF_HORA_INICIO, PIF_HORA_FINAL) VALUES(?,?,?) ", Array As Object (cliente, DateTime.Now, 0))
-' LogColor($"insertamos ${cliente}, hora_inicio=${DateTime.Now}, hora_final=0"$,Colors.Red)
-End Sub
-
-'Actualizamos el tiempo que el vendedor estuvo en la tienda, desde que entra a la pantalla del cliente hasta que hace clic en "Guardar".
-Sub actualizaTET(cliente As String) 'ignore
- Dim c As Cursor = Starter.db.Execquery2("select * from PEDIDO_INICIO_FINAL where PIF_CLIENTE = ?", Array As String(cliente))
- Dim total As Long = 0
- If c.RowCount > 0 Then
- c.Position=0
- For i = 0 To c.RowCount-1
- c.Position=i
-' LogColor($"cliente=${c.GetString("PIF_CLIENTE")}, inicio=${c.GetString("PIF_HORA_INICIO")}, final=${c.GetString("PIF_HORA_FINAL")}"$, Colors.Magenta)
- Dim subtotal As Long = c.GetString("PIF_HORA_FINAL") - c.GetString("PIF_HORA_INICIO")
- total = total + subtotal
-' Log($" Subtotal=${subtotal}, total=${total}"$)
- Next
-' Log($"Total=${(total/1000)/60}"$)
- Starter.db.ExecNonQuery2("update PEDIDO_CLIENTE set PC_TIEMPO_TIENDA = ? where PC_CLIENTE = ?", Array As String(((total/1000)/60), cliente))
- End If
-End Sub
-
-'Regresa el total de productos y monto del pedido del cliente actual.
-Sub traeTotalesClienteActual As Map
- Private m As Map
- m.Initialize
- Private c_prodsX As Cursor=Starter.db.ExecQuery("select ifnull(sum(PE_CANT), 0) as cantProds, ifnull(sum(PE_COSTO_TOT), 0) as costoTotal FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
- c_prodsX.Position=0
-' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
- m = CreateMap("productos": c_prodsX.GetString("cantProds"), "monto" : c_prodsX.GetString("costoTotal"))
- Return m
-End Sub
-
-'Borra el pedido del cliente actual.
-'Borra los registros de la tabla "pedido" y "pedido_cliente"
-'Actualiza las tablas "cat_gunaprod" o "cat_gunaprod2" y "kmt_info".
-Sub borraPedidoClienteActual As String
- Private thisC As Cursor
-' Private tablaProds As String = "cat_gunaprod2"
- thisC=Starter.db.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.db.ExecNonQuery2($"update ${traeTablaProds(Starter.tipov)} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(thisC.GetString("PE_CANT"),thisC.GetString("PE_PROID")))
-' Starter.db.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.db.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
- Starter.db.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
- Starter.db.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
- Return 1
-End Sub
-
-'Regresa verdadero si la columna gestion en la tabla "kmt_info" tene valor 2.
-'si no, entonces regresa falso.
-Sub pedidoGuardado As Boolean 'ignore
- Private guardado As Boolean = False
- Private g As Cursor = Starter.db.ExecQuery("select gestion from kmt_info where CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
- If g.RowCount > 0 Then
- g.Position=0
- If g.GetString("gestion") = "2" Then guardado = True
- End If
- Log($"Guardado=${guardado}"$)
- Return guardado
-End Sub
-
-'Regresa verdadero si hay pedido en la tabla "PEDIDO" del cliente actual.
-Sub hayPedido As Boolean
- Private thisC As Cursor=Starter.db.ExecQuery($"select count(PE_CLIENTE) as hayPedido from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
- thisC.Position=0
- Private hay As Boolean = False
- If thisC.GetString("hayPedido") > 0 Then hay = True
-' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
-thisC.Close
- Return hay
-End Sub
-
-'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual.
-Sub totalPedido As String
- Private cT As Cursor = Starter.db.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
- Private pTotal As String = "0"
- If cT.RowCount > 0 Then
- cT.Position = 0
-' Log("|"&cT.GetLong("total")&"|"&pTotal)
- Private tempT As String = cT.GetLong("total")
- If tempT <> "null" And tempT <> Null Then
-' Log("|"&cT.GetLong("total")&"|")
- pTotal = tempT
- End If
-' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
- End If
- cT.Close
- Return pTotal
-End Sub
-
-'Regresa verdadero si el usuario actual ya imprimio su venta
-Sub revisaImpresa As Boolean
- Dim imp As Boolean = False
-' Dim i As Cursor = Starter.db.ExecQuery("select count(*) as CUANTOS from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
- Dim i As Cursor = Starter.db.ExecQuery("select count(*) as CUANTOS from kmt_info where (impresion = 1 or cat_cl_codigo in (select ci_cuenta from cliente_impreso)) and CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
- i.Position = 0
- If i.GetString("CUANTOS") > 0 Then imp = True Else imp = False
- Return imp
-End Sub
-
-'Guarda RMI's (Cambios) en la base de datos
-Sub guardaCambiosDeProducto(cantidad, prodNombre, prodId, precio2, query) 'ignore
- Log($"${cantidad}, ${prodNombre}, ${prodId}, ${precio2}"$)
- Dim sDate, sTime, clie_id, usuario As String
- DateTime.DateFormat = "MM/dd/yyyy"
- sDate = DateTime.Date(DateTime.Now)
- sTime = DateTime.Time(DateTime.Now)
- Private a As Cursor = Starter.db.ExecQuery("Select CUENTA from cuentaa")
- a.Position=0
- clie_id = a.GetString("CUENTA")
- a = Starter.db.ExecQuery("select USUARIO from usuarioa")
- a.Position=0
- usuario = a.GetString("USUARIO")
- Starter.db.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ("DUR", (precio2 * -1), ((precio2/cantidad) * -1), cantidad, "CAMBIO" & prodNombre, prodId, clie_id, sDate & sTime, usuario, Starter.tipov, precio2))
- Starter.db.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad, prodId))
-End Sub
-
-'Regresa la fecha guardada en la base de datos con el formato "YYYYMMDD"
-'La fecha es de la última vez que se haya cargado día.
-Sub traeFechaDeBD As String 'ignore
- Private f As String
- Private cf As Cursor = Starter.db.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
- If cf.RowCount > 0 Then
- cf.Position = 0
- f = cf.GetString("CAT_VA_VALOR")
- End If
- cf.Close
- Return f
-End Sub
-
-'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta.
-Sub traeTablaProds(tipoventa As String) As String
- Private tablaProds As String = "cat_gunaprod2"
- If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod"
-' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0))
- Return tablaProds
-End Sub
-
-Sub agrupador()
- Private c As Cursor
- Private YA_IMPRIMIO As String
- If traeCliente <> "0" Then
- c=Starter.db.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- c.Position = 0
- If c.GetString("FOLIO") <> Null And c.GetString("FOLIO") > 0 Then
- YA_IMPRIMIO = 1
- Else
- YA_IMPRIMIO = 0
- End If
- c.Close
- End If
-' Log($"Ya imprimio=${YA_IMPRIMIO}"$)
- Starter.db.ExecNonQuery("delete from pedido3")
- Starter.db.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
- Starter.db.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
-' Log("update pedido3")
- Starter.db.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
- Starter.db.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
- Starter.db.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
- Starter.db.ExecNonQuery2("UPDATE PEDIDO SET PE_FECHA = ? where PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_FECHA IS NULL", Array As Object(traeFecha))
-End Sub
-
-Sub esPromo(promoId) As Boolean
- Private hay As Boolean = False
- Private c_ep As Cursor = Starter.db.ExecQuery($"select count(CAT_DP_ID) as cuantos from CAT_DETALLES_PAQ where CAT_DP_ID = '${promoId}'"$)
- If c_ep.RowCount > 0 Then
- c_ep.Position = 0
- If c_ep.GetInt("cuantos") > 0 Then hay = True
- End If
- Return hay
-End Sub
\ No newline at end of file
diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas
index 7e3e92b..b6f43f8 100644
--- a/B4A/Tracker.bas
+++ b/B4A/Tracker.bas
@@ -2,7 +2,7 @@
Group=Default Group
ModulesStructureVersion=1
Type=Service
-Version=11
+Version=10.2
@EndOfDesignText@
#Region Service Attributes
#StartAtBoot: True
@@ -33,23 +33,17 @@ Version=11
'#AdditionalJar: com.google.android.gms:play-services-location
Sub Process_Globals
-' Private nid As Int = 1
+ Private nid As Int = 1
Private Tracking As Boolean
Private lock As PhoneWakeState
'Para FusedLocationProvider (2 lineas)
Public FLP As FusedLocationProvider
Dim actualLR As LocationRequest
Private flpStarted As Boolean
-' Dim locRequest As String
- Dim UUGCoords As Location 'Ultima Ubicacion Guardada
-' Dim trackerActividad, pushServiceActividad As String
- Dim logger As Boolean
End Sub
Sub Service_Create
Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER 'we are handling it ourselves
- UUGCoords.Initialize
- logger = False
'Para FusedLocationProvider (2 lineas)
FLP.Initialize("flp")
FLP.Connect
@@ -58,36 +52,36 @@ Sub Service_Create
End Sub
Sub flp_ConnectionSuccess
-' If logger Then Log("Connected to location provider")
+ If Starter.logger Then Log("Connected to location provider")
'FLP.GetLastKnownLocation
End Sub
Sub flp_ConnectionFailed(ConnectionResult1 As Int)
- If logger Then Log("Failed to connect to location provider")
+ If Starter.logger Then Log("Failed to connect to location provider")
End Sub
Sub flp_ConnectionSuspended(ConnectionResult1 As Int)
- If logger Then Log("FLP conection suspended")
+ If Starter.logger Then Log("FLP conection suspended")
StartFLP
End Sub
Sub Service_Start (StartingIntent As Intent)
- LogColor("Iniciando Tracker ...", Colors.Green)
+ If Starter.logger Then Log("Tracker Service Started")
+ 'Para FusedLocationProvider (1 linea)
Service.StopAutomaticForeground
-' Service.StartForeground(51042, Subs.notiLowReturn("Kelloggs", "Activo", 51042))
- StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True)
+ Service.StartForeground(nid, CreateNotification("..."))
Track
- If Not(Starter.Logger) Then logger = False
+ StartServiceAt(Me, DateTime.Now + 5 * DateTime.TicksPerMinute, True)
End Sub
Public Sub Track
- If logger Then Log("Inicia Track - Tracking : "&Tracking)
+ If Starter.logger Then Log("Inicia Track - Tracking : "&Tracking)
If Tracking Then
' Log(actualLR.GetSmallestDisplacement)
Return 'Si ya estamos "rastreando" no hacemos nada (return)
End If
If Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) = False Then
- If logger Then Log("Sin permisos de ublicación.")
+ If Starter.logger Then Log("No permission")
Return
End If
StartFLP 'Iniciamos FusedLocationProvider
@@ -95,46 +89,34 @@ Public Sub Track
End Sub
Public Sub StartFLP
- If logger Then Log("StartFLP - flpStarted="&flpStarted)
+ Log("StartFLP - flpStarted="&flpStarted)
Do While FLP.IsConnected = False
Sleep(500)
- If logger Then Log("sleeping")
+ If Starter.logger Then Log("sleeping")
Loop
' If flpStarted = False Then
-' If logger Then Log("RequestLocationUpdates")
+ If Starter.logger Then Log("RequestLocationUpdates")
FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion
- If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta)
-' If logger Then Log(actualLR.GetSmallestDisplacement)
+ If Starter.logger Then Log("Buscamos ubicacion")
+ If Starter.logger Then Log(actualLR.GetSmallestDisplacement)
flpStarted = True
' End If
End Sub
-Public Sub StartFLP2
- If logger Then Log("StartFLP2 - flpStarted="&flpStarted)
+Public Sub StartFLP2Reqs
+ If Starter.logger Then Log("StartFLP - flpStarted="&flpStarted)
Do While FLP.IsConnected = False
Sleep(500)
- If logger Then Log("sleeping")
+ If Starter.logger Then Log("sleeping")
Loop
dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida
- FLP.RequestLocationUpdates(CreateLocationRequest2) 'Buscamos ubicacion 2 peticiones
- If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta)
-' If logger Then Log(actualLR.GetSmallestDisplacement)
-End Sub
-
-Public Sub StartFLPSmall
-' Log("StartFLPSmall - flpStarted="&flpStarted)
- Do While FLP.IsConnected = False
- Sleep(500)
- Log("sleeping")
- Loop
- dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida
- FLP.RequestLocationUpdates(CreateLocationRequestSmallD) 'Buscamos ubicacion 2 peticiones
-' Log("Buscamos ubicacion Small displacement")
-' Log("GPSSmallestDisplacement = " & actualLR.GetSmallestDisplacement)
+ FLP.RequestLocationUpdates(CreateLocationRequest2times) 'Buscamos ubicacion 2 peticiones
+ If Starter.logger Then Log("Buscamos ubicacion 2 peticiones")
+ If Starter.logger Then Log(actualLR.GetSmallestDisplacement)
End Sub
Private Sub CreateLocationRequest As LocationRequest
-' If logger Then Log("CreateLocationRequest")
+ If Starter.logger Then Log("CreateLocationRequest")
Dim lr As LocationRequest
lr.Initialize
lr.SetInterval(10000) 'Intervalo deseado para actualizaciones de ubicacion
@@ -145,27 +127,14 @@ Private Sub CreateLocationRequest As LocationRequest
Return lr
End Sub
-Private Sub CreateLocationRequest2 As LocationRequest
- If logger Then Log("Iniciamos CreateLocationRequest2")
+Private Sub CreateLocationRequest2times As LocationRequest
+ If Starter.logger Then Log("Iniciamos CreateLocationRequest2times")
Dim lr As LocationRequest
lr.Initialize
lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion
lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion
lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros
- lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts
- lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY)
- actualLR=lr
- Return lr
-End Sub
-
-Private Sub CreateLocationRequestSmallD As LocationRequest
-' Log("Iniciamos CreateLocationRequestSmallD")
- Dim lr As LocationRequest
- lr.Initialize
- lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion
- lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion
- lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros
- lr.SetSmallestDisplacement(0) 'Solo registra cambio de ubicacion si es mayor a XX mts
+ lr.SetSmallestDisplacement(10) 'Solo registra cambio de ubicacion si es mayor a XX mts
lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY)
actualLR=lr
Return lr
@@ -173,10 +142,9 @@ End Sub
Sub dameUltimaUbicacionConocida
If FLP.GetLastKnownLocation.IsInitialized Then 'Mandamos ultima ubicacion guardada
-' If logger Then LogColor($"Mandamos UUC "${Subs.fechaKMT(FLP.GetLastKnownLocation.Time)}|Acc:$0.2{FLP.GetLastKnownLocation.Accuracy}|$0.8{FLP.GetLastKnownLocation.Latitude}|$0.8{FLP.GetLastKnownLocation.Longitude}|Spd:$0.2{FLP.GetLastKnownLocation.Speed}|"$, Colors.RGB(255,112,35))
-' Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&formatoFecha(FLP.GetLastKnownLocation.Time)
-' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
-' Subs.mandamosLoc(coords)
+ If Starter.logger Then Log("Mandamos GetLastKnownLocation : "&formatoFecha(FLP.GetLastKnownLocation.Time))
+ Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&formatoFecha(FLP.GetLastKnownLocation.Time)
+ CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
End If
End Sub
@@ -189,58 +157,50 @@ Public Sub StopFLP
End Sub
Sub flp_LocationChanged (Location1 As Location)
- LogColor($"Location changed lat=${Location1.Latitude}, lon=${Location1.Longitude}, Acc=${Location1.Accuracy}, SD=$1.0{actualLR.GetSmallestDisplacement}"$, Colors.green)
- UUGCoords = Location1
-' If logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement)
+ If Starter.logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement)
' CallSub2(Starter, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1)
+' CallSub2(MAPA_RUTAS, "GPS_LocationChanged", Location1)
+' CallSub2(fila, "GPS_LocationChanged", Location1)
+
Starter.lat_gps = Location1.Latitude
Starter.lon_gps = Location1.Longitude
- Starter.ubicacionActual = Location1
- 'Si las coordenadas estan en CERO o NULL entonces usamos "GetLastKnownLocation"
- If Starter.lat_gps = 0 Or Starter.lat_gps = Null And FLP.GetLastKnownLocation.IsInitialized Then
- Starter.lat_gps = FLP.GetLastKnownLocation.Latitude
- Starter.lon_gps = FLP.GetLastKnownLocation.Longitude
- Starter.ubicacionActual = FLP.GetLastKnownLocation
- LogColor("Coords en CERO - Guardamos ultima ubicacion conocida", Colors.red)
- End If
-' Starter.ubicacionActual.Latitude = Starter.lat_gps
-' Starter.ubicacionActual.Longitude = Starter.lon_gps
-' Starter.ubicacionActual.Accuracy = Location1.Accuracy
-
- '/////// para la ultima ubicacion FL
+ '/////// para la ultima ubicacion FL
Dim sDate,sTime As String
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
- If Starter.lat_gps <> 0 And Starter.lat_gps <> Null Then
- Try
- Starter.db.ExecNonQuery("DELETE FROM HIST_GPS")
- Starter.db.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Starter.lat_gps, Starter.lon_gps))
- Catch
- If logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS")
- End Try
- End If
-
- Dim origFormat As String = DateTime.TimeFormat 'Guardamos formato de fecha.
- DateTime.TimeFormat = "HHmmss" ' Modificamos formato de fecha.
+ Try
+ Starter.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
+ Starter.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Starter.lat_gps, Starter.lon_gps))
+ Catch
+ If Starter.logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS")
+ End Try
+ '///////
+ Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&formatoFecha(Location1.Time)
+ If Starter.logger Then Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&Starter.usuario&"|")
+ If Starter.logger Then Log("Mandamos Ubicacion")
+ If Starter.logger Then Log(FirebaseMessaging.locRequest)
+ ' Solo mandamos la ubicacion si la precision es dentro de XX mts
+ If Location1.Accuracy < 300 Then CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
+ Dim origFormat As String = DateTime.TimeFormat 'Guardamos formato de fecha
+ DateTime.TimeFormat = "HHmmss" ' Modificamos formato de fecha
Dim minsDif As Int = DateTime.Time(DateTime.Now) - Starter.ultimaActualizacionGPS
-' If logger Then Log("UltimaAct="&Starter.ultimaActualizacionGPS&" MinsDif="&minsDif)
- If Location1.Accuracy < 100 And minsDif > 240 Then 'Si precision de 100 y 4 min transcurridos manda a web.
- If logger Then Log("Actualizamos Ubicacion Web")
+' If Starter.logger Then Log("UltimaAct="&Starter.ultimaActualizacionGPS&" MinsDif="&minsDif)
+ If Location1.Accuracy < 100 And minsDif > 240 Then 'Si precision de 100 y 4 min transcurridos manda a web
+ If Starter.logger Then Log("actualizamos Ubicacion")
CallSubDelayed(Starter, "ENVIA_ULTIMA_GPS")
End If
- DateTime.TimeFormat = origFormat 'Regresamos formato de fecha original.
- B4XPages.MainPage.cliente.GPS_LocationChanged(Location1)
- B4XPages.MainPage.nuevoCliente.GPS_LocationChanged(Location1)
- If Not(IsPaused(MAPA_RUTAS)) Then CallSubDelayed2(MAPA_RUTAS, "GPS_LocationChanged", Location1)
+ DateTime.TimeFormat = origFormat 'Regresamos formato de fecha original
+' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
End Sub
-Sub CreateNotification (Body As String) As Notification 'ignore
+Sub CreateNotification (Body As String) As Notification
Dim notification As Notification
notification.Initialize2(notification.IMPORTANCE_LOW)
notification.Icon = "icon"
- notification.SetInfo("This", Body, Main)
+ notification.SetInfo("Durakelo", Body, Main)
+ If Starter.logger Then Log("Creamos notificacion")
Return notification
End Sub
@@ -252,7 +212,7 @@ Sub Service_Destroy
lock.ReleasePartialLock
End Sub
-Sub formatoFecha(fecha As String) As String 'ignore 'Convierte una fecha al formato yyMMddHHmmss
+Sub formatoFecha(fecha As String) As String 'Convierte una fecha al formato yyMMddHHmmss
' Log(fecha)
Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
DateTime.DateFormat="yyMMddHHmmss"
diff --git a/B4A/errorManager.bas b/B4A/errorManager.bas
deleted file mode 100644
index d056395..0000000
--- a/B4A/errorManager.bas
+++ /dev/null
@@ -1,166 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Activity
-Version=10.2
-@EndOfDesignText@
-#Region Activity Attributes
- #FullScreen: False
- #IncludeTitle: True
-#End Region
-'******************************************************************************
-'Este modulo intercepta los errores de la aplicación mediante "Starter.Application_Error" y muestra una pantalla
-'con el log del error y lo manda al servidor con un query de DBRequestManager, se necesita que exista el query
-'en el "config.properties" llamado "guardaErrores" y que tenga el siguiente texto:
-'
-'sql.guardaErrores=INSERT INTO KELLOGGS.PUSH_INFO (ID, RUTA, FECHA, DATOS) VALUES((?),(?),(?),(?))
-'
-'Agregar estas lineas a "Starter.Process_Globals"
-' 'Para los Logs
-' Dim logs As StringBuilder
-' Private logcat As LogCat
-'
-'Agregar estas lineas a "Starter.Service_Create"
-' 'Para los Logs
-' #if RELEASE
-' logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat")
-' #end if
-' logs.Initialize
-'
-'Agregar este Sub a "Starter"
-'
-'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Para los Logs
-'Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
-' 'wait for 500ms to allow the logs to be updated.
-' Dim jo As JavaObject
-' Dim l As Long = 500: jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) 'Sleep 500ms
-' logcat.LogCatStop
-' logs.Append(StackTrace)
-' Subs.revisaBD
-' Subs.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (Subs.fechaKMT(DateTime.now), logs))
-' StartActivity(errorManager)
-' Return True
-'End Sub
-'******************************************************************************
-
-Sub Process_Globals
- 'These global variables will be declared once when the application starts.
- 'These variables can be accessed from all modules.
-
-End Sub
-
-Sub Globals
- 'These global variables will be redeclared each time the activity is created.
- 'These variables can only be accessed from this module.
-' Dim errorLog As SQL
- Dim c As Cursor
- Private p_principal As Panel
- Private l_titulo As Label
- Private svScroll As ScrollView
- Private etText As EditText
- Private c_continuar As Button
- Private p_botones As Panel
- Private b_salir As Button
-End Sub
-
-Sub Activity_Create(FirstTime As Boolean)
- 'Do not forget to load the layout file created with the visual designer. For example:
- Activity.LoadLayout("errorManager")
-End Sub
-
-Sub Activity_Resume
- Dim elError As String = ""
- Dim laFecha As String = ""
-' svScroll.Initialize(500dip)
-' Activity.AddView(svScroll, 0, 300, 100%x, 80%y)
- p_principal.Height = Activity.Height
- p_principal.Width = Activity.Width
- svScroll.Width = Round(p_principal.Width * 0.9)
- svScroll.Left = Round(p_principal.Width/2)-Round(svScroll.Width/2)
- p_botones.Left = Round(p_principal.Width/2)-Round(p_botones.Width/2)
- p_botones.Top = Activity.Height - (p_botones.Height + 80)
- etText.Initialize("")
- svScroll.Panel.AddView(etText, 0, 0, 90%x, 80%y)
- etText.InputType = etText.INPUT_TYPE_NONE
- etText.Gravity = Gravity.TOP
- etText.SingleLine = False
- etText.Wrap = False
-' Dim lblText, edtText As StringBuilder
- Dim lbl As Label
- lbl.Initialize("")
- Activity.AddView(lbl, 0, 300, 100%x, 100%y) 'ignore
- etText.Text = ""
- Subs.revisaBD
- c = Subs.errorLog.ExecQuery("select * from errores order by fecha desc limit 1")
- If c.RowCount > 0 Then
- c.Position = 0
- elError = c.GetString("error")
- laFecha = c.GetString("fecha")
- etText.Text = elError
- End If
- c.Close
- Dim usuario As String = ""
- c = Starter.db.ExecQuery("select usuario from usuarioa")
- If c.RowCount > 0 Then
- c.Position = 0
- usuario = c.GetString("USUARIO")
- End If
-
-' Log("++++++" & Starter.logsStr)
-' etText.Text = etText.Text & Starter.logsStr
-' lbl.TextSize = etText.TextSize
-' lbl.Text = etText.Text
-' Dim su As StringUtils
-' Dim edheight As Int = su.MeasureMultilineTextHeight(lbl, lbl.Text)
-' lbl.RemoveView
-' etText.Height = edheight
-' svScroll.Panel.Height = edheight
- svScroll.Height = Round(Activity.Height * 0.9)
-' Log(edheight)
-
- Dim cmd As DBCommand
- cmd.Initialize
- cmd.Name = "guardaErrores"
- cmd.Parameters = Array As Object(laFecha, usuario&"|"&Starter.rutaV, laFecha, elError)
- Log($"Mandamos: ${Subs.fechaKMT(DateTime.Now)}, |${usuario}|, ${Subs.fechaKMT(DateTime.Now)}"$)
- Starter.reqManager.ExecuteCommand(cmd,"guardaErrores")
-End Sub
-
-Sub Activity_Pause (UserClosed As Boolean)
-
-End Sub
-
-Sub JobDone(Job As HttpJob)
- If Job.Success = False Then
- ToastMessageShow("Error: " & Job.ErrorMessage, True)
- Else
- LogColor("JobDone: '" & Starter.reqManager.HandleJob(Job).tag & "' - Registros: " & Starter.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
- If Job.JobName = "DBRequest" Then
- Dim result As DBResult = Starter.reqManager.HandleJob(Job)
- If result.Tag = "guardaErrores" Then 'query tag
- For Each records() As Object In result.Rows
- For Each k As String In result.Columns.Keys
- Log("GuardaErrores: " & k & ": " & records(result.Columns.Get(k)))
- Next
- Next
- End If
- End If
- End If
- Job.Release
-End Sub
-
-Private Sub c_continuar_Click
- Subs.iniciaActividad("Principal")
-' B4XPages.ShowPage("Principal")
-End Sub
-
-Private Sub b_salir_Click
- cierraActividades
-End Sub
-
-Sub cierraActividades
- Log("closing activities")
- Dim jo As JavaObject
- jo.InitializeContext
- jo.RunMethod("finishAffinity", Null)
-End Sub
\ No newline at end of file
diff --git a/B4A/foto.bas b/B4A/foto.bas
deleted file mode 100644
index 1675e81..0000000
--- a/B4A/foto.bas
+++ /dev/null
@@ -1,174 +0,0 @@
-B4A=true
-Group=Default Group
-ModulesStructureVersion=1
-Type=Activity
-Version=6.8
-@EndOfDesignText@
-#Region Activity Attributes
- #FullScreen: False
- #IncludeTitle: False
-#End Region
-
-Sub Process_Globals
- 'These global variables will be declared once when the application starts.
- 'These variables can be accessed from all modules.
- Dim ruta As String
- Dim g As GPS
- Private frontCamera As Boolean = False
- Dim quien_llamo As String
- Dim foto_g () As Byte
- Dim foto_g1 () As Byte
- Dim foto_g2 () As Byte
- Dim foto_g3 () As Byte
- Dim foto_g4 () As Byte
-End Sub
-
-Sub Globals
- Dim btnTakePicture As Button
- Dim Panel1 As Panel
-' Dim skmt As SQL
- Dim c As Cursor
- Dim cuenta As String
- Dim lat_gps As String
- Dim lon_gps As String
- Private camEx As CameraExClass
- Private i_foto As ImageView
- Private b_guardar As Button
-End Sub
-
-Sub Activity_Create(FirstTime As Boolean)
- Activity.LoadLayout("foto")
- Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
- Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
- ruta = File.DirInternal
-End Sub
-
-Sub Camera1_Ready (Success As Boolean)
-' Log("Camara lista")
- If Success Then
- Dim ps As CameraSize
- ps.Width =640'480 '1280
- ps.Height =480'360 '960
- camEx.SetPictureSize(ps.Width, ps.Height)
- camEx.CommitParameters
- Try
- camEx.StartPreview
- Catch
- camEx.Release
- B4XPages.ShowPage("CheckList")
- End Try
- Else
- B4XPages.ShowPage("CheckList")
- 'ToastMessageShow("Cannot open camera.", True)
- End If
-End Sub
-
-Sub Activity_Resume
- i_foto.Visible = False
- InitializeCamera
- btnTakePicture.Enabled = True
- b_guardar.Enabled = False
-End Sub
-
-Sub Activity_Pause (UserClosed As Boolean)
- camEx.Release
-End Sub
-
-Sub GPS_LocationChanged (Location1 As Location)
-' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
-' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
-' 'btnTakePicture.Enabled = True
-' 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps))
-End Sub
-
-Private Sub InitializeCamera
- camEx.Initialize(Panel1, frontCamera, Me, "Camera1")
- frontCamera = camEx.Front
-End Sub
-
-Sub Camera1_PictureTaken (Data() As Byte)
-' Log("foto tomada")
- btnTakePicture.Enabled = True
- Dim filename As String = "2.jpg"
- Dim dir As String = File.DirInternal
- camEx.SavePictureToFile(Data, dir, filename)
- camEx.StartPreview 'restart preview
- i_foto.Visible = True
- i_foto.Bitmap = LoadBitmap(File.DirInternal, "2.jpg")
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- Dim InputStream1 As InputStream
- InputStream1 = File.OpenInput(File.DirInternal, "2.jpg")
- Dim OutputStream1 As OutputStream
- OutputStream1.InitializeToBytesArray(500)
- File.Copy2(InputStream1, OutputStream1)
- foto_g = OutputStream1.ToBytesArray
- End If
- b_guardar.Enabled = True
- camEx.Release
- InitializeCamera
- btnTakePicture.Enabled = True
- 'CallSubDelayed(seleccion,"seleccion")
-' StartActivity(fila)
-End Sub
-
-Sub Activity_KeyPress (key As Int) As Boolean
- ' BACK key pressed
- If key=KeyCodes.KEYCODE_BACK Then
- ' I want to capture the key here so I return True
- Subs.iniciaActividad("Principal")
-' B4XPages.ShowPage("Principal")
- 'Return True
- End If
- ' Returning False signals the system to handle the key
- Return False
-End Sub
-
-Sub b_guardar_Click
- camEx.Release
-' Log("liberamos camara")
- 'If quien_llamo = "1" Then
- Try
- If quien_llamo = "1" Then
- File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO1.jpg")
- Activity.Finish
- B4XPages.ShowPage("CheckList")
- else if quien_llamo = "2" Then
- File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO2.jpg")
- Activity.Finish
- B4XPages.ShowPage("CheckList")
- else if quien_llamo = "3" Then
- File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO3.jpg")
- Activity.Finish
- B4XPages.ShowPage("CheckList")
- else if quien_llamo = "4" Then
- File.Copy(File.DirInternal, "2.jpg",File.DirInternal, "FOTO4.jpg")
- Activity.Finish
- B4XPages.ShowPage("CheckList")
- End If
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- c=Starter.db.ExecQuery("select cuenta from cuentaa")
- c.Position = 0
- cuenta = c.GetString("CUENTA")
- c.Close
- Starter.db.ExecNonQuery2("INSERT INTO HIST_FOTOS (HF_FOTO, HF_CUENTA, HF_IDENCUESTA) VALUES(?,?,?) ", Array As Object (foto_g,cuenta,B4XPages.MainPage.cliente.id_encuesta ))
- Subs.iniciaActividad("Cliente")
- End If
- Catch
- Msgbox("ERROR EN FOTO","") 'ignore
- If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
- Subs.iniciaActividad("Cliente")
- Else
- B4XPages.ShowPage("CheckList")
- End If
- End Try
-End Sub
-
-Sub btnTakePicture_Click
- btnTakePicture.Enabled = False
- Dim ps As CameraSize
- ps.Width =640'480 '1280
- ps.Height =480'360 '960
- camEx.SetPictureSize(ps.Width, ps.Height)
- camEx.CommitParameters
- camEx.TakePicture
-End Sub
\ No newline at end of file
diff --git a/B4A/google-services.json b/B4A/google-services.json
new file mode 100644
index 0000000..b21b6d3
--- /dev/null
+++ b/B4A/google-services.json
@@ -0,0 +1,155 @@
+{
+ "project_info": {
+ "project_number": "821860097209",
+ "project_id": "pusher-4c091",
+ "storage_bucket": "pusher-4c091.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:821860097209:android:7bdc730c1cad5927f24f68",
+ "android_client_info": {
+ "package_name": "durakelo.keymon.com.mx"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:821860097209:android:4a9c1af4c93ba100f24f68",
+ "android_client_info": {
+ "package_name": "flp2.chv.com"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:821860097209:android:7b6620b2a870f23cf24f68",
+ "android_client_info": {
+ "package_name": "gunav2.keymon.com.mx"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:821860097209:android:7780f81ae43bf0f3f24f68",
+ "android_client_info": {
+ "package_name": "pusher.chv.com"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:821860097209:android:7c55bc95da6d952df24f68",
+ "android_client_info": {
+ "package_name": "ths.keymon.com.mx"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyDS-_5lpLX5IiKYrG-0Et-KCKx1bwlY7R0"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "821860097209-ef17t5620111ghub7l0tple62otbb56v.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas
new file mode 100644
index 0000000..8d16374
--- /dev/null
+++ b/B4A/kms_helperSubs.bas
@@ -0,0 +1,545 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Class
+Version=12.2
+@EndOfDesignText@
+Sub Class_Globals
+ Private Root As B4XView 'ignore
+ Private xui As XUI 'ignore
+ Dim skmt, rkmt As SQL
+ Private EventName As String 'ignore
+ Private CallBack As Object 'ignore
+ Dim rp As RuntimePermissions
+ Dim safePath As String
+ Dim fechaHoy As String
+ Dim skmtAttached As Boolean = False
+ '####### MES Vars ######
+ Private ion As Object
+' Dim device As Phone
+' Private mesCallback As Object
+' Private mesEventName As String
+ Dim RD_Init_IsInitialized As Boolean = False
+ Dim btAdmin As BluetoothAdmin
+End Sub
+
+'Inicializa la clase "kms_helperSubs".
+Public Sub Initialize (vCallback As Object, vEventName As String) As Object
+ EventName = vEventName
+ CallBack = vCallback
+ Return Me
+End Sub
+
+'This event will be called once, before the page becomes visible.
+'Private Sub B4XPage_Created (Root1 As B4XView)
+' Root = Root1
+' 'load the layout to Root
+'End Sub
+
+'RD - Inicializa Respaldo Diario
+Sub RD_Init
+ Dim Dirp As String = File.DirRootExternal
+ Dim Dir As String
+' Dim Dir2 As String
+ Try
+ File.MakeDir(Dirp,"/kmts")
+ Dir = "/kmts"
+' Log("creado en kmts " & Dirp & Dir)
+ Catch
+ Dir = ""
+' Log("creado en raiz")
+ End Try
+ safePath = Dirp & Dir
+ If Starter.Logger Then Log($"Safepath:${safePath}"$)
+ Private name() As String = Regex.split(" ", Application.LabelName)
+ rkmt.Initialize(safePath,$"${name(0)}.rkmt.km"$, True)
+ skmt.Initialize(File.DirInternal,"kmt.db", False)
+ If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$)
+ If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
+ If chkIfTableExists(skmt, "CAT_GUNAPROD") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD (${getTableColumnList(skmt, "CAT_GUNAPROD")}, FECHA TEXT)"$)
+ If chkIfTableExists(skmt, "CAT_GUNAPROD2") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD2 (${getTableColumnList(skmt, "CAT_GUNAPROD2")}, FECHA TEXT)"$)
+ If chkIfTableExists(skmt, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(skmt, "kmt_info")}, FECHA TEXT)"$)
+ DateTime.DateFormat = "MM/dd/yyyy"
+ fechaHoy = DateTime.Date(DateTime.Now)
+ If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized)
+ If revisaSkmtAttached And rkmt.IsInitialized Then RD_Init_IsInitialized = True Else RD_Init_IsInitialized = False
+End Sub
+
+'RD - Revisa si esta montada "kmt.db" como "skmt1" y si no, la monta
+'Para que "rkmt" vea a "skmt", es necesario montarla (attach).
+Sub revisaSkmtAttached As Boolean
+ skmtAttached = False
+ Dim rs As ResultSet = rkmt.ExecQuery("SELECT * FROM pragma_database_list")
+ Do While rs.NextRow 'Revisamos si esta montada "kmt.db" como "skmt1" y si no, la montamos.
+ If rs.GetString("name") = "skmt1" Then skmtAttached = True
+ Loop
+ If Not(skmtAttached) Then
+ rkmt.ExecNonQuery($"attach database '${File.Combine(File.DirInternal, "kmt.db")}' as skmt1;"$)
+ skmtAttached = True
+ End If
+ Return skmtAttached
+End Sub
+
+'Inicializa la BD con "kmt.db" en "File.DirInternal", si el archivo no existe, lo copia desde "File.DirAssets".
+'Ej: dim skmt as sql = dbInit
+Sub dbInit As SQL 'ignore
+ Private db 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
+
+'RD - Copia la tabla PEDIDO a rkmt.db en la tarjeta del celular.
+Sub RD_respalda_pedido
+ Private inicio As String = DateTime.Now
+' Log("Copiando PEDIDO ...")
+ Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
+ rkmt.BeginTransaction
+ rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$)
+ rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
+ rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
+ rkmt.EndTransaction
+ Log(((DateTime.Now - inicio)/1000) & " segs")
+End Sub
+
+'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
+Sub RD_respalda_cat_gunaprod
+ Private inicio As String = DateTime.Now
+' Log("Copiando CAT_GUNAPROD ...")
+ Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
+ lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
+ rkmt.BeginTransaction
+ rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
+ rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$)
+ rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
+ rkmt.EndTransaction
+ Log(((DateTime.Now - inicio)/1000) & " segs")
+End Sub
+
+'RD - Copia la tabla CAT_GUNAPROD2 a rkmt.db en la tarjeta del celular.
+Sub RD_respalda_cat_gunaprod2
+ Private inicio As String = DateTime.Now
+' Log("Copiando CAT_GUNAPROD2 ...")
+ Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
+ lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
+ rkmt.BeginTransaction
+ rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
+ rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$)
+ rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
+ rkmt.EndTransaction
+ Log(((DateTime.Now - inicio)/1000) & " segs")
+End Sub
+
+'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
+Sub RD_respalda_cat_detalle_paq
+ Private inicio As String = DateTime.Now
+' Log("Copiando CAT_DETALLES_PAQ ...")
+ Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
+ If rkmt.IsInitialized Then
+ rkmt.BeginTransaction
+ rkmt.ExecNonQuery($"delete from CAT_DETALLES_PAQ where fecha = '${fechaHoy}'"$)
+ rkmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_DETALLES_PAQ"$)
+ rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
+ rkmt.EndTransaction
+ Log(((DateTime.Now - inicio)/1000) & " segs")
+ End If
+End Sub
+
+'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
+Sub RD_respalda_kmt_info
+ Private inicio As String = DateTime.Now
+' Log("Copiando kmt_info ...")
+ Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
+ rkmt.BeginTransaction
+ rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$)
+ rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$)
+ rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
+ rkmt.EndTransaction
+ Log(((DateTime.Now - inicio)/1000) & " segs")
+End Sub
+
+'RD - Realiza un "vacuum" de la base de datos "rkmt".
+Sub RD_vacuum 'ignore
+ Log("Vacuum")
+ rkmt.ExecNonQuery("vacuum;")
+End Sub
+
+'Agrega una columna a la tabla especificada.
+'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC)
+'Ej. agregaColumna(DB, "TABLA", "COLUMNA", "TIPO")
+Sub agregaColumna(db As SQL, 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 los nombres y tipos de las columnas de una tabla dada.
+Sub getTableColumnList(db As SQL, table As String) As String 'ignore
+ Private l As String = ""
+ If chkIfTableExists(db, table) Then
+ Private c As Cursor = db.ExecQuery($"pragma table_info(${table})"$)
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ If l.Length = 0 Then
+ l = $"${c.GetString("name")} ${c.GetString("type")}"$
+ Else
+ l = $"${l}, ${c.GetString("name")} ${c.GetString("type")}"$
+ End If
+ Next
+ End If
+ Else
+ Return "No existe la tabla."
+ End If
+ c.Close
+ Return l
+End Sub
+
+'Regresa solo los nombres de las columnas de una tabla dada.
+Sub getTableColumnListName(db As SQL, table As String) As String 'ignore
+ Private l As String = ""
+ If chkIfTableExists(db, table) Then
+ Private c As Cursor = db.ExecQuery($"pragma table_info(${table})"$)
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ If l.Length = 0 Then
+ l = $"${c.GetString("name")}"$
+ Else
+ l = $"${l}, ${c.GetString("name")}"$
+ End If
+ Next
+ End If
+ Else
+ Return "No existe la tabla."
+ End If
+ c.Close
+ Return l
+End Sub
+
+'Revisa si una tabla dada existe en una base de datos dada, regresa true o false.
+Sub chkIfTableExists(db As SQL, table As String) As Boolean 'ignore
+ Private t As Boolean = False 'ignore
+ If db.IsInitialized Then
+ Private c As Cursor = db.ExecQuery($"SELECT name FROM sqlite_master WHERE type='table' AND name='${table}'"$)
+ If c.RowCount > 0 Then t = True
+ c.Close
+ End If
+ Return t
+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)
+ etiquetaCentrada(True)
+End Sub
+
+Sub etiquetaCentrada(Success As Boolean)
+ If SubExists(CallBack, EventName & "_etiquetaCentrada") Then
+ CallSub2(CallBack, EventName & "_etiquetaCentrada", Success)
+ End If
+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 el usuario de la tabla USUARIOA, si no lo encuentra regresa "SinUsuario"
+Sub traeUsuarioDeDB(db As SQL) As String 'ignore
+ Private c As Cursor
+ Private u As String = "SinUsuario"
+ c = db.ExecQuery("select USUARIO from usuarioa")
+ c.Position=0
+ If c.RowCount > 0 Then u = c.GetString("USUARIO")
+ c.Close
+ Return u
+End Sub
+
+'Regresa el almacen actual de la base de datos.
+Sub traeAlmacen(db As SQL) 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 el nombre del producto desde CAT_GUNAPROD.
+Sub traeProdNombre(db As SQL, id As String) As String 'ignore
+ Private h As Cursor
+ Private n As String
+ h = db.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(id.Trim))
+ If h.RowCount > 0 Then
+ h.Position = 0
+ n = h.GetString("CAT_GP_NOMBRE")
+' Log(h.RowCount&"|"&id&"|"&n&"|")
+ End If
+ h.Close
+ If n = Null Or n="" Then n = "N/A"
+' Log(h.RowCount&"|"&id&"|"&n&"|")
+ Return n
+End Sub
+
+'Regresa la ruta actual de la base de datos.
+Sub traeRuta(db As SQL) 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
+
+'Regresa el cliente actual de la base de dtos (CUENTAA).
+Sub traeCliente(db As SQL) As String 'ignore
+ Private c As Cursor
+ Private cl As String
+ c = db.ExecQuery("Select CUENTA from cuentaa")
+ c.Position=0
+ cl = c.GetString("CUENTA")
+ c.Close
+ Return cl
+End Sub
+
+'Regresa en un mapa el total de productos y monto del pedido del cliente actual
+'resultado = {"productos":"antidad_de_productos", "monto":"costo_total"}
+Sub traeTotalesClienteActual(db As SQL) As Map 'ignore
+ Private m As Map
+ m.Initialize
+ Private c_prodsX As Cursor = db.ExecQuery("select ifnull(sum(PE_CANT), 0) as cantProds, ifnull(sum(PE_COSTO_TOT), 0) as costoTotal FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
+ c_prodsX.Position = 0
+' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
+ m = CreateMap("productos": c_prodsX.GetString("cantProds"), "monto" : c_prodsX.GetString("costoTotal"))
+ Return m
+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(db As SQL) As String 'ignore
+ Private thisC As Cursor
+ thisC = db.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
+ db.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")))
+ db.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen(db), thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1))
+ Next
+ End If
+ db.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+ db.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
+ db.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Return 1
+End Sub
+
+'Regresa verdadero si la columna gestion en la tabla "kmt_info" tene valor 2.
+'si no, entonces regresa falso.
+Sub pedidoGuardado(db As SQL) As Boolean 'ignore
+ Private guardado As Boolean = False
+ Private g As Cursor = db.ExecQuery("select gestion from kmt_info where CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
+ If g.RowCount > 0 Then
+ g.Position=0
+ If g.GetString("gestion") = "2" Then guardado = True
+ End If
+ Log($"Guardado=${guardado}"$)
+ Return guardado
+End Sub
+
+'Regresa verdadero si hay pedido en la tabla "PEDIDO" del cliente actual.
+Sub hayPedido(db As SQL) As Boolean 'ignore
+ Private thisC As Cursor = db.ExecQuery($"select count(PE_CLIENTE) as hayPedido from PEDIDO where PE_CLIENTE = '${traeCliente(db)}'"$)
+ thisC.Position = 0
+ Private hay As Boolean = False
+ If thisC.GetInt("hayPedido") > 0 Then hay = True
+' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
+ Return hay
+End Sub
+
+'Guarda el nombre y version de la app en CAT_VARIABLES.
+Sub guardaAppInfo(db As SQL) 'ignore
+ db.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'")
+ db.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$)
+ db.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
+
+'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
+Sub CheckNotificationAccess As Boolean
+ Dim ph As Phone
+ Dim nstr, pstr As String
+ Dim r As Reflector
+ pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
+ nstr = ph.GetSettings("enabled_notification_listeners")
+ Return nstr.Contains(pstr)
+End Sub
+
+'################ Manage External Storage (MES) #########################
+'
+''Inicializa "Manage External Storage" (MES), que nos da acceso a la tarjeta de memoria en Android 11+
+'Public Sub MES_Init (mCallBack As Object, mEventName As String)
+' mesCallback = mCallBack
+' mesEventName = mEventName
+'End Sub
+'
+'Sub MES_checkPermission 'ignore
+'' ' get the device SDK version
+'' Dim SdkVersion As Int = device.SdkVersion
+'' ' Choose which permission to request in order to access external storgage
+'' If SdkVersion < 30 Then
+''' Log("SDK = " & SdkVersion & " : Requesting WRITE_EXTERNAL_STORAGE permission")
+'' Dim rp As RuntimePermissions
+'' rp.CheckAndRequestPermission(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted
+'' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
+''' Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${Result}"$)
+'' Else
+''' Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission")
+''' Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission)
+'' If Not(MES_HasPermission) Then
+'' MsgboxAsync("This app requires access to all files, please enable the option", "Manage All Files")
+'' Wait For Msgbox_Result(Res As Int)
+''' Log("Getting permission")
+'' MES_GetPermission
+'' Wait For MES_StorageAvailable
+'' End If
+'' End If
+'End Sub
+'
+'' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager()
+'' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission
+'Public Sub MES_HasPermission As Boolean
+' Dim has As Boolean
+' Dim jo As JavaObject
+' jo.InitializeStatic("android.os.Environment")
+' has = jo.RunMethod("isExternalStorageManager", Null)
+' Return has
+'End Sub
+'
+'' Check whether this app has MANAGE_EXTERNAL_STORAGE permission
+'' If not show the user a dialog to enable MANAGE_EXTERNAL_STORAGE permission for this app
+'' Raises the StorageAvailable event in the calling activity when complete
+'Public Sub MES_GetPermission
+' If MES_HasPermission Then
+' RaiseEvent
+' Return
+' End If
+' Dim in As Intent
+' ' Be sure to reference your app package name in "pakageg:xxx"
+' in.Initialize("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION", $"package:${Application.PackageName}"$)
+' StartActivityForResult(in)
+'End Sub
+'
+'Private Sub RaiseEvent
+' Log("Calling : " & mesEventName & "_StorageAvailable")
+' CallSubDelayed(mesCallback, mesEventName & "_StorageAvailable")
+'End Sub
+'
+'Private Sub ion_Event (MethodName As String, Args() As Object) As Object
+' RaiseEvent
+' Return Null
+'End Sub
+'
+'Private Sub StartActivityForResult(i As Intent)
+' Dim jo As JavaObject = MES_GetBA
+' ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
+' jo.RunMethod("startActivityForResult", Array As Object(ion, i))
+'End Sub
+'
+'Private Sub MES_GetBA As Object
+' Dim jo As JavaObject = Me
+' Return jo.RunMethod("getBA", Null)
+'End Sub
+'################ TERMINA Manage External Storage (MES) #########################
+
+
+'################ INICIA ENABLE BLUETOOTH #########################
+Sub StartBluetooth 'ignore
+ btAdmin.Initialize("btAdmin")
+ Log("btAdmin: " & btAdmin.IsEnabled)
+ If btAdmin.IsEnabled = False Then
+ Wait For (EnableBluetooth) Complete (Success As Boolean)
+ If Success = False Then
+ ToastMessageShow("Failed to enable bluetooth", True)
+ End If
+ Log(Success)
+ End If
+ Log($"BTADMIN: ${btAdmin.IsEnabled}"$)
+End Sub
+
+Sub EnableBluetooth As ResumableSub
+ ToastMessageShow("Enabling Bluetooth adapter...", False)
+ Private ph As Phone
+ If ph.SdkVersion >= 31 Then
+ rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
+ Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
+ If Result = False Then Return False
+ Log($"BTCONNECT: ${Result}"$)
+ If ph.SdkVersion >= 33 Then
+ Dim in As Intent
+ in.Initialize("android.bluetooth.adapter.action.REQUEST_ENABLE", "")
+ StartActivityForResult(in)
+ Wait For ion_Event (MethodName As String, Args() As Object)
+ Return btAdmin.IsEnabled
+ End If
+ End If
+ Return btAdmin.Enable
+End Sub
+
+Private Sub GetBA As Object
+ Dim jo As JavaObject = Me
+ Return jo.RunMethod("getBA", Null)
+End Sub
+
+Private Sub StartActivityForResult(i As Intent)
+ Dim jo As JavaObject = GetBA
+ ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
+ jo.RunMethod("startActivityForResult", Array As Object(ion, i))
+End Sub
+'################ TERMINA ENABLE BLUETOOTH #########################
\ No newline at end of file