- VERSION 5.09.10.2

- 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).
This commit is contained in:
2025-09-23 18:27:41 -06:00
parent ae8ac63b1d
commit e6455d8147
8 changed files with 154 additions and 56 deletions

View File

@@ -491,8 +491,8 @@ Sub Entrar_Click
Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?,?)", Array As Object(user.Text, pass.Text, DateTime.Date(DateTime.Now))) 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.ExecNonQuery("delete from cat_almacen")
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text)) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text))
Starter.skmt.ExecNonQuery("delete from VERSION") ' Starter.skmt.ExecNonQuery("delete from VERSION")
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95")) ' Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95"))
B4XPages.ShowPage("Principal") B4XPages.ShowPage("Principal")
End If 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 = ?", Array As String(user.Text))
@@ -1038,12 +1038,13 @@ Private Sub ImageView1_LongClick
' Log("traeConexion") ' Log("traeConexion")
' Private reqManagerX As DBRequestManager ' Private reqManagerX As DBRequestManager
' reqManagerX.Initialize(Me, "http://keymon.net:9010/DB2") ' reqManagerX.Initialize(Me, "http://keymon.net:9010")
' Private cmdX As DBCommand ' Private cmdX As DBCommand
' cmdX.Initialize ' cmdX.Initialize
' cmdX.Name = "traeConexion" ' cmdX.Name = "update_usuario_guna_nobajas"
' cmdX.Parameters = Array As Object() ' cmdX.Parameters = Array As Object("CDAZA")
' reqManagerX.ExecuteQuery(cmdX, 0, "traeConexion") ' reqManagerX.Executequery(cmdX, 0, "traeConexion")
If Subs.traeAlmacen <> "" Then If Subs.traeAlmacen <> "" Then
linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta) linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta)
End If End If
@@ -1070,27 +1071,29 @@ 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) ' If Starter.Logger Then LogColor($"Respuesta de DeviceLinker para la verificación del dispositivo: ${Status}"$, Colors.Magenta) '
Select Status Select Status
Case "UUID_ERROR" Case "UUID_ERROR"
Log("Error interno al obtener el identificador único del dispositivo.")
ToastMessageShow("Error interno al obtener el identificador único del dispositivo.", True) ToastMessageShow("Error interno al obtener el identificador único del dispositivo.", True)
Case "HTTP_ERROR" Case "HTTP_ERROR"
LogColor("Error HTTP al verificar el dispositivo: " & linker.lastJobDoneError, Colors.Red) 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) ToastMessageShow("Error de conexión al servidor durante la verificación del dispositivo.", True)
Case "SERVER_LOGIC_ERROR" 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) ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
Case "OK" Case "OK"
If Starter.Logger Then Log("Dispositivo ligado y verificado exitosamente.") Log("Dispositivo ligado y verificado exitosamente.")
ToastMessageShow("Dispositivo verificado y ligado correctamente.", False) 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. ' 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" Case "NO_REGISTRADO"
If Starter.Logger Then Log("Dispositivo NO registrado.") Log("Dispositivo NO registrado.")
ToastMessageShow("Dispositivo NO registrado.", False) ToastMessageShow("Dispositivo NO registrado.", False)
Case "REGISTRO_NUEVO" Case "REGISTRO_NUEVO"
If Starter.Logger Then Log("¡¡Registro nuevo!!") Log("¡¡Registro nuevo!!")
ToastMessageShow("¡¡Registro nuevo!!", False) ToastMessageShow("¡¡Registro nuevo!!", False)
Case "ALREADY_REGISTERED" Case "YA_REGISTRADO"
If Starter.Logger Then Log("¡¡El dispositivo ya esta registrado con otra ruta!!") Log("¡¡El dispositivo ya esta registrado con otra ruta!!")
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True) ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL") Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
If Starter.Logger Then Log($"Estado de verificación del dispositivo: ${Status}"$) Log($"Estado de verificación del dispositivo: ${Status}"$)
ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True) ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado. ' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
End Select End Select

View File

