From fd6b1523da84bd37f50357ed726207cfae2e0c95 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Thu, 17 Oct 2024 23:49:34 -0600 Subject: [PATCH] - VERSION 4.10.15 - Se genera un GUID para pruebas en lugar del IMEI --- B4A/B4XMainPage.bas | 97 ++++++++++++++++++++++++----------- B4A/C_Principal.bas | 24 +++++---- B4A/KelloggsV4.b4a | 4 +- B4A/KelloggsV4.b4a.meta | 8 +-- B4A/ManageExternalStorage.bas | 9 +--- B4A/Promociones.bas | 2 +- B4A/Starter.bas | 1 + B4A/Subs.bas | 32 ++++++++++++ B4A/kms_helperSubs.bas | 6 +-- 9 files changed, 125 insertions(+), 58 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index a6c48e2..8ff2ea3 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -303,9 +303,9 @@ Private Sub B4XPage_Created (Root1 As B4XView) End Try End If ' Dim ph As Phone 'Get Id Device - Dim DeviceID As String = Starter.ph.GetSettings("android_id").ToUpperCase - If logger Then Log($"Marca: ${Starter.ph.manufacturer}, Modelo: ${Starter.ph.model}"$) - If logger Then LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue) +' Dim DeviceID As String = Starter.ph.GetSettings("android_id").ToUpperCase +' If logger Then Log($"Marca: ${Starter.ph.manufacturer}, Modelo: ${Starter.ph.model}"$) +' If logger Then LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue) ' If Logger Then LogColor("Revisa permisos Phone_State", Colors.Green) 'este codigo es para lo del menu ' PopupMenu.Initialize("PopupMenu", b_menu) @@ -315,16 +315,18 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' PopupMenu.AddMenuItem(3, 3, "Remove") ' menu fin ' Subs.borraArribaDe100Errores - Log("Pedimos permisos de estado del cel") - rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE) - Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) - If Result Then -' Dim Phn As PhoneId - IMEN.Text = "" 'Phn.GetDeviceId - IMEI ="" ' Phn.GetDeviceId - If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue) - End If - Log("Permisos cel terminados") +' Log("Pedimos permisos de estado del cel") +' rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE) +' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) +' If Result Then +'' Dim Phn As PhoneId +' IMEN.Text = "" 'Phn.GetDeviceId +' IMEI ="" ' Phn.GetDeviceId +' If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue) +' End If +' Log("Permisos cel terminados") + IMEN.Text = "" + IMEI ="" ' Phn.GetDeviceId Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) Wait For B4XPAge_PermissionResult (Permission As String, Result As Boolean) @@ -334,20 +336,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) Else ToastMessageShow("Sin permisos para GPS", True) End If - -' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT")) -' Log("REVISAMOS PERMISOS DE BT") -' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") -' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) -' If Result Then Log("Tenemos permisos de bluetooth.") -' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") -' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE)) - kh.centraPanel(p_botones, Root.Width) -End Sub - -Sub B4XPage_Appear MES1.Initialize(Me, "MES1") - Log("SDK: " & device.SdkVersion) +' Log("SDK: " & device.SdkVersion) ' Get the device SDK version Dim SdkVersion As Int = device.SdkVersion ' Choose which permission to request in order to access external storgage @@ -363,16 +353,29 @@ Sub B4XPage_Appear Wait For B4XPage_PermissionResult (Permission As String, ResultX As Boolean) Log($"PERMISSION_READ_EXTERNAL_STORAGE = ${ResultX}"$) Else -' Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission") -' Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission) + Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission") + Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission) If Not(MES1.HasPermission) Then MsgboxAsync("This app requires access to all files, please enable the option", "Manage All Files") Wait For Msgbox_Result(Res As Int) -' Log("Getting permission") + Log("Getting MES permission") MES1.GetPermission Wait For MES_StorageAvailable End If End If + + +' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT")) +' Log("REVISAMOS PERMISOS DE BT") +' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") +' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) +' If Result Then Log("Tenemos permisos de bluetooth.") +' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") +' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE)) + kh.centraPanel(p_botones, Root.Width) +End Sub + +Sub B4XPage_Appear kh.RD_Init kh.SetButtonTintList(cb_geocerca, Colors.LightGray, Colors.RGB(43, 154, 211)) kh.SetButtonTintList(cb_cartaPorte, Colors.LightGray, Colors.RGB(43, 154, 211)) @@ -438,7 +441,7 @@ Sub B4XPage_Appear ' Log(">>>>>> FECHA") cmd.Initialize cmd.Name = "select_fecha" - cmd.Parameters = Array As Object("", "") +' cmd.Parameters = Array As Object(Null) reqManager.ExecuteQuery(cmd , 0, "fecha") End Sub @@ -867,4 +870,38 @@ Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean) ' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red) Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'") Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$) +End Sub + +Sub CreateRequest As DBRequestManager + Dim req As DBRequestManager + req.Initialize(Me, Starter.DBReqServer) + Return req +End Sub + +Sub CreateCommand(Name As String, Parameters() As Object) As DBCommand + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = Name + If Parameters <> Null Then cmd.Parameters = Parameters + Return cmd +End Sub + +Sub GetFecha +' Dim req As DBRequestManager = CreateRequest +' Dim cmd As DBCommand = CreateCommand("select_fecha", Array(Null)) +' Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob) +' If j.Success Then +' req.HandleJobAsync(j, "req") +' Wait For (req) req_Result(res As DBResult) +' 'work with result +' req.PrintTable(res) +' Else +' Log("ERROR: " & j.ErrorMessage) +' End If +' j.Release +End Sub + +Private Sub ImageView1_LongClick + Log("###### TRAEMOS FECHA #######") + GetFecha End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 75b03b3..00927c4 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -523,6 +523,8 @@ Sub B4XPage_Appear NUEVO.Enabled = True B_PROXIMA.Enabled = True End If + LogColor("REVISAMOS GUID", Colors.red) + Subs.generaGUID_EnExterno End Sub Sub trabajar_Click @@ -805,7 +807,7 @@ Sub cargar_Click cmd.Initialize cmd.Name = "select_hist_datos_KELL" - cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) reqManager.ExecuteQuery(cmd , 0, "hist_datos") cmd.Initialize @@ -882,7 +884,7 @@ Sub cargar_Click cmd.Initialize cmd.Name = "select_fecha" - cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) +' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) reqManager.ExecuteQuery(cmd , 0, "fecha") cmd.Initialize @@ -913,7 +915,7 @@ Sub cargar_Click cmd.Initialize cmd.Name = "select_dia_visita_KELL" - cmd.Parameters = Array As Object( ALMACEN) +' cmd.Parameters = Array As Object(Null) reqManager.ExecuteQuery(cmd , 0, "dia_visita") cmd.Initialize @@ -2482,14 +2484,14 @@ Sub Resumen_Click L_ABORDO.Text = "0" P_RESUMEN.Visible = True P_RESUMEN.BringToFront - trabajar.Visible = False - B_PROXIMA.Visible =False - NUEVO.Visible =False - BUSCA.Visible=False - connecta.Visible=False - Subir.Visible=False - cargar.Visible=False - Resumen.Visible= False +' trabajar.Visible = False +' B_PROXIMA.Visible =False +' NUEVO.Visible =False +' BUSCA.Visible=False +' connecta.Visible=False +' Subir.Visible=False +' cargar.Visible=False +' Resumen.Visible= False DateTime.DateFormat = "MM/dd/yyyy" fecha=DateTime.Date(DateTime.Now) Starter.skmt.ExecNonQuery2("update PEDIDO set PE_TIPO = ? where PE_CLIENTE =?", Array As Object("ABORDO", "0")) diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 0cf9e38..5dad5d6 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -887,7 +887,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 4.09.17 + #VersionName: 4.10.15 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true @@ -905,6 +905,8 @@ Version=12.8 Sub Process_Globals Public ActionBarHomeClicked As Boolean +' Type DBResult (Tag As Object, Columns As Map, Rows As List) +' Type DBCommand (Name As String, Parameters() As Object) End Sub Sub Globals diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index 4f22ec6..e30d95c 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -61,9 +61,9 @@ ModuleBreakpoints7= ModuleBreakpoints8= ModuleBreakpoints9= ModuleClosedNodes0= -ModuleClosedNodes1= +ModuleClosedNodes1=2 ModuleClosedNodes10= -ModuleClosedNodes11=25 +ModuleClosedNodes11=3,25 ModuleClosedNodes12= ModuleClosedNodes13= ModuleClosedNodes14= @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Principal,Class_Globals,0,0,C_Cliente,Class_Globals,0,0,C_Cliente,B_IMP_Click,1041,0,Subs,borraPedidoClienteActual,1487,0,C_Cliente,BP_DOE_R_Click,4168,0,C_Cliente,BP_DOE_A_Click,4163,0,C_Principal,Subir_Click,556,1,C_Principal,B4XPage_Appear,472,0,C_Cliente,Imprime_ticket,1232,0,MAPA_RUTAS,MapFragment1_Ready,131,0 +NavigationStack=Starter,Process_Globals,49,6,ManageExternalStorage,RaiseEvent,47,0,C_Principal,connecta_Click,2151,0,C_Principal,B4XPage_Appear,519,0,Subs,GUID,1878,0,B4XMainPage,B4XPage_Appear,371,0,B4XMainPage,B4XPage_Created,338,6,kms_helperSubs,motivoNoVisitaActivo,1212,0,Subs,generaGUID_EnExterno,1881,2,kms_helperSubs,RD_Init,46,0 SelectedBuild=0 -VisibleModules=1,28,11,3,26,23,29,12,4,13,25 +VisibleModules=1,28,11,3,29,12,4,13,23,26,24 diff --git a/B4A/ManageExternalStorage.bas b/B4A/ManageExternalStorage.bas index 3b05516..0f44a22 100644 --- a/B4A/ManageExternalStorage.bas +++ b/B4A/ManageExternalStorage.bas @@ -10,13 +10,11 @@ Sub Class_Globals Private ion As Object Private mCallback As Object Private mEventName As String - End Sub - ' This pretty trivial class is modeled on (plagiarised from!) Erel's ExternalStorage class ' It applies to devices implementing SDK30 and later -' It allows apps to access the internal 'external' storage as was possible on earlier Android versions ussing traditional file I/O +' It allows apps to access the internal 'external' storage as was possible on earlier Android versions using traditional file I/O ' You must manually add 'AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)' to the manifest ' You must ensure that you provide the package name of your app in Sub GetPermission ' This class uses the MANAGE_APP_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page @@ -28,7 +26,6 @@ Public Sub Initialize (Callback As Object, EventName As String) mEventName = EventName End Sub - ' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager() ' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission Public Sub HasPermission As Boolean @@ -53,19 +50,16 @@ Public Sub GetPermission StartActivityForResult(in) End Sub - Private Sub RaiseEvent Log("Calling : " & mEventName & "_StorageAvailable") CallSubDelayed(mCallback, mEventName & "_StorageAvailable") End Sub - Private Sub ion_Event (MethodName As String, Args() As Object) As Object RaiseEvent Return Null End Sub - Private Sub StartActivityForResult(i As Intent) Dim jo As JavaObject = GetBA ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null) @@ -76,4 +70,3 @@ Private Sub GetBA As Object Dim jo As JavaObject = Me Return jo.RunMethod("getBA", Null) End Sub - diff --git a/B4A/Promociones.bas b/B4A/Promociones.bas index 3a37f6b..1d59e4b 100644 --- a/B4A/Promociones.bas +++ b/B4A/Promociones.bas @@ -21,7 +21,7 @@ Public Sub Initialize (vCallback As Object, vEventName As String, db0 As SQL) As EventName = vEventName CallBack = vCallback db = db0 - Log("PROMOS INIT") +' Log("PROMOS INIT") db.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROMOCIONES_INFO (P_ID TEXT, P_ESTATUS TEXT, P_MAXXCLIENTE NUMERIC, P_MAXRECURRENTE NUMERIC, P_MAXPROMOS NUMERIC, HISTORICO TEXT, P_TIPOS TEXT, P_PRODSFIJOS TEXT, P_PRODSFIJOS_CANT NUMERIC, P_PRODSFIJOS_PIEZAS TEXT, P_PRODSFIJOS_PRECIOS TEXT, P_PRODSVARIABLES TEXT, P_PRODSVARIABLES_CANT NUMERIC, P_PRODSVARIABLES_PRECIOS TEXT, P_PRODSVARIABLES_REQUERIDOS NUMERIC)") db.ExecNonQuery("DELETE FROM PROMOCIONES_INFO") #if RELEASE diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 4aa84d3..34e35e8 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -54,6 +54,7 @@ Sub Process_Globals Dim enVenta As Boolean = False Dim pingShell As Boolean = False Dim errorConnDBReq As Boolean = False + Dim GUID As String = "" End Sub Sub Service_Create diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 6fc849c..da0e208 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -1866,4 +1866,36 @@ Sub traeTotalCliente As Double Next cursorprueba.Close Return sumaTotal +End Sub + +'Genera un GUID (globally unique identifier) +Sub GUID As String + Dim sb As StringBuilder + sb.Initialize + For Each stp As Int In Array(8, 4, 4, 4, 12) + If sb.Length > 0 Then sb.Append("-") + For n = 1 To stp + Dim c As Int = Rnd(0, 16) + If c < 10 Then c = c + 48 Else c = c + 55 + sb.Append(Chr(c)) + Next + Next + Return sb.ToString +End Sub + +'Revisa si ya se genera el GUID de la aplicacion y si no lo genera, pone el valor en Starter.GUID +Sub generaGUID_EnExterno + File.MakeDir(File.DirRootExternal,"/Android/kmts") +' Wait For (File.ListFilesAsync(File.DirRootExternal & "/Android/kmts")) Complete (Success As Boolean, Files As List) + Private Files As List = File.ListFiles(File.DirRootExternal & "/Android/kmts") +' Log(Files) + Starter.GUID = "" + For i = 0 To Files.Size - 1 + If Files.Get(i).As(String).StartsWith("GUID_") Then Starter.GUID = Files.Get(i) + Next + If Starter.GUID = "" Then + Starter.GUID = GUID + File.WriteString(File.DirRootExternal,$"/Android/kmts/GUID_${Starter.GUID}"$, "0") + End If + Log($"##### GUID: ${Starter.GUID} #####"$) End Sub \ No newline at end of file diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas index 244e554..209cabb 100644 --- a/B4A/kms_helperSubs.bas +++ b/B4A/kms_helperSubs.bas @@ -50,7 +50,7 @@ Sub RD_Init Dim Dirp As String = File.DirInternal Dim Dir As String ' Dim Dir2 As String -' File.MakeDir(File.DirRootExternal,"/kmts") +' File.MakeDir(File.DirRootExternal,"/Android/kmts") ' File.MakeDir(rp.GetSafeDirDefaultExternal("/"), "kmts") Try File.MakeDir(Dirp,"/kmts") @@ -60,7 +60,7 @@ Sub RD_Init Dir = "" Log("Creado en raiz") End Try - Log(File.IsDirectory(Dirp, Dir)) +' Log(File.IsDirectory(Dirp, Dir)) safePath = Dirp & Dir 'Si no existe el directorio "kmts" en el raiz de la tarjeta de memoria, nos cambiamos al directorio seguro (sdcard/Android/data/kelloggs...) If Not(File.IsDirectory(Dirp, Dir)) Then safePath = rp.GetSafeDirDefaultExternal("kmts") @@ -1216,7 +1216,7 @@ End Sub Sub motivoNoVisitaActivo As Boolean Private rnv As Boolean = False Private nv As Cursor = khdb.ExecQuery($"select ifnull(CAT_VA_VALOR, 0) as valor from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$) - Log(nv.RowCount) +' Log(nv.RowCount) If nv.RowCount > 0 Then nv.Position = 0 Log(nv.GetString("valor"))