Files
Mazapa-Reparto/B4A/Starter.bas
IsR0d 5c8dde28d1 Version: 5.06.01
Se corrigio el tiempo real y se guarda el server si se modifica
2025-06-05 18:43:18 -06:00

167 lines
7.7 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Service
Version=9.85
@EndOfDesignText@
#Region Service Attributes
#StartAtBoot: False
#ExcludeFromLibrary: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Public gps As GPS
Public distanciaGeo As String = 0
Public rp As RuntimePermissions
Public FLP As FusedLocationProvider
Private flpStarted As Boolean
Dim skmt As SQL
Dim ruta As String
Private BTAdmin As BluetoothAdmin
Public BluetoothState As Boolean
Dim Timer1 As Timer
Dim Interval As Int = 10
'Para WebSockets
' Dim monitor As Timer 'Lo usamos para monitorear los servicios Tracker y PushService
' Dim monitorTicks As Int = 0
Dim trackerActividad As String = "501231235959"
Dim pushServiceActividad As String = "501231235959"
'Para los Logs
Dim MAC_IMPRESORA As String
Private logs As StringBuilder
Private logcat As LogCat
Public SharedFolder As String 'Para actualizar apk
Dim cedisLocation As Location
Dim reqManager As DBRequestManager
Dim server 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"
Dim muestraProgreso = 0
Dim c As Cursor
End Sub
Sub Service_Create
'This is the program entry point.
'This is a good place to load resources that are not specific to a single activity.
ruta = File.DirInternal 'Ruta de la base de datos por defecto.
' If File.ExternalWritable Then ruta = rp.GetSafeDirDefaultExternal("") 'Si podemos escribir a la tarjeta, cambiamos la ruta.
If Not(File.Exists(ruta, "kmt.db")) Then File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") 'Si no existe el archivo de la base de datos, lo copiamos.
Log(ruta)
skmt.Initialize(ruta,"kmt.db", True)
' CallSubDelayed(PushService, "SubscribeToTopics")
' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics")
' BTAdmin.Initialize("admin")
' If BTAdmin.IsEnabled = False Then
' If BTAdmin.Enable = False Then
' ToastMessageShow("Error enabling Bluetooth adapter.", True)
' Else
' ToastMessageShow("Enabling Bluetooth adapter...", False)
' End Ifate = True
' Else
' BluetoothSt
' End If
' reqManager.Initialize(Me, Main.server)
Timer1.Initialize("Timer1", Interval * 1000)
Timer1.Enabled = True
SharedFolder = rp.GetSafeDirDefaultExternal("")
cedisLocation.Initialize
' cedisLocation.Latitude = "19.48118148992086"
' cedisLocation.Longitude = "-99.15295579261536"
cedisLocation.Latitude = "0"
cedisLocation.Longitude = "0"
End Sub
Sub Service_Start (StartingIntent As Intent)
Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
' StartService(PushService)
' monitor.Initialize("monitor", 30000)
' monitor.Enabled = True
End Sub
Sub Service_TaskRemoved
'This event will be raised when the user removes the app from the recent apps list.
End Sub
'Return true to allow the OS default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub
Sub Service_Destroy
End Sub
Private Sub Timer1_Tick
' ToastMessageShow("Timer",False)
' LogColor("Siguiente actualizacion " & DateTime.Time(DateTime.Now + Interval * 1000),Colors.Blue)
ENVIA_ULTIMA_GPS
End Sub
Sub ENVIA_ULTIMA_GPS
Dim reqManager As DBRequestManager
reqManager.Initialize(Me, server)
If IsConnectedToInternet Then
Log("Con internet, enviamos UTR!")
Dim skmt As SQL
Dim cmd As DBCommand
' LogColor($"ReqServer = ${server}"$, Colors.red)
skmt.Initialize(ruta,"kmt.db", True)
' Log("server: "&Main.server)
skmt.Initialize(ruta,"kmt.db", True)
If B4XPages.MainPage.logger Then LogColor("Iniciamos ENVIA_ULTIMA_GPS", Colors.red)
DateTime.TimeFormat = "HHmmss"
B4XPages.MainPage.ultimaActualizacionGPS = DateTime.Time(DateTime.Now)
cmd.Initialize
cmd.Name = "select_fechat"
reqManager.ExecuteQuery(cmd , 0, "fechat")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "UPDATE_MAZAPA_ACTUALR3_GPS"
cmd.Parameters = Array As Object(B4XPages.MainPage.montoActual, B4XPages.MainPage.clientestotal, B4XPages.MainPage.clientesvisitados, B4XPages.MainPage.clientesventa, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.batt, B4XPages.MainPage.montoRechazado, B4XPages.MainPage.montoEntregado, B4XPages.MainPage.clientestotal, B4XPages.MainPage.porVisitar, B4XPages.MainPage.entregas, B4XPages.MainPage.rechazos, Application.VersionName, B4XPages.MainPage.ALMACEN, B4XPages.MainPage.rutapreventa )
' CAT_RR_MONTO, CAT_RR_TT, CAT_RR_VISIT_ACT, CAT_RR_DEV_ACT, CAT_RR_LAT_ACT, CAT_RR_LONG_ACT, CAT_RR_BAT_ACT, CAT_RR_MRECH_ACT, CAT_RR_MONTO_ACT, CAT_RR_TOT_CLIENTES, CAT_RR_PORVISITAR, CAT_RR_ENTREGAS, CAT_RR_RECHAZOS, CAT_RR_VERSION
Log($"Monto actual: ${B4XPages.MainPage.montoActual} & Clientes totales: ${B4XPages.MainPage.clientestotal} & Clientes con venta: ${B4XPages.MainPage.clientesventa} & Clientes visitados: ${B4XPages.MainPage.clientesvisitados} & Latitud: ${B4XPages.MainPage.lat_gps} & Longitud: ${B4XPages.MainPage.lon_gps} & Bateria: ${B4XPages.MainPage.batt} & Monto Rechazado: ${B4XPages.MainPage.montoRechazado} & Monto entregado: ${B4XPages.MainPage.montoEntregado} & Clientes totales: ${B4XPages.MainPage.clientestotal} & Por visitar: ${B4XPages.MainPage.porVisitar} & Entregas: ${B4XPages.MainPage.entregas} & Rechazos: ${B4XPages.MainPage.rechazos} & Version: ${Application.VersionName} & Almacen: ${B4XPages.MainPage.ALMACEN} & Ruta cargada: ${B4XPages.MainPage.rutapreventa}"$)
If B4XPages.MainPage.logger Then Log($"montoActual: ${B4XPages.MainPage.montoActual}, cTotal: ${B4XPages.MainPage.clientestotal}, cVenta: ${B4XPages.MainPage.clientesventa}, cVisitados: ${B4XPages.MainPage.clientesvisitados}, ${B4XPages.MainPage.lat_gps}, ${B4XPages.MainPage.lon_gps}, Batt: ${B4XPages.MainPage.batt}, montoRechazado: ${B4XPages.MainPage.montoRechazado}, montoEntregado: ${B4XPages.MainPage.montoEntregado}, porVisitar: ${B4XPages.MainPage.porVisitar}, entregas: ${B4XPages.MainPage.entregas}, rechazos: ${B4XPages.MainPage.rechazos}, Almacen: ${B4XPages.MainPage.ALMACEN}, Ruta: ${B4XPages.MainPage.rutapreventa}"$)
reqManager.ExecuteCommand(cmd, "inst_visitas")
skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
'Reiniciamos el timer para cuando llamamos el Sub desde otra actividad
Timer1.Enabled = False
Timer1.Interval = Interval * 1000
Timer1.Enabled = True
Else
Log("Sin conexión a internet, no se envió UTR!")
End If
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
Sub JobDone(Job As HttpJob)
' LogColor("starter jobdone", Colors.Red)
' Log(Job.ErrorMessage)
Log("ENTRAMOS A JOBDONE")
' Private r As DBResult = reqManager.HandleJob(Job)
If Job.Success = False Then
' LogColor("** " & Job.Tag & " Error: " & Job.ErrorMessage, Colors.Red) ' Mod by CHV - 211023
If Job.ErrorMessage.Contains("failed to connect") Or Job.ErrorMessage.Contains("Failed to connect") Then
ToastMessageShow("!Hubo un error contactando al servidor, por favor revise su conexión!", True)
End If
'ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
' LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211023
End If
End Sub