mirror of
https://github.com/KeymonSoft/Kelloggs_v4.git
synced 2026-04-18 02:29:13 +00:00
- Se corrigio que Trade Spending no consideraba los productos fijos de las promos a la hora de afectar el presupuesto. - Se agregó la validacion de la version de la app desde cat_rutas (CAT_RU_VERSION_REQUERIDA). - Se agregó el ligar el telefono a una ruta desde cat_rutas (CAT_RU_IDTELEFONO).
1100 lines
45 KiB
QBasic
1100 lines
45 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=9.85
|
|
@EndOfDesignText@
|
|
#Region Shared Files
|
|
'#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
|
|
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
|
|
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
|
|
'###########################################################################################################
|
|
'###################### PULL #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
|
|
'###########################################################################################################
|
|
'###################### PUSH #############################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
|
|
'###########################################################################################################
|
|
'###################### PUSH TORTOISE GIT #########################################################
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2
|
|
'###########################################################################################################
|
|
#End Region
|
|
|
|
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
|
|
|
|
Sub Class_Globals
|
|
Private Root As B4XView
|
|
Private xui As XUI
|
|
Public login As B4XMainPage
|
|
Dim rp As RuntimePermissions
|
|
Public principal As C_Principal
|
|
Public clientes As C_Clientes
|
|
Public cliente As C_Cliente
|
|
Public productos As C_Productos
|
|
Public updateAvailable As C_updateAvailable
|
|
Public mapas As C_Mapas
|
|
Public nuevoCliente As C_NuevoCliente
|
|
Public ticketsDia As C_TicketsDia
|
|
Public noVenta As C_NoVenta
|
|
Public nota As C_Nota
|
|
Public pedidos As C_Pedidos
|
|
Public promos As C_Promos
|
|
Public historico As C_Historico
|
|
Public checklist As C_CheckList
|
|
Dim kh As kms_helperSubs
|
|
Dim ime As IME
|
|
|
|
Dim reqManager As DBRequestManager
|
|
Dim ultimaActualizacionGPS As String = 235959
|
|
Dim almacen, ruta As String
|
|
Dim user As EditText
|
|
Dim pass As EditText
|
|
Dim c As Cursor
|
|
Dim D As Cursor
|
|
Dim existe As String
|
|
Dim paso1 As String
|
|
Dim IMEI As String
|
|
Dim alterno As String
|
|
Private b_menu As Button
|
|
' Dim PopupMenu As RSPopupMenu
|
|
Dim cmd As DBCommand
|
|
|
|
Private IMEN As EditText
|
|
Private Entrar As Button
|
|
Private Panel1 As Panel
|
|
Private i_engranes As ImageView
|
|
Private E_SERVER As EditText
|
|
Private B_SERVER As Button
|
|
Private B_MACIMP As Button
|
|
Private CUANTOS As String
|
|
Private foto_g () As Byte
|
|
|
|
Private ListView1 As ListView
|
|
Private ImageView1 As ImageView
|
|
Private Label1 As Label
|
|
Private B_BorrarFinDia As Button
|
|
Private b_fdCancelar As Button
|
|
Private b_findiaOk As Button
|
|
Private p_finDia As Panel
|
|
Private et_autSup As EditText
|
|
|
|
'prueba downloadfile
|
|
Dim ProgressBar1 As ProgressBar
|
|
Dim Label1 As Label
|
|
Dim btnDownload As Button
|
|
Dim btnCancel As Button
|
|
Private p_download As Panel
|
|
Private Label6 As Label
|
|
Dim logger As Boolean = True
|
|
|
|
Dim lat_gps, lon_gps As String
|
|
Dim tipo_venta As String
|
|
Dim bTerminarClicked As Boolean = False
|
|
Private lv_server As ListView
|
|
Private l_server As Label
|
|
Public rutaBDBackup As String = ""
|
|
Private b_envioBD As Button
|
|
Dim MES1 As ManageExternalStorage
|
|
Dim device As Phone
|
|
Private b_cargaLocal As Button
|
|
Private p_cargaLocal As Panel
|
|
Private et_cargaLocal As EditText
|
|
Private b_cargaLocalOk As Button
|
|
Private b_cargaLocalCancelar As Button
|
|
Private p_botones As Panel
|
|
Private b_importarBD As Button
|
|
Private cb_geocerca As CheckBox
|
|
Private p_extras As Panel
|
|
Private et_geocerca As EditText
|
|
Private b_extras As Button
|
|
Private l_geocerca As Label
|
|
Private b_aceptarExtras As Button
|
|
Private cb_cartaPorte As CheckBox
|
|
Private l_cartaPorte As Label
|
|
Private et_maxClientesNuevos As EditText
|
|
Private l_maxClientesNuevos As Label
|
|
Dim in As Intent
|
|
Dim intentUsado As Boolean = False
|
|
Private p_importarBDWA As Panel
|
|
Private cb_importarBDWA As CheckBox
|
|
' Type TResultado(Tag As String, Success As Boolean, resultado As DBResult, ErrorMessage As String)
|
|
Private Label4 As Label
|
|
Private clicked As Int = 0
|
|
Dim linker As C_deviceLinker
|
|
End Sub
|
|
|
|
Public Sub Initialize
|
|
B4XPages.GetManager.LogEvents = True
|
|
kh.Initialize(Me, "kh", Starter.skmt)
|
|
#if not(DEBUG)
|
|
Starter.logger = False
|
|
#end if
|
|
End Sub
|
|
|
|
'This event will be called once, before the page becomes visible.
|
|
Private Sub B4XPage_Created (Root1 As B4XView)
|
|
Log(">>>>>> CREATE - INICIAMOS MAIN PAGE <<<<<<<<<")
|
|
If Not(Starter.Logger) Then logger = False
|
|
Dim sDate, sTime As String
|
|
DateTime.DateFormat = "yyyyMMdd"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS PEDIDO3")
|
|
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 PEDIDO_SUGERIDO (ID_PRODUCTO TEXT, PROMEDIO TEXT, RUTA TEXT, ALMACEN TEXT)")
|
|
Starter.skmt.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.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 CAT_DESCUENTOS_SKU (CAT_DS_CLIENTE TEXT, CAT_DS_PRODID TEXT, CAT_DS_PORCENTAJE TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENVIOS (HE_FECHA TEXT, HE_CUANTOS TEXT, HE_TIPO 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 HIST_FOTOS (HF_FOTO BLOB, HF_CUENTA TEXT, HF_IDENCUESTA TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_IMPRESO (CI_CUENTA TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CLIENTE_CANT_PROMOS (HCCP_CLIENTE TEXT, HCCP_PROMO TEXT, HCCP_CANT TEXT, HCCP_CANT_VENDIDA TEXT)")
|
|
kh.agregaColumna(Starter.skmt, "HIST_CLIENTE_CANT_PROMOS", "HCCP_CANT_VENDIDA", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "kmt_info", "CAT_CL_LIMITECREDITO", "TEXT")
|
|
Starter.skmt.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.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_EXHIBIDORES2 (HIST_EX_ID_CLIENTE TEXT, HIST_EX_TIPO TEXT, HIST_EX_CANT TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PROMO_WHATS(HIST_CLIENTE TEXT, HIST_RESPUESTA_PROMO)")
|
|
' Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RMI(CAT_GP_ID TEXT,CAT_GP_NOMBRE TEXT,CAT_GP_PRECIO TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RMI(CAT_ID TEXT, CAT_DESCRIPCION TEXT, CAT_MONTO TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT)")
|
|
''' PARA LO DE DOE---
|
|
Starter.skmt.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.skmt.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)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDOS_DOE_ENTREGA (PC_CLIENTE TEXT, PC_ENTREGA TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_TREND_SPENDING_SEMANAL (HIST_TSS_RUTA TEXT, HIST_TSS_IDALMACEN TEXT, HIST_TSS_TIPO TEXT, HIST_TSS_SEMANA1 TEXT, HIST_TSS_SEMANA1_ACUM TEXT, HIST_TSS_SEMANA2 TEXT, HIST_TSS_SEMANA2_ACUM TEXT, HIST_TSS_SEMANA3 TEXT, HIST_TSS_SEMANA3_ACUM TEXT, HIST_TSS_SEMANA4 TEXT, HIST_TSS_SEMANA4_ACUM TEXT, HIST_TSS_SEMANA5 TEXT, HIST_TSS_SEMANA5_ACUM TEXT, HIST_TSS_SEMANA6 TEXT, HIST_TSS_SEMANA6_ACUM TEXT, HIST_TSS_GRUPO TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TREND_SPENDING (TIPO TEXT, MONTO_SEMANA TEXT, ACUMULADO TEXT)")
|
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VERSIONES (VERSION TEXT, FECHA TEXT)")
|
|
''' FIN DOE
|
|
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
|
|
kh.agregaColumna(Starter.skmt, "kmt_info", "CREDITO", "INTEGER")
|
|
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PORCENTAJE_PAQUETE", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PRECIO2", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_TIPO_PROMONTO", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD", "CAT_GP_TIPOPROD2", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_TIPOPROD2", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD", "CAT_GP_PROMOCION", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_PROMOCION", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "TREND_SPENDING", "TIPO", "TEXT")
|
|
kh.agregaColumna(Starter.skmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT")
|
|
Root = Root1
|
|
' Root.LoadLayout("MainPage")
|
|
Root.LoadLayout("login")
|
|
B4XPages.SetTitle(Me, "Kelloggs Preventa")
|
|
login.Initialize
|
|
B4XPages.AddPage("Login", login)
|
|
principal.Initialize
|
|
B4XPages.AddPage("Principal", principal)
|
|
clientes.Initialize
|
|
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)
|
|
noVenta.Initialize
|
|
B4XPages.AddPage("NoVenta", noVenta)
|
|
nota.Initialize
|
|
B4XPages.AddPage("Nota", nota)
|
|
pedidos.Initialize
|
|
B4XPages.AddPage("Pedidos", pedidos)
|
|
promos.Initialize
|
|
B4XPages.AddPage("Promos", promos)
|
|
historico.Initialize
|
|
B4XPages.AddPage("Historico", historico)
|
|
checklist.Initialize
|
|
B4XPages.AddPage("CheckList", checklist)
|
|
Panel1.Top = 0 : Panel1.left = 0
|
|
ruta = Starter.ruta
|
|
Starter.tiempos.Initialize
|
|
kh.guardaAppInfo
|
|
Log(111)
|
|
'Revisamos si se disparo el intent de cargar la base de datos desde WhatApp.
|
|
If kh.traeUsarIntentBDWA Then kh.importaBDDesdeWhatsApp
|
|
|
|
' Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
|
|
' c=Starter.skmt.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.skmt.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.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
|
|
' Catch
|
|
' Log(LastException)
|
|
' End Try
|
|
' End Try
|
|
' Try 'Agregamos columna fecha a usuarioa
|
|
' c=Starter.skmt.ExecQuery("SELECT fecha FROM usuarioa")
|
|
' Catch
|
|
' LogColor("Agregamos columna fecha a usuarioa", Colors.red)
|
|
' Starter.skmt.ExecNonQuery("ALTER TABLE usuarioa ADD COLUMN FECHA TEXT")
|
|
' End Try
|
|
' 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.DBReqServer))
|
|
' End If
|
|
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
|
|
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", "MAIN"))
|
|
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.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.server = c.GetString("CAT_VA_VALOR")
|
|
' reqManager.Initialize(Me, Starter.server)
|
|
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.skmt.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
|
|
Log(222)
|
|
' 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)
|
|
' If Result Then
|
|
'' Dim Phn As PhoneId
|
|
' IMEN.Text = "" 'Phn.GetDeviceId
|
|
' IMEI ="" ' Phn.GetDeviceId
|
|
' If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue)
|
|
' End If
|
|
' Log("Permisos cel terminados")
|
|
IMEN.Text = ""
|
|
IMEI ="" ' Phn.GetDeviceId
|
|
|
|
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
|
|
Wait For B4XPAge_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)
|
|
End If
|
|
Log("33***********************************************33")
|
|
MES1.Initialize(Me, "MES1")
|
|
' Log("SDK: " & device.SdkVersion)
|
|
' 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.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted
|
|
Wait For B4XPage_PermissionResult (Permission As String, ResultY As Boolean)
|
|
Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${ResultY}"$)
|
|
Log("SDK = " & SdkVersion & " : Requesting READ_EXTERNAL_STORAGE permission")
|
|
Dim rp As RuntimePermissions
|
|
rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE) ' Implicit read capability if granted
|
|
Wait For B4XPage_PermissionResult (Permission As String, ResultX As Boolean)
|
|
Log($"PERMISSION_READ_EXTERNAL_STORAGE = ${ResultX}"$)
|
|
Else
|
|
Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission")
|
|
Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission)
|
|
If Not(MES1.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 MES permission")
|
|
MES1.GetPermission
|
|
Wait For MES_StorageAvailable
|
|
End If
|
|
End If
|
|
Log(MES1.IsInitialized)
|
|
Log(MES1.HasPermission)
|
|
Log("44***********************************************44")
|
|
MES1.Initialize(Me, "MES1")
|
|
' 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))
|
|
kh.centraPanel(p_botones, Root.Width)
|
|
End Sub
|
|
|
|
Sub B4XPage_Appear
|
|
Log(">>>>>> APPEAR - INICIAMOS MAIN PAGE <<<<<<<<<")
|
|
linker.Initialize(Me, "Linker", True)
|
|
clicked = 0
|
|
If Not(MES1.IsInitialized) Then MES1.Initialize(Me, "MES1")
|
|
' Log(DateTime.GetDayOfWeek(DateTime.Now))
|
|
kh.RD_Init
|
|
kh.SetButtonTintList(cb_geocerca, Colors.LightGray, Colors.RGB(43, 154, 211))
|
|
kh.SetButtonTintList(cb_cartaPorte, Colors.LightGray, Colors.RGB(43, 154, 211))
|
|
cb_geocerca.Checked = kh.traeUsarGeocerca
|
|
cb_cartaPorte.Checked = kh.traeUsarCartaPorte
|
|
' Log("LLAMAMOS traeUsarIntentBDWA")
|
|
cb_importarBDWA.Checked = kh.traeUsarIntentBDWA
|
|
et_maxClientesNuevos.Text = kh.traeMaxClientesNuevos
|
|
' server = "http://keymon.com.mx:1782"
|
|
' server = "http://201.99.139.28:1782"
|
|
' server = "http://177.244.63.54:1782"
|
|
reqManager.Initialize(Me, Starter.DBReqServer)
|
|
Starter.montoActual = 0
|
|
Starter.clientesTotal = 0
|
|
Starter.clientesVenta = 0
|
|
Starter.clientesVisitados = 0
|
|
almacen = 0
|
|
Starter.rutaPreventa = 0
|
|
Starter.CANTIDADPROD = 0
|
|
c.Close
|
|
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.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.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO","743"))
|
|
End If
|
|
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.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
|
|
End If
|
|
' D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version")
|
|
' D.Position = 0
|
|
' If D.GetString("CUANTOS") > 0 Then
|
|
' c = Starter.skmt.ExecQuery("select NOVERSION from version")
|
|
' c.Position = 0
|
|
' If c.GetString("NOVERSION") = "2.1" Then
|
|
' Starter.skmt.ExecNonQuery("delete from VERSION")
|
|
' End If
|
|
' c.Close
|
|
' End If
|
|
' D.Close
|
|
' D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version")
|
|
' D.Position = 0
|
|
' If D.GetString("CUANTOS") > 0 Then
|
|
' c = Starter.skmt.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
|
|
' End If
|
|
' Log(">>>>>> FECHA")
|
|
cmd.Initialize
|
|
cmd.Name = "select_fecha"
|
|
' cmd.Parameters = Array As Object(Null)
|
|
reqManager.ExecuteQuery(cmd , 0, "fecha")
|
|
Log("############### PAGE_APPEAR ####################")
|
|
Log(MES1.IsInitialized)
|
|
If MES1.IsInitialized Then
|
|
LogColor("Permisos de almacenamiento: " & MES1.HasPermission, Colors.Magenta)
|
|
' If MES1.HasPermission Then kh.revisaSiExisteRespaldo '' Se comenta causa el error de que en el primer cliente,al guardar la venta se trabe la aplicacion!!
|
|
End If
|
|
DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
|
|
Starter.skmt.ExecNonQuery($"insert into versiones (version, fecha) values ('${Application.VersionName}', '${DateTime.Date(DateTime.Now)}')"$)
|
|
End Sub
|
|
|
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
|
|
|
Sub pass_EnterPressed
|
|
Entrar_Click
|
|
End Sub
|
|
|
|
Sub Entrar_Click
|
|
DateTime.DateFormat = "yyyyMMdd"
|
|
user.Text = user.Text.Trim
|
|
If user.Text = "KMTSKLL1" Then
|
|
Starter.skmt.ExecNonQuery("delete from usuarioa")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?,?)", Array As Object(user.Text, pass.Text, DateTime.Date(DateTime.Now)))
|
|
Starter.skmt.ExecNonQuery("delete from cat_almacen")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text))
|
|
' Starter.skmt.ExecNonQuery("delete from VERSION")
|
|
' Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95"))
|
|
B4XPages.ShowPage("Principal")
|
|
End If
|
|
' c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
|
|
c = Starter.skmt.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")
|
|
' 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.Parameters = Array As Object(user.Text, pass.Text)
|
|
reqManager.ExecuteQuery(cmd , 0, "usuario")
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "select_version_KELL"
|
|
reqManager.ExecuteQuery(cmd , 0, "version")
|
|
Else
|
|
Subs.iniciaActividad("Principal")
|
|
' B4XPages.ShowPage("Principal")
|
|
End If
|
|
End Sub
|
|
|
|
Sub JobDone(Job As HttpJob)
|
|
Log("JOBDONE MAINPAGE")
|
|
If Job.Tag.As(String).StartsWith("_KMS_") Then Job.tag = Job.Tag.As(String).SubString(16)
|
|
If Job.Success = False Then
|
|
LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
|
|
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.skmt.ExecNonQuery("delete from VERSION")
|
|
Dim CAT_VE_VERSION As String = records(result.Columns.Get("CAT_VE_VERSION"))
|
|
Starter.skmt.ExecNonQuery("delete from VERSION")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
|
|
Next
|
|
End If
|
|
|
|
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
|
|
|
|
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.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", Starter.FECHA_HOY))
|
|
Next
|
|
End If
|
|
|
|
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"))
|
|
Next
|
|
paso1 = 1
|
|
End If
|
|
'BYPASS EXTRAS
|
|
If result.Tag = "traeBypass" Then 'query tag
|
|
If result.Rows.Size = 1 Then ' Si hay contraseña de bypass
|
|
For Each records() As Object In result.Rows
|
|
Starter.passSupervisor = records(result.Columns.Get("BYPASS"))
|
|
Next
|
|
Log("CONTRASEÑA VALIDA " & Starter.passSupervisor)
|
|
b_importarBD.Visible = True
|
|
p_importarBDWA.Visible = True
|
|
Starter.passSupervisor = user.Text.Trim
|
|
Else
|
|
Log("CONTRASEÑA INVALIDA")
|
|
b_importarBD.Visible = False
|
|
p_importarBDWA.Visible = False
|
|
End If
|
|
End If
|
|
'BYPASS IMPORTAR BD WA
|
|
If result.Tag = "bypass" Then 'query tag
|
|
If result.Rows.Size = 1 Then ' Si hay contraseña de bypass
|
|
Log("CONTRASEÑA VALIDA " & Starter.passSupervisor)
|
|
b_importarBD.Visible = True
|
|
p_importarBDWA.Visible = True
|
|
Starter.passSupervisor = user.Text.Trim
|
|
Else
|
|
Log("CONTRASEÑA INVALIDA")
|
|
b_importarBD.Visible = False
|
|
p_importarBDWA.Visible = False
|
|
End If
|
|
End If
|
|
If result.tag = "traeConexion" Then
|
|
Subs.logJobDoneResultados(result)
|
|
End If
|
|
End If
|
|
Job.Release
|
|
End If
|
|
|
|
If paso1 =1 Then
|
|
If name = "OKActivo" Then
|
|
LogColor("Borramos e insertamos a usuarioa", Colors.green)
|
|
DateTime.DateFormat = "yyyyMMdd"
|
|
Starter.skmt.ExecNonQuery("delete from usuarioa")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?,?)", Array As Object(user.Text, pass.Text, DateTime.Date(DateTime.Now)))
|
|
Starter.skmt.ExecNonQuery("delete from cat_almacen")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN))
|
|
almacen = 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")
|
|
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
|
|
Else
|
|
Msgbox("Usuario o password No validos","") 'ignore
|
|
End If
|
|
paso1 = 0
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
|
' BACK key pressed
|
|
'Return True to close, False to cancel
|
|
Log("BACK")
|
|
If p_extras.Visible Then
|
|
p_extras.Visible = False
|
|
Return False
|
|
else If Panel1.Visible Then
|
|
Panel1.Visible = False
|
|
Entrar.Visible = True
|
|
p_extras.Visible = False
|
|
Return False
|
|
Else
|
|
If logger Then Log("Saliendo")
|
|
B4XPages.ClosePage(Me)
|
|
Subs.cierraActividades
|
|
Return True
|
|
End If
|
|
End Sub
|
|
|
|
Sub GPS_LocationChanged (Location1 As Location)
|
|
If user.text = "GPS" Then
|
|
user.Text=Location1.Latitude
|
|
pass.text=Location1.Longitude
|
|
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
|
|
|
|
End Sub
|
|
|
|
Sub user_EnterPressed
|
|
If user.Text = "CODIGO" Then
|
|
IMEN.Visible = True
|
|
user.Text = ""
|
|
End If
|
|
DateTime.DateFormat = "yyyyMMdd"
|
|
c = Starter.skmt.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 Sub
|
|
|
|
Sub i_engranes_Click
|
|
Entrar.Visible = False
|
|
ime.HideKeyboard
|
|
user.Text = user.Text.Trim
|
|
' 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
|
|
et_geocerca.Text = "."
|
|
et_geocerca.Text = ""
|
|
If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://192.99.93.204:1781")
|
|
ListView1.AddSingleLine("http://keymon.net:1781")
|
|
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
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "selectBypass" ' Trae la contraseña desde la tabla "BYPASS" en web. (La ultima es KMT2025)
|
|
cmd.Parameters = Array As Object(user.Text.Trim)
|
|
reqManager.ExecuteQuery(cmd , 0, "bypass")
|
|
' Log($"${Starter.DBReqServer}, ${user.Text}, ${Subs.traeAlmacen}, ${Subs.traeRuta}"$)
|
|
End Sub
|
|
|
|
Private Sub i_engranes_LongClick
|
|
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
|
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
|
|
' Subs.copiaDB(Result)
|
|
' Dim x As Int = "a"
|
|
Dim reqManagerW As DBRequestManagerW
|
|
reqManagerW.Initialize
|
|
cmd.Initialize
|
|
|
|
cmd.Name = "select_usuario_guna_KELL"
|
|
cmd.Parameters = Array As Object(user.Text, pass.Text)
|
|
reqManagerW.ExecuteQuery(Starter.DBReqServer, cmd, Me, "elUsuario")
|
|
Wait For elUsuario_Completed (res1 As TResultado)
|
|
Log("tag: " & res1.tag & " Success: " & res1.Success)
|
|
If res1.Success Then
|
|
Subs.logJobDoneResultados(res1.resultado)
|
|
Else
|
|
Log(res1.ErrorMessage)
|
|
End If
|
|
|
|
cmd.Name = "select_version_KELL"
|
|
cmd.Parameters = Array()
|
|
reqManagerW.ExecuteQuery(Starter.DBReqServer, cmd, Me, "laVersion")
|
|
Wait For laVersion_Completed (res2 As TResultado)
|
|
Log("tag: " & res2.tag & " Success: " & res2.Success)
|
|
If res2.Success Then
|
|
Subs.logJobDoneResultados(res2.resultado)
|
|
Else
|
|
Log(res2.ErrorMessage)
|
|
End If
|
|
|
|
cmd.Name = "delete_geoPass"
|
|
cmd.Parameters = Array As Object( Subs.traeAlmacen, Subs.traeRuta)
|
|
reqManagerW.ExecuteCommand(Starter.DBReqServer, cmd, Me, "borraGeoPass")
|
|
Wait For borraGeoPass_Completed (res3 As TResultado)
|
|
Log("tag: " & res3.tag & " Success: " & res3.Success)
|
|
If res3.Success Then
|
|
Subs.logJobDoneResultados(res3.resultado)
|
|
Else
|
|
Log(res3.ErrorMessage)
|
|
End If
|
|
End Sub
|
|
|
|
Sub elUsuario_Completed (res As DBResult)
|
|
Log("abc: " & res.tag)
|
|
Log("wrapper: " & res)
|
|
End Sub
|
|
|
|
Sub laVersion_Completed (res As DBResult)
|
|
Log("def: " & res.tag)
|
|
Log("wrapper2: " & res)
|
|
End Sub
|
|
|
|
Sub B_SERVER_Click
|
|
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))
|
|
Starter.DBReqServer = E_SERVER.text
|
|
If logger Then Log("Inicializamos reqManager con " & Starter.DBReqServer)
|
|
reqManager.Initialize(Me, Starter.DBReqServer)
|
|
CallSubDelayed2(Starter, "reinicializaReqManager", Starter.DBReqServer)
|
|
Panel1.Visible = False
|
|
Entrar.Visible = True
|
|
End Sub
|
|
|
|
Sub B_MACIMP_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 ListView1_ItemClick (Position As Int, Value As Object)
|
|
E_SERVER.text = Value
|
|
End Sub
|
|
|
|
Sub ImageView1_Click
|
|
|
|
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.skmt.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.skmt.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
|
|
c.Close
|
|
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, "kmt_kelloggs.db")
|
|
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("kmt_kelloggs.db"))
|
|
' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment
|
|
Dim in As Intent = email.GetIntent
|
|
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
|
|
StartActivity(in)
|
|
End Sub
|
|
|
|
Private Sub b_cargaLocal_Click
|
|
p_cargaLocal.left = (Root.Width / 2) - (p_cargaLocal.Width / 2)
|
|
p_cargaLocal.BringToFront
|
|
p_cargaLocal.Elevation = 100dip
|
|
p_cargaLocal.Top = E_SERVER.top
|
|
p_cargaLocal.Visible = True
|
|
' kh.string2date("10/03/2023")
|
|
Log("CL" & (3 * DateTime.GetDayOfMonth(DateTime.now)) & (DateTime.GetMonth(DateTime.now) * 4))
|
|
End Sub
|
|
|
|
Private Sub p_cargaLocal_Click
|
|
End Sub
|
|
|
|
'Recibe la contraseña para la carga local -> "CL" + diaMes * 3 + numMes * 4
|
|
'Ej: Si por ejemplo, hoy es 5 de agosto, ponemos : CL1532
|
|
'Si se agrega un numero despues de la contraseña, lo toma como los dia hacia atras para tomar el dìa de respaldo.
|
|
'Ej: CL1532-2 Serìa restaurar el respaldo del dìa 3 de agosto (5-2), puede haber espacios entre la clave y el numero de dìas.
|
|
Private Sub b_cargaLocalOk_Click
|
|
Private pass1 As String = "CL" & (3 * DateTime.GetDayOfMonth(DateTime.now)) & (DateTime.GetMonth(DateTime.now) * 4)
|
|
If et_cargaLocal.Text.StartsWith(pass1) Then
|
|
p_cargaLocal.Visible = False
|
|
' Log(et_cargaLocal.Text.Length > pass1.Length)
|
|
|
|
Log(et_cargaLocal.text)
|
|
If et_cargaLocal.Text.Length = pass1.Length Then ' Si no se especifica nada, la fecha es hoy MENOS un día.
|
|
et_cargaLocal.text = et_cargaLocal.text & "-1"
|
|
If DateTime.GetDayOfWeek(DateTime.Now) = 2 Then ' Si hoy es LUNES, la fecha es hoy menos 2 dias.
|
|
et_cargaLocal.text = et_cargaLocal.text & "-2"
|
|
End If
|
|
End If
|
|
Log(et_cargaLocal.text)
|
|
Log(DateTime.GetDayOfWeek(DateTime.Now))
|
|
|
|
' RD_fechaRestauracion - Si esta en blanco, la fecha de restauracion es HOY, si no, es la especificada en "ticks".
|
|
kh.RD_fechaRestauracion = ""
|
|
|
|
' Si a la contraseña se le agrega un -1 o -2, aqui se procesa para saber de cuantos dias antes traemos el respaldo.
|
|
If et_cargaLocal.Text.Length > pass1.Length Then
|
|
Private dias As String = et_cargaLocal.Text.SubString(pass1.Length).Trim
|
|
' Log("|" & dias & "|")
|
|
If IsNumber(dias) Then
|
|
Dim p As Period
|
|
p.Days = dias
|
|
Dim nextdate As Long = DateUtils.AddPeriod(DateTime.Now, p)
|
|
kh.RD_fechaRestauracion = nextdate
|
|
Log($"Restauramos respaldo de fecha: $Date{nextdate}"$)
|
|
Else
|
|
Log("NOT NUMBER")
|
|
End If
|
|
End If
|
|
|
|
DateTime.DateFormat = "YYYY-MMM-dd"
|
|
Private fechaRes As String = DateTime.Date(DateTime.now)
|
|
If kh.RD_fechaRestauracion <> "" Then fechaRes = DateTime.Date(kh.RD_fechaRestauracion)
|
|
|
|
Msgbox($"Se va a restaurar el respaldo de la fecha: ${fechaRes}"$, "AVISO")
|
|
|
|
kh.revisaRkmtAttached
|
|
kh.RD_restaura_cat_variables
|
|
kh.RD_restaura_cat_gunaprod
|
|
kh.RD_restaura_cat_gunaprod2
|
|
kh.RD_restaura_cat_detalle_paq
|
|
kh.RD_restaura_promos_comp
|
|
Sleep(500)
|
|
kh.RD_restaura_kmt_info
|
|
|
|
ime.HideKeyboard
|
|
' DateTime.DateFormat = "yyyyMMdd"
|
|
' Starter.skmt.ExecNonQuery($"update USUARIOA set fecha = '${DateTime.Date(DateTime.Now)}'"$)
|
|
ToastMessageShow("¡¡CARGA EXITOSA!!", True)
|
|
Else
|
|
ToastMessageShow("CODIGO EQUIVOCADO", True)
|
|
End If
|
|
et_cargaLocal.Text = ""
|
|
End Sub
|
|
|
|
Private Sub b_cargaLocalCancelar_Click
|
|
p_cargaLocal.Visible = False
|
|
End Sub
|
|
|
|
Private Sub b_importarBD_Click
|
|
Private FH As FileHandler
|
|
FH.Initialize
|
|
Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar.
|
|
File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno.
|
|
Starter.skmt.Initialize(Starter.ruta,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada.
|
|
Private c As Cursor = Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'APP_NAME'")
|
|
If c.RowCount > 1 Then
|
|
c.Position = 0
|
|
ToastMessageShow($"BD de ${c.GetString("APP_NAME")} importada!"$, True)
|
|
Else
|
|
ToastMessageShow($"¡BD importada!"$, True)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cb_geocerca_CheckedChange(Checked As Boolean)
|
|
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'GEOCERCA'")
|
|
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('GEOCERCA', '${Checked}')"$)
|
|
End Sub
|
|
|
|
Private Sub cb_cartaPorte_CheckedChange(Checked As Boolean)
|
|
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'CARTAPORTE'")
|
|
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('CARTAPORTE', '${Checked}')"$)
|
|
End Sub
|
|
|
|
Private Sub et_maxClientesNuevos_TextChanged (Old As String, New As String)
|
|
If IsNumber(New) Then
|
|
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'MAXCTESNUEVOS'")
|
|
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('MAXCTESNUEVOS', '${New}')"$)
|
|
End If
|
|
End Sub
|
|
|
|
private Sub l_geocerca_Click
|
|
If cb_geocerca.Enabled = False Then ToastMessageShow("Ingrese la contraseña para modificar", True)
|
|
End Sub
|
|
|
|
Private Sub et_geocerca_TextChanged (Old As String, New As String)
|
|
Private x As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_PASS'"$)
|
|
Log(New & "|" & Starter.passSupervisor)
|
|
If x.RowCount > 0 Then
|
|
x.Position = 0
|
|
If New = x.GetString("CAT_VA_VALOR") Or New = Starter.passSupervisor Then
|
|
cb_geocerca.Enabled = True
|
|
cb_cartaPorte.Enabled = True
|
|
et_maxClientesNuevos.Enabled = True
|
|
l_geocerca.TextColor = Colors.RGB(43, 154, 211)
|
|
l_cartaPorte.TextColor = Colors.RGB(43, 154, 211)
|
|
l_maxClientesNuevos.TextColor = Colors.RGB(43, 154, 211)
|
|
et_maxClientesNuevos.TextColor = Colors.RGB(43, 154, 211)
|
|
Else
|
|
cb_geocerca.Enabled = False
|
|
cb_cartaPorte.Enabled = False
|
|
et_maxClientesNuevos.Enabled = False
|
|
l_geocerca.TextColor = Colors.LightGray
|
|
l_cartaPorte.TextColor = Colors.LightGray
|
|
l_maxClientesNuevos.TextColor = Colors.LightGray
|
|
et_maxClientesNuevos.TextColor = Colors.LightGray
|
|
End If
|
|
Else if New = Starter.passSupervisor Then
|
|
cb_geocerca.Enabled = True
|
|
cb_cartaPorte.Enabled = True
|
|
et_maxClientesNuevos.Enabled = True
|
|
l_geocerca.TextColor = Colors.RGB(43, 154, 211)
|
|
l_cartaPorte.TextColor = Colors.RGB(43, 154, 211)
|
|
l_maxClientesNuevos.TextColor = Colors.RGB(43, 154, 211)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub b_extras_Click
|
|
p_extras.Top = E_SERVER.Top
|
|
kh.centraPanel(p_extras, Root.Width)
|
|
p_extras.Elevation = 100dip
|
|
p_extras.BringToFront
|
|
p_extras.Visible = True
|
|
End Sub
|
|
|
|
Private Sub p_extras_Click
|
|
End Sub
|
|
|
|
Private Sub b_aceptarExtras_Click
|
|
et_geocerca.Text = ""
|
|
p_extras.Visible = False
|
|
End Sub
|
|
|
|
Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean)
|
|
' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red)
|
|
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
|
|
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$)
|
|
End Sub
|
|
|
|
Sub CreateRequest As DBRequestManager
|
|
Dim req As DBRequestManager
|
|
req.Initialize(Me, Starter.DBReqServer)
|
|
Return req
|
|
End Sub
|
|
|
|
Sub CreateCommand(Name As String, Parameters() As Object) As DBCommand
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = Name
|
|
If Parameters <> Null Then cmd.Parameters = Parameters
|
|
Return cmd
|
|
End Sub
|
|
|
|
Sub GetFecha
|
|
Dim req As DBRequestManager = CreateRequest
|
|
Dim cmd As DBCommand = CreateCommand("select_fecha", Array(Null))
|
|
Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)
|
|
If j.Success Then
|
|
req.HandleJob(j)
|
|
Wait For (req) req_Result(res As DBResult)
|
|
'work with result
|
|
req.PrintTable(res)
|
|
Else
|
|
Log("ERROR: " & j.ErrorMessage)
|
|
End If
|
|
j.Release
|
|
End Sub
|
|
|
|
Private Sub ImageView1_LongClick
|
|
' Log("###### TRAEMOS FECHA #######")
|
|
' GetFecha
|
|
|
|
' Log("traeConexion")
|
|
' Private reqManagerX As DBRequestManager
|
|
' reqManagerX.Initialize(Me, "http://keymon.net:9010")
|
|
' Private cmdX As DBCommand
|
|
' cmdX.Initialize
|
|
' cmdX.Name = "update_usuario_guna_nobajas"
|
|
' cmdX.Parameters = Array As Object("CDAZA")
|
|
' reqManagerX.Executequery(cmdX, 0, "traeConexion")
|
|
|
|
If Subs.traeAlmacen <> "" Then
|
|
linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta)
|
|
End If
|
|
End Sub
|
|
|
|
Sub ponUsuario
|
|
Private cu As Cursor = Starter.skmt.ExecQuery("select USUARIO from USUARIOA")
|
|
If cu.RowCount > 0 Then
|
|
cu.Position = 0
|
|
If cu.GetString("USUARIO") <> "" Then user.Text = cu.GetString("USUARIO")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Label4_Click
|
|
clicked = clicked + 1
|
|
Log(clicked)
|
|
If clicked >= 5 Then
|
|
clicked = 0
|
|
ponUsuario
|
|
End If
|
|
End Sub
|
|
|
|
Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
|
If Starter.Logger Then LogColor($"Respuesta de DeviceLinker para la verificación del dispositivo: ${Status}"$, Colors.Magenta) '
|
|
Select Status
|
|
Case "UUID_ERROR"
|
|
Log("Error interno al obtener el identificador único del dispositivo.")
|
|
ToastMessageShow("Error interno al obtener el identificador único del dispositivo.", True)
|
|
Case "HTTP_ERROR"
|
|
LogColor("Error HTTP al verificar el dispositivo: " & linker.lastJobDoneError, Colors.Red)
|
|
ToastMessageShow("Error de conexión al servidor durante la verificación del dispositivo.", True)
|
|
Case "SERVER_LOGIC_ERROR"
|
|
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
|
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
|
Case "OK"
|
|
Log("Dispositivo ligado y verificado exitosamente.")
|
|
ToastMessageShow("Dispositivo verificado y ligado correctamente.", False)
|
|
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
|
Case "NO_REGISTRADO"
|
|
Log("Dispositivo NO registrado.")
|
|
ToastMessageShow("Dispositivo NO registrado.", False)
|
|
Case "REGISTRO_NUEVO"
|
|
Log("¡¡Registro nuevo!!")
|
|
ToastMessageShow("¡¡Registro nuevo!!", False)
|
|
Case "YA_REGISTRADO"
|
|
Log("¡¡El dispositivo ya esta registrado con otra ruta!!")
|
|
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
|
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
|
Log($"Estado de verificación del dispositivo: ${Status}"$)
|
|
ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
|
' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
|
End Select
|
|
End Sub |