- VERSION 4.10.15

- Se genera un GUID para pruebas en lugar del IMEI
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-10-17 23:49:34 -06:00
parent 80173f1f35
commit fd6b1523da
9 changed files with 125 additions and 58 deletions

View File

@@ -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

View File

@@ -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"))

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"))