mirror of
https://github.com/KeymonSoft/Mariana-Reparto-V5.git
synced 2026-04-17 12:56:11 +00:00
Se agrega codigo unico de imei
Se agrego el brinco para replicar con el KMTM se agrego que mande la fecha
This commit is contained in:
@@ -95,6 +95,7 @@ Sub Class_Globals
|
||||
Private b_regreso As Button
|
||||
Private lv_prod_Prin As ListView
|
||||
Private b_venta_emp As Button
|
||||
Dim linker As C_deviceLinker
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
@@ -167,6 +168,8 @@ End Sub
|
||||
|
||||
Sub B4XPage_Appear
|
||||
|
||||
linker.Initialize(Me, "Linker", True)
|
||||
|
||||
Private c As Cursor = Starter.skmt.ExecQuery("SELECT * FROM NOVENTA")
|
||||
If c.RowCount > 0 Then
|
||||
Starter.skmt.ExecNonQuery("Update kmt_info set gestion = 2 WHERE CAT_CL_CODIGO IN (SELECT NV_CLIENTE FROM NOVENTA WHERE NV_MOTIVO = 'ENTREGA')")
|
||||
@@ -243,6 +246,9 @@ Sub B4XPage_Appear
|
||||
' If f.RowCount > 0 Then l_ruta.Text = f.GetString("CAT_CL_RUTA")
|
||||
' f.Close
|
||||
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
Log($"DBREQSERVER = ${Starter.DBReqServer}"$)
|
||||
|
||||
cargar.Visible = False
|
||||
Subir.Visible = False
|
||||
connecta.Visible = True
|
||||
@@ -1064,8 +1070,8 @@ Sub cargar_Click
|
||||
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a Internet", "Revisa tu conexión")
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_ruta_entrega_cargada"
|
||||
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
|
||||
cmd.Name = "select_ruta_entrega_cargada2"
|
||||
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, Subs.traeUsuario)
|
||||
reqManager.ExecuteQuery(cmd ,0, "entrega_cargada")
|
||||
End If
|
||||
|
||||
@@ -1386,7 +1392,7 @@ Sub JobDone(Job As HttpJob)
|
||||
' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV"))
|
||||
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(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) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (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))
|
||||
' Log(" ++ insert into CAT_GUNAPROD: "&CAT_GP_ID&","&CAT_GP_NOMBRE&","&CAT_GP_IMP1)
|
||||
Log(CAT_GP_NOMBRE & "<-------------------------------------")
|
||||
' Log(CAT_GP_NOMBRE & "<-------------------------------------")
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(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,CONVERSION,PRECIOCONVER) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (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, 0,CONVERSION,PRECIOCONVER))
|
||||
Next
|
||||
Starter.skmt.TransactionSuccessful
|
||||
@@ -1661,17 +1667,17 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
End If
|
||||
|
||||
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"))
|
||||
' Log(" ++ insert into VERSION: "&CAT_VE_VERSION)
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
' 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"))
|
||||
'' Log(" ++ insert into VERSION: "&CAT_VE_VERSION)
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
|
||||
' Next
|
||||
' End If
|
||||
' End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
@@ -1702,7 +1708,7 @@ Sub JobDone(Job As HttpJob)
|
||||
Else If l_ctast.Text <> "0" Then
|
||||
Subir.Visible = False
|
||||
End If
|
||||
cargar.Visible = True
|
||||
' cargar.Visible = True
|
||||
If Subs.dameUsuarioDeDB = "ROOT" Then Subir.Visible = True
|
||||
connecta.Visible = False
|
||||
Starter.skmt.ExecNonQuery("DELETE FROM RUTAA")
|
||||
@@ -1712,6 +1718,11 @@ Sub JobDone(Job As HttpJob)
|
||||
If conn = "1" Then
|
||||
ToastMessageShow("Existe Conexión con el Servidor." , True)
|
||||
End If
|
||||
|
||||
' EL EVENTO DE CONECTAR AHORA SE DISPARA DESPUES DE REVISAR SI LA RUTA ESTA LIGADA O NO AL DISPOSITIVO (verifyDevice).
|
||||
' REVISAR EL SUB "Linker_Response"
|
||||
linker.verifyDevice(Subs.traeAlmacen, e_ruta.text)
|
||||
|
||||
Else
|
||||
cargar.Visible = False
|
||||
Subir.Visible = False
|
||||
@@ -1756,7 +1767,7 @@ Sub JobDone(Job As HttpJob)
|
||||
Else
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "update_ruta_entrega_cargada"
|
||||
cmd.Name = "update_ruta_entrega_cargada2"
|
||||
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text)
|
||||
reqManager.ExecuteCommand(cmd , "update_rrcargada")
|
||||
Starter.skmt.ExecNonQuery("DELETE FROM RUTAA")
|
||||
@@ -1962,13 +1973,14 @@ Sub connecta_Click
|
||||
imei = "" 'p.GetDeviceId
|
||||
conn = "1"
|
||||
ime.HideKeyboard
|
||||
' Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "select_version_MARDS"
|
||||
' reqManager.ExecuteQuery(cmd , 0, "version")
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_version_MARDS"
|
||||
reqManager.ExecuteQuery(cmd , 0, "version")
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_ruta_re_REPG3"
|
||||
cmd.Name = "select_ruta_re_REPG4"
|
||||
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, Subs.traeUsuario)
|
||||
' Log($"${ALMACEN}, ${e_ruta.text}, ${imei}"$)
|
||||
reqManager.ExecuteQuery(cmd , 0, "ruta")
|
||||
@@ -1978,6 +1990,24 @@ Sub connecta_Click
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub connecta_LongClick
|
||||
' Private h As ResultSet = Starter.skmt.ExecQuery($"select * from bitacoraGPS"$)
|
||||
' Do While h.nextrow
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "mandaBitacora"
|
||||
'' TMP_ALMACEN, TMP_USUARIO, TMP_RUTA, TMP_EVENTO, TMP_ID_CLIENTE, TMP_NOMBRE_CLIENTE, TMP_INICIO, TMP_FINAL, TMP_LATITUD, TMP_LONGITUD, TMP_PRESICION, TMP_MOTIVO_NO_VENTA, TMP_MOTIVO_NO_VISITA, TMP_FECHA_SINC
|
||||
' cmd.Parameters = Array As Object(h.GetString("almacenb"), h.GetString("usuariob"), h.GetString("rutab"), h.GetString("eventob"), h.GetString("clienteb"), h.GetString("clienteb"), h.GetString("iniciob"), h.GetString("finb"), h.GetString("latitudb"), h.GetString("longitudb"), h.GetString("precision"), h.GetString("motivonoventa"), h.GetString("motivonovisita"))
|
||||
' reqManager.ExecuteCommand(cmd , "mandaBitacora")
|
||||
'' cmd.Name = "borraBitacora"
|
||||
'' cmd.Parameters = Array As Object(c.GetString("almacenb"), c.GetString("rutab"), c.GetString("usuariob"), c.GetString("almacenb"))
|
||||
' Loop
|
||||
'' End If
|
||||
' Log("MANDAMOS BITACORA")
|
||||
If e_ruta.Text = "KMTM" Then Subs.deshabilitaValidaciones
|
||||
' B4XPages.MainPage.recordatorio.agregaPanelRecordatorio(Root)
|
||||
End Sub
|
||||
|
||||
|
||||
Sub BUSCA_Click
|
||||
If b_check.Visible = True Then
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
@@ -2014,6 +2044,8 @@ Sub e_ruta_EnterPressed
|
||||
Starter.skmt.ExecNonQuery("DELETE FROM TABULADOR_MONEDAS")
|
||||
Starter.skmt.ExecNonQuery("DELETE FROM TABULADOR_BILLETES")
|
||||
Starter.skmt.ExecNonQuery("DELETE FROM RUTAA")
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE"))
|
||||
|
||||
B4XPage_Appear
|
||||
End If
|
||||
' Starter.waypointsOrdered.Clear
|
||||
@@ -2377,4 +2409,57 @@ Private Sub b_venta_emp_Click
|
||||
Starter.skmt.ExecNonQuery("delete from CUENTAA")
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("63403"))
|
||||
B4XPages.ShowPage("Cliente")
|
||||
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) '
|
||||
' End If
|
||||
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("ocultamos cargar")
|
||||
cargar.Visible = True
|
||||
Log("########################################################")
|
||||
Log("Dispositivo vinculado y verificado exitosamente.")
|
||||
ToastMessageShow("Dispositivo verificado y vinculado 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.
|
||||
' connecta2
|
||||
Case "REGISTRO_COMPLETO"
|
||||
Log("ocultamos cargar")
|
||||
cargar.Visible = True
|
||||
Log("########################################################")
|
||||
Log("¡Registro completo!")
|
||||
ToastMessageShow("¡Registro completo!", False)
|
||||
' connecta2
|
||||
Case "SIN_REGISTRO"
|
||||
Log("########################################################")
|
||||
Log("Sin registro")
|
||||
ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||
linker.linkDevice(Subs.traeAlmacen, e_ruta.text)
|
||||
Case "REGISTRANDO"
|
||||
Log("¡Registro en proceso!")
|
||||
ToastMessageShow("¡Registro en proceso!", True)
|
||||
Case "YA_REGISTRADO"
|
||||
Log("ocultamos cargar")
|
||||
cargar.Visible = False
|
||||
Subir.Visible = False
|
||||
Log("########################################################")
|
||||
Log("¡El dispositivo ya esta registrado con otra ruta!")
|
||||
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||
Msgbox2("Esa ruta ya esta registrada en otro dispositivo", "RUTA INCORRECTA","Aceptar", "", "",Null) 'ignore
|
||||
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||
Log("########################################################")
|
||||
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
|
||||
310
B4A/C_deviceLinker.bas
Normal file
310
B4A/C_deviceLinker.bas
Normal file
@@ -0,0 +1,310 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=12.8
|
||||
@EndOfDesignText@
|
||||
'-----------------------------------------------------------------------------------
|
||||
' Modulo de Clase: DeviceLinker.bas
|
||||
' Propósito: Gestionar el GUID del dispositivo y verificar/ligar el dispositivo
|
||||
' a un almacén y ruta en el servidor de forma segura.
|
||||
'-----------------------------------------------------------------------------------
|
||||
' Ejemplo de uso:
|
||||
' ==== En config.properties ====
|
||||
' sql.verify_device=Select nvl(CAT_RU_IDTELEFONO, 0) As CAT_RU_IDTELEFONO from kelloggs.CAT_RUTAS where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||
' sql.registarMovil=update kelloggs.CAT_RUTAS set CAT_RU_IDTELEFONO = ? where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||
' ==== En Class_Globals ====
|
||||
' Dim linker As C_deviceLinker '<<<< Class_Globals
|
||||
' ==== En B4XPage_Created ====
|
||||
' linker.Initialize(Me, "Linker", True) '<<<<<< B4XPage_Created
|
||||
' ==== En donde se quiera llamar ====
|
||||
' linker.VerifyDevice(Subs.traeAlmacen, Subs.traeRuta)
|
||||
' 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 "OK"
|
||||
' Log("########################################################")
|
||||
' ToastMessageShow("Dispositivo verificado y vinculado 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 "REGISTRO_COMPLETO"
|
||||
' Log("########################################################")
|
||||
' ToastMessageShow("¡Registro completo!", False)
|
||||
' Case "SIN_REGISTRO"
|
||||
' Log("########################################################")
|
||||
' ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||
' linker.linkDevice(Subs.traeAlmacen, e_ruta.text) '<<<<<<<<< Si no esta registrado lo registramos.
|
||||
' Case "REGISTRANDO"
|
||||
' ToastMessageShow("¡Registro en proceso!", True)
|
||||
' Case "YA_REGISTRADO"
|
||||
' Log("########################################################")
|
||||
' ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||
' Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||
' Log("########################################################")
|
||||
' 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
|
||||
|
||||
Sub Class_Globals
|
||||
' Configuración del servidor y comandos
|
||||
Private Const GUID_KEY_ALIAS As String = "DeviceGUID" ' << ALIAS PARA EL GUID EN EL KEYSTORE
|
||||
|
||||
' Objetos y variables internas
|
||||
Private kvs As KeyValueStore ' << ALMACENAMIENTO SEGURO PARA EL GUID
|
||||
Private CallBack As Object ' << OBJETO DE CALLBACK PARA ENVIAR RESPUESTAS
|
||||
Private EventName As String ' << NOMBRE DEL EVENTO DE RESPUESTA
|
||||
Public reqManager As DBRequestManager ' << GESTOR DE PETICIONES AL SERVIDOR jRDC
|
||||
Private logger As Boolean ' << PARA CONTROLAR LOS LOGS DE ESTA CLASE
|
||||
Dim lastJobDoneError As String = ""
|
||||
Dim almacen As String = ""
|
||||
Dim ruta As String = ""
|
||||
Dim deviceId As String = ""
|
||||
' Se requieren las siguientes librerías:
|
||||
' - KeyValueStore2
|
||||
' - DBRequestManager
|
||||
' - XUI
|
||||
Dim dlDB As SQL
|
||||
End Sub
|
||||
|
||||
' Inicializa la clase DeviceLinker.
|
||||
' PageObject: El módulo (ej. C_Principal) que inicializa esta clase y manejará sus respuestas (normalmente "Me").
|
||||
' NameOfEvent: El prefijo para el evento de respuesta (ej. "DeviceLinker_Response").
|
||||
' AppLogger: Booleano para activar/desactivar los logs internos de esta clase, siguiendo el Starter.Logger de la app.
|
||||
Public Sub Initialize (PageObject As Object, NameOfEvent As String, AppLogger As Boolean)
|
||||
CallBack = PageObject
|
||||
EventName = NameOfEvent
|
||||
logger = AppLogger ' Asignamos el estado del logger de la aplicación.
|
||||
|
||||
' Inicializamos el KeyValueStore para almacenamiento seguro del GUID
|
||||
kvs.Initialize(File.DirInternal, "DeviceKeyStore.b4xkey")
|
||||
If logger Then Log("B4XKeyStore 'DeviceKeyStore' inicializado.")
|
||||
|
||||
dlDB.Initialize(File.DirInternal, "deviceLink.db", True)
|
||||
dlDB.ExecNonQuery("CREATE TABLE IF NOT EXISTS Registro (GUID_KEY_ALIAS TEXT)") ' Creamos la tabla si no existe
|
||||
|
||||
' Inicializamos el DBRequestManager para las comunicaciones con el servidor.
|
||||
' 'Me' indica que el evento JobDone de esta clase se encargará de las respuestas de reqManager.
|
||||
' reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
' reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas
|
||||
' reqManager.Initialize(Me, "http://keymon.net:1781") 'Servidor productivo
|
||||
reqManager.Initialize(Me, Starter.DBReqServer) 'Servidor productivo
|
||||
|
||||
If logger Then Log("DBRequestManager para DeviceLinker inicializado.")
|
||||
If logger Then Log("DeviceLinker inicializado y listo para operar.")
|
||||
End Sub
|
||||
|
||||
' Verifica y liga el dispositivo con un almacén y una ruta en el servidor.
|
||||
' Almacen: El identificador del almacén.
|
||||
' Ruta: El identificador de la ruta.
|
||||
Public Sub verifyDevice(Almacen_ As String, Ruta_ As String)
|
||||
Private verificar As Boolean = True ' La verificacion se realiza por default
|
||||
Private tv As Cursor = Starter.skmt.ExecQuery("select * from cat_variables where CAT_VA_DESCRIPCION = 'VERIFY_DEVICE'")
|
||||
If tv.RowCount > 0 Then
|
||||
tv.Position = 0
|
||||
If tv.GetString("CAT_VA_VALOR") = 0 Then verificar = False
|
||||
End If
|
||||
If verificar Then ' Si VERIFY_DEVICE no está en CERO ... verificamos.
|
||||
Dim DeviceId_ As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||
LogColor(DeviceId_, Colors.red)
|
||||
almacen = Almacen_
|
||||
ruta = Ruta_
|
||||
deviceId = DeviceId_
|
||||
If DeviceId_ = "" Then
|
||||
If logger Then LogColor("Error: GUID del dispositivo no pudo ser obtenido o generado.", Colors.Red)
|
||||
' Enviar una respuesta de error al callback si no se pudo obtener el GUID.
|
||||
If SubExists(CallBack, EventName & "_Response") Then ' [New Query]
|
||||
CallSub2(CallBack, EventName & "_Response", "GUID_ERROR") ' Dispara el evento Linker_Response("GUID_ERROR")
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
If logger Then Log($"Enviando solicitud de verificación para DeviceId: ${DeviceId_}, Almacen: ${Almacen_}, Ruta: ${Ruta_}"$)
|
||||
|
||||
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||
cmd.Initialize
|
||||
cmd.Name = "verify_device_MARDS"
|
||||
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||
cmd.Parameters = Array As Object(Almacen_, Ruta_) ', DeviceId_
|
||||
Log($"Enviamos almacen: ${Almacen_} y ruta: ${Ruta_}"$)
|
||||
|
||||
' Ejecutamos el comando en el servidor. 'Me' indica que DBRequestManager_JobDone en esta clase manejará la respuesta.
|
||||
reqManager.ExecuteQuery(cmd, 0, "verify_device")
|
||||
Else ' Si está en CERO (Verificacion deshabilitada), regresamos "OK".
|
||||
CallSub2(CallBack, EventName & "_Response", "OK")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub linkDevice(Almacen_ As String, Ruta_ As String)
|
||||
Dim deviceId As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||
Log("########################################################")
|
||||
Log("REGISTRANDO")
|
||||
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||
cmd.Initialize
|
||||
cmd.Name = "registarMovil_MARDS"
|
||||
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||
cmd.Parameters = Array As Object(deviceId, Almacen_, Ruta_)
|
||||
reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||
If SubExists(CallBack, EventName & "_Response") Then
|
||||
CallSub2(CallBack, EventName & "_Response", "REGISTRANDO") ' Dispara el evento Linker_Response("REGISTRANDO")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'244500
|
||||
|
||||
' Obtiene el GUID único del dispositivo desde B4XKeyStore.
|
||||
' Si no existe, lo genera y lo guarda utilizando Subs.GUID.
|
||||
Private Sub GetDeviceGUID As String
|
||||
' If kvs.ContainsKey(GUID_KEY_ALIAS) = False Then
|
||||
' ' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||
' Dim NewGUID As String = generaGUID
|
||||
' kvs.Put(GUID_KEY_ALIAS, NewGUID) ' Lo guardamos de forma segura en el KeyStore.
|
||||
' If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||
' Return NewGUID
|
||||
' Else
|
||||
' Dim ExistingGUID As String = kvs.Get(GUID_KEY_ALIAS) ' Recuperamos el GUID existente.
|
||||
' If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||
' Return ExistingGUID
|
||||
' End If
|
||||
|
||||
If deviceLinked = False Then
|
||||
' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||
Dim NewGUID As String = generaGUID
|
||||
dlDB.ExecNonQuery($"insert into registro ('GUID_KEY_ALIAS') values ('${NewGUID}')"$) ' Guardamos nuevo registro
|
||||
If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||
Return NewGUID
|
||||
Else
|
||||
Dim ExistingGUID As String
|
||||
Private e As Cursor = dlDB.ExecQuery("select GUID_KEY_ALIAS from registro")
|
||||
e.Position = 0
|
||||
ExistingGUID = e.GetString("GUID_KEY_ALIAS")
|
||||
If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||
Return ExistingGUID
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' Callback para manejar las respuestas del DBRequestManager de esta clase.
|
||||
Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el que se haya especificado en reqManager.Initialize(Me, ApiUrl)
|
||||
If logger Then Log("INICA JOBDONE DEVICELINKER - " & Job.Tag)
|
||||
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||
If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then
|
||||
reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(Job.tag))
|
||||
LogColor($">>>>>> Recibimos y quitamos ${Job.tag.As(String).ToUpperCase}"$, Colors.Blue)
|
||||
End If
|
||||
LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
|
||||
End If
|
||||
If Job.Success = False Then
|
||||
lastJobDoneError = Job.ErrorMessage
|
||||
LogColor("############################################", Colors.red)
|
||||
LogColor("###### JobError: " & Job.Tag & " ######" & CRLF & "#### " & Job.ErrorMessage, Colors.red)
|
||||
LogColor("############################################", Colors.red)
|
||||
' Enviar una respuesta de error HTTP al callback.
|
||||
If SubExists(CallBack, EventName & "_Response") Then
|
||||
CallSub2(CallBack, EventName & "_Response", "HTTP_ERROR") ' Dispara el evento Linker_Response("HTTP_ERROR")
|
||||
End If
|
||||
Else 'If Job Success then ...
|
||||
lastJobDoneError = ""
|
||||
If Job.JobName = "DBRequest" Then ' Asegurarse de que sea una respuesta de DBRequestManager.
|
||||
' Primero verificamos Job.Success para saber si la comunicación HTTP fue exitosa [New Query]
|
||||
If Job.Success Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job) ' Procesamos el HttpJob para obtener el DBResult.
|
||||
If logger Then LogColor($"Petición exitosa al servidor. Registros devueltos: ${result.Rows.Size}"$, Colors.Green)
|
||||
|
||||
|
||||
' If result.Tag = "hist_cliente_promos" Then 'query tag
|
||||
' Starter.skmt.BeginTransaction
|
||||
' For Each records() As Object In result.Rows
|
||||
' Dim HCCP_CLIENTE As String = records(result.Columns.Get("HCCP_CLIENTE"))
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CLIENTE_CANT_PROMOS(HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT, HCCP_CANT_VENDIDA) VALUES (?,?,?,?)", Array As Object (HCCP_CLIENTE))
|
||||
' Next
|
||||
' Starter.skmt.TransactionSuccessful
|
||||
' Starter.skmt.EndTransaction
|
||||
' ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True)
|
||||
' End If
|
||||
|
||||
If result.Tag = "verify_device" Then 'query tag
|
||||
' Aquí es donde la lógica de la aplicación interpreta el éxito/falla de la operación en el servidor.
|
||||
If result.Rows.Size > 0 Then
|
||||
Subs.logJobDoneResultados(result)
|
||||
For Each records() As Object In result.Rows
|
||||
Dim Status As String = "" 'records(result.Columns.Get("ESTATUS"))
|
||||
Dim CAT_RU_IDTELEFONO As String = records(result.Columns.Get("CAT_RU_IDTELEFONO_REPARTO"))
|
||||
deviceId = GetDeviceGUID
|
||||
Log($"|${deviceId}|${CAT_RU_IDTELEFONO}|"$)
|
||||
' If deviceId <> CAT_RU_IDTELEFONO Then Status = "YA_REGISTRADO" ' Ya existe OTRO registro.
|
||||
If CAT_RU_IDTELEFONO = 0 Or CAT_RU_IDTELEFONO.Length < 5 Then
|
||||
Status = "SIN_REGISTRO"
|
||||
Log("########################################################")
|
||||
Log("REGISTRANDO")
|
||||
' Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "registarMovil"
|
||||
' ' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||
' cmd.Parameters = Array As Object(deviceId, almacen, ruta)
|
||||
' reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||
If SubExists(CallBack, EventName & "_Response") Then
|
||||
CallSub2(CallBack, EventName & "_Response", "SIN_REGISTRO")
|
||||
End If
|
||||
else if CAT_RU_IDTELEFONO = deviceId Then
|
||||
Status = "OK"
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||
Log("OK")
|
||||
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||
Else
|
||||
Status = "YA_REGISTRADO"
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 0))
|
||||
Log("YA_REGISTRADO")
|
||||
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||
End If
|
||||
' Invocamos el callback en el módulo principal con el estado.
|
||||
Next
|
||||
Else
|
||||
Status = "NO_EXISTE_RUTA"
|
||||
End If
|
||||
If SubExists(CallBack, EventName & "_Response") Then
|
||||
CallSub2(CallBack, EventName & "_Response", Status) ' Dispara el evento Linker_Response("OK") o Linker_Response("YA_REGISTRADO")
|
||||
End If
|
||||
End If
|
||||
|
||||
If result.Tag = "registramosGUID" Then
|
||||
Log("########################################################")
|
||||
Log("REGISTRO_COMPLETO")
|
||||
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||
Subs.logJobDoneResultados(result)
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||
If SubExists(CallBack, EventName & "_Response") Then
|
||||
CallSub2(CallBack, EventName & "_Response", "REGISTRO_COMPLETO") ' Dispara el evento Linker_Response("REGISTRO_COMPLETO")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Job.Release ' Muy importante liberar el HttpJob para evitar fugas de memoria.
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'Genera un GUID (globally unique identifier)
|
||||
Sub generaGUID As String
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each stp As Int In Array(8, 4, 4, 4, 12)
|
||||
If sb.Length > 0 Then sb.Append("-")
|
||||
For n = 1 To stp
|
||||
Dim c As Int = Rnd(0, 16)
|
||||
If c < 10 Then c = c + 48 Else c = c + 55
|
||||
sb.Append(Chr(c))
|
||||
Next
|
||||
Next
|
||||
Return sb.ToString
|
||||
End Sub
|
||||
|
||||
'Regresa true si existe registro
|
||||
Sub deviceLinked As Boolean
|
||||
Private e As Cursor = dlDB.ExecQuery("select * from registro")
|
||||
If e.RowCount > 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Sub
|
||||
@@ -4,7 +4,7 @@ ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=7.01
|
||||
@EndOfDesignText@
|
||||
'Class module
|
||||
''Class module
|
||||
Sub Class_Globals
|
||||
Private mTarget As Object
|
||||
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
||||
@@ -15,7 +15,12 @@ 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 - 211023
|
||||
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
|
||||
Dim reqsList, timesList As List
|
||||
Dim inicioRequest As Long 'ignore
|
||||
Dim inicioJobDone As Long 'ignore
|
||||
Dim inicioRequestMap, inicioJobDoneMap As Map
|
||||
Private logger As Boolean = False
|
||||
End Sub
|
||||
|
||||
'Target - The module that handles JobDone (usually Me).
|
||||
@@ -32,8 +37,10 @@ End Sub
|
||||
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
|
||||
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteInt(Limit, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
@@ -41,13 +48,30 @@ Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||
End Sub
|
||||
|
||||
'Sends a query request.
|
||||
'Command - Query name and parameters.
|
||||
'Limit - Maximum rows to return or 0 for no limit.
|
||||
'Tag - An object that will be returned in the result.
|
||||
'Timeout - The http request timeout in ms, or 0 if default (30 secs)
|
||||
Public Sub ExecuteQuery3(Command As DBCommand, Limit As Int, Tag As Object, Timeout As Int) 'Mod por CHV, agregué el parametro Timeout - 211229
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteInt(Limit, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||
If Timeout <> 0 Then j.GetRequest.Timeout = Timeout
|
||||
End Sub
|
||||
|
||||
'Executes a batch of (non-select) commands.
|
||||
'ListOfCommands - List of the commands that will be executes.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||
WriteInt(ListOfCommands.Size, out2)
|
||||
For Each Command As DBCommand In ListOfCommands
|
||||
WriteObject(Command.Name, out2)
|
||||
@@ -59,10 +83,15 @@ End Sub
|
||||
|
||||
'Similar to ExecuteBatch. Sends a single command.
|
||||
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
|
||||
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
ExecuteBatch(Array As DBCommand(Command), Tag)
|
||||
End Sub
|
||||
|
||||
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
|
||||
' inicioRequest = DateTime.now
|
||||
If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
j.Initialize("DBRequest", mTarget)
|
||||
j.Tag = Tag
|
||||
MemoryStream.InitializeToBytesArray(0)
|
||||
@@ -113,7 +142,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 +215,13 @@ End Sub
|
||||
|
||||
'Handles the Job result and returns a DBResult.
|
||||
Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||
' Dim start As Long = DateTime.Now
|
||||
If jobTagAnterior <> Job.Tag Then
|
||||
' inicioJobDone = DateTime.Now 'ignore
|
||||
If inicioJobDoneMap.IsInitialized Then inicioJobDoneMap.Put(Job.Tag, DateTime.Now)
|
||||
' tiempos.Put(Job.taskId, CreateMap("inicioJobDone":inicioJobDone))
|
||||
' Log(tiempos)
|
||||
' Log("############# " & Job.taskId)
|
||||
End If
|
||||
Dim In As InputStream = Job.GetInputStream
|
||||
Dim cs As CompressedStreams
|
||||
In = cs.WrapInputStream(In, "gzip")
|
||||
@@ -197,8 +232,6 @@ 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 - 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,6 +253,11 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||
Next
|
||||
End If
|
||||
In.Close
|
||||
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
|
||||
If jobTagAnterior <> table.Tag Then
|
||||
LogColor("HandleJob: '"&table.Tag&"'" & " - Registros: " & table.Rows.Size, Colors.RGB(115, 0, 140)) 'Mod por CHV - 211109
|
||||
End If
|
||||
jobTagAnterior = table.Tag 'Mod por CHV - 211109
|
||||
Return table
|
||||
End Sub
|
||||
|
||||
@@ -241,6 +279,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
|
||||
@@ -265,8 +304,60 @@ Public Sub PrintTable(Table As DBResult)
|
||||
For Each record As Object In row
|
||||
sb.Append(record).Append(TAB)
|
||||
Next
|
||||
ToastMessageShow(sb.ToString, True)
|
||||
Log(sb.ToString)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
Sub requestTimes(tag As String) As Map 'ignore
|
||||
Private times As Map
|
||||
times.Initialize
|
||||
' Log("###### " & tag)
|
||||
' Log(reqsList.IsInitialized)
|
||||
If reqsList.IsInitialized Then
|
||||
' Log(reqsList)
|
||||
' Private pos As Int = reqsList.IndexOf(tag)
|
||||
If inicioRequestMap.ContainsKey(tag) Then
|
||||
inicioRequest = inicioRequestMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioRequestMap")
|
||||
End If
|
||||
If inicioJobDoneMap.ContainsKey(tag) Then
|
||||
inicioJobDone = inicioJobDoneMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioJobDoneMap")
|
||||
End If
|
||||
End If
|
||||
' Log($"${inicioJobDone} - ${inicioRequest}"$)
|
||||
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
|
||||
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
|
||||
times.Put("request", tag)
|
||||
times.Put("requestTime", requestTime)
|
||||
times.Put("jobDoneTime", JobDoneTime)
|
||||
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
|
||||
Return times
|
||||
End Sub
|
||||
|
||||
'Initializes request tracking
|
||||
Sub trackInit 'ignore
|
||||
If logger Then Log(">>>>>>>>> TRACKINIT ")
|
||||
reqsList.Initialize
|
||||
timesList.Initialize
|
||||
inicioRequestMap.Initialize
|
||||
inicioJobDoneMap.Initialize
|
||||
End Sub
|
||||
|
||||
|
||||
Sub trackNext(job As HttpJob)
|
||||
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||
Private quitamos As String = ""
|
||||
If reqsList.IndexOf(job.tag) <> -1 Then
|
||||
Private pos As Int = reqsList.IndexOf(job.tag)
|
||||
If pos <> -1 Then
|
||||
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
|
||||
reqsList.RemoveAt(pos)
|
||||
timesList.RemoveAt(pos)
|
||||
End If
|
||||
quitamos = $"Quitamos ${job.tag} - "$
|
||||
End If
|
||||
If logger Then LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
|
||||
If logger Then LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
|
||||
End If
|
||||
End Sub
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -23,6 +23,7 @@ ModuleBookmarks28=
|
||||
ModuleBookmarks29=
|
||||
ModuleBookmarks3=
|
||||
ModuleBookmarks30=
|
||||
ModuleBookmarks31=
|
||||
ModuleBookmarks4=
|
||||
ModuleBookmarks5=
|
||||
ModuleBookmarks6=
|
||||
@@ -54,6 +55,7 @@ ModuleBreakpoints28=
|
||||
ModuleBreakpoints29=
|
||||
ModuleBreakpoints3=
|
||||
ModuleBreakpoints30=
|
||||
ModuleBreakpoints31=
|
||||
ModuleBreakpoints4=
|
||||
ModuleBreakpoints5=
|
||||
ModuleBreakpoints6=
|
||||
@@ -85,12 +87,13 @@ ModuleClosedNodes28=
|
||||
ModuleClosedNodes29=
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes30=
|
||||
ModuleClosedNodes31=
|
||||
ModuleClosedNodes4=
|
||||
ModuleClosedNodes5=
|
||||
ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=8,9
|
||||
NavigationStack=C_Cheklist,b_guardar_Click,643,0,Diseñador Visual,checklist.bal,-100,2,Diseñador Visual,check.bal,-100,6,C_Cheklist,Camera1_PictureTaken,269,0,B4XMainPage,b_arqueocieego_Click,731,0,B4XMainPage,Class_Globals,22,0,C_Principal,connecta_Click,1946,0,C_Principal,JobDone,1736,0,C_Principal,cargar____Click,1055,0,C_Principal,cargar_Click,1053,0
|
||||
NavigationStack=C_Principal,connecta_Click,1976,0,C_Principal,B4XPage_CloseRequest,1958,0,C_Principal,b_venta_emp_Click,2406,0,C_deviceLinker,GetDeviceGUID,165,0,C_deviceLinker,JobDone,223,0,C_Principal,cargar_Click,1066,0,C_Principal,JobDone,1772,0,C_Principal,e_ruta_EnterPressed,2046,0,C_deviceLinker,verifyDevice,118,0,C_Principal,Linker_Response,2455,6
|
||||
SelectedBuild=0
|
||||
VisibleModules=28,2,3,4,5,6,7,8,9,10,16,29,1
|
||||
VisibleModules=29,2,3,4,5,6,7,8,9,11,17,10
|
||||
|
||||
@@ -34,6 +34,7 @@ Sub Process_Globals
|
||||
Dim cedisLocation As Location
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim server As String = "http://keymon.net:1781"
|
||||
Dim DBReqServer As String = "http://keymon.net:1781"
|
||||
' Dim server As String = "http://192.168.100.10:1781"
|
||||
' Dim server As String = "http://keymon.lat:9000"
|
||||
' Dim server = "http://192.168.100.10:1781"
|
||||
|
||||
17
B4A/Subs.bas
17
B4A/Subs.bas
@@ -1044,4 +1044,21 @@ Sub logJobDoneResultados(resultado As DBResult)
|
||||
LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0))
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub deshabilitaValidaciones
|
||||
Log("Deshabilitamos VERIFY_DEVICE")
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE"))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VERIFY_DEVICE", 0))
|
||||
Log("Deshabilitamos VALIDA_VERSION")
|
||||
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VALIDA_VERSION"))
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VALIDA_VERSION", 0))
|
||||
Log("Espeificamos LIGADO")
|
||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||
' B4XPages.MainPage.principal.Btn_CheckList.Enabled = True
|
||||
' B4XPages.MainPage.principal.trabajar.Enabled = True
|
||||
' B4XPages.MainPage.principal.Resumen.Enabled = True
|
||||
' B4XPages.MainPage.principal.BUSCA.Enabled = True
|
||||
ToastMessageShow("REALIZADO", False)
|
||||
End Sub
|
||||
Reference in New Issue
Block a user