mirror of
https://github.com/KeymonSoft/Kelloggs_v4.git
synced 2026-04-17 18:26:11 +00:00
- 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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user