- VERSION 4.10.20

- Se agregó que restaure desde la tarjeta de memoria la base de respaldo cuando se reinstala la aplicación.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-10-29 13:24:32 -06:00
parent fd6b1523da
commit 5b38546cb7
10 changed files with 51 additions and 18 deletions

View File

@@ -364,7 +364,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If End If
End If End If
' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT")) ' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT"))
' Log("REVISAMOS PERMISOS DE BT") ' Log("REVISAMOS PERMISOS DE BT")
' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") ' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
@@ -376,6 +375,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
If MES1.IsInitialized Then
LogColor(MES1.HasPermission, Colors.Magenta)
If MES1.HasPermission Then kh.revisaSiExisteRespaldo
End If
kh.RD_Init kh.RD_Init
kh.SetButtonTintList(cb_geocerca, Colors.LightGray, Colors.RGB(43, 154, 211)) kh.SetButtonTintList(cb_geocerca, Colors.LightGray, Colors.RGB(43, 154, 211))
kh.SetButtonTintList(cb_cartaPorte, Colors.LightGray, Colors.RGB(43, 154, 211)) kh.SetButtonTintList(cb_cartaPorte, Colors.LightGray, Colors.RGB(43, 154, 211))
@@ -490,7 +493,7 @@ Sub JobDone(Job As HttpJob)
Log("JOBDONE MAINPAGE") Log("JOBDONE MAINPAGE")
If Job.Tag.As(String).StartsWith("_KMS_") Then Job.tag = Job.Tag.As(String).SubString(16) If Job.Tag.As(String).StartsWith("_KMS_") Then Job.tag = Job.Tag.As(String).SubString(16)
If Job.Success = False Then If Job.Success = False Then
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
ToastMessageShow("Error: " & Job.ErrorMessage, True) ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else Else
' If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 ' If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110

View File

@@ -3836,6 +3836,7 @@ Sub revisaPromoEspecial As Map
' If clienteImpreso = "0" Then Log("El cliente no tiene venta impresa.") ' If clienteImpreso = "0" Then Log("El cliente no tiene venta impresa.")
x.Close x.Close
'Revisamos que tenga asignada la promo. 'Revisamos que tenga asignada la promo.
x=Starter.skmt.ExecQuery("select count(*) as clienteConPromo, CPM_PROID, CPM_CANT, CPM_RANGO, CPM_DESC, CPM_IDPROMO, CPM_MONTO from CAT_PROMO_MONTO where CPM_CLIENTE in (Select CUENTA from cuentaa)") x=Starter.skmt.ExecQuery("select count(*) as clienteConPromo, CPM_PROID, CPM_CANT, CPM_RANGO, CPM_DESC, CPM_IDPROMO, CPM_MONTO from CAT_PROMO_MONTO where CPM_CLIENTE in (Select CUENTA from cuentaa)")
If x.RowCount > 0 Then If x.RowCount > 0 Then
x.Position = 0 x.Position = 0
@@ -3876,7 +3877,7 @@ Sub metePromoEspecial(idProd As String, idPromo As String, cantProd As Int, nomb
query = "cat_gunaprod" query = "cat_gunaprod"
If Starter.tipov = "VENTA" Then query = "cat_gunaprod2" If Starter.tipov = "VENTA" Then query = "cat_gunaprod2"
' Falta nombre de producto en el insert ' Falta nombre de producto en el insert
Starter.skmt.ExecNonQuery2("DELETE from PEDIDO where PE_CEDIS = ?", Array As String (idPromo)) Starter.skmt.ExecNonQuery2("DELETE from PEDIDO where PE_CEDIS = ?", Array As String (idPromo)) ' HAY QUE AGREGAR EL CLIENTE PARA QUE NO BORRE TODAS LAS PROMOS!!
'Metemos encabezado de la promo. 'Metemos encabezado de la promo.
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (idPromo, 0, 0, cantProd, promoDescr, idPromo, idCliente, sDate & sTime, idUsuario, idRuta, Starter.tipov, 0)) Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (idPromo, 0, 0, cantProd, promoDescr, idPromo, idCliente, sDate & sTime, idUsuario, idRuta, Starter.tipov, 0))
'Metemos el producto de regalo. 'Metemos el producto de regalo.
@@ -4101,7 +4102,7 @@ Sub JobDone(Job As HttpJob)
Log("JOBDONE CLIENTE") Log("JOBDONE CLIENTE")
If Job.Success = False Then If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True) ' ToastMessageShow("Error: " & Job.ErrorMessage, True)
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
' LogColor("Error: " & Job.ErrorMessage, Colors.red) ' LogColor("Error: " & Job.ErrorMessage, Colors.red)
Else Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110

