From ce2759012aaa34402a86bb471bb36f2b4ccf56d1 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Fri, 18 Apr 2025 18:54:10 -0600 Subject: [PATCH] =?UTF-8?q?-=20VERSION=205.04.17=20-=20Se=20agreg=C3=B3=20?= =?UTF-8?q?que=20se=20descargue=20de=20CAT=5FGUNAPROD=20la=20columna=20CAT?= =?UTF-8?q?=5FGP=5FPROMOCION,=20que=20tiene=20la=20informacion=20de=20si?= =?UTF-8?q?=20el=20producto=20solo=20aparece=20en=20promociones=20y=20NO?= =?UTF-8?q?=20en=20el=20catalogo=20de=20productos.=20-=20Se=20cambio=20el?= =?UTF-8?q?=20valor=20de=20la=20columna=20CAT=5FVE=5FVERSION=20de=20CAT=5F?= =?UTF-8?q?VERSION,=20para=20que=20refleje=20el=20n=C3=BAmero=20de=20la=20?= =?UTF-8?q?version=20"minima"=20permitida=20para=20la=20aplicaci=C3=B3n.?= =?UTF-8?q?=20-=20Se=20agreg=C3=B3=20la=20funcion=20Subs.comparaVersiones?= =?UTF-8?q?=20que=20sirve=20para=20comparar=20la=20version=20minima=20cont?= =?UTF-8?q?ra=20la=20version=20actual.=20-=20Se=20agreg=C3=B3=20codigo=20e?= =?UTF-8?q?n=20B4X=5FAppear=20para=20que=20traiga=20la=20version=20minima?= =?UTF-8?q?=20desde=20CAT=5FVERSION.=20-=20Se=20modifco=20el=20query=20"se?= =?UTF-8?q?lect=5Fversion=5FKELL"=20en=20el=20config.properties=20para=20q?= =?UTF-8?q?ue=20regrese=20la=20version=20y=20la=20columna=20"FORZAR",=20qu?= =?UTF-8?q?e=20representa=20si=20es=20necesario=20forzar=20la=20actualizac?= =?UTF-8?q?ion=20de=20la=20aplicacion=20o=20no=20(todavia=20no=20hay=20cod?= =?UTF-8?q?igo=20para=20forzar=20la=20actualizacion=20o=20detener=20la=20a?= =?UTF-8?q?plicaci=C3=B3n.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/B4XMainPage.bas | 32 +++++++++------- B4A/C_Principal.bas | 82 ++++++++++++++++++++++++++++++++++++++--- B4A/C_Productos.bas | 7 ++-- B4A/KelloggsV4.b4a | 6 ++- B4A/KelloggsV4.b4a.meta | 8 ++-- B4A/Starter.bas | 2 +- B4A/Subs.bas | 62 ++++++++++++++++++++++++++++++- B4A/kms_helperSubs.bas | 4 +- 8 files changed, 172 insertions(+), 31 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index e2042c7..44d39d1 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -157,6 +157,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD_DOE (CAT_GP_ID TEXT,CAT_GP_NOMBRE TEXT,CAT_GP_IMP1 TEXT,CAT_GP_IMP2 TEXT,CAT_GP_PRECIO TEXT,CAT_GP_CLASIF TEXT,CAT_GP_STS TEXT,CAT_GP_TIPO TEXT,CAT_GP_SUBTIPO TEXT,CAT_GP_IMG TEXT,CAT_GP_ALMACEN TEXT,CAT_GP_TIPOPROD TEXT,CAT_GP_INICIATIVA TEXT,CAT_GP_DEV TEXT,CAT_GP_CODPROMO 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)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDOS_DOE_ENTREGA (PC_CLIENTE TEXT, PC_ENTREGA TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_TRADE_SPENDING_SEMANAL (HIST_TSS_RUTA TEXT, HIST_TSS_IDALMACEN TEXT, HIST_TSS_TIPO TEXT, HIST_TSS_SEMANA1 TEXT, HIST_TSS_SEMANA1_ACUM TEXT, HIST_TSS_SEMANA2 TEXT, HIST_TSS_SEMANA2_ACUM TEXT, HIST_TSS_SEMANA3 TEXT, HIST_TSS_SEMANA3_ACUM TEXT, HIST_TSS_SEMANA4 TEXT, HIST_TSS_SEMANA4_ACUM TEXT, HIST_TSS_SEMANA5 TEXT, HIST_TSS_SEMANA5_ACUM TEXT, HIST_TSS_SEMANA6 TEXT, HIST_TSS_SEMANA6_ACUM TEXT, HIST_TSS_GRUPO TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TRADE_SPENDING (MONTO_SEMANA TEXT, ACUMULADO TEXT)") ''' FIN DOE kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER") kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT") @@ -166,6 +168,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_TIPO_PROMONTO", "TEXT") kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD", "CAT_GP_TIPOPROD2", "TEXT") kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_TIPOPROD2", "TEXT") + kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD", "CAT_GP_PROMOCION", "TEXT") + kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_PROMOCION", "TEXT") Root = Root1 ' Root.LoadLayout("MainPage") Root.LoadLayout("login") @@ -423,19 +427,19 @@ Sub B4XPage_Appear If c.GetString("CUANTOS") = 0 Then Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) End If - D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version") - D.Position = 0 - If D.GetString("CUANTOS") > 0 Then - c = Starter.skmt.ExecQuery("select NOVERSION from version") - c.Position = 0 - If c.GetString("NOVERSION") = "2.1" Then - Starter.skmt.ExecNonQuery("delete from VERSION") - End If - c.Close - End If - D.Close - D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version") - D.Position = 0 +' D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version") +' D.Position = 0 +' If D.GetString("CUANTOS") > 0 Then +' c = Starter.skmt.ExecQuery("select NOVERSION from version") +' c.Position = 0 +' If c.GetString("NOVERSION") = "2.1" Then +' Starter.skmt.ExecNonQuery("delete from VERSION") +' End If +' c.Close +' End If +' D.Close +' D = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version") +' D.Position = 0 ' If D.GetString("CUANTOS") > 0 Then ' c = Starter.skmt.ExecQuery("select NOVERSION from version") ' c.Position = 0 @@ -687,7 +691,7 @@ Sub i_engranes_Click cmd.Name = "selectBypass" ' Trae la contraseña desde la tabla "BYPASS" en web. (La ultima es KMT2025) cmd.Parameters = Array As Object(user.Text.Trim) reqManager.ExecuteQuery(cmd , 0, "bypass") - Log($"${Starter.DBReqServer}, ${user.Text}, ${Subs.traeAlmacen}, ${Subs.traeRuta}"$) +' Log($"${Starter.DBReqServer}, ${user.Text}, ${Subs.traeAlmacen}, ${Subs.traeRuta}"$) End Sub Private Sub i_engranes_LongClick diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index e27b9d7..d8470da 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -246,17 +246,17 @@ Private Sub B4XPage_Created (Root1 As B4XView) f = Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info limit 1") l_ruta.Text = "-" If f.RowCount > 0 Then - Log(1) +' Log(1) f.Position = 0 - Log($"Ruta desde BD: ${f.GetString("CAT_CL_RUTA")}"$) +' Log($"Ruta desde BD: ${f.GetString("CAT_CL_RUTA")}"$) l_ruta.Text = f.GetString("CAT_CL_RUTA") End If f.Close If l_ruta.Text = "-" Then - Log(2) +' Log(2) l_ruta.Text = "-" Else - Log(3) +' Log(3) f = Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info") f.Position = 0 l_ruta.Text = f.GetString("CAT_CL_RUTA") @@ -328,10 +328,17 @@ Sub B4XPage_Appear ' StartActivity(In) ' End If ' End If + If Subs.traeUltimaActividadBD <> "principal" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD) borraClientesNuevosSinVenta reqManager.Initialize(Me, Starter.DBReqServer) Log($"DBREQSERVER = ${Starter.DBReqServer}"$) + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_version_KELL" + reqManager.ExecuteQuery(cmd , 0, "version") + ' If Not(btAdmin.IsEnabled) Then btAdmin.Enable 'Si no esta prendido el BT, lo prendemos. e_ruta.Enabled = True @@ -847,6 +854,18 @@ Sub cargar_Click cmd.Name = "select_promo_monto_KELL" cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) reqManager.ExecuteQuery(cmd , 0, "promo_monto") + + cmd.Initialize + cmd.Name = "traeNumSemanaActualCalendarioLaboral" + cmd.Parameters = Array As Object( e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN ) + reqManager.ExecuteQuery(cmd , 0, "semanaCalLaboral") + + cmd.Initialize + cmd.Name = "traeInfoTradeSpending" +' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) + cmd.Parameters = Array As Object(238, 2) + reqManager.ExecuteQuery(cmd , 0, "tradeSpending") + LogColor($"Trade Spending: Ruta: ${e_ruta.text}, almacen: ${ALMACEN}"$, Colors.red) If E_RUTA2.Text <> "" Then cmd.Initialize @@ -1273,9 +1292,10 @@ Sub JobDone(Job As HttpJob) Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA")) Dim CAT_GP_TIPOPROD2 As String = records(RESULT.Columns.Get("CAT_GP_TIPOPROD2")) + Dim CAT_GP_PROMOCION As String = records(RESULT.Columns.Get("CAT_GP_PROMOCION")) 'CAT_GP_INICIATIVA = 5 ' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV)) - Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_GP_DEV,CAT_GP_CODPROMO,CAT_GP_TIPOPROD2) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_GP_DEV, CAT_GP_TIPOPROD2)) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_GP_DEV,CAT_GP_CODPROMO,CAT_GP_TIPOPROD2,CAT_GP_PROMOCION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_GP_DEV, CAT_GP_TIPOPROD2,CAT_GP_PROMOCION)) Next Starter.skmt.TransactionSuccessful Starter.skmt.EndTransaction @@ -1712,9 +1732,11 @@ Sub JobDone(Job As HttpJob) Dim RESULT As DBResult = reqManager.HandleJob(Job) If RESULT.Tag = "version" Then 'query tag connecta.TextColor = Colors.White +' Subs.logJobDoneResultados(RESULT) For Each records() As Object In RESULT.Rows Starter.skmt.ExecNonQuery("delete from VERSION") Dim CAT_VE_VERSION As String = records(RESULT.Columns.Get("CAT_VE_VERSION")) + Log(">>>>>>> Version minima: " & CAT_VE_VERSION & " - Actual: " & Application.VersionName & " --> " & Subs.comparaVersiones(CAT_VE_VERSION, Application.VersionName)) Starter.skmt.ExecNonQuery("delete from VERSION") Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION)) Next @@ -2081,6 +2103,39 @@ Sub JobDone(Job As HttpJob) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RMI (CAT_ID, CAT_DESCRIPCION, CAT_MONTO) VALUES (?,?,?)", Array As Object (CAT_ID, CAT_DESCRIPCION, CAT_MONTO)) Next End If + + If RESULT.Tag = "semanaCalLaboral" Then 'query tag +' Subs.logJobDoneResultados(RESULT) + For Each records() As Object In RESULT.Rows + Dim SEMANA As String = records(RESULT.COLUMNS.GET("SEMANA_RELATIVA")) + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SEM_CAL_LABORAL")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SEM_CAL_LABORAL", SEMANA)) + Next + End If + + If RESULT.Tag = "tradeSpending" Then 'query tag +' Subs.logJobDoneResultados(RESULT) + Starter.skmt.ExecNonQuery("delete from HIST_TRADE_SPENDING_SEMANAL") + For Each records() As Object In RESULT.Rows + Dim HIST_TSS_RUTA As String = records(RESULT.COLUMNS.GET("HIST_TSS_RUTA")) + Dim HIST_TSS_IDALMACEN As String = records(RESULT.COLUMNS.GET("HIST_TSS_IDALMACEN")) + Dim HIST_TSS_TIPO As String = records(RESULT.COLUMNS.GET("HIST_TSS_TIPO")) + Dim HIST_TSS_SEMANA1 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA1")) + Dim HIST_TSS_SEMANA1_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA1_ACUM")) + Dim HIST_TSS_SEMANA2 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA2")) + Dim HIST_TSS_SEMANA2_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA2_ACUM")) + Dim HIST_TSS_SEMANA3 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA3")) + Dim HIST_TSS_SEMANA3_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA3_ACUM")) + Dim HIST_TSS_SEMANA4 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA4")) + Dim HIST_TSS_SEMANA4_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA4_ACUM")) + Dim HIST_TSS_SEMANA5 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA5")) + Dim HIST_TSS_SEMANA5_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA5_ACUM")) + Dim HIST_TSS_SEMANA6 As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA6")) + Dim HIST_TSS_SEMANA6_ACUM As String = records(RESULT.COLUMNS.GET("HIST_TSS_SEMANA6_ACUM")) + Dim HIST_TSS_GRUPO As String = records(RESULT.COLUMNS.GET("HIST_TSS_GRUPO")) + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_TRADE_SPENDING_SEMANAL (HIST_TSS_RUTA, HIST_TSS_IDALMACEN, HIST_TSS_TIPO, HIST_TSS_SEMANA1, HIST_TSS_SEMANA1_ACUM, HIST_TSS_SEMANA2, HIST_TSS_SEMANA2_ACUM, HIST_TSS_SEMANA3, HIST_TSS_SEMANA3_ACUM, HIST_TSS_SEMANA4, HIST_TSS_SEMANA4_ACUM, HIST_TSS_SEMANA5, HIST_TSS_SEMANA5_ACUM, HIST_TSS_SEMANA6, HIST_TSS_SEMANA6_ACUM, HIST_TSS_GRUPO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (HIST_TSS_RUTA, HIST_TSS_IDALMACEN, HIST_TSS_TIPO, HIST_TSS_SEMANA1, HIST_TSS_SEMANA1_ACUM, HIST_TSS_SEMANA2, HIST_TSS_SEMANA2_ACUM, HIST_TSS_SEMANA3, HIST_TSS_SEMANA3_ACUM, HIST_TSS_SEMANA4, HIST_TSS_SEMANA4_ACUM, HIST_TSS_SEMANA5, HIST_TSS_SEMANA5_ACUM, HIST_TSS_SEMANA6, HIST_TSS_SEMANA6_ACUM, HIST_TSS_GRUPO)) + Next + End If End If End If @@ -2097,11 +2152,24 @@ Sub JobDone(Job As HttpJob) If CARGA = "CARGAR" And S_CP.Text = "LISTO" And S_CC.Text = "LISTO" And S_CH.Text = "LISTO" Then LogColor("TERMINAMOS", Colors.red) B_OK_PAS.Text = "OK" + copiaCatGPPromocion End If Log(reqManager.requestTimes(Job.Tag)) ' Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$) -' reqManager.PrintTable(RESULT)2 + ' reqManager.PrintTable(RESULT)2 +End Sub + +Sub copiaCatGPPromocion + Log(">>>>>>>>> COPIAMOS CAT_GP_PROMOCION a CAT_GUNAPROD2") + Starter.skmt.ExecNonQuery("UPDATE CAT_GUNAPROD2 SET CAT_GP_PROMOCION = '0'") + Dim c3 As Cursor = Starter.skmt.ExecQuery("select CAT_GP_ID, CAT_GP_PROMOCION from CAT_GUNAPROD") + If c3.RowCount > 0 Then + For h = 0 To c3.RowCount - 1 + c3.Position = h + Starter.skmt.ExecNonQuery($"update cat_gunaprod2 set cat_gp_promocion = '${c3.GetString("CAT_GP_PROMOCION")}' where cat_gp_id = '${c3.GetString("CAT_GP_ID")}'"$) + Next + End If End Sub Private Sub B4XPage_CloseRequest As ResumableSub @@ -2273,6 +2341,8 @@ Sub e_ruta_EnterPressed Starter.skmt.ExecNonQuery("delete from CAT_PROMO_MONTO") Starter.skmt.ExecNonQuery("delete from TMP_CAT_BILLETE") Starter.skmt.ExecNonQuery("delete from TMP_CAT_MONEDAS") + Starter.skmt.ExecNonQuery("delete from TRADE_SPENDING") + Starter.skmt.ExecNonQuery("delete from HIST_TRADE_SPENDING_SEMANAL") Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO")) Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO")) diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 99ffeb3..ff32950 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -1291,7 +1291,7 @@ Sub Busca_TextChanged (Old As String, New As String) ' Log($"${Starter.tipov} - ${query} - ${Subs.traeTablaProds(Starter.tipov)}"$) If lfila.text = "PROMOCIONES" Then If Not(lv_promos.Visible) Then lv_promos.Visible = True - Private cPromo As Cursor=Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$) + Private cPromo As Cursor=Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) and CAT_GP_PROMOCION <> '1' ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$) Log($"res:${cPromo.RowCount}"$) If cPromo.RowCount > 0 Then lv_promos.Clear @@ -1322,7 +1322,7 @@ Sub Busca_TextChanged (Old As String, New As String) listaProds.Initialize listaHints.Initialize Sleep(0) - Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$) + Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_PROMOCION <> '1' order by CAT_GP_NOMBRE"$) ' c2 = Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( Value, Value) Log("Llamamos LlenaProdsLL") LlenaProdsLL(p, Null) @@ -1356,7 +1356,8 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) Log($"YA HAY RESULTSET ${p.RowCount}"$) Else ' Log("NO HAY RESULTSET") - Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$) + Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_PROMOCION <> '1' ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$) + Log($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_PROMOCION <> '1' ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$) ' Log(p.RowCount & " - " & Subs.traeTablaProds(Starter.tipov)) End If diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 028890c..93a4891 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -907,7 +907,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 5.04.09 + #VersionName: 5.04.17 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true @@ -923,6 +923,10 @@ Version=12.8 #IncludeTitle: False #End Region +' Version que estaba en la tabla CAT_VERSION antes -> 2.95 + +'actualizaProducto, c=30000007778, p=1008037471, nombre=BARRA ALL BRAN FRESA 37 GR, cant=1, cedis=3, tipo=VENTA + Sub Process_Globals Public ActionBarHomeClicked As Boolean ' Type DBResult (Tag As Object, Columns As Map, Rows As List) diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index ed72f08..3a8c388 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -61,7 +61,7 @@ ModuleBreakpoints7= ModuleBreakpoints8= ModuleBreakpoints9= ModuleClosedNodes0= -ModuleClosedNodes1=4 +ModuleClosedNodes1= ModuleClosedNodes10= ModuleClosedNodes11= ModuleClosedNodes12=5,7,8,9 @@ -76,7 +76,7 @@ ModuleClosedNodes2= ModuleClosedNodes20= ModuleClosedNodes21= ModuleClosedNodes22= -ModuleClosedNodes23=1,3,4,5,6,7,8,9,11,12,14,15,17,18,21,22,24,25,26,27,28,29,30,31,32,33,35 +ModuleClosedNodes23=1,4,5,6,7,8,11,12,14,15,17,18,21,22,24,25,26,27,28,29,30,31,32,33,35 ModuleClosedNodes24= ModuleClosedNodes25=4 ModuleClosedNodes26= @@ -91,6 +91,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=B4XMainPage,i_engranes_Click,665,5,B4XMainPage,user_EnterPressed,648,0,Diseñador Visual,cliente.bal,-100,1,C_Cliente,p_pideGeoPass_Click,4106,0,C_Cliente,b_geopass_Click,4114,6,B4XMainPage,JobDone,556,6,B4XMainPage,Class_Globals,22,0,Diseñador Visual,login.bal,-100,3,B4XMainPage,et_geocerca_TextChanged,879,0,B4XMainPage,et_maxClientesNuevos_TextChanged,872,0,Starter,Process_Globals,52,6 +NavigationStack=Subs,revisaBD,189,0,Subs,CreateBitmapWithNumber,1983,0,Subs,comparaVersionesOriginal,1988,0,B4XMainPage,B4XPage_Appear,437,0,B4XMainPage,JobDone,509,0,C_Principal,JobDone,1731,6,Subs,comparaVersiones,2030,6,Main,Process_Globals,24,0,kms_helperSubs,RD_respalda_cat_gunaprod,180,0,kms_helperSubs,RD_Init,73,0,C_Principal,B4XPage_Created,244,0 SelectedBuild=0 -VisibleModules=1,28,11,3,29,12,7,9,17 +VisibleModules=1,28,11,3,29,12,7,9 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 5133261..de1e0f1 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -56,7 +56,7 @@ Sub Process_Globals Dim pingShell As Boolean = False Dim errorConnDBReq As Boolean = False Dim GUID As String = "" - dim passSupervisor as string = "13X#X$X46" ' Valor predeterminado DIFERENTE a "" + Dim passSupervisor As String = "13X#X$X46" ' Valor predeterminado DIFERENTE a "" End Sub Sub Service_Create diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 7495746..51ef606 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -1985,4 +1985,64 @@ Sub CreateBitmapWithNumber(OriginalBitmap As Bitmap, Number As Int) As Bitmap 'i ' Dibujar el número en el centro del Bitmap y configurar el estilo del texto Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 15, Colors.White, "CENTER") Return NewBitmap -End Sub \ No newline at end of file +End Sub + +' Compara dos versiones en formato "X.YY.ZZ" +' Devuelve: +' -1 si versionActual es MENOR que versionMinima +' 0 si son IGUALES +' 1 si versionActual es MAYOR que versionMinima +Sub comparaVersionesOriginal(versionMinima As String, versionActual As String) As Int + ' Dividir las versiones en partes + Dim partesMin() As String = Regex.Split("\.", versionMinima) + Dim partesAct() As String = Regex.Split("\.", versionActual) + ' Asegurarse que ambas tienen 3 partes + If partesMin.Length <> 3 Or partesAct.Length <> 3 Then + Log("Formato de versión incorrecto") + Return -1 ' Por seguridad, asumimos que no cumple + End If + ' Comparar parte por parte + For i = 0 To 2 + Dim numMin As Int = partesMin(i) + Dim numAct As Int = partesAct(i) + If numAct < numMin Then + Return -1 ' Actual es menor + Else If numAct > numMin Then + Return 1 ' Actual es mayor + End If + ' Si son iguales, continuar con la siguiente parte + Next + ' Si llegamos aquí, todas las partes son iguales + Return 0 +End Sub + +' Compara dos versiones en formato "X.YY.ZZ" +' Devuelve: +' -1 si versionActual es MENOR que versionMinima +' 0 si son IGUALES +' 1 si versionActual es MAYOR que versionMinima +Sub comparaVersiones(versionMinima As String, versionActual As String) As Int + Dim partesMin() As String = Regex.Split("\.", versionMinima) + Dim partesAct() As String = Regex.Split("\.", versionActual) + ' Si la actual tiene MENOS partes que la mínima, es inválida (opcional) + If partesAct.Length < partesMin.Length Then + ToastMessageShow("Version incorrecta", False) + Return -1 ' ← Actual no cumple el formato mínimo + End If + ' Compara solo las partes que existen en la versión mínima + For i = 0 To partesMin.Length - 1 + Dim numMin As Int = partesMin(i) + Dim numAct As Int = partesAct(i) + If numAct < numMin Then + ToastMessageShow("Versión vieja, por favor actualizar!", false) + Return -1 ' Actual es menor + Else If numAct > numMin Then + Return 1 ' Actual es mayor + End If + ' Si son iguales, sigue comparando + Next + + ' Si todas las partes comparadas son iguales: + Return 0 +End Sub + diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas index e0df4e3..b291d2a 100644 --- a/B4A/kms_helperSubs.bas +++ b/B4A/kms_helperSubs.bas @@ -75,7 +75,9 @@ 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)"$) agregaColumna(rkmt,"CAT_GUNAPROD", "CAT_GP_TIPOPROD2", "TEXT") + agregaColumna(rkmt,"CAT_GUNAPROD", "CAT_GP_PROMOCION", "TEXT") agregaColumna(rkmt,"CAT_GUNAPROD2", "CAT_GP_TIPOPROD2", "TEXT") + agregaColumna(rkmt,"CAT_GUNAPROD2", "CAT_GP_PROMOCION", "TEXT") 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)"$) @@ -1011,7 +1013,7 @@ End Sub 'Regresa los clientes nuevos maximos. 'Si no está especificado, el default es 2. Sub traeMaxClientesNuevos As Int 'ignore - Private CN As Int = 2 + Private CN As Int = 5 Private x As Cursor = Starter.skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'MAXCTESNUEVOS'"$) If x.RowCount > 0 Then x.Position = 0