mirror of
https://github.com/KeymonSoft/Guna_Cuenta_Kilometros.git
synced 2026-04-17 19:36:36 +00:00
315 lines
11 KiB
QBasic
315 lines
11 KiB
QBasic
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=..\..\
|
|
'###########################################################################################################
|
|
#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 = ""
|
|
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)")
|
|
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_mards_REPG"
|
|
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
|
|
ToastMessageShow("Error: " & Job.ErrorMessage, True)
|
|
Else
|
|
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
|
|
For Each records() As Object In result.Rows
|
|
Dim name As String = records(result.Columns.Get("USUARIO"))
|
|
Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA"))
|
|
Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO"))
|
|
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:1787")
|
|
If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1787")
|
|
' 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 |