@@ -910,7 +910,7 @@ Sub GPS_LocationChanged (Location1 As Location)
If Not(clienteDeudor) Then B_VENTA.Visible = True 'Si el cliente no tiene adeudo, habilitamos el boton de venta If Not(clienteDeudor) Then B_VENTA.Visible = True 'Si el cliente no tiene adeudo, habilitamos el boton de venta
If Not(clienteId.StartsWith("N")) And la_cuenta.Text <> "0" Then If Not(clienteId.StartsWith("N")) And la_cuenta.Text <> "0" Then
b_noVenta.Visible = True 'Ni cliente nuevo, ni abordo. b_noVenta.Visible = True 'Ni cliente nuevo, ni abordo.
Log("NoVenta False") ' Log("NoVenta False")
End If End If
If Not(p_rechazoDOE.Visible) Then pedido_doe_muestra If Not(p_rechazoDOE.Visible) Then pedido_doe_muestra
Else Else

View File

@@ -218,6 +218,7 @@ Sub Class_Globals
Type TCuantos (query As String, esperados As Int, guardados As Int) Type TCuantos (query As String, esperados As Int, guardados As Int)
Dim validaCuantos As TCuantos Dim validaCuantos As TCuantos
Dim ts As C_TrendSpending Dim ts As C_TrendSpending
Dim linker As C_deviceLinker
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -321,6 +322,7 @@ End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
' Log(Subs.traeDiaSemana) ' Log(Subs.traeDiaSemana)
linker.Initialize(Me, "Linker", True)
Starter.errorConnDBReq = False Starter.errorConnDBReq = False
connecta.TextColor = Colors.White connecta.TextColor = Colors.White
StartBluetooth StartBluetooth
@@ -1773,11 +1775,17 @@ Sub JobDone(Job As HttpJob)
' Subs.logJobDoneResultados(RESULT) ' Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows For Each records() As Object In RESULT.Rows
Starter.skmt.ExecNonQuery("delete from VERSION") Starter.skmt.ExecNonQuery("delete from VERSION")
Dim CAT_VE_VERSION As String = records(RESULT.Columns.Get("CAT_VE_VERSION")) Dim CAT_RU_VERSION_REQUERIDA As String = records(RESULT.Columns.Get("CAT_RU_VERSION_REQUERIDA"))
Log(">>>>>>> Version minima: " & CAT_VE_VERSION & " - Actual: " & Application.VersionName & " --> " & Subs.comparaVersiones(CAT_VE_VERSION, Application.VersionName)) Log(">>>>>>> Version requerida: " & CAT_RU_VERSION_REQUERIDA & " - Actual: " & Application.VersionName & " --> " & Subs.comparaVersiones(CAT_RU_VERSION_REQUERIDA, Application.VersionName))
Starter.skmt.ExecNonQuery("delete from VERSION") Starter.skmt.ExecNonQuery("delete from VERSION")
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION)) Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_RU_VERSION_REQUERIDA))
Next Next
If CAT_RU_VERSION_REQUERIDA = 0 Or Subs.comparaVersiones(CAT_RU_VERSION_REQUERIDA, Application.VersionName) = 0 Then
connecta3
Else
Msgbox2("Es necesario actualizar la versión de la aplicación.", "VERSION INCORRECTA","Aceptar", "", "",Null) 'ignore
' ExitApplication
End If
End If End If
If RESULT.Tag = "count_cli" Then 'query tag If RESULT.Tag = "count_cli" Then 'query tag
@@ -2248,10 +2256,23 @@ Sub connecta_Click
reqManager.trackInit reqManager.trackInit
linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta)
' Else
' Msgbox("LA RUTA NO ES CORRECTA","") 'ignore
' End If
End Sub
Sub connecta2
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "select_version_KELL" cmd.Name = "select_version_KELL"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "version") reqManager.ExecuteQuery(cmd , 0, "version")
End Sub
Sub connecta3
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "select_ruta4_KELL" cmd.Name = "select_ruta4_KELL"
@@ -2262,9 +2283,6 @@ Sub connecta_Click
If e_ruta.Text = "KMTSKLL1" Then e_ruta.Enabled = True If e_ruta.Text = "KMTSKLL1" Then e_ruta.Enabled = True
ToastMessageShow("Validando Conexión." , False) ToastMessageShow("Validando Conexión." , False)
ruta_valida = e_ruta.Text ruta_valida = e_ruta.Text
' Else
' Msgbox("LA RUTA NO ES CORRECTA","") 'ignore
' End If
End Sub End Sub
Private Sub connecta_LongClick Private Sub connecta_LongClick
@@ -3878,3 +3896,38 @@ Private Sub l_efectiva_Click
l_descripcion.Text = "Clientes visitados / Clientes totales" l_descripcion.Text = "Clientes visitados / Clientes totales"
l_descripcion.Visible = True l_descripcion.Visible = True
End Sub 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.
connecta2
' Case "NO_REGISTRADO"
' Log("Dispositivo NO registrado.")
' ToastMessageShow("Dispositivo NO registrado.", False)
Case "REGISTRO_NUEVO"
Log("¡¡Registro nuevo!!")
connecta2
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)
Msgbox2("Ruta registrada en otro dispositivo", "RUTA INCORRECTA","Aceptar", "", "",Null) 'ignore
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

