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 #End Region
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\ 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
Sub Class_Globals Sub Class_Globals
@@ -41,6 +42,8 @@ Sub Class_Globals
Public promos As C_Promos Public promos As C_Promos
Public historico As C_Historico Public historico As C_Historico
Public checklist As C_CheckList Public checklist As C_CheckList
Dim kh As kms_helperSubs
Dim ime As IME
Dim reqManager As DBRequestManager Dim reqManager As DBRequestManager
Dim ultimaActualizacionGPS As String = 235959 Dim ultimaActualizacionGPS As String = 235959
@@ -94,6 +97,11 @@ Sub Class_Globals
Private b_envioBD As Button Private b_envioBD As Button
Dim MES1 As ManageExternalStorage Dim MES1 As ManageExternalStorage
Dim device As Phone 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 End Sub
Public Sub Initialize Public Sub Initialize
@@ -109,6 +117,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1 Root = Root1
' Root.LoadLayout("MainPage") ' Root.LoadLayout("MainPage")
Root.LoadLayout("login") Root.LoadLayout("login")
kh.Initialize(Me, "kh")
B4XPages.SetTitle(Me, "Kelloggs Preventa") B4XPages.SetTitle(Me, "Kelloggs Preventa")
login.Initialize login.Initialize
B4XPages.AddPage("Login", login) 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)") 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 ''' FIN DOE
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'") kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos ' Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER") ' c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'")
End If ' c.Position = 0
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch ' If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
Try ' Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER") ' End If
Catch ' Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Log(LastException) ' Try
End Try ' Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
End Try ' Catch
Try 'Agregamos columna fecha a usuarioa ' Log(LastException)
c=Starter.skmt.ExecQuery("SELECT fecha FROM usuarioa") ' End Try
Catch ' End Try
LogColor("Agregamos columna fecha a usuarioa", Colors.red) ' Try 'Agregamos columna fecha a usuarioa
Starter.skmt.ExecNonQuery("ALTER TABLE usuarioa ADD COLUMN FECHA TEXT") ' c=Starter.skmt.ExecQuery("SELECT fecha FROM usuarioa")
End Try ' 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 ' If sDate = "20190523" Then
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) ' 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)) ' 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 Wait For MES_StorageAvailable
End If End If
End If End If
kh.RD_Init
' server = "http://keymon.com.mx:1782" ' server = "http://keymon.com.mx:1782"
' server = "http://201.99.139.28:1782" ' server = "http://201.99.139.28:1782"
' server = "http://177.244.63.54: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 in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
StartActivity(in) StartActivity(in)
End Sub 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) Subs.panelOculto(p_downloadPDF)
p_progress1.Visible = False p_progress1.Visible = False
Log("Ruta tipo " & Starter.rutaTipo) 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 If usuario <> "KMTSKLL1" Then
Private mb1 As Int If File.Exists(File.DirInternal,"cartaPorte.pdf") And Starter.rutaTipo <> "FORANEA" Then 'Existe, NO es de hoy y NO ES es FORANEA
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 Private mb1 As Int
If mb1 = DialogResponse.Positive Then 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 ' Activity.Finish
' ExitApplication ' ExitApplication
detenerLoop = True detenerLoop = True
B4XPages.ShowPage("Login") B4XPages.ShowPage("Login")
ELSE IF mb1 = DialogResponse.NEGATIVE Then ELSE IF mb1 = DialogResponse.NEGATIVE Then
descargaCartaPorte descargaCartaPorte
ELSE IF mb1 = DialogResponse.CANCEL Then ELSE IF mb1 = DialogResponse.CANCEL Then
' VALIDAR_INFO ' 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 End If
Else 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 cartaPorteLista = True
End If End If
End If End If
bx(0) = True bx(0) = True
job_PDF.Release job_PDF.Release

Binary file not shown.

View File

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

View File

@@ -65,7 +65,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1= ModuleClosedNodes1=
ModuleClosedNodes10= ModuleClosedNodes10=
ModuleClosedNodes11= ModuleClosedNodes11=1
ModuleClosedNodes12=1 ModuleClosedNodes12=1
ModuleClosedNodes13= ModuleClosedNodes13=
ModuleClosedNodes14= ModuleClosedNodes14=
@@ -78,7 +78,7 @@ ModuleClosedNodes2=
ModuleClosedNodes20= ModuleClosedNodes20=
ModuleClosedNodes21=20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 ModuleClosedNodes21=20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
ModuleClosedNodes22= ModuleClosedNodes22=
ModuleClosedNodes23= ModuleClosedNodes23=9,11,13,15
ModuleClosedNodes24= ModuleClosedNodes24=
ModuleClosedNodes25= ModuleClosedNodes25=
ModuleClosedNodes26= ModuleClosedNodes26=
@@ -94,6 +94,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= 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 SelectedBuild=0
VisibleModules=1,29,11,23,30,14 VisibleModules=1,29,11,23,30,14

View File

