- VERSION 4.10.11

- Encuesta Pedrigree Cajitas Act II
- Actualizacion Forzosa
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-10-16 10:22:00 -06:00
parent b7c9be5201
commit 828527ea5f
13 changed files with 306 additions and 158 deletions

View File

@@ -38,17 +38,6 @@ Sub Class_Globals
Public pedidos As C_Pedidos
Public promos As C_Promos
Public historico As C_Historico
'nuevocliente -> NuevoCliente
'buscar -> ticketsDia
'colonia -> clientes
'nopago -> noVenta
'tarjeta -> Nota
'fila -> Cliente
'colonia2 -> Productos
'xxxxxxxxxxxxxxxxxxxxxxxxx
Dim reqManager As DBRequestManager
Dim v As String = Application.VersionName
Dim ruta As String
@@ -86,7 +75,7 @@ Sub Class_Globals
Private l_version As Label
Private ImageView1 As ImageView
Private Label2 As Label
Private Entrar As Button
Dim Entrar As Button
Dim tipo_venta As String
Dim bTerminarClicked As Boolean = False
Private lv_server As ListView
@@ -99,6 +88,9 @@ Sub Class_Globals
Private B4XSwitch2 As B4XSwitch
Dim x As Int
Private et_codigo As EditText
Dim buscandoActualizacion As Boolean = False
Dim actualizacionRevisada As Boolean = False 'Parte de la funcionalidad "appUpdater"
Private b_actualizacion As Button
End Sub
Public Sub Initialize
@@ -107,6 +99,7 @@ End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Log("##### CREAMOS MAINPAGE LOGIN")
B4XPages.GetManager.LogEvents = True
Root = Root1
Root.LoadLayout("login")
@@ -139,15 +132,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
B4XPages.AddPage("Promos", promos)
historico.Initialize
B4XPages.AddPage("Historico", historico)
p_Main.Height = Root.Height
p_Main.Width = Root.Width
ruta = Starter.ruta
Provider.Initialize
' Subs.borraArribaDe100Errores ' Para Websockets
' Subs.borraArribaDe600RenglonesBitacora ' Para Websockets
If File.Exists(File.DirInternal, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
End If
@@ -182,10 +170,11 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_LAT TEXT, HE_LON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS kmt_info2(CAT_CL_FOTO BLOB, CAT_CL_NUM_SERIEFISICO TEXT, CAT_CL_MTOCOMPRA TEXT, CAT_CL_CEDIS TEXT, CAT_CL_LAT TEXT, CAT_CL_LONG TEXT, CAT_CL_FBAJA TEXT, CAT_CL_FALTA TEXT, CAT_CL_CP TEXT, CAT_CL_EDO TEXT, CAT_CL_MUNI TEXT, CAT_CL_COLONIA TEXT, CAT_CL_CALLE2 TEXT, CAT_CL_CALLE1 TEXT, CAT_CL_NOINT TEXT, CAT_CL_NOEXT TEXT, CAT_CL_CALLE TEXT, CAT_CL_EMAIL TEXT, CAT_CL_TELEFONO TEXT, CAT_CL_ATIENTE2 TEXT, CAT_CL_ATIENDE1 TEXT, CAT_CL_NOMBRE TEXT, CAT_CL_GIRO TEXT, CAT_CL_DIAS_VISITA TEXT, CAT_CL_TIPO_RUTA TEXT, CAT_CL_RUTA TEXT, CAT_CL_CODIGO TEXT, gestion NUMERIC)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO2265(H_IDCLIENTE)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO2265(H_IDCLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3054(H_IDCLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3055(H_IDCLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_SUPLENCIA(RS_RUTA TEXT)")
' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")
Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT")
@@ -204,7 +193,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Log(LastException)
End Try
End Try
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P11" en la tabla
c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P11'")
c.Position = 0
@@ -218,9 +206,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Log(LastException)
End Try
End Try
c=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_STAY_OUT ")
C.Position = 0
If c.GetString("CUANTOS") = 0 Then
@@ -248,22 +233,29 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
' Log("buscandoActualizacion-" & buscandoActualizacion)
' Log("actualizacionRevisada-" & actualizacionRevisada)
'Buscamos actualización de app (appUpdater)
' If Not(versionRevisadaHoy) And Not(actualizacionRevisada) And Starter.muestraProgreso = 0 Then
' buscandoActualizacion = True
' Entrar.Enabled = False
' revisaActualizacion
' End If
reqManager.Initialize(Me, Starter.server)
If Starter.muestraProgreso = 1 Then
muestraProgreso("Descargando actualización")
muestraProgreso("Descargando nueva versión, un momento por favor.")
Starter.muestraProgreso = 0
End If
Dim ph As Phone 'Get Id Device
Dim DeviceID As String = ph.GetSettings("android_id").ToUpperCase
LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue)
' LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue)
LogColor("Revisa permisos Phone_State", Colors.Green)
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
IMEN.Text =""
IMEI = ""
LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue)
' LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue)
IMEI="" 'Pruebas
End If
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
@@ -272,7 +264,7 @@ Sub B4XPage_Appear
StartService(Tracker)
Log("Start Tracker")
Else
ToastMessageShow("No permission", True)
ToastMessageShow("Sin permisos de ubicacion", True)
End If
server = Starter.server
tgl.Initialize()
@@ -311,7 +303,6 @@ Sub B4XPage_Appear
'Obtenemos el usuario registrado
CallSubDelayed(FirebaseMessaging, "SubscribeToTopics")
dameUsuario
c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA")
If c.RowCount > 0 Then
c.Position = 0
@@ -323,14 +314,10 @@ Sub B4XPage_Appear
Else
B4XSwitch1.Value = False
End If
c = skmt.ExecQuery("SELECT HABILITADO FROM GPS")
If c.RowCount = 0 Then
skmt.ExecNonQuery2("INSERT INTO GPS VALUES (?)", Array As Object(0))
Else
End If
c = skmt.ExecQuery("SELECT HABILITADO FROM GPS")
If c.RowCount > 0 Then
c.Position = 0
@@ -347,6 +334,17 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Entrar_Click
Dim reqManager9000 As DBRequestManager
reqManager9000.Initialize(Me, "http://keymon.lat:9000")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "selectVersionGuna"
cmd.Parameters = Array As Object("1")
Log("#### TEST QUERY FALSO")
reqManager9000.ExecuteQuery(cmd , 0, "testQueryFalso")
Dim r As Reflector
Dim Api As Int
Dim PP As Phone
@@ -373,7 +371,6 @@ Sub Entrar_Click
IMEI = PP.GetSettings("android_id")
End If
Log("IMEI = " & IMEI)
If user.Text = "ALTERNO" Then
c=skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
c.Position =0
@@ -412,7 +409,6 @@ Sub Entrar_Click
else if user.Text = "IMEI" Then
user.Text = IMEI
End If
c=skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
c.Position=0
existe = c.GetString("EXISTE1")
@@ -449,6 +445,14 @@ Sub Entrar_Click
End If
End Sub
Sub Entrar_LongClick
' dim a as int = "a"
End Sub
Private Sub user_EnterPressed
If user.text = "KMTS1" Then Entrar.Enabled = True
End Sub
Sub JobDone(Job As HttpJob)
Log(Job.Success)
If Job.Success = False Then
@@ -506,7 +510,6 @@ Sub JobDone(Job As HttpJob)
Next
paso1 = 1
ToastMessageShow(name, False)
Log("////////////////////////// "&name)
End If
End If
@@ -536,24 +539,20 @@ Sub JobDone(Job As HttpJob)
B4XSwitch2.Value = True
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1))
et_codigo.Text = ""
Private c2 As Cursor = skmt.ExecQuery("select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_RUTA not in (select * from ruta_suplencia)")
c2.Position = 0
Private rutades As String = c2.GetString("CAT_CL_RUTA")
c2.Close
Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
c2.Position = 0
Private almacendes As String = c2.GetString("ID_ALMACEN")
c2.Close
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "delete_geoPass_GUNA"
' Log(Subs.traeAlmacen&", "& Subs.traeRuta)
cmd.Parameters = Array As Object( almacendes,rutades)
reqManager.ExecuteCommand(cmd , "traeGeoPass")
Else If cuenta = "0" Then
MsgboxAsync("Codigo incorrecto","Atención")
p_validacion.Visible = False
@@ -666,13 +665,6 @@ Sub PDF_Click
End Sub
'Private Sub GetAdvertisingId As ResumableSub
' Dim jo As JavaObject = Me
' jo.RunMethod("GetAdvertisingId", Null)
' Wait For AdvertisingId_Ready (Success As Boolean, Id As String)
' Return Id
'End Sub
Sub dameUsuario
c=skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
c.Position=0
@@ -750,18 +742,13 @@ Sub i_engrane_Click
l_server.Text = Starter.server
Subs.panelVisible(p_appUpdate,0,0)
p_appUpdate.Height = Root.Height
c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA")
If c.RowCount = 0 Then
skmt.ExecNonQuery2("INSERT INTO IMPRESORA VALUES (?)", Array As Object(0))
Else
End If
c = skmt.ExecQuery("SELECT HABILITADO FROM GPS")
If c.RowCount = 0 Then
skmt.ExecNonQuery2("INSERT INTO GPS VALUES (?)", Array As Object(0))
Else
End If
End Sub
@@ -773,10 +760,6 @@ Sub i_engrane_LongClick
copiaDB
End Sub
Sub Entrar_LongClick
' dim a as int = "a"
End Sub
Private Sub lv_server_ItemClick (Position As Int, Value As Object)
Starter.server = Value
l_server.Text = Value
@@ -803,7 +786,6 @@ Private Sub b_envioBD_Click
StartActivity(in)
End Sub
Private Sub B4XSwitch1_ValueChanged (Value As Boolean)
If Value Then
Log("1")
@@ -815,13 +797,11 @@ Private Sub B4XSwitch1_ValueChanged (Value As Boolean)
End Sub
Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean)
c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CARGA_DIA"))
If c.RowCount > 0 Then
c.Position = 0
If c.GetString("CAT_VA_VALOR") = 1 Then
If Value2 Then
p_validacion.Visible = True
p_validacion.Left = (Root.Width/2) - (p_appUpdate.Width/2)
Subs.panelVisible(p_validacion,0,0)
@@ -836,13 +816,9 @@ Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean)
MsgboxAsync("Por favor primero haz carga de día","Atención")
B4XSwitch2.Value = False
End If
End Sub
Private Sub p_validacion_Click
End Sub
Private Sub b_cancelarcodigo_Click
@@ -853,31 +829,25 @@ End Sub
Private Sub b_aceptar_Click
If et_codigo.Text <> "" Then
Private c2 As Cursor = skmt.ExecQuery("select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_RUTA not in (select * from ruta_suplencia)")
c2.Position = 0
Private rutades As String = c2.GetString("CAT_CL_RUTA")
c2.Close
Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
c2.Position = 0
Private almacendes As String = c2.GetString("ID_ALMACEN")
c2.Close
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_geoPass_GUNA"
cmd.Parameters = Array As Object(et_codigo.Text, almacendes, rutades)
reqManager.ExecuteQuery(cmd , 0, "geopass")
Else If et_codigo.Text = "" Then
MsgboxAsync("Ingresa un codigo","Atención")
p_validacion.Visible = False
B4XSwitch2.Value = False
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
et_codigo.Text = ""
End If
' c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =? ", Array As String("pasword"))
@@ -905,5 +875,91 @@ Private Sub b_aceptar_Click
' B4XSwitch2.Value = False
' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
' End If
End Sub
End Sub
Sub revisaActualizacion 'Parte de la funcionalidad "appUpdater"
'################################################
'## Hay que subir el nuevo APK al servidor. ##
'## La ruta en el servidor es: \\10.0.0.205\e$\Cargas\MOVIL\Guna ##
'## Hay que actualizar la version en el archivo "gunaPreventa.ver" ##
'################################################
LogColor("Buscarmos archivo Ver", Colors.red)
Private link As String = "https://keymon.lat/movil/guna/gunaPreventa.ver"
Wait For (traeArchivoVer(Me, link)) JobDone (j As HttpJob)
If j.Success Then
LogColor("Archivo .VER encontrado.", Colors.red)
Try
Dim app() As String = Regex.Split(Chr(9),j.GetString)
' // Set the data
Starter.newApp.appLink = app(3) 'Liga a nuevo apk
Starter.newApp.newMsg = app(1) 'Texto de que hay actualizacion
Starter.newApp.okMsg = app(2) 'Texto de app al corriente
Starter.newApp.version = app(0) 'Version actual
Log($"Application.VersionName=${Application.VersionName}, newApp=${Starter.newApp}"$)
'Guardamos la fecha de la última revisión en CAT_VARIABLES.
DateTime.DateFormat = "yyyyMMdd"
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("REVISION_APK"))
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("REVISION_APK", DateTime.Date(DateTime.Now)))
' // App version check
If Starter.newApp.version = Application.VersionName Then
Starter.newApp.update = False
LogColor("No hay nuevo APK", Colors.red)
B4XPages.MainPage.Entrar.Enabled = True
End If
If Starter.newApp.version <> Application.VersionName Then
Starter.newApp.update = True
LogColor("Hay nuevo APK", Colors.red)
b_actualizacion.Visible = True
CallSubDelayed(appUpdater, "download_newApk")
End If
Catch
LogColor("appUpdater(), Job Failed, error " & LastException.Message, Colors.red)
If Msgbox2("Hubo un error: " & LastException.Message, "FALLO LA ACTUALIZACIÓN", "OK", "", "", Null) = DialogResponse.POSITIVE Then 'Ignore
ExitApplication
End If
End Try
Else
LogColor("appUpdater(), Job Failed " & link & CRLF & LastException.Message, Colors.Red)
If Msgbox2("Es necesaria una conexión a internet, por favor revise su conexión y vuelva a intentar", "ATENCIÓN", "OK", "", "", Null) = DialogResponse.POSITIVE Then 'Ignore
ExitApplication
End If
End If
j.Release
End Sub
'En el servidor se necesita un archivo de texto (.ver) que tenga los siguientes
'datos separados por un tabulador:
' Campo 0 = 4.10.10 <-- Esta es la version de la aplicación disponible.
' Campo 1 = Hay una nueva actualizacion disponible. <-- Mensaje para cuando hay actualización.
' Campo 2 = Tu version es la ultima. <--- Mensaje para cuando no hay actualización.
' Campo 3 = https://keymon.lat/movil/guna/Guna_Preventa.apk <--- Liga al apk de la actualización.
Sub traeArchivoVer (Callback As Object, link As String) As HttpJob 'Parte de la funcionalidad "appUpdater"
Dim j As HttpJob
j.Initialize("", Callback)
j.GetRequest.Timeout = 5000
j.Download(link)
Return j
End Sub
'Regresa verdadero si ya se reviso la version del apk el dia de hoy.
Sub versionRevisadaHoy As Boolean
Private revisada As Boolean = False
c = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("REVISION_APK"))
If c.RowCount > 0 Then
c.Position = 0
DateTime.DateFormat = "yyyyMMdd"
If DateTime.Date(DateTime.Now) = c.GetString("CAT_VA_VALOR") Then
revisada = True
LogColor("La versión ya se revisó el día de hoy.", Colors.Red)
End If
End If
' #######################################
' ### REGRESAMOS FALSE PARA QUE SIEMPRE REVISE ###
' #######################################
Return False
' Return revisada
End Sub
Private Sub b_actualizacion_Click
CallSubDelayed(appUpdater, "download_newApk")
End Sub