From 95136066d94f740d651cf2f219e5e2e293447a3a Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Fri, 13 Oct 2023 13:14:45 -0600 Subject: [PATCH] =?UTF-8?q?Cambios=20para=20Respaldo=20Diario=20-Se=20agre?= =?UTF-8?q?g=C3=B3=20codigo=20para=20restaurar=20el=20respaldo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/B4XMainPage.bas | 88 ++++++++++++++---- B4A/C_Principal.bas | 30 ++++--- B4A/Files/login.bal | Bin 12593 -> 15183 bytes B4A/KelloggsV4.b4a | 2 +- B4A/KelloggsV4.b4a.meta | 6 +- B4A/kms_helperSubs.bas | 195 ++++++++++++++++++++++++++++++++-------- 6 files changed, 248 insertions(+), 73 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 69e055f..f3cb1a7 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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 \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 1e1d0f7..ec22015 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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 diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 0a25ffea8fb0b2bf5703163644800d6c1ba59865..f14f1bcaf94aee4e8ea679e8ab642c663c262c03 100644 GIT binary patch delta 1143 zcmZ`%OHUI~6rR(T3Y9*f1#6}4^kFHqR%$dx8%-Jr8f`)$@eyA*l#vihX<8&PF{yFw zf_gv@UHAi7)Xdg|u#%O!HPIj7h8TCQ@SHINH-k>{&3xzFd%tt;eCPet=Ot&GBuT$) zlH{Oos_7iR*hyq+vZT~zl)^$uDf>+Euu>_hWu@ja<;Uil50<-}lvNjnd^B4bnN{pYGE1FHRi$3%@8h~! z3*j!zG^`YHhSd$u$_D4&-2@MzOUQQ%d9T3vAM_A<3C9HPCvNB*CmtZ2kfesxcMwQH zfrkVh7Pu_%2=OQ(Mu-zm5)y=dfhPq%K-_3zQ0H__kLI#o0C=liwViKom_0p8+lKQK zSMqXUY&c)AP?$Yqwt{2PHLg)8D@&?8t;+dQNv$s&a{KU59HCRGd`Yb?Dz*QO5?gDG zmDcF|VaHJ1r#^4O3ruRQ%sC4zV=I$|d2KU22++jsfEVSVOU#mI;U(VB zOu#m8!TGoY5Wfd=LqO_W!M;b&bt1sC&X4U0y{JJs-$A5J&v&fg>0k`!LLIPz_kv-( zmi76&1Fw_s5 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'")