From 828527ea5f979b90d74d49f41ff79655ad8396ab Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Wed, 16 Oct 2024 10:22:00 -0600 Subject: [PATCH] - VERSION 4.10.11 - Encuesta Pedrigree Cajitas Act II - Actualizacion Forzosa --- B4A/B4XMainPage.bas | 196 ++++++++++++++++++++++------------ B4A/C_Cliente.bas | 6 +- B4A/C_Principal.bas | 76 ++++++++----- B4A/C_Productos.bas | 32 +++++- B4A/C_UpdateAvailable.bas | 22 +++- B4A/Files/cliente.bal | Bin 46331 -> 46752 bytes B4A/Files/login.bal | Bin 16461 -> 17081 bytes B4A/Files/proditem.bal | Bin 5658 -> 5658 bytes B4A/Guna Vistas V3.1.b4a | 4 +- B4A/Guna Vistas V3.1.b4a.meta | 12 +-- B4A/Starter.bas | 3 +- B4A/Subs.bas | 26 ++++- B4A/appUpdater.bas | 87 ++++++++------- 13 files changed, 306 insertions(+), 158 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 6920ec8..9dcb047 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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 \ No newline at end of file +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 diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 0566983..de8d1d8 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -424,6 +424,7 @@ Sub Class_Globals Dim contadorIniciarVenta As Int = 0 Dim IniVenNO As Boolean = False Private geoCont As Int = 0 + Private l_version As Label End Sub 'You can add more parameters here. @@ -475,6 +476,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) p_pregunta1.Width = Root.Height Tels.Visible = False gest.Visible = False + l_version.Left = Root.Width - (l_version.Width + 10) cuest.Initialize(Me, "cuest", Root, B4XPages.MainPage.skmt) End Sub @@ -494,7 +496,7 @@ Sub B4XPage_Appear LA_GPS.TextColor = Colors.Red LA_GPS.Text = "SIN UBICACION GPS" cercavalor = 0 - + l_version.Text = Application.VersionName b_Inicio_Fin_venta.Text = "INICIAR VENTA" b_Inicio_Fin_venta.BringToFront ' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red) @@ -1681,7 +1683,7 @@ Private Sub b_preguntag_Click Else - Msgbox("Contesta la pregunta de favor","AVISO") + Msgbox("Contesta la pregunta por favor","AVISO") End If End Sub diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 75cfa32..dfea988 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -645,7 +645,7 @@ Sub Subir_Click cmd.Name = "insert_encuesta2_GUNA" 'TMP_HE_CLIE, TMP_HE_RES, TMP_HE_FECHA, TMP_HE_TIPO, TMP_HE_IDALMACEN, TMP_HE_RUTA, TMP_HE_LONGITUD, TMP_HE_LATITUD, TMP_HE_EXISTE cmd.Parameters = Array As Object(C.GetString("HE_CLIE"), C.GetString("HE_RES"), C.GetString("HE_FECHA"), c.GetString("HE_TIPO"), Subs.traeAlmacen, Subs.traeRuta, c.GetString("HE_LAT"), c.GetString("HE_LON"), "", c.GetBlob("HE_FOTO")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_encuesta") Next End If c.Close @@ -684,23 +684,23 @@ Sub Subir_Click d.Close ' 'CUESTIONARIO -' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) -' Private rutaActual As String = Subs.traeRuta -' If c.RowCount > 0 Then -' For i = 0 To c.RowCount - 1 -' c.Position = i -' Dim cmd As DBCommand -' cmd.Initialize -' cmd.Name = "insert_CUESTIONARIO_GUNA" -' cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) -' B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario") -' Next -' End If -' c.Close + c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) + Private rutaActual As String = Subs.traeRuta + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_CUESTIONARIO_GUNA" + cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario") + Next + End If + c.Close ' NOVENTA - c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") - D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") + c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") + D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i @@ -718,7 +718,7 @@ Sub Subir_Click ' DATOS DE KMTS PARA EL TIPO DE ABARROTE. '''CAT_CL_GIRO = ? WHERE CAT_CL_CODIGO = ? And CAT_CL_NOMBRE = ? kmt_info2 - c=B4XPages.MainPage.skmt.ExecQuery("Select CAT_CL_GIRO, CAT_CL_CODIGO from kmt_info2") + c=B4XPages.MainPage.skmt.ExecQuery("Select CAT_CL_GIRO, CAT_CL_CODIGO from kmt_info2") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i @@ -726,7 +726,7 @@ Sub Subir_Click cmd.Initialize cmd.Name = "insert_GIROS_ENC" cmd.Parameters = Array As Object(C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_GIRO")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_abarrote") Next End If c.Close @@ -740,7 +740,7 @@ Sub Subir_Click cmd.Initialize cmd.Name = "insert_geocerca_GV2" cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_hist_geo") Next End If c.Close @@ -754,7 +754,7 @@ Sub Subir_Click cmd.Initialize cmd.Name = "insert_face_like_GV2" cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_hist_face") Next End If c.Close @@ -770,7 +770,7 @@ Sub Subir_Click cmd.Initialize cmd.Name ="insert_drop_GV2_2" cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",ALMACEN) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_drop") img2.Visible =True PORCENTAJE = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1)) If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) @@ -932,7 +932,7 @@ Sub cargar_Click cmd.Initialize cmd.Name ="insert_drop_GV2_2" cmd.Parameters = Array As Object(usuario,e_ruta.text,sDate,imei,sTime,"","","","","CARGA",ALMACEN) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_drop") cmd.Initialize cmd.Name = "select_cat_gunaprod_GV2" @@ -1029,6 +1029,23 @@ Sub cargar_Click cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_pro2265") +' Dim reqManager9000 As DBRequestManager +' reqManager9000.Initialize(Me, "http://keymon.lat:9000/") + + 'Promo PRO3054 - Plan promocional Act II Cajitas (Conagra) + ' Solo aplica para los que hayan comprado la PRO3054 durante Jul-Sep, el siguiente query trae esos clientes. + cmd.Initialize + cmd.Name = "selectPromo3054Jul-Sep_Guna" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_pro3054") + + 'Promo PRO3055 - Plan promocional Act II Cajitas (Conagra) + ' Solo aplica para los que hayan comprado la PRO3055 durante Jul-Sep, el siguiente query trae esos clientes. + cmd.Initialize + cmd.Name = "selectPromo3055Jul-Sep_Guna" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_pro3055") + If E_RUTA2.text <> "" Then B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTA_SUPLENCIA(RS_RUTA) VALUES(?)",Array As String(E_RUTA2.Text)) @@ -1156,7 +1173,7 @@ Sub JobDone(Job As HttpJob) If n = "OKActivo" Then Dim cmd As DBCommand cmd.Initialize - cmd.Name = "select_ruta_GV2_70_6" + cmd.Name = "select_ruta_GV2_70_8" cmd.Parameters = Array As Object(ALMACEN,e_ruta.text) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") 'Log("Usuario guardado en BD es 'Valido'") @@ -1913,13 +1930,24 @@ Sub JobDone(Job As HttpJob) Next End If - Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) If RESULT.Tag = "hist_pro2265" Then 'query tag Starter.skmt.ExecNonQuery("delete from HIST_PRO2265") For Each records() As Object In RESULT.Rows Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PRO2265(H_IDCLIENTE) VALUES (?)", Array As Object (records(RESULT.Columns.Get("HVD_CLIENTE")))) Next End If + If RESULT.Tag = "hist_pro3054" Then 'query tag + Starter.skmt.ExecNonQuery("delete from HIST_PRO3054") + For Each records() As Object In RESULT.Rows + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PRO3054(H_IDCLIENTE) VALUES (?)", Array As Object (records(RESULT.Columns.Get("HVD_CLIENTE")))) + Next + End If + If RESULT.Tag = "hist_pro3055" Then 'query tag + Starter.skmt.ExecNonQuery("delete from HIST_PRO3055") + For Each records() As Object In RESULT.Rows + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PRO3055(H_IDCLIENTE) VALUES (?)", Array As Object (records(RESULT.Columns.Get("HVD_CLIENTE")))) + Next + End If End If End If diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 6736139..7e92645 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -209,9 +209,11 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object) ' Dim bmp As Bitmap ' Dim jpeg() As Byte Private yaComproPRO2265 As Boolean = Subs.revisaPRO2265(Subs.traeCliente) + Private yaComproPRO3054 As Boolean = Subs.revisaPRO3054(Subs.traeCliente) + Private yaComproPRO3055 As Boolean = Subs.revisaPRO3055(Subs.traeCliente) If c2.RowCount > 0 Then For i=0 To c2.RowCount -1 - c2.Position=i + c2.Position = i ' jpeg = c2.GetBlob("CAT_GP_IMG") ' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) ' bmp.Initialize2(ins) @@ -222,7 +224,13 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object) If yaComproPRO2265 And c2.GetString("CAT_GP_ID") = "PRO3015" Then ' Si la promo es la PRO3015 y ya compro la PRO2265, NO la mostramos. LogColor("Ya compro la PRO2265, ya no se muestra la PRO3015", Colors.Red) Else - lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant")) + If (yaComproPRO3054 And c2.GetString("CAT_GP_ID") = "PRO3054") Or _ + (yaComproPRO3055 And c2.GetString("CAT_GP_ID") = "PRO3055") Or _ + (Subs.traeCliente.StartsWith("N")) Then ' Si la promo es la PRO3054 o PRO3055 y ya compro, NO la mostramos. + LogColor("Ya compro prods de la PRO3054 o PRO3055 o es cliente nuevo, ya no se muestra.", Colors.Red) + Else + lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant")) + End If End If End If Next @@ -245,6 +253,7 @@ Sub lv_promos_ItemClick (Position As Int, Value As Object) clv_productos.AsView.Visible = False Dim cliente As C_Cliente = B4XPages.GetPage("Cliente") ' Log($"Entro=${entro}, value=${Value}, cuenta=${cliente.cuenta}"$) + LogColor("PROMOS CLIC", Colors.Magenta) If Value = "PROMOS" And cliente.cuenta <> "N" Then entro = "3" marca = "PROMOS" @@ -343,7 +352,10 @@ Sub llenaCatalogo(limpiar As Boolean) bgColor = Colors.RGB(241, 255, 163) 'amarillo End If textColor = Colors.Black - clv_productos.Add(CreateListItem(c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_PRECIO"), c2.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, c2.GetString("CAT_GP_ID"), bgColor, textColor), c2.GetString("CAT_GP_NOMBRE")) + If c2.GetString("CAT_GP_ID") <> "GUN141" And c2.GetString("CAT_GP_ID") <> "GUN142" Then ' No mostramos los productos del Plan promocional Act II Cajitas (Conagra) +' Log(c2.GetString("CAT_GP_ID")) + clv_productos.Add(CreateListItem(c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_PRECIO"), c2.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, c2.GetString("CAT_GP_ID"), bgColor, textColor), c2.GetString("CAT_GP_NOMBRE")) + End If Next End If ponProdsEnCero @@ -417,7 +429,10 @@ Sub BUSCA_TextChanged (Old As String, New As String) bgColor = Colors.RGB(241, 255, 163) 'amarillo End If textColor = Colors.Black - clv_productos.Add(CreateListItem(se.GetString("CAT_GP_NOMBRE"), se.GetString("CAT_GP_PRECIO"), se.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, se.GetString("CAT_GP_ID"), bgColor, textColor), se.GetString("CAT_GP_NOMBRE")) + If se.GetString("CAT_GP_ID") <> "GUN141" And se.GetString("CAT_GP_ID") <> "GUN142" Then ' No mostramos los productos del Plan promocional Act II Cajitas (Conagra) +' Log(c2.GetString("CAT_GP_ID")) + clv_productos.Add(CreateListItem(se.GetString("CAT_GP_NOMBRE"), se.GetString("CAT_GP_PRECIO"), se.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, se.GetString("CAT_GP_ID"), bgColor, textColor), se.GetString("CAT_GP_NOMBRE")) + End If Next If se.RowCount > 50 Then ProgressDialogHide ponProdsEnCero @@ -689,4 +704,11 @@ End Sub Private Sub b_buscar_Click forzarbusqueda = True BUSCA_TextChanged("","") -End Sub \ No newline at end of file +End Sub + +' almacenes: 1, 5, 25, 2, 4, 38, 64, 3, 16, 14, 12, 22, 32 +' Basicas GUN003, GUN002, GUN001 +' Sabores GUN003, GUN005, GUN004, GUN050 +' Basicas PRO3054, GUN141 +' Sabores PRO3055, GUN142 + diff --git a/B4A/C_UpdateAvailable.bas b/B4A/C_UpdateAvailable.bas index 8bd6e51..a18de6b 100644 --- a/B4A/C_UpdateAvailable.bas +++ b/B4A/C_UpdateAvailable.bas @@ -45,7 +45,6 @@ End Sub '//// cuando hay alguna actualizacion de apk. '//////////////////////////////////////////////////////////////////////////////////////////// - public Sub CanRequestPackageInstalls As Boolean ' // https://www.b4x.com/android/forum/threads/version-safe-apk-installation.87667/#content Dim ctxt As JavaObject @@ -60,14 +59,27 @@ Sub ofreceActualizacion CallSubDelayed(appUpdater, "download_newApk") End If B4XPages.MainPage.ocultaProgreso +' B4XPages.MainPage.buscandoActualizacion = False StartActivity(Main) ' Activity.Finish - B4XPages.ShowPage("Login") + +' B4XPages.ShowPage("Login") End Sub Sub sinActualizacion - Msgbox(appUpdater.newApp.okMsg, "Aplicación al corriente") 'ignore -' StartActivity(Main) +' Log("#### buscandoActualizacion-" & B4XPages.MainPage.buscandoActualizacion) +' Log("#### actualizacionRevisada-" & B4XPages.MainPage.actualizacionRevisada) +' Log("Ponemos actualizacionRevisada en true") +' B4XPages.MainPage.login.actualizacionRevisada = True +' If B4XPages.MainPage.buscandoActualizacion = False Then + Msgbox(appUpdater.newApp.okMsg, "Aplicación al corriente") 'ignore +' MsgboxAsync(appUpdater.newApp.okMsg, "Aplicación al corriente") +' Else +' B4XPages.MainPage.Entrar.Enabled = True +' End If B4XPages.MainPage.ocultaProgreso - B4XPages.ShowPage("Login") +' Log("Ponemos buscandoActualizacion en False") +' B4XPages.MainPage.login.buscandoActualizacion = False +' Sleep(500) + B4XPages.ShowPage("login") End Sub \ No newline at end of file diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index efc8a215e45cd55fddd44f5a8deee1713279de94..35026eab11511d8b2751beb13b5c8e519a7e3cd1 100644 GIT binary patch delta 443 zcmezUl4-$PCSFzs1_lQn1_mx5UAB?8iJ6xZ$jXT?OD!tS%+K50&s@vIn7o;nZ83Ab zDNx1?h@*j+8HibcI0lGgfjAC`A0kUD9ECsVSFXHNDWK`H}z#}Oj z!vqvEHbn_5P*4VWx_g9d_LP}1gGrWg@nE7Bkl~17%o%I2wp! zfH)S2i+0C9jk^-CSWM<5m-0#CR IdBQdU0Kk4K2><{9 diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 412b7620134dc5f33124ac6f0c372e5de13ec43c..0a798d52fd3216ed37f514d393d2e078896d65d1 100644 GIT binary patch delta 3301 zcmc&$?N3`(7{3SG!Y%K#D3rI-7HD}XbjbTyH*rynZpaXHn`0de#{vv+$OfBq8*{#F zvh5KkLXc!G(HLJAzWDM%jo+4-Ec^kA(U|BynkAYL@%P-)_FgCx$r779r@wQ~Ju)=zS(Av5;hu*+Bfz9 z=5(-FSR5=KmY~ACHuy{ua55|fW`dbvsjvrC_#qWe15SroU>Pc$8OCE$R=6W&t8k7A zTU9t$g>Argm;;sv%ZC-foGR>6;X)NIQm{9$pjb6gqQY+A;E79tgG!VI$LFJUOG4b3 z*BLr>G+;dI7MLktBlxjC*6eZLN$ZYq6uz79qd$y`$s8|VPyZ1g$D#45oxA22V?Q%Q zB?$5rrPF)%#Q85%TzYCRPRp2@n&NW`R&^Il-i?NTx~8kewT8eDWjd;8#u4Y#KA}9; zj8@*m4NNaMMdTK`ooNxzP;NnmsRaY9UL40-X6;(3B;6)j$Wzj2tVEx;7T4%{x<|B8 z($@VUPJ9gQjuALDXrI6mNf(LJvzTzhWLBS*kCvqEJ3KrRAj%I!BKjPNR!~!g*~GI7 z*#!VjLE)rJB~HppH9xi&-6)v64-FINz)JFdG|KSv00(%a9nC?Q7)HZCok}<#B(vnP z3(j0F;q=oEJ z(L?^CM{zD|esQ8U*hmLAE#<^*GEI9`Y1#|Ms}<%n?WJYw_|tu%^K3ZI$FSreEMlDd z=_ilH6pAw!jS}a661KZyfHF;XV`y-Isw;EIYD*)(DS^7}{`IujY`G57ZO2NvItD={ ztiu3$tuVb*tF(1!hQd55hp^MX@xUV~Oo%JGp215f)n@vkVC#J< z$KiF#kxO?KIWEWb>Zl=NIiBEzFYJITrPhB3sOCfPX_RC*0ifE2estYP4Hwo)%qnF+ zBGFfgIrMpQ@w9eR^wwq*2DMRq z8BrV`3zys&o={He2RH)@Tvca-!z|c2m^_Z=JWMZML2FpPb?epz1xO1muL8)gp?O^y zSzca#1As4T+`ysL;ftF-F3qDkPjbZ2T}0@L=_9u+{Iuk;ST4eeN?Y`T+mRwm+NBNpg&O=L1m*EMuPp2hq0sdx4t)ka7U>&Px=G*h_?%Ds} z|F(NRnq=ReV`(~#M)L<61KyRhX}dohaHKE?T}gRnJQYJmAPtD}bnr(2Esz0h1WZ6C zU?aDBiDYYRT=JMBTGmFsa*sZQd7+)Ych}QrZexbr#Tb9I z9W?7Mr_CkCV)eK*`6OClFK+-H08i?Dyt?#oJK#X)WbeP_>MVY+7**+H7Jl~cdRK)drt zEr%e6$3!Fapm`vHy^>p=quUTBi|pkh+4J;?ZNl;b#QZ~neQS2u$Hk={hM>)WK4PTV z`ZBs-W1%refW1g2_xAXB_Z9r>c=s#f-4D%cUC-m)PyNmby5}_{jr0+$Od9E<)LbZ< zW0B@*mH`My=}6)4Y>;Leorc&Tx~?zcEqw@?Jp@b56e@aD&hEM)m9>NDbpbk!Uupwr zg_qFqBTL|CR}&}0Nc~p&)F+Uoc;r9X<}vj)3y(qVYETkylNO75X;*15X?)hL#1ly> z@kG34UWv)dXIsKbJQ>Y%PZ;8)QvVgC0g${ZWx~m|nrO(Hk8+(%c--UH;-nOI)^R#C-Et?w)r zO7@O{j05rkb1pi}Q}Pu+IFIH6pkotg^^xV}NCw(@!@KM@Lxjtx8Ysfm9@0sw9xJP06RoKo3>MXgPYAsH^Aet zN2*?QT{il>;TtxO2~WnnO57ZM-FQa*Bak?uuJMH0u+ZYea$(=f#eK&wR$f!dml z%X`>$D-8#BD3#s{#GF3wFM;jyf59Dp@y4|R$(O%Vy2tMZyV-SYDvNGrr(#LCsXgPm zdM`^in@Sk{=&qpB788^I-KOm(?!u_+$q+1{kd0qri!HTuIGC=R!>sJ#1>>> revisaPRO2265 ${idCliente} = ${x}"$) Return x -End Sub \ No newline at end of file +End Sub + +'Regresa TRUE si el cliente especificado existe en el historico de compra de la promo. +Sub revisaPRO3054(idCliente As String) As Boolean + Private r As ResultSet = Starter.skmt.ExecQuery($"select * from HIST_PRO3054 where H_IDCLIENTE = '${idCliente}'"$) + Private x As Boolean = False + Do While r.NextRow + x = True + Loop + Log($">>>> revisaPRO3054 ${idCliente} = ${x}"$) + Return x +End Sub + +'Regresa TRUE si el cliente especificado existe en el historico de compra de la promo. +Sub revisaPRO3055(idCliente As String) As Boolean + Private r As ResultSet = Starter.skmt.ExecQuery($"select * from HIST_PRO3055 where H_IDCLIENTE = '${idCliente}'"$) + Private x As Boolean = False + Do While r.NextRow + x = True + Loop + Log($">>>> revisaPRO3055 ${idCliente} = ${x}"$) + Return x +End Sub diff --git a/B4A/appUpdater.bas b/B4A/appUpdater.bas index fa0313f..74c134d 100644 --- a/B4A/appUpdater.bas +++ b/B4A/appUpdater.bas @@ -78,7 +78,7 @@ Sub Process_Globals 'These variables can be accessed from all modules. 'Aqui va la liga al archivo .ver en el servidor que contiene la información de la aplicacion - Public lnk As String = "https://keymon.lat/movil/guna/cedex.ver" + Public lnk As String = "https://keymon.lat/movil/guna/gunaPreventa.ver" ' Public lnk As String = "https://10.0.0.205/Movil/Guna/cedex.ver" '########################################## '## La ruta en el servidor es: ## @@ -97,12 +97,11 @@ Sub Process_Globals 'Para Download Dim nativeMe As JavaObject Dim n2 As Notification - Dim n2ID As Int = 16 + Dim n2ID As Int = 16 'Para fileProvider Public SharedFolder As String Public UseFileProvider As Boolean Private rp As RuntimePermissions - Type mNewVersion(update As Boolean, nonewAPP As Boolean, notifyUser As Boolean, _ version As String, newMsg As String, okMsg As String, appLink As String) Public newApp As mNewVersion @@ -119,43 +118,43 @@ End Sub Sub Service_Start (StartingIntent As Intent) Log("appUpdater(), Service_Start") ' CallSubDelayed2(Main, "muestraProgreso", "Buscando actualización") - B4XPages.MainPage.muestraProgreso("Buscando actualización") + B4XPages.MainPage.muestraProgreso("Buscando actualizaciones, un momento por favor.") Log("Buscando actualización") fileProvider_init - Wait For (Download(Me, lnk)) JobDone (j As HttpJob) - If j.Success Then - Try - Dim app() As String = Regex.Split(Chr(9),j.GetString) - ' // Set the data - newApp.appLink = app(3) 'Liga a nueva app - newApp.newMsg = app(1) 'Texto de que hay actualizacion - newApp.okMsg = app(2) 'Texto de app al corriente - newApp.version = app(0) 'Version actual - - Log($"Application.VersionName=${Application.VersionName}, newApp=${newApp}"$) - - ' // App version check - If newApp.version = Application.VersionName Then - newApp.update = False - Log("No new app") - B4XPages.ShowPage("updateAvailable") - 'Se puede mandar tambien una notificacion avisando que NO hay actualizaciones - CreateNotification2("Aplicacion al corriente","No hay actualizaciones disponibles","ic_file_download_white_24dp",Main,True,True,nNewApp,nNewAppnID) - End If - If newApp.version <> Application.VersionName Then - newApp.update = True - Log("New app true") - B4XPages.ShowPage("updateAvailable") - 'Se puede mandar tambien una notificacion avisando que hay actualizacion disponible -' CreateNotification2("Nueva aplicación disponible","Haga clic para descargar.","ic_file_download_white_24dp",C_UpdateAvailable,True,True,nNewApp,nNewAppnID) - End If - Catch - Log("appUpdater(), Job Failed, error " & LastException.Message) - End Try - Else - Log("appUpdater(), Job Failed " & lnk) - End If - j.Release +' Wait For (Download(Me, lnk)) JobDone (j As HttpJob) +' If j.Success Then +' Try +' Dim app() As String = Regex.Split(Chr(9),j.GetString) +' ' // Set the data +' newApp.appLink = app(3) 'Liga a nueva app +' newApp.newMsg = app(1) 'Texto de que hay actualizacion +' newApp.okMsg = app(2) 'Texto de app al corriente +' newApp.version = app(0) 'Version actual +' +' Log($"Application.VersionName=${Application.VersionName}, newApp=${newApp}"$) +' +' ' // App version check +' If newApp.version = Application.VersionName Then +' newApp.update = False +' Log("No new app") +' B4XPages.ShowPage("updateAvailable") +' 'Se puede mandar tambien una notificacion avisando que NO hay actualizaciones +'' CreateNotification2("Aplicacion al corriente","No hay actualizaciones disponibles","ic_file_download_white_24dp",Main,True,True,nNewApp,nNewAppnID) +' End If +' If newApp.version <> Application.VersionName Then +' newApp.update = True +' Log("New app true") +' B4XPages.ShowPage("updateAvailable") +' 'Se puede mandar tambien una notificacion avisando que hay actualizacion disponible +'' CreateNotification2("Nueva aplicación disponible","Haga clic para descargar.","ic_file_download_white_24dp",C_UpdateAvailable,True,True,nNewApp,nNewAppnID) +' End If +' Catch +' Log("appUpdater(), Job Failed, error " & LastException.Message) +' End Try +' Else +' Log("appUpdater(), Job Failed " & lnk) +' End If +' j.Release ' StopService(Me) End Sub @@ -167,22 +166,28 @@ Sub download_newApk ' CreateNotification("Descargando actualización", "Descargando apk", "ic_file_download_white_24dp", Main, False, True) ' CallSubDelayed2(Main, "muestraProgreso", "Descargando actualización") Log("Descargando actualización") - B4XPages.ShowPage("login") +' B4XPages.ShowPage("login") Starter.muestraProgreso = 1 + B4XPages.MainPage.muestraProgreso("Descargando nueva versión, un momento por favor.") Dim job_newAPP As HttpJob + If job_newAPP.IsInitialized Then job_newAPP.Release +' Log(">>>> LOGIN LINK : " & Starter.newApp.appLink) + If Starter.newApp.appLink <> "" Then newApp = Starter.newApp job_newAPP.Initialize("job_newAPP",Me) - job_newAPP.Download(newApp.appLink) +' Log(newApp.appLink & "?dummy=" & DateTime.Now) + job_newAPP.Download(newApp.appLink & "?dummy=" & DateTime.Now) Wait for (job_newAPP) JobDone (job_newAPP As HttpJob) If job_newAPP.Success = True Then ' // Delete existing file If File.Exists(SharedFolder,"newapp.apk") Then +' Log(">>>>>> Borramos achivo anterior") File.Delete(SharedFolder,"newapp.apk") End If ' // Save new file Dim outNewAPK As OutputStream = File.OpenOutput(SharedFolder,"newapp.apk", False) File.Copy2(job_newAPP.GetInputStream, outNewAPK) outNewAPK.Close - If Starter.Logger Then Log("APK dir: "&SharedFolder) + Log("APK dir: "&SharedFolder) End If job_newAPP.Release ' // Install the app