View File

@@ -986,7 +986,7 @@ Sub JobDone(Job As HttpJob)
Log("JOBDONE PRINCIPAL") Log("JOBDONE PRINCIPAL")
reqManager.trackNext(Job) reqManager.trackNext(Job)
If Not(Job.Success) Then If Not(Job.Success) Then
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
If Job.Tag = "version" Then If Job.Tag = "version" Then
Starter.errorConnDBReq = True Starter.errorConnDBReq = True
connecta.TextColor = Colors.red connecta.TextColor = Colors.red

View File

@@ -161,6 +161,7 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear Sub B4XPage_Appear
Log("Entro: " & entro)
' Log($"LIMITE ABORDO: ${limiteAbordo}"$) ' Log($"LIMITE ABORDO: ${limiteAbordo}"$)
' clv_prods_ll.Initialize(Me, "clv_prods_ll") ' clv_prods_ll.Initialize(Me, "clv_prods_ll")
' list_prodsPedido.Initialize ' list_prodsPedido.Initialize
@@ -493,7 +494,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
else If entro = "4" Then else If entro = "4" Then
entro = "3" entro = "3"
B4XPage_Appear B4XPage_Appear
Return True ' Return True
Else If entro = "3" Then Else If entro = "3" Then
Subs.iniciaActividad("Cliente") Subs.iniciaActividad("Cliente")
' B4XPages.ShowPage("Cliente") ' B4XPages.ShowPage("Cliente")
@@ -503,6 +504,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
' B4XPages.ShowPage("Cliente") ' B4XPages.ShowPage("Cliente")
Return False Return False
End If End If
Return False
End Sub End Sub
Sub b_QR_Click Sub b_QR_Click

View File

@@ -66,6 +66,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
B4XPages.MainPage.productos.entro = 3
' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.blue) ' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.blue)
prodsIds.Initialize prodsIds.Initialize
prodsCants.Initialize prodsCants.Initialize

View File

@@ -887,7 +887,7 @@ Version=12.8
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Kelloggs Venta #ApplicationLabel: Kelloggs Venta
#VersionCode: 3000 #VersionCode: 3000
#VersionName: 4.10.15 #VersionName: 4.10.19
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False
#BridgeLogger:true #BridgeLogger:true

View File

@@ -61,11 +61,11 @@ ModuleBreakpoints7=
ModuleBreakpoints8= ModuleBreakpoints8=
ModuleBreakpoints9= ModuleBreakpoints9=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1=2 ModuleClosedNodes1=
ModuleClosedNodes10= ModuleClosedNodes10=
ModuleClosedNodes11=3,25 ModuleClosedNodes11=3,25
ModuleClosedNodes12= ModuleClosedNodes12=3,5,6,7,8,9
ModuleClosedNodes13= ModuleClosedNodes13=1
ModuleClosedNodes14= ModuleClosedNodes14=
ModuleClosedNodes15= ModuleClosedNodes15=
ModuleClosedNodes16= ModuleClosedNodes16=
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
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 NavigationStack=kms_helperSubs,RD_respaldoBatch,461,0,B4XMainPage,b_cargaLocalOk_Click,760,0,Starter,Process_Globals,42,1,B4XMainPage,Class_Globals,90,0,kms_helperSubs,Initialize,41,0,kms_helperSubs,agregaColumna,522,0,kms_helperSubs,revisaSiExisteRespaldo,87,2,kms_helperSubs,RD_Init,81,6,B4XMainPage,B4XPage_Appear,372,6,B4XMainPage,B4XPage_Created,362,4
SelectedBuild=0 SelectedBuild=0
VisibleModules=1,28,11,3,29,12,4,13,23,26,24 VisibleModules=1,28,11,3,29,12,4,13,23,7

View File

@@ -46,7 +46,7 @@ Sub Process_Globals
Dim ultimaActualizacionGPS As String = 235959 ' Dim ultimaActualizacionGPS As String = 235959 '
Dim fechaRuta As String 'ignore Dim fechaRuta As String 'ignore
Dim tiempos As Map Dim tiempos As Map
Dim Logger As Boolean = False Dim Logger As Boolean = True
Dim ultimaActividad As String = "" Dim ultimaActividad As String = ""
Dim boleta As String = 0 Dim boleta As String = 0
Dim sesion As Map Dim sesion As Map

