- VERSION 4.11.13

- El respaldo diario ahora respalda tambien CAT_VARIABLES.
- Al restaurar el respaldo, nos manda un mensaje con la fecha del respaldo que se va a restaurar.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-11-14 15:38:42 -06:00
parent d2de3ef658
commit 3da89e861d
5 changed files with 155 additions and 42 deletions

View File

@@ -64,11 +64,11 @@ Sub RD_Init
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")
Log($"Hay directorio: ${Dirp} ${Dir} - ${File.IsDirectory(Dirp, Dir)}"$)
' Log($"Hay directorio: ${Dirp} ${Dir} - ${File.IsDirectory(Dirp, Dir)}"$)
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.
rkmt.Initialize(safePath, $"${name(0)}.rkmt.km"$, True)
Log("TAMAÑO DE ARCHIVO RESPALDO " &File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$))
' Log("TAMAÑO DE ARCHIVO RESPALDO " &File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$))
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, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
@@ -79,6 +79,7 @@ Sub RD_Init
agregaColumna(rkmt, "kmt_info", "CAT_CL_LIMITECREDITO", "TEXT")
If chkIfTableExists(skmt, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(skmt, "kmt_info")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "PROMOS_COMP") Then rkmt.ExecNonQuery($"create table if not exists PROMOS_COMP (${getTableColumnList(skmt, "PROMOS_COMP")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(skmt, "CAT_VARIABLES")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(skmt, "CAT_RMI")}, FECHA TEXT)"$)
DateTime.DateFormat = "yyyyMMdd"
fechaHoy = DateTime.Date(DateTime.Now)
@@ -88,12 +89,16 @@ Sub RD_Init
End Sub
Sub revisaSiExisteRespaldo
LogColor("Revisamos si existe respaldo en la tarjeta!!", Colors.red)
Private extDir As String = ""
Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD.
Log(File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$))
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
If File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$) < 43000 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"$)
Else
LogColor("No hay respaldo en tarjeta externa!", Colors.red)
End If
Sleep(300)
End Sub
@@ -120,7 +125,7 @@ Sub revisaRkmtAttached As Boolean
Dim rs As ResultSet = skmt.ExecQuery("SELECT * FROM pragma_database_list")
Do While rs.NextRow 'Revisamos si esta montada "kmt.db" como "rkmt1" y si no, la montamos.
If rs.GetString("name") = "rkmt1" Then rkmtAttached = True
Log(rs.GetString("name"))
' Log(rs.GetString("name"))
Loop
If Not(rkmtAttached) Then
@@ -171,7 +176,6 @@ End Sub
Sub RD_respalda_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD ...")
Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
@@ -190,19 +194,19 @@ End Sub
Sub RD_restaura_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD ...")
Log($"FECHA RESTAURACION: ${RD_fechaRestauracion}"$)
' Log($"FECHA RESTAURACION: ${RD_fechaRestauracion}"$)
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "CAT_GUNAPROD")
Log(fechaRestauracion)
Log(">>>>>>>> fechaRestauracion GP: " & fechaRestauracion)
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la imagen del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_GUNAPROD ${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 CAT_GUNAPROD ${fechaRestauracion} order by fecha desc"$) ' where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from CAT_GUNAPROD")
skmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_GUNAPROD (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD where fecha = '${c.GetString("FECHA")}'"$)
' Log($"insert into CAT_GUNAPROD (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
ToastMessageShow($"No hay respaldo GP para la fecha ${fechaRestauracion.SubString(fechaRestauracion.Length - 10)}"$, True)
@@ -237,16 +241,18 @@ Sub RD_restaura_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD2 ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
' Log(">>>>>>>> fechaRestauracion GP2: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_GUNAPROD2 ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
' Log($"select distinct fecha from CAT_GUNAPROD2 ${fechaRestauracion} order by fecha desc"$)
If c.RowCount > 0 Then
c.Position = 0
Log(c.GetString("FECHA"))
LogColor(">>>>> Restauramos GP: " & c.GetString("FECHA"), Colors.red)
skmt.ExecNonQuery("delete from CAT_GUNAPROD2")
skmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
' Log($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
ToastMessageShow($"No hay respaldo GP2 para la fecha ${fechaRestauracion.SubString(fechaRestauracion.Length - 10)}"$, True)
@@ -303,6 +309,7 @@ Sub RD_restaura_cat_detalle_paq
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_DETALLES_PAQ ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
' Log(">>>>>>>> fechaRestauracion DP: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "CAT_DETALLES_PAQ")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_DETALLES_PAQ ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
@@ -346,15 +353,14 @@ Sub RD_restaura_kmt_info
Private inicio As String = DateTime.Now
' Log("Restaurando KMT_INFO ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
' Log(">>>>>>>> fechaRestauracion KMT: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "kmt_info")
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.
' Log(c.RowCount)
If c.RowCount > 0 Then
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("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.
@@ -364,7 +370,7 @@ Sub RD_restaura_kmt_info
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA", fechaHoy))
skmt.ExecNonQuery("delete from kmt_info")
skmt.ExecNonQuery($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
' Log($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
ToastMessageShow($"No hay respaldo KMTI para la fecha ${fechaRestauracion.SubString(fechaRestauracion.Length - 10)}"$, True)
@@ -376,6 +382,50 @@ Sub RD_restaura_kmt_info
Log("R-KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla cat_variables a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_variables
Private inicio As String = DateTime.Now
' Log("Copiando CAT_VARIABLES ...")
Private x As Cursor = skmt.ExecQuery("select * from CAT_VARIABLES")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_VARIABLES")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_VARIABLES where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_VARIABLES (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.cat_variables"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
LogColor("CV: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
End Sub
'RD - Copia la tabla cat_variables de rkmt.db al celular.
Sub RD_restaura_cat_variables
Private inicio As String = DateTime.Now
' Log("Restaurando KMT_INFO ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
' Log(">>>>>>>> fechaRestauracion CV: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "CAT_VARIABLES")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_VARIABLES ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from CAT_VARIABLES")
skmt.ExecNonQuery($"insert into CAT_VARIABLES (${lasCols}) select ${lasCols} from rkmt1.CAT_VARIABLES where fecha = '${c.GetString("FECHA")}'"$)
' Log($"insert into CAT_VARIABLES (${lasCols}) select ${lasCols} from rkmt1.CAT_VARIABLES where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
ToastMessageShow($"No hay respaldo CV para la fecha ${fechaRestauracion.SubString(fechaRestauracion.Length - 10)}"$, True)
Else
ToastMessageShow($"No hay respaldo CV para la fecha"$, True)
End If
End If
c.Close
Log("R-CV: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla promos_comp a rkmt.db en la tarjeta del celular.
Sub RD_respalda_promos_comp
Private inicio As String = DateTime.Now
@@ -398,6 +448,7 @@ Sub RD_restaura_promos_comp
Private inicio As String = DateTime.Now
' Log("Restaurando KMT_INFO ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
' Log(">>>>>>>> fechaRestauracion PC: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "PROMOS_COMP")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from PROMOS_COMP ${fechaRestauracion} order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
@@ -441,10 +492,11 @@ Sub RD_restaura_cat_rmi
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_RMI ...")
fechaRestauracion = RD_fechaRestauracionSQL(RD_fechaRestauracion)
Log(">>>>>>>> fechaRestauracion RMI: " & fechaRestauracion)
Private lasCols As String = getTableColumnListName(rkmt, "CAT_RMI")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_RMI ${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
c.Position = 0
' Log(c.GetString("FECHA"))
@@ -472,6 +524,7 @@ Sub RD_respaldoBatch 'ignore
RD_respalda_pedido
RD_respalda_promos_comp
RD_respalda_cat_rmi
RD_respalda_cat_variables
RD_copiaRespaldoDiario
Else
Log("****** RD NO INICIALIZADO ********")
@@ -480,6 +533,7 @@ End Sub
'RD - Copia la base de datos del respaldo diario a la memoria externa.
Sub RD_copiaRespaldoDiario 'ignore
Log(">>>> copiamos respaldo a externa!!!")
Try
File.MakeDir(File.DirRootExternal, "kmts")
Catch