- Se agregaron validaciones de conexion al hacer clic en el boton de CONECTAR en la pantalla principal

This commit is contained in:
2024-04-23 19:17:20 -06:00
parent 028678e1f2
commit 24584631bc
7 changed files with 99 additions and 26 deletions

View File

@@ -290,6 +290,8 @@ End Sub
Sub B4XPage_Appear
' Log(Subs.traeDiaSemana)
Starter.errorConnDBReq = False
connecta.TextColor = Colors.White
StartBluetooth
' If Not(kh.CheckNotificationAccess) Then
' Msgbox2Async($"Se necesita acceso a las notificaciones, haga clic en "Aceptar" y en la siguiente pantalla permita el acceso a la aplicación "${Application.LabelName}"."$, "Permisos necesarios", "Aceptar", "", "", Null, True)
@@ -879,6 +881,11 @@ Sub JobDone(Job As HttpJob)
reqManager.trackNext(Job)
If Not(Job.Success) Then
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
If Job.Tag = "version" Then
Starter.errorConnDBReq = True
connecta.TextColor = Colors.red
ToastMessageShow("Error al conectarse con Keymon, revise su conexión y reintente!", True)
End If
If Job.ErrorMessage = "STREAM" Then
contador_strem = contador_strem + 1
If CARGA = "SUBIR" Then
@@ -1571,6 +1578,7 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "version" Then 'query tag
connecta.TextColor = Colors.White
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"))
@@ -1984,7 +1992,13 @@ Sub Activity_KeyPress (key As Int) As Boolean
End Sub
Sub connecta_Click
' wait for (kh.ping) Complete (Success As Boolean, ExitValue As Int, StdOut As String, StdErr As String)
If Not(IsConnectedToInternet) Then
connecta.TextColor = Colors.Red
ToastMessageShow("No hay conexión a internet, por favor establecer una conexión y reintentar!!", True)
Else
connecta.TextColor = Colors.White
End If
' Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
' Log("REVISAMOS PERMISOS DE BT")
@@ -2043,6 +2057,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")
' Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,ALMACEN,l_ruta.Text,"Carga día", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),Starter.lat_gps,Starter.lon_gps,"2","","")
' sql.mandaBitacora = insert into KELLOGGS.TMP_GPS_DIARIO (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) values ((?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),sysdate)
End Sub
Sub BUSCA_Click
Subs.iniciaActividad("TicketsDia")
End Sub
@@ -3322,24 +3354,6 @@ Sub GetBA As Object
Return jo.RunMethod("getBA", Null)
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")
' Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,ALMACEN,l_ruta.Text,"Carga día", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),Starter.lat_gps,Starter.lon_gps,"2","","")
' sql.mandaBitacora = insert into KELLOGGS.TMP_GPS_DIARIO (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) values ((?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),sysdate)
End Sub
'Borramos los clientes nuevosd que no tengan venta.
Sub borraClientesNuevosSinVenta 'ignore
Private x As Cursor = Starter.skmt.ExecQuery("Select CAT_CL_CODIGO from kmt_info where CAT_CL_CODIGO like 'N%' and CAT_CL_CODIGO not in (Select pe_cliente from pedido)")
@@ -3367,3 +3381,14 @@ End Sub
Private Sub p_resumenAcumulado_Click
End Sub
Sub IsConnectedToInternet As Boolean 'ignore
Dim r As Reflector
r.Target = r.GetContext
r.Target = r.RunMethod2("getSystemService", "connectivity", "java.lang.String")
r.Target = r.RunMethod("getActiveNetworkInfo")
If r.Target <> Null Then
Return r.RunMethod("isConnectedOrConnecting")
End If
Return False
End Sub

View File

@@ -47,6 +47,23 @@ 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.

View File

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

View File

@@ -88,6 +88,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Principal,Class_Globals,0,0,C_Principal,cargar_Click,642,0,C_Principal,JobDone,1821,0,C_Principal,connecta_Click,1993,0,C_Principal,trabajar_Click,447,0,C_CheckList,B4XPage_Appear,148,0,C_Cliente,Cuestionario,2125,6,C_Productos,Class_Globals,0,0,C_Productos,cuentaProds,822,1,B4XMainPage,B4XPage_Created,189,0
NavigationStack=DBRequestManager,ExecuteQuery,35,0,DBRequestManager,Initialize,24,0,Starter,Process_Globals,49,4,C_Principal,B4XPage_Created,272,0,C_Principal,B4XPage_Appear,287,6,C_Principal,connecta_LongClick,2011,0,kms_helperSubs,traeDescXSku,1059,0,kms_helperSubs,ping,1063,6,C_Principal,connecta_Click,1987,6,C_Principal,JobDone,1592,0,B4XMainPage,Class_Globals,97,0
SelectedBuild=0
VisibleModules=1,27,11,3,12,4,28,2,23,22,17

View File

@@ -52,6 +52,8 @@ Sub Process_Globals
Dim sesion As Map
' dim cp_running as Boolean = false
Dim enVenta As Boolean = False
Dim pingShell As Boolean = False
Dim errorConnDBReq As Boolean = False
End Sub
Sub Service_Create

View File

@@ -1063,3 +1063,32 @@ Sub traeDescXSku(clienteId As String, prodId As String) As String 'ignore
End If
Return desc
End Sub
Sub ping As ResumableSub
Private ph As Phone
Wait For (ph.ShellAsync("ping", Array As String("-c 1","-W 5", "8.8.8.8"))) Complete (Success As Boolean, ExitValue As Int, StdOut As String, StdErr As String)
If Success Then
' Log("ExitValue:" & ExitValue)
' Log("StdError:" & StdErr)
Private res() As String = Regex.Split(",", StdOut)
For i = 0 To res.Length - 1
If res(i).Contains("1 received") Then
If Starter.logger Then LogColor(">>> HAY CONEXION", Colors.Green)
Starter.pingShell = True
Else If res(i).Contains("0 received") Then
If Starter.logger Then LogColor(">>> NO HAY CONEXION", Colors.Red)
Starter.pingShell = False
End If
' Log(res(i))
Next
' LogColor("StdOut: " & res, Colors.Blue)
' If B4XPages.IsInitialized Then B4XPages.MainPage.cb_internet.Checked = Starter.ping
If Not(Starter.pingShell) Then
If Starter.logger Then Log("Sin conexión a Google!!!")
' notiLowReturn("SIN INTERNET ❌", "NO hay conexion a Google.", Monitor.nid)
' If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "NO hay conexión a Google!!"
End If
Else
Log("Error: " & LastException)
End If
End Sub