View File

@@ -1019,7 +1019,7 @@ Sub traePromo(promo As String, cliente As String) As Map
' Si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver. ' Si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver.
Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${cliente}'"$) Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${cliente}'"$)
' Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$) ' Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$)
Log($"PROMOS SEGMENTADAS DISPONIBLES: ${ps.RowCount}"$) If thisLog Then Log($"PROMOS SEGMENTADAS DISPONIBLES: ${ps.RowCount}"$)
If ps.RowCount > 0 Then If ps.RowCount > 0 Then
ps.Position = 0 ps.Position = 0
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le debe de aparecer a ciertos clientes. promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le debe de aparecer a ciertos clientes.
@@ -1349,7 +1349,7 @@ End Sub
'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por 'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
'fijos es 5, entonces regresamos 5. 'fijos es 5, entonces regresamos 5.
Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
Private thisLog As Boolean = True Private thisLog As Boolean = False
If thisLog Then Log("======================================================") If thisLog Then Log("======================================================")
If thisLog Then Log("======================================================") If thisLog Then Log("======================================================")
Private invFijoXpromo As Map Private invFijoXpromo As Map
@@ -1899,3 +1899,15 @@ Sub generaGUID_EnExterno
End If End If
Log($"##### GUID: ${Starter.GUID} #####"$) Log($"##### GUID: ${Starter.GUID} #####"$)
End Sub End Sub
Sub parseHTTPError(error As String) As String
Private nuevoError As String = error
Private inicio As Int = error.IndexOf("<title>")
Private final As Int = error.IndexOf("</title>")
Log("|" & inicio & "|" & final & "|")
If inicio > 0 And final > 0 Then
nuevoError = error.SubString2(inicio + 17, final)
' LogColor(error.SubString2(inicio + 17, final), Colors.Blue)
End If
Return nuevoError
End Sub

View File

@@ -68,6 +68,7 @@ Sub RD_Init
If Starter.Logger Then Log($"Safepath:${safePath}"$) If Starter.Logger Then Log($"Safepath:${safePath}"$)
Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD. Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD.
rkmt.Initialize(safePath, $"${name(0)}.rkmt.km"$, True) rkmt.Initialize(safePath, $"${name(0)}.rkmt.km"$, True)
Log("TAMAÑO DE ARCHIVO RESPALDO " &File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$))
skmt.Initialize(File.DirInternal,"kmt.db", False) skmt.Initialize(File.DirInternal,"kmt.db", False)
If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$) If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$) If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
@@ -86,6 +87,17 @@ Sub RD_Init
' revisaRkmtAttached ' revisaRkmtAttached
End Sub End Sub
Sub revisaSiExisteRespaldo
Private extDir As String = ""
Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD.
If File.IsDirectory(File.DirRootExternal, "kmts") Then extDir = "/kmts"
If File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$) < 37000 And File.Exists(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$) Then
LogColor("Copiamos el respaldo desde la tarjeta!!", Colors.red)
File.Copy(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$, File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$)
End If
Sleep(300)
End Sub
'RD - Revisa si esta montada "kmt.db" como "skmt1" y si no, la monta 'RD - Revisa si esta montada "kmt.db" como "skmt1" y si no, la monta
'Para que "rkmt" vea a "skmt", es necesario montarla (attach). 'Para que "rkmt" vea a "skmt", es necesario montarla (attach).
Sub revisaSkmtAttached As Boolean Sub revisaSkmtAttached As Boolean
@@ -336,11 +348,13 @@ Sub RD_restaura_kmt_info
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion) fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "kmt_info") Private lasCols As String = getTableColumnListName(rkmt, "kmt_info")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo. lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Log($"Restauramos ${fechaRestauracion}"$)
Log($"select distinct fecha from kmt_info ${fechaRestauracion} order by fecha desc"$)
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from kmt_info ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy. Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from kmt_info ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount) ' Log(c.RowCount)
If c.RowCount > 0 Then If c.RowCount > 0 Then
c.Position = 0 c.Position = 0
' Log(c.GetString("FECHA")) Log(c.GetString("FECHA"))
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DIA_VISITA"))' Ponemos el dia de hoy para visita. skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DIA_VISITA"))' Ponemos el dia de hoy para visita.
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DIA_VISITA", Subs.traeDiaSemana)) skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DIA_VISITA", Subs.traeDiaSemana))
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))' Borramos fecha de FIN DIA. skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))' Borramos fecha de FIN DIA.