VERSION 6.01.11

- Se agrego el mandaPendientes para los abonos.
- Se agrego que solo se pueda hacer solo una vez FIN DIA y despues de eso se necesita una contraseña (FD + dia + hora)
This commit is contained in:
2026-01-24 21:49:23 -06:00
parent 4f07b6d3d3
commit 3cda52a8a3
10 changed files with 812 additions and 242 deletions

View File

@@ -137,6 +137,7 @@ Sub Class_Globals
Private l_carga2 As Label
'fin carga
Private b_impresion_rec As Button
Dim linker As C_deviceLinker
End Sub
'You can add more parameters here.
@@ -211,7 +212,7 @@ End Sub
Sub B4XPage_Appear
reqManager.Initialize(Me, B4XPages.MainPage.server)
linker.Initialize(Me, "Linker", True)
p_principal.Width = Root.Width
p_principal.Height = Root.Height *.80
Private c As Cursor = Starter.skmt.ExecQuery("SELECT * FROM NOVENTA")
@@ -403,6 +404,12 @@ Sub B4XPage_Appear
B4XPages.MainPage.rutaPreventa = RUTA_T
c.Close
reqs.Initialize
c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
If c.RowCount > 0 Then
c.Position = 0
Starter.FECHA_HOY = c.GetString("CAT_VA_VALOR")
End If
Private rc As Cursor = Starter.skmt.ExecQuery($"select * from REPARTO where REP_RECHAZO = "1" and REP_CANT > 0"$)
' Log($"RECHAZOS=${rc.RowCount}"$)
@@ -1124,7 +1131,16 @@ Sub cargar_Click
cmd.Name = "insert_drop_rep_GUNA_VN"
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "CARGA")
reqManager.ExecuteCommand(cmd , "inst_drop")
' reqs.Add("inst_noventa")
' reqs.Add("inst_noventa")
cmd.Initialize 'Para traer la contraseña del candado de "FIN DIA"
cmd.Name = "SELECT_PASS_FIN_DIA"
reqManager.ExecuteQuery(cmd , 0, "pass_fin_dia")
cmd.Initialize
cmd.Name = "select_fecha"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "fecha")
Starter.skmt.ExecNonQuery("delete from kmt_info")
Starter.skmt.ExecNonQuery("delete from cod_result")
@@ -1880,6 +1896,23 @@ Sub JobDone(Job As HttpJob)
End If
End If
If result.Tag = "fecha" Then 'query tag
For Each records() As Object In result.Rows
Starter.FECHA_HOY = records(result.Columns.Get("FECHA"))
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",Starter.FECHA_HOY))
Next
End If
' Candado Fin Dia
If result.Tag = "pass_fin_dia" Then 'query tag
For Each records() As Object In result.Rows
Dim nuevaContrasena As String = records(result.Columns.Get("CAR_VA_VALOR3"))
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_PASS"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FINDIA_PASS", nuevaContrasena))
Next
End If
Job.Release
End If
@@ -1972,6 +2005,11 @@ End Sub
Sub connecta_Click
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a conexión a Internet", "Revisa tu conexión")
' 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)
If e_ruta.Text <> "" Then
imei = "" 'p.GetDeviceId
conn = "1"
@@ -2013,7 +2051,19 @@ Sub b_mapa_Click
End Sub
Sub e_ruta_EnterPressed
If e_ruta.Text = "FIN DIA" Then
Private adelanteFinDia As Boolean = True
c=Starter.skmt.ExecQuery("select ifnull(CAT_VA_VALOR,0) as CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'") 'Buscamos "FIN DIA" anterior
If c.RowCount > 0 Then
c.Position = 0
Private FINDIA_FECHA As String = 0
If c.GetString("CAT_VA_VALOR").Length > 4 Then FINDIA_FECHA = c.GetString("CAT_VA_VALOR")
Log(FINDIA_FECHA&"|"&Starter.FECHA_HOY)
If Not(FINDIA_FECHA < Starter.FECHA_HOY) Then 'Si el "FIN DIA" guardado NO es de ayer o anterior ...
adelanteFinDia = False
End If
c.Close
End If
If e_ruta.Text = "FIN DIA" And adelanteFinDia Then
RES = Msgbox2("Seguro que desea hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If RES = DialogResponse.POSITIVE Then
e_ruta.Text = ""
@@ -2040,6 +2090,8 @@ Sub e_ruta_EnterPressed
Starter.skmt.ExecNonQuery("DELETE FROM ABONOSP")
Starter.skmt.ExecNonQuery("DELETE FROM ABONOS")
Starter.skmt.ExecNonQuery("DELETE FROM BLOCKENVIO")
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("FINDIA_FECHA", Starter.FECHA_HOY))
b_multiAlmacen.Visible = False
p_multiAlmacen.Visible = False
s_almacen2.SelectedIndex = 0
@@ -2048,6 +2100,8 @@ Sub e_ruta_EnterPressed
End If
' Starter.waypointsOrdered.Clear
Starter.skmt.ExecNonQuery("delete from waypoints")
Else if e_ruta.Text = "FIN DIA" Then
Msgbox("Ya se hizo FIN DIA hoy, solo se puede hacer un FIN DIA cada día, por favor comuniquese con un supervisor.", "LIMITE DIARIO SUPERADO") 'ignore
End If
End Sub
@@ -3229,4 +3283,48 @@ End Sub
Private Sub connecta_LongClick
imp_LIQUIDACION
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("########################################################")
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("########################################################")
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("########################################################")
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