View File

@@ -476,9 +476,21 @@ Private Sub b_terminar1_Click
cuentaProds cuentaProds
Private elMontoTSDeLaVenta As String = 0 Private elMontoTSDeLaVenta As String = 0
' Log("====================================================================") ' Log("====================================================================")
' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$) Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido. 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)) Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
Private idProdFijo As String = prodsIds.Get(t)
Private cantProdFijo As Int = prodsCants.Get(t)
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
If t > 0 Then
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, estaPromo)
Log(bonificacion_monto)
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
End If
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) 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 Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido. For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
@@ -503,6 +515,18 @@ Private Sub b_continuar_Click
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$) Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido. 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)) Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
Private idProdFijo As String = prodsIds.Get(t)
Private cantProdFijo As Int = prodsCants.Get(t)
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
If t > 0 Then
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, estaPromo)
Log(bonificacion_monto)
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
End If
Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov) 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 Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido. For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.

View File

@@ -46,7 +46,8 @@ Public Sub Initialize (PageObject As Object, NameOfEvent As String, AppLogger As
' Inicializamos el DBRequestManager para las comunicaciones con el servidor. ' 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. ' 'Me' indica que el evento JobDone de esta clase se encargará de las respuestas de reqManager.
' reqManager.Initialize(Me, Starter.DBReqServer) ' reqManager.Initialize(Me, Starter.DBReqServer)
reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas ' reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas
reqManager.Initialize(Me, "http://keymon.net:1781") 'Servidor productivo
If logger Then Log("DBRequestManager para DeviceLinker inicializado.") If logger Then Log("DBRequestManager para DeviceLinker inicializado.")
If logger Then Log("DeviceLinker inicializado y listo para operar.") If logger Then Log("DeviceLinker inicializado y listo para operar.")
@@ -110,7 +111,7 @@ Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el q
If Job.Success = False Then If Job.Success = False Then
lastJobDoneError = Job.ErrorMessage lastJobDoneError = Job.ErrorMessage
LogColor("############################################", Colors.red) LogColor("############################################", Colors.red)
LogColor("###### JobError: " & Job.Tag & CRLF & Job.ErrorMessage, Colors.red) LogColor("###### JobError: " & Job.Tag & " ######" & CRLF & "#### " & Job.ErrorMessage, Colors.red)
LogColor("############################################", Colors.red) LogColor("############################################", Colors.red)
' Enviar una respuesta de error HTTP al callback. ' Enviar una respuesta de error HTTP al callback.
If SubExists(CallBack, EventName & "_Response") Then If SubExists(CallBack, EventName & "_Response") Then
@@ -125,43 +126,59 @@ Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el q
If logger Then LogColor($"Petición exitosa al servidor. Registros devueltos: ${result.Rows.Size}"$, Colors.Green) 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 ' If result.Tag = "hist_cliente_promos" Then 'query tag
Starter.skmt.BeginTransaction ' Starter.skmt.BeginTransaction
For Each records() As Object In result.Rows ' For Each records() As Object In result.Rows
Dim HCCP_CLIENTE As String = records(result.Columns.Get("HCCP_CLIENTE")) ' 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)) ' 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 ' Next
Starter.skmt.TransactionSuccessful ' Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction ' Starter.skmt.EndTransaction
' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True) ' ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True)
End If ' End If
If result.Tag = "verify_device" Then 'query tag 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. ' Aquí es donde la lógica de la aplicación interpreta el éxito/falla de la operación en el servidor.
' No usamos result.Success porque DBResult no tiene esa propiedad.
' En su lugar, comprobamos si se devolvieron filas y el campo 'status' dentro de los datos.
If result.Rows.Size > 0 Then If result.Rows.Size > 0 Then
Subs.logJobDoneResultados(result) Subs.logJobDoneResultados(result)
For Each records() As Object In result.Rows For Each records() As Object In result.Rows
Dim Status As String = records(result.Columns.Get("ESTATUS")) Dim Status As String = "" 'records(result.Columns.Get("ESTATUS"))
Dim GUID As String = records(result.Columns.Get("GUID")) Dim CAT_RU_IDTELEFONO As String = records(result.Columns.Get("CAT_RU_IDTELEFONO"))
If deviceId <> GUID Then Status = "ALREADY_REGISTERED" ' Ya existe OTRO registro. 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
Log(">>> NUEVO")
' Status = "REGISTRO_NUEVO"
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", "REGISTRO_NUEVO")
End If
else if CAT_RU_IDTELEFONO = deviceId Then
Status = "OK"
Else
Status = "YA_REGISTRADO"
End If
' Invocamos el callback en el módulo principal con el estado. ' Invocamos el callback en el módulo principal con el estado.
If SubExists(CallBack, EventName & "_Response") Then If SubExists(CallBack, EventName & "_Response") Then
CallSub2(CallBack, EventName & "_Response", Status) CallSub2(CallBack, EventName & "_Response", Status)
End If End If
Next Next
Else ' Else
If logger Then LogColor($"El servidor respondió con éxito, pero no encontró registros.${CRLF}Quiere decir que la ruta NO esta registrada en el servidor."$, Colors.Red) ' If logger Then LogColor($"El servidor respondió con éxito, pero no encontró registros.${CRLF}Quiere decir que la ruta NO esta registrada en el servidor."$, Colors.Red)
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor. ' Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
cmd.Initialize ' cmd.Initialize
cmd.Name = "registarMovil" ' cmd.Name = "registarMovil"
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros. ' ' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
cmd.Parameters = Array As Object(almacen, ruta, deviceId) ' cmd.Parameters = Array As Object(almacen, ruta, deviceId)
reqManager.ExecuteCommand(cmd, "registramosGUID") ' reqManager.ExecuteCommand(cmd, "registramosGUID")
If SubExists(CallBack, EventName & "_Response") Then ' If SubExists(CallBack, EventName & "_Response") Then
CallSub2(CallBack, EventName & "_Response", "NO_REGISTRADO") ' CallSub2(CallBack, EventName & "_Response", "NO_REGISTRADO")
End If ' End If
End If End If
End If End If