@@ -13,7 +13,9 @@ Sub Class_Globals
Dim rp As RuntimePermissions Dim rp As RuntimePermissions
Dim safePath As String Dim safePath As String
Dim fechaHoy As String Dim fechaHoy As String
Dim fechaAnt As String
Dim skmtAttached As Boolean = False Dim skmtAttached As Boolean = False
Dim rkmtAttached As Boolean = False
'####### MES Vars ###### '####### MES Vars ######
Private ion As Object Private ion As Object
' Dim device As Phone ' 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_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, "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)"$) 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) fechaHoy = DateTime.Date(DateTime.Now)
If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized) If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized)
If revisaSkmtAttached And rkmt.IsInitialized Then RD_Init_IsInitialized = True Else RD_Init_IsInitialized = False If revisaSkmtAttached And rkmt.IsInitialized Then RD_Init_IsInitialized = True Else RD_Init_IsInitialized = False
' revisaRkmtAttached
End Sub 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
@@ -80,6 +83,24 @@ Sub revisaSkmtAttached As Boolean
Return skmtAttached Return skmtAttached
End Sub 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". '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 'Ej: dim skmt as sql = dbInit
Sub dbInit As SQL 'ignore Sub dbInit As SQL 'ignore
@@ -95,69 +116,159 @@ End Sub
Sub RD_respalda_pedido Sub RD_respalda_pedido
Private inicio As String = DateTime.Now Private inicio As String = DateTime.Now
' Log("Copiando PEDIDO ...") ' Log("Copiando PEDIDO ...")
Private lasCols As String = getTableColumnListName(skmt, "PEDIDO") Private x As Cursor = skmt.ExecQuery("select * from PEDIDO")
rkmt.BeginTransaction If x.RowCount > 0 Then
rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$) Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$) rkmt.BeginTransaction
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$)
rkmt.EndTransaction rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
Log(((DateTime.Now - inicio)/1000) & " segs") 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 End Sub
'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular. 'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod Sub RD_respalda_cat_gunaprod
Private inicio As String = DateTime.Now Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD ...") ' Log("Copiando CAT_GUNAPROD ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD") Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo. If x.RowCount > 0 Then
rkmt.BeginTransaction Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$) lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$) rkmt.BeginTransaction
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
rkmt.EndTransaction rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$)
Log(((DateTime.Now - inicio)/1000) & " segs") 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 End Sub
'RD - Copia la tabla CAT_GUNAPROD2 a rkmt.db en la tarjeta del celular. 'RD - Copia la tabla CAT_GUNAPROD2 a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod2 Sub RD_respalda_cat_gunaprod2
Private inicio As String = DateTime.Now Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD2 ...") ' Log("Copiando CAT_GUNAPROD2 ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2") Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD2")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo. If x.RowCount > 0 Then
rkmt.BeginTransaction Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$) lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la fecha del respaldo.
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$) rkmt.BeginTransaction
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
rkmt.EndTransaction rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$)
Log(((DateTime.Now - inicio)/1000) & " segs") 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 End Sub
'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular. 'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_detalle_paq Sub RD_respalda_cat_detalle_paq
Private inicio As String = DateTime.Now Private inicio As String = DateTime.Now
' Log("Copiando CAT_DETALLES_PAQ ...") ' Log("Copiando CAT_DETALLES_PAQ ...")
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ") Private x As Cursor = skmt.ExecQuery("select * from CAT_DETALLES_PAQ")
If rkmt.IsInitialized Then If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
rkmt.BeginTransaction rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_DETALLES_PAQ where fecha = '${fechaHoy}'"$) 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.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.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction rkmt.EndTransaction
Log(((DateTime.Now - inicio)/1000) & " segs") Log("DP: " & ((DateTime.Now - inicio)/1000) & " segs")
End If End If
x.Close
End Sub 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 Sub RD_respalda_kmt_info
Private inicio As String = DateTime.Now Private inicio As String = DateTime.Now
' Log("Copiando kmt_info ...") ' Log("Copiando kmt_info ...")
Private lasCols As String = getTableColumnListName(skmt, "kmt_info") Private x As Cursor = skmt.ExecQuery("select * from kmt_info")
rkmt.BeginTransaction If x.RowCount > 0 Then
rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$) Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$) rkmt.BeginTransaction
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$)
rkmt.EndTransaction rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$)
Log(((DateTime.Now - inicio)/1000) & " segs") 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 End Sub
'RD - Realiza un "vacuum" de la base de datos "rkmt". 'RD - Realiza un "vacuum" de la base de datos "rkmt".
@@ -171,15 +282,15 @@ End Sub
'Ej. agregaColumna(DB, "TABLA", "COLUMNA", "TIPO") 'Ej. agregaColumna(DB, "TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(db As SQL, tabla As String, columna As String, tipo As String) 'ignore 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 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 c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos 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}"."$) Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try 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}".."$) Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch Catch
Log(LastException) Log(LastException)
@@ -394,6 +505,14 @@ Sub hayPedido(db As SQL) As Boolean 'ignore
Return hay Return hay
End Sub 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. 'Guarda el nombre y version de la app en CAT_VARIABLES.
Sub guardaAppInfo(db As SQL) 'ignore 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'") skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'")