Files
Guna_Cuenta_Kilometros/B4A/B4XMainPage.bas
2023-09-24 03:05:49 -06:00

318 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=..\..\
'###########################################################################################################
'###################### 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 = ""
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