View File

@@ -917,7 +917,7 @@ Version=12.8
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Kelloggs Venta #ApplicationLabel: Kelloggs Venta
#VersionCode: 3000 #VersionCode: 3000
#VersionName: 5.09.10 #VersionName: 5.09.10.1
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False
#BridgeLogger:true #BridgeLogger:true

View File

@@ -67,14 +67,14 @@ ModuleBreakpoints7=
ModuleBreakpoints8= ModuleBreakpoints8=
ModuleBreakpoints9= ModuleBreakpoints9=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1=6,8,46,47 ModuleClosedNodes1=6,46,47
ModuleClosedNodes10= ModuleClosedNodes10=
ModuleClosedNodes11= ModuleClosedNodes11=
ModuleClosedNodes12=3,5,6 ModuleClosedNodes12=3,5
ModuleClosedNodes13=7,8,9,10,11,12 ModuleClosedNodes13=7,8,9,10,11,12
ModuleClosedNodes14=6,7,8,9,12,13 ModuleClosedNodes14=6,7,8,9,12,13
ModuleClosedNodes15= ModuleClosedNodes15=
ModuleClosedNodes16=3,7,8,15,17 ModuleClosedNodes16=3,8,17
ModuleClosedNodes17= ModuleClosedNodes17=
ModuleClosedNodes18= ModuleClosedNodes18=
ModuleClosedNodes19=7,8,9,10,11,12,13,14 ModuleClosedNodes19=7,8,9,10,11,12,13,14
@@ -92,7 +92,7 @@ ModuleClosedNodes29=
ModuleClosedNodes3=1,3,5,6 ModuleClosedNodes3=1,3,5,6
ModuleClosedNodes30= ModuleClosedNodes30=
ModuleClosedNodes31= ModuleClosedNodes31=
ModuleClosedNodes32=114,116 ModuleClosedNodes32=116
ModuleClosedNodes33= ModuleClosedNodes33=
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5= ModuleClosedNodes5=
@@ -100,6 +100,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=C_Cliente,GPS_LocationChanged,906,0,C_Cliente,B4XPage_Appear,552,6,Diseñador Visual,cliente.bal,-100,6,Diseñador Visual,principal.bal,-100,2,C_Principal,cargar_Click,837,0,C_Principal,B4XPage_Appear,539,6,kms_helperSubs,traeRuta,748,0,C_deviceLinker,Initialize,43,0,C_deviceLinker,VerifyAndLinkDevice,64,0,B4XMainPage,ImageView1_LongClick,1041,0 NavigationStack=C_Principal,JobDone,1779,0,B4XMainPage,B4XPage_Appear,392,0,B4XMainPage,Label4_Click,1062,0,B4XMainPage,Linker_Response,1063,3,C_Principal,l_efectiva_Click,3892,0,C_Principal,Class_Globals,214,0,C_Principal,B4XPage_Created,312,0,C_Principal,B4XPage_Appear,321,0,C_Principal,Linker_Response,3917,6,C_deviceLinker,JobDone,132,6,C_deviceLinker,Initialize,44,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=31,1,12,5,16,26,3,32,13,14,8,33,10,28 VisibleModules=31,1,12,5,16,26,3,32,13,14,8,33,10,28,19

