Cambios para Respaldo Diario

-Se agregó codigo para restaurar el respaldo.
This commit is contained in:
2023-10-13 13:14:45 -06:00
parent 016d172dc9
commit 95136066d9
6 changed files with 248 additions and 73 deletions

View File

@@ -20,6 +20,7 @@ Version=9.85
'###########################################################################################################
#End Region
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
Sub Class_Globals
@@ -41,6 +42,8 @@ Sub Class_Globals
Public promos As C_Promos
Public historico As C_Historico
Public checklist As C_CheckList
Dim kh As kms_helperSubs
Dim ime As IME
Dim reqManager As DBRequestManager
Dim ultimaActualizacionGPS As String = 235959
@@ -94,6 +97,11 @@ Sub Class_Globals
Private b_envioBD As Button
Dim MES1 As ManageExternalStorage
Dim device As Phone
Private b_cargaLocal As Button
Private p_cargaLocal As Panel
Private et_cargaLocal As EditText
Private b_cargaLocalOk As Button
Private b_cargaLocalCancelar As Button
End Sub
Public Sub Initialize
@@ -109,6 +117,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
' Root.LoadLayout("MainPage")
Root.LoadLayout("login")
kh.Initialize(Me, "kh")
B4XPages.SetTitle(Me, "Kelloggs Preventa")
login.Initialize
B4XPages.AddPage("Login", login)
@@ -168,25 +177,28 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_DOE (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
''' FIN DOE
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'")
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
Catch
Log(LastException)
End Try
End Try
Try 'Agregamos columna fecha a usuarioa
c=Starter.skmt.ExecQuery("SELECT fecha FROM usuarioa")
Catch
LogColor("Agregamos columna fecha a usuarioa", Colors.red)
Starter.skmt.ExecNonQuery("ALTER TABLE usuarioa ADD COLUMN FECHA TEXT")
End Try
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
' Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
' c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'")
' c.Position = 0
' If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
' Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
' End If
' Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
' Try
' Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
' Catch
' Log(LastException)
' End Try
' End Try
' Try 'Agregamos columna fecha a usuarioa
' c=Starter.skmt.ExecQuery("SELECT fecha FROM usuarioa")
' Catch
' LogColor("Agregamos columna fecha a usuarioa", Colors.red)
' Starter.skmt.ExecNonQuery("ALTER TABLE usuarioa ADD COLUMN FECHA TEXT")
' End Try
' If sDate = "20190523" Then
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
' Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.DBReqServer))
@@ -328,6 +340,7 @@ Sub B4XPage_Appear
Wait For MES_StorageAvailable
End If
End If
kh.RD_Init
' server = "http://keymon.com.mx:1782"
' server = "http://201.99.139.28:1782"
' server = "http://177.244.63.54:1782"
@@ -668,3 +681,40 @@ Private Sub b_envioBD_Click
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
StartActivity(in)
End Sub
Private Sub b_cargaLocal_Click
p_cargaLocal.left = (Root.Width / 2) - (p_cargaLocal.Width / 2)
p_cargaLocal.BringToFront
p_cargaLocal.Elevation = 100dip
p_cargaLocal.Top = E_SERVER.top
p_cargaLocal.Visible = True
' kh.string2date("10/03/2023")
Log("CL" & (3 * DateTime.GetDayOfMonth(DateTime.now)) & (DateTime.GetMonth(DateTime.now) * 4))
End Sub
Private Sub p_cargaLocal_Click
End Sub
Private Sub b_cargaLocalOk_Click
Private pass1 As String = "CL" & (3 * DateTime.GetDayOfMonth(DateTime.now)) & (DateTime.GetMonth(DateTime.now) * 4)
If et_cargaLocal.Text = pass1 Then
p_cargaLocal.Visible = False
' Starter.skmt.ExecNonQuery("delete from CAT_GUNAPROD")
' Log("OK")
' kh.string2date("10/03/2023")
kh.revisaRkmtAttached
kh.RD_restaura_cat_gunaprod
kh.RD_restaura_cat_gunaprod2
kh.RD_restaura_cat_detalle_paq
kh.RD_restaura_kmt_info
ime.HideKeyboard
ToastMessageShow("¡¡CARGA EXITOSA!!", True)
Else
ToastMessageShow("CODIGO EQUIVOCADO", True)
End If
et_cargaLocal.Text = ""
End Sub
Private Sub b_cargaLocalCancelar_Click
p_cargaLocal.Visible = False
End Sub

View File

@@ -3009,24 +3009,30 @@ Sub descargaCartaPorteyProgreso (urlx As String) As ResumableSub
Subs.panelOculto(p_downloadPDF)
p_progress1.Visible = False
Log("Ruta tipo " & Starter.rutaTipo)
If File.Exists(File.DirInternal,"cartaPorte.pdf") And Starter.rutaTipo <> "FORANEA" Then 'Existe, NO es de hoy y NO ES es FORANEA
Private mb1 As Int
mb1 = Msgbox2("No se pudo descargar la carta porte, por favor intente de nuevo o comuniquese con un supervisor", "Error Carta Porte", "Aceptar", "", "Reintentar", Null) 'ignore
If mb1 = DialogResponse.Positive Then
If usuario <> "KMTSKLL1" Then
If File.Exists(File.DirInternal,"cartaPorte.pdf") And Starter.rutaTipo <> "FORANEA" Then 'Existe, NO es de hoy y NO ES es FORANEA
Private mb1 As Int
mb1 = Msgbox2("No se pudo descargar la carta porte, por favor intente de nuevo o comuniquese con un supervisor", "Error Carta Porte", "Aceptar", "", "Reintentar", Null) 'ignore
If mb1 = DialogResponse.Positive Then
' Activity.Finish
' ExitApplication
detenerLoop = True
B4XPages.ShowPage("Login")
ELSE IF mb1 = DialogResponse.NEGATIVE Then
descargaCartaPorte
ELSE IF mb1 = DialogResponse.CANCEL Then
' VALIDAR_INFO
detenerLoop = True
B4XPages.ShowPage("Login")
ELSE IF mb1 = DialogResponse.NEGATIVE Then
descargaCartaPorte
ELSE IF mb1 = DialogResponse.CANCEL Then
' VALIDAR_INFO
End If
Else
LogColor("Hay carta porte vieja PERO la ruta es Foranea", Colors.RGB(255,131,0))
ToastMessageShow("Hay carta porte de dias anteriores y la ruta es foranea.", True)
cartaPorteLista = True
End If
Else
LogColor("Hay carta porte vieja PERO la ruta es Foranea", Colors.RGB(255,131,0))
ToastMessageShow("Hay carta porte de dias anteriores y la ruta es foranea.", True)
cartaPorteLista = True
End If
End If
bx(0) = True
job_PDF.Release

Binary file not shown.

View File

@@ -176,7 +176,7 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
#VersionName: 3.10.04 PRUEBA V4
#VersionName: 3.10.11 PRUEBA V4
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true

View File

@@ -65,7 +65,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes10=
ModuleClosedNodes11=
ModuleClosedNodes11=1
ModuleClosedNodes12=1
ModuleClosedNodes13=
ModuleClosedNodes14=
@@ -78,7 +78,7 @@ ModuleClosedNodes2=
ModuleClosedNodes20=
ModuleClosedNodes21=20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
ModuleClosedNodes22=
ModuleClosedNodes23=
ModuleClosedNodes23=9,11,13,15
ModuleClosedNodes24=
ModuleClosedNodes25=
ModuleClosedNodes26=
@@ -94,6 +94,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=kms_helperSubs,dbInit,107,0,C_Principal,Class_Globals,0,0,B4XMainPage,Class_Globals,90,0,kms_helperSubs,RD_Init,50,0,kms_helperSubs,agregaColumna,286,3,kms_helperSubs,RD_vacuum,272,0,B4XMainPage,B4XPage_Created,171,6,B4XMainPage,ImageView4_Click,581,0,Visual Designer,login.bal,-100,2,B4XMainPage,B4XPage_Appear,334,0,kms_helperSubs,Class_Globals,0,0
NavigationStack=kms_helperSubs,dbInit,107,0,C_Principal,Class_Globals,0,0,B4XMainPage,Class_Globals,90,0,kms_helperSubs,RD_Init,50,0,kms_helperSubs,agregaColumna,286,3,kms_helperSubs,RD_vacuum,272,0,B4XMainPage,B4XPage_Created,171,6,B4XMainPage,ImageView4_Click,581,0,Visual Designer,login.bal,-100,2,B4XMainPage,B4XPage_Appear,334,0
SelectedBuild=0
VisibleModules=1,29,11,23,30,14

View File

@@ -13,7 +13,9 @@ Sub Class_Globals
Dim rp As RuntimePermissions
Dim safePath As String
Dim fechaHoy As String
Dim fechaAnt As String
Dim skmtAttached As Boolean = False
Dim rkmtAttached As Boolean = False
'####### MES Vars ######
Private ion As Object
' Dim device As Phone
@@ -59,10 +61,11 @@ Sub RD_Init
If chkIfTableExists(skmt, "CAT_GUNAPROD") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD (${getTableColumnList(skmt, "CAT_GUNAPROD")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_GUNAPROD2") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD2 (${getTableColumnList(skmt, "CAT_GUNAPROD2")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(skmt, "kmt_info")}, FECHA TEXT)"$)
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "yyyyMMdd"
fechaHoy = DateTime.Date(DateTime.Now)
If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized)
If revisaSkmtAttached And rkmt.IsInitialized Then RD_Init_IsInitialized = True Else RD_Init_IsInitialized = False
' revisaRkmtAttached
End Sub
'RD - Revisa si esta montada "kmt.db" como "skmt1" y si no, la monta
@@ -80,6 +83,24 @@ Sub revisaSkmtAttached As Boolean
Return skmtAttached
End Sub
'RD - Revisa si esta montada "kmt.db" como "rkmt1" y si no, la monta
'Para que "skmt" vea a "rkmt", es necesario montarla (attach).
Sub revisaRkmtAttached As Boolean
rkmtAttached = False
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"))
Loop
If Not(rkmtAttached) Then
Private name() As String = Regex.split(" ", Application.LabelName)
skmt.ExecNonQuery($"attach database '${File.Combine(safePath,$"${name(0)}.rkmt.km"$)}' as rkmt1;"$)
rkmtAttached = True
End If
Return rkmtAttached
End Sub
'Inicializa la BD con "kmt.db" en "File.DirInternal", si el archivo no existe, lo copia desde "File.DirAssets".
'Ej: dim skmt as sql = dbInit
Sub dbInit As SQL 'ignore
@@ -95,69 +116,159 @@ End Sub
Sub RD_respalda_pedido
Private inicio As String = DateTime.Now
' Log("Copiando PEDIDO ...")
Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs")
Private x As Cursor = skmt.ExecQuery("select * from PEDIDO")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("P: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs")
Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("GP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD de rkmt.db al celular.
Sub RD_restaura_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD ...")
Private lasCols As String = getTableColumnListName(rkmt, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la imagen del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_GUNAPROD 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")}'"$)
End If
Log("R-GP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD2 a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD2 ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs")
Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD2")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la fecha del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("GP2: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD2 de rkmt.db al celular.
Sub RD_restaura_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD2 ...")
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 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_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")}'"$)
End If
Log("R-GP2: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_detalle_paq
Private inicio As String = DateTime.Now
' Log("Copiando CAT_DETALLES_PAQ ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
If rkmt.IsInitialized Then
Private x As Cursor = skmt.ExecQuery("select * from CAT_DETALLES_PAQ")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_DETALLES_PAQ where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_DETALLES_PAQ"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs")
Log("DP: " & ((DateTime.Now - inicio)/1000) & " segs")
End If
x.Close
End Sub
'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
'RD - Copia la tabla CAT_DETALLES_PAQ de rkmt.db al celular.
Sub RD_restaura_cat_detalle_paq
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_DETALLES_PAQ ...")
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 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_DETALLES_PAQ")
skmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}) select ${lasCols} from rkmt1.CAT_DETALLES_PAQ where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_DETALLES_PAQ (${lasCols}) select ${lasCols} from rkmt1.CAT_DETALLES_PAQ where fecha = '${c.GetString("FECHA")}'"$)
End If
Log("R-DP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla kmt_info a rkmt.db en la tarjeta del celular.
Sub RD_respalda_kmt_info
Private inicio As String = DateTime.Now
' Log("Copiando kmt_info ...")
Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs")
Private x As Cursor = skmt.ExecQuery("select * from kmt_info")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla kmt_info de rkmt.db al celular.
Sub RD_restaura_kmt_info
Private inicio As String = DateTime.Now
' Log("Restaurando KMT_INFO ...")
Private lasCols As String = getTableColumnListName(rkmt, "kmt_info")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from kmt_info 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 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")}'"$)
End If
Log("R-KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Realiza un "vacuum" de la base de datos "rkmt".
@@ -171,15 +282,15 @@ End Sub
'Ej. agregaColumna(DB, "TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(db As SQL, tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
@@ -394,6 +505,14 @@ Sub hayPedido(db As SQL) As Boolean 'ignore
Return hay
End Sub
Sub string2date(fecha As String)
Log(fecha)
DateTime.DateFormat = "MM/dd/yyyy"
Dim t As Long = DateTime.DateTimeParse(fecha, "00:00:00")
DateTime.DateFormat = "yy/MM/dd"
Log($"${t} - ${Subs.fechaKMT(t)}"$)
End Sub
'Guarda el nombre y version de la app en CAT_VARIABLES.
Sub guardaAppInfo(db As SQL) 'ignore
skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'")