B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=9.85 @EndOfDesignText@ #Region Shared Files '#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files" 'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True '########################################################################################################### '###################### PULL ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull '########################################################################################################### '###################### PUSH ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ '########################################################################################################### '###################### PUSH TORTOISE GIT ######################################################### 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2 '########################################################################################################### #End Region 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip Sub Class_Globals Dim rp As RuntimePermissions Private Root As B4XView Private xui As XUI Private Root As B4XView Public rp As RuntimePermissions Public login As B4XMainPage Public principal As C_Principal Public clientes As C_Clientes Public updateAvailable As C_UpdateAvailable Dim reqManager As DBRequestManager ' Dim ruta As String Dim usuario As String Dim logger As Boolean = True Dim lat_gps, lon_gps As String ' Dim skmt As SQL Dim usuario As String Dim server As String Dim montoActual, clientesTotal, clientesVenta, clientesRechazo, clientesVisitados, almacen, rutaPreventa, CANTIDADPROD As String Dim ultimaActualizacionGPS As String = 235959 Dim fechaRuta As String ' Public wsServerLink As String = "ws://187.189.244.154:51042/push/b4a_ws2" ' Public wsServerLink As String = "ws://10.0.0.214:51042/push/b4a_ws2" Dim srvIp As String Dim phn As Phone Dim user As EditText Dim pass As EditText Dim c As Cursor Dim existe As String Dim paso1 As String Private IMEN As Label Dim IMEI As String Private Label1 As Label Dim server As String Private p_principal As Panel Private Entrar As Button Dim batt As Int Dim porVisitar, entregas, rechazos, montoEntregado, montoRechazado As String Private p_appUpdate As Panel Private i_engrane As ImageView Private b_server As Button Private b_apk As Button Private b_envioBD As Button Private b_regesar As Button Private et_server As EditText Private p_serverList As Panel Private lv_server As ListView Public rutaBDBackup As String = "" Dim ID_ALMACEN As String End Sub Public Sub Initialize ' B4XPages.GetManager.LogEvents = True End Sub 'This event will be called once, before the page becomes visible. Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 B4XPages.GetManager.LogEvents = True Root.LoadLayout("login") B4XPages.SetTitle(Me, "Guna - Control de Kilometraje") login.Initialize B4XPages.AddPage("Login", login) principal.Initialize B4XPages.AddPage("Principal", principal) clientes.Initialize B4XPages.AddPage("Clientes", clientes) updateAvailable.Initialize B4XPages.AddPage("updateAvailable", updateAvailable) reqManager.Initialize(Me, Starter.server) LogColor($"ReqServer = ${Starter.server}"$, Colors.red) Label1.Text = Application.VersionName Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CONTROL_KMS(PLACAS TEXT, OPERADOR TEXT, RUTA TEXT, KMS_INICIAL TEXT, KMS_FINAL TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ALMACEN(ID_ALMACEN TEXT)") End Sub Sub B4XPage_Appear If Starter.muestraProgreso = 1 Then muestraProgreso("Descargando actualización") Starter.muestraProgreso = 0 End If Subs.centraPanel(p_principal, Root.Width) ' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) '' LogColor("Start Tracker1", Colors.red) ' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) ' If Result Then '' StartService(Tracker) '' LogColor("Start Tracker", Colors.red) ' Else ' ToastMessageShow("No permission", True) ' Log("Sin permisos") ' End If ' LogColor("Start Tracker3", Colors.red) c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") If c.RowCount > 0 Then ' c.Position=0 ' c=skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") End If c.Close ' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) ' If Result Then ' Log("Con permisos de escritura externa") ' End If End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub Entrar_Click If user.Text = "KMTS1" Then Starter.skmt.ExecNonQuery("delete from usuarioa") ' Starter.skmt.ExecNonQuery("delete from VERSION") Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object("ROOT", "ROOT")) ' Starter.skmt.ExecNonQuery("delete from cat_almacen") ' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (user.Text)) ' Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.1")) ' principal.B_REGRESA_Click ' B4XPages.MainPage.principal.Subir.Visible = True B4XPages.ShowPage("Principal") Else c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text)) c.Position=0 existe = c.GetString("EXISTE1") c.Close 'existe = 1 If existe = 0 Then 'skmt.ExecNonQuery("delete from usuarioa") Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_usuario_GUNA_CK" cmd.Parameters = Array As Object(user.Text, pass.Text) reqManager.ExecuteQuery(cmd , 0, "usuario") Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_version_MARDS" reqManager.ExecuteQuery(cmd , 0, "version") Else ' principal.B_REGRESA_Click B4XPages.ShowPage("Principal") End If End If End Sub Sub JobDone(Job As HttpJob) If Job.Success = False Then LogColor("** " & Job.Tag & " Error: " & Job.ErrorMessage, Colors.Red) ' Mod by CHV - 211023 ToastMessageShow("Error: " & Job.ErrorMessage, True) Else LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211023 If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "version" Then 'query tag 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")) ' Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION)) Next End If End If ' If Job.JobName = "DBRequest" Then ' Dim result As DBResult = reqManager.HandleJob(Job) ' If result.Tag = "agencia" Then 'query tag ' For Each records() As Object In result.Rows ' ' Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN")) ' Next ' End If ' End If If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "usuario" Then 'query tag Starter.skmt.ExecNonQuery("delete from CAT_ALMACEN") Starter.skmt.ExecNonQuery("delete from usuarioa") For Each records() As Object In result.Rows Dim name As String = records(result.Columns.Get("USUARIO")) ID_ALMACEN = records(result.Columns.Get("CAT_LO_AGENCIA")) Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object(ID_ALMACEN)) Next paso1 = 1 End If End If Job.Release End If If paso1 = 1 Then If name = "OKActivo" Then Starter.skmt.ExecNonQuery("delete from usuarioa") Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text)) Starter.skmt.ExecNonQuery("delete from cat_almacen") Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN)) B4XPages.ShowPage("Principal") Else If name = "OKExpirado"& IMEI Then Msgbox("Usuario Expirado llamar al administrador","") 'ignore Else If name = "OKCancelado"& IMEI Then Msgbox("Usuario Cancelado llamar al administrador","") 'ignore Else Msgbox("Usuario o password No validos","") 'ignore End If paso1 = 0 End If End Sub Private Sub i_engrane_Click p_appUpdate.Width = Root.Width p_appUpdate.Height = Root.Height Subs.centraPanel(p_serverList, Root.Width) Subs.centraBoton(b_server, Root.Width) Subs.centraBoton(b_apk, Root.Width) Subs.centraBoton(b_envioBD, Root.Width) Subs.centraBoton(b_regesar, Root.Width) Subs.centraBoton(b_server, p_serverList.Width) lv_server.Clear lv_server.AddSingleLine("http://keymon.lat:1782") If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782") ' l_server.Text = Starter.server et_server.Text = Starter.server Subs.panelVisible(p_appUpdate, 0, 0) End Sub Private Sub B4XPage_CloseRequest As ResumableSub ' Log("closreq") If p_appUpdate.Visible Then p_appUpdate.Visible = False Else Sleep(0) ExitApplication End If Return False End Sub Private Sub b_regesar_Click p_principal.Visible = True p_appUpdate.Visible = False End Sub 'Enviamos la base de datos por correo o Whatsapp Private Sub b_envioBD_Click Public Provider As FileProvider Log("provider") Provider.Initialize Dim FileName As String = "kmt.db" Log("********* : "&Provider.SharedFolder) Sleep(1000) 'Copy the shared file to the shared folder File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName) Dim email As Email email.To.Add("soporte@keymonsoft.com") email.Subject = "Base de datos para revisión" email.Attachments.Add(Provider.GetFileUri(FileName)) ' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment Dim in As Intent = email.GetIntent in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION StartActivity(in) End Sub Private Sub b_apk_Click StartService(appUpdater) End Sub Private Sub b_server_Click Log("Guardar servidor") Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",et_server.text)) Starter.server = et_server.text If logger Then Log("Inicializamos reqManager con " & Starter.server) reqManager.Initialize(Me, Starter.server) LogColor($"ReqServer = ${Starter.server}"$, Colors.red) reinicializaReqManager p_appUpdate.Visible = False ' Entrar.Visible = True End Sub Private Sub lv_server_ItemClick (Position As Int, Value As Object) ' l_server.Text = Value et_server.Text = Value Starter.server = Value reqManager.Initialize(Me, Value) LogColor($"ReqServer = ${Value}"$, Colors.red) ToastMessageShow("Servidor modificado", False) End Sub Sub reinicializaReqManager reqManager.Initialize(Me, Starter.server) If logger Then Log(Starter.server) LogColor($"ReqServer = ${Starter.server}"$, Colors.red) End Sub 'appUpdater - Mostramos el anuncio de que se esta descargando el nuevo apk Sub muestraProgreso(mensaje As String) ProgressDialogShow(mensaje) End Sub 'appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk Sub ocultaProgreso ProgressDialogHide End Sub