View File

@@ -337,6 +337,7 @@ Sub traeBonificacionesMaximas(tipo As String, clienteId As String, id As String,
Log($"Presupuesto disponible: ${tsRestantes}"$) Log($"Presupuesto disponible: ${tsRestantes}"$)
Log($"Cantidad: ${laCant}"$) Log($"Cantidad: ${laCant}"$)
Log($"Floor(tsRestantes / (tsMonto * laCant))= ${Floor(tsRestantes / (tsMonto * laCant))}"$) Log($"Floor(tsRestantes / (tsMonto * laCant))= ${Floor(tsRestantes / (tsMonto * laCant))}"$)
Log($"Floor(${tsRestantes} / (${tsMonto} * ${laCant}))= ${Floor(tsRestantes / (tsMonto * laCant))}"$)
If tsMonto > 0 Then If tsMonto > 0 Then
tsMaximas = Floor(tsRestantes / (tsMonto * laCant)) tsMaximas = Floor(tsRestantes / (tsMonto * laCant))
End If End If
@@ -359,7 +360,7 @@ Sub traeMontoBonificacion(id As String, promoId As String) As String
tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original. tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original.
End If End If
' Log("PRECIOB: " & c.GetInt("CAT_DP_PRECIOB")) ' Log("PRECIOB: " & c.GetInt("CAT_DP_PRECIOB"))
' Log($"Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$) Log($"Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$)
End If End If
' Log("ROWCOUNT: " & c.RowCount) ' Log("ROWCOUNT: " & c.RowCount)
Return tsMonto Return tsMonto