diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index dd28775..a38cc1d 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -159,8 +159,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
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_TREND_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 TREND_SPENDING (TIPO TEXT, MONTO_SEMANA TEXT, ACUMULADO TEXT)")
+ Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VERSIONES (VERSION TEXT, FECHA TEXT)")
''' FIN DOE
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
+ kh.agregaColumna(Starter.skmt, "kmt_info", "CREDITO", "INTEGER")
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PORCENTAJE_PAQUETE", "TEXT")
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
@@ -171,6 +173,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD", "CAT_GP_PROMOCION", "TEXT")
kh.agregaColumna(Starter.skmt, "CAT_GUNAPROD2", "CAT_GP_PROMOCION", "TEXT")
kh.agregaColumna(Starter.skmt, "TREND_SPENDING", "TIPO", "TEXT")
+ kh.agregaColumna(Starter.skmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT")
Root = Root1
' Root.LoadLayout("MainPage")
Root.LoadLayout("login")
@@ -461,6 +464,8 @@ Sub B4XPage_Appear
LogColor("Permisos de almacenamiento: " & MES1.HasPermission, Colors.Magenta)
If MES1.HasPermission Then kh.revisaSiExisteRespaldo
End If
+ DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
+ Starter.skmt.ExecNonQuery($"insert into versiones (version, fecha) values ('${Application.VersionName}', '${datetime.Date(DateTime.Now)}')"$)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
@@ -676,8 +681,8 @@ Sub i_engranes_Click
Label1.TextColor = Colors.Black
et_geocerca.Text = "."
et_geocerca.Text = ""
- If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://10.0.0.205:1781")
- ListView1.AddSingleLine("http://keymon.lat:1781")
+ If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://192.99.93.204:1781")
+ ListView1.AddSingleLine("http://keymon.net:1781")
c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position = 0
E_SERVER.text = c.GetString("CAT_VA_VALOR")
diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas
index 99d979e..daecc10 100644
--- a/B4A/C_Cliente.bas
+++ b/B4A/C_Cliente.bas
@@ -757,10 +757,10 @@ Sub B4XPage_Appear
Private cs As CSBuilder
cs.Initialize
l_doe.Text = cs.append($"Pedido DOE: $${kh.traeTotalClienteDOE}"$).color(Colors.red).append(CRLF).Append($"TOTAL PEDIDO: $${(kh.traeTotalCliente+kh.traeTotalClienteDOE)}"$).Popall
- ' l_doe.Text = $"Pedido DOE: $${kh.traeTotalClienteDOE}${CRLF}TOTAL PEDIDO: $${(kh.traeTotalCliente+kh.traeTotalClienteDOE)}"$
+ ' l_doe.Text = $"Pedido DOE: $${kh.traeTotalClienteDOE}${CRLF}TOTAL PEDIDO: $${(kh.traeTotalCliente+kh.traeTotalClienteDOE)}"$
End If
If Subs.revisaImpresa Then Guardar.Visible = True
-
+
'PROMOS POR MONTO
Private mPromoXMonto As Map = Subs.revisaPromoPorMonto
' LogColor("PROMOXMONTO:" & mPromoXMonto, Colors.Blue)
@@ -969,8 +969,8 @@ Sub Guardar_Click
Starter.lat_gps = coords.Get(0)
Starter.lon_gps = coords.Get(1)
End If
- c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
- c.Position=0
+ c = Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
+ c.Position = 0
clie_id = c.GetString("CUENTA")
usuario = Subs.traeUsuarioDeBD
If l_total.Text <> Null And l_total.Text <> "null" And l_total.Text <> "0.0" Then Subs.ponImpreso(clie_id) 'Solo lo marcamos com impreso si tiene venta (total > 0).
@@ -985,10 +985,10 @@ Sub Guardar_Click
Log("Actualizamos gestion")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
- s=Starter.skmt.ExecQuery("SELECT count(*) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ s = Starter.skmt.ExecQuery("SELECT count(*) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position = 0
If s.GetString("FOLIO") > 0 Then
- c=Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c = Starter.skmt.ExecQuery("SELECT SUM(PE_FOLIO) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position = 0
End If
s.Close
@@ -1021,7 +1021,7 @@ Sub Guardar_Click
' B4XPages.ShowPageAndRemovePreviousPages("Principal")
Guardar.SendToBack
b_inicioFinVenta.Text = "TERMINAR VENTA"
-' Log("RESPALDO")
+ Log("RESPALDO")
kh.RD_respaldoBatch
If la_cuenta.Text <> "0" Then 'Si es ABORDO, no mostramos el boton b_inicioFinVenta y regresamos a Principal.
b_inicioFinVenta.Visible = True
@@ -1214,7 +1214,7 @@ Sub Imprime_ticket
Sleep(500)
impresoraConectada = False
End If
- ' If Logger Then Log($"Impresora Conectada: ${Printer1.IsConnected}"$)
+ Log($"Impresora Conectada: ${Printer1.IsConnected}"$)
If la_cuenta.Text <> "0" And la_cuenta.Text <> "null" Then
Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_TIPO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ", Array As Object("VENTA"))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set IMPRESION = 1 where CAT_CL_CODIGO In (select cuenta from cuentaa)")''
@@ -1280,7 +1280,14 @@ Sub Imprime_ticket
' myimage= Printer1.PackImage(myimage)
' Printer1.PrintImage(myimage)
Sleep(1000)
+ Private cr As Cursor = Starter.skmt.ExecQuery("select CREDITO from kmt_info where CAT_CL_CODIGO in (select cuenta from cuentaa)")
+ Private formaPago As String = "Efectivo"
+ If cr.RowCount > 0 Then
+ cr.Position = 0
+ If cr.GetInt("CREDITO") = 1 Then formaPago = "Crédito"
+ End If
If la_cuenta.Text = "0" Then
+ LogColor(123, Colors.red)
Try
Printer1.WriteString("KELLOGG COMPANY MEXICO" & CRLF)
Printer1.WriteString(sDate &" " & sTime & CRLF)
@@ -1293,6 +1300,9 @@ Sub Imprime_ticket
Printer1.WriteString("C.P.: " & la_cp.Text & CRLF)
Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF)
Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF)
+ LogColor("Entre Calle2: " & l_entre2.Text, Colors.red)
+ Printer1.WriteString("Forma de pago: " & formaPago & CRLF)
+ LogColor("Forma de pago: " & formaPago, Colors.red)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("PEDIDO" & CRLF)
@@ -1384,6 +1394,9 @@ Sub Imprime_ticket
s=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("ABORDO"))
s.Position =0
Private total4 As String = "0"
+
+ Log("|" & s.GetString("TOTAL") & "|")
+
If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then total4 = s.GetString("TOTAL")
Sleep(400)
Printer1.WriteString( Printer1.BOLD & "No. Productos: " & total4 & CRLF)
@@ -1418,6 +1431,7 @@ Sub Imprime_ticket
End Try
Else
Try
+ LogColor(456, Colors.red)
DateTime.DateFormat = "yyyymmdd"
sDate=DateTime.Date(DateTime.Now)
Printer1.WriteString("KELLOGG COMPANY MEXICO" & CRLF)
@@ -1436,6 +1450,9 @@ Sub Imprime_ticket
Printer1.WriteString("C.P.: " & la_cp.Text & CRLF)
Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF)
Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF)
+ LogColor("Entre Calle2: " & l_entre2.Text, Colors.red)
+ Printer1.WriteString("Forma de pago: " & formaPago & CRLF)
+ LogColor("Forma de pago: " & formaPago, Colors.red)
Printer1.WriteString(" " & CRLF)
''''''' PEDIDOS DOE
@@ -1492,7 +1509,7 @@ Sub Imprime_ticket
Private cantidad1 As String = "0"
If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then
cantidad1 = s.GetString("CANTIDAD")
-
+ Log("|" & cantidad1 & "|")
Printer1.WriteString( "No. Productos: " & cantidad1 & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("FIN PEDIDO DON TOÑO" & CRLF)
@@ -1546,6 +1563,8 @@ Sub Imprime_ticket
' sTotal2 = 0
' End If
sTotal2 = kh.traeTotalCliente
+ Private cantidad1 As String = "0"
+ If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad1 = s.GetString("CANTIDAD")
s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO"))
s.Position = 0
Private cant5 As String = s.GetString("CANTIDAD")
@@ -1558,8 +1577,7 @@ Sub Imprime_ticket
Sleep(200)
Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & $"Sub Total Venta: $${NumberFormat2((sTotal2+(sTotal3 * -1)), 1, 2, 2, False)}"$ & CRLF)
- Private cantidad1 As String = "0"
- If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad1 = s.GetString("CANTIDAD")
+ Log("|" & s.GetString("CANTIDAD") & "|" & cantidad1 & "|")
Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad1 & CRLF)
Printer1.WriteString(CRLF)
Sleep(200)
@@ -1611,6 +1629,8 @@ Sub Imprime_ticket
Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Sub Total CAMBIOS: $" & NumberFormat2(sTotal3, 1, 2, 2, False) & CRLF)
Private cantidad2 As String = "0"
If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad2 = s.GetString("CANTIDAD")
+ Log("|" & cantidad1 & "|")
+ Log("|" & s.GetString("CANTIDAD") & "|" & cantidad1 & "|")
Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad2 & CRLF)
Printer1.WriteString(CRLF)
s.Close
@@ -2266,7 +2286,7 @@ Sub Cuestionario
CUANTOS2 = s.GetString("CUANTOS2")
If logger Then LogColor($"Hist:encuesta=${CUANTOS}, hist_encuesta2 = ${CUANTOS2}"$, Colors.Magenta)
End If
-' Log(CUANTOS & "|" & CUANTOS2)
+ LogColor("----> HISTORICO ENCUESTA: " & CUANTOS & "|" & CUANTOS2, Colors.red)
If CUANTOS = 0 And CUANTOS2 = 0 Then
Private enc As Cursor = Starter.skmt.ExecQuery("SELECT CAT_EP_ID, CAT_EP_IDTIPOPREGUNTA, CAT_CE_DESCRIPCION, CAT_EP_PREGUNTA, CAT_EP_RES1_PRED, CAT_EP_RES2_PRED, CAT_EP_RES3_PRED, CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)")
If enc.RowCount > 0 Then
diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas
index 3a420c4..8d2d93a 100644
--- a/B4A/C_Principal.bas
+++ b/B4A/C_Principal.bas
@@ -773,6 +773,7 @@ Sub cargar_Click
cmd.Initialize
cmd.Name = "SELECT_HIST_ENCUESTA_KELL"
cmd.Parameters = Array As Object( e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN )
+' cmd.Parameters = Array As Object( e_ruta.text, ALMACEN )
reqManager.ExecuteQuery(cmd , 0, "HIST_ENCUESTA2")
' Log($"${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN}"$)
@@ -804,17 +805,17 @@ Sub cargar_Click
cmd.Name = "select_cat_paquetes_KELL"
cmd.Parameters = Array As Object(ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprodp")
-
+
cmd.Initialize
cmd.Name = "pedidosugerido_KELLOGGS"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.Text)
reqManager.ExecuteQuery(cmd , 0, "PEDIDOsugerido")
-
+
cmd.Initialize
cmd.Name = "select_cat_paquetess_KELL"
cmd.Parameters = Array As Object(ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "gunaprodps")
-
+
cmd.Initialize
cmd.Name = "select_cat_detallepa_KELL"
cmd.Parameters = Array As Object(ALMACEN)
@@ -1079,8 +1080,9 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_CATEGORIA As String = records(RESULT.Columns.Get("CAT_CL_CATEGORIA"))
Dim CAT_CL_SEGMENTO As String = records(RESULT.Columns.Get("CAT_CL_SEGMENTO"))
Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO"))
+ Dim CREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO"))
' LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red)
- Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO))
+ Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO, CREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO,CREDITO))
Next
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","0","null","null","null","10000000","null"))
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
@@ -1095,10 +1097,7 @@ Sub JobDone(Job As HttpJob)
End If
End If
bcarga1 = 20
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_promos" Then 'query tag
If logger Then Log("TIEMPO hist_promos : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1120,10 +1119,7 @@ Sub JobDone(Job As HttpJob)
S_CH.Text = "LISTO"
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_cliente_promos" Then 'query tag
If logger Then Log("TIEMPO hist_cliente_promos : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1139,10 +1135,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.EndTransaction
' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True)
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_comp_promos" Then 'query tag
If logger Then Log("TIEMPO hist_comp_promos : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1169,10 +1162,7 @@ Sub JobDone(Job As HttpJob)
S_CH.Text = "LISTO"
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "promo_monto" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CPM_CLIENTE As String = records(RESULT.Columns.Get("CPM_CLIENTE"))
@@ -1182,17 +1172,11 @@ Sub JobDone(Job As HttpJob)
Dim CPM_CANT As String = records(RESULT.Columns.Get("CPM_CANT"))
Dim CPM_RANGO As String = records(RESULT.Columns.Get("CPM_RANGO"))
Dim CPM_DESC As String = records(RESULT.Columns.Get("CPM_DESC"))
-
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_PROMO_MONTO(CPM_CLIENTE, CPM_IDPROMO, CPM_MONTO, CPM_PROID, CPM_CANT, CPM_RANGO, CPM_DESC) VALUES (?,?,?,?,?,?,?)", Array As Object (CPM_CLIENTE, CPM_IDPROMO, CPM_MONTO, CPM_PROID, CPM_CANT, CPM_RANGO, CPM_DESC))
-
Next
End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If RESULT.Tag = "PEDIDOsugerido" Then 'query tag
-
For Each records() As Object In RESULT.Rows
Dim ID_PRODUCTO As String = records(RESULT.Columns.Get("ID_PRODUCTO"))
Dim CANTIDAD As String = records(RESULT.Columns.Get("PROMEDIO"))
@@ -1204,10 +1188,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO_SUGERIDO(ID_PRODUCTO, PROMEDIO,RUTA, ALMACEN) VALUES (?,?,?,?)", Array As Object (ID_PRODUCTO, CANTIDAD, e_ruta.Text, ALMACEN))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "cat_verificacion" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_VE_IDPROD As String = records(RESULT.Columns.Get("CAT_VE_IDPROD"))
@@ -1216,10 +1197,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VERIFICACION(CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN) VALUES (?,?,?)", Array As Object (CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "DESCUENTOS_CLIENTE" Then 'query tag
If logger Then Log("TIEMPO DESCUENTOS_CIENTE : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1234,11 +1212,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
End If
- End If
- 'DESCUENTOS SKU
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' DESCUENTOS SKU
If RESULT.Tag = "DESCUENTOS_CLIENTE_SKU" Then 'query tag
If logger Then Log("TIEMPO DESCUENTOS_CLIENTE_SKU : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1251,10 +1226,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_abordo" Then 'query tag
If logger Then Log("TIEMPO hist_abordo : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1266,10 +1238,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprod" Then 'query tag
' Subs.logJobDoneResultados(RESULT)
cargar.Enabled = True
@@ -1323,11 +1292,8 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- 'CARGA DEL CATALOGO ABORDO
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' CARGA DEL CATALOGO ABORDO
If RESULT.Tag = "gunaprod2" Then 'query tag
cargar.Enabled = True
If logger Then Log("TIEMPO gunaprod2 : " & ((DateTime.Now-inicioContador)/1000))
@@ -1379,10 +1345,7 @@ Sub JobDone(Job As HttpJob)
' skmt.ExecNonQuery2("INSERT INTO COUNT_GUNAPROD2(CAT_GP_CLASIF, CUANTOS) VALUES (?,?)", Array As Object (c.GetString("CAT_GP_CLASIF"), c.GetString("CUANTOS")))
' c.Close
End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If RESULT.Tag = "gunaprodp" Then 'query tag
If logger Then Log("TIEMPO gunaprodp : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1428,10 +1391,7 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprodps" Then 'query tag
Starter.skmt.BeginTransaction
For Each records() As Object In RESULT.Rows
@@ -1475,10 +1435,7 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "detallepaq" Then 'query tag
If logger Then Log("TIEMPO detallepaq : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1494,7 +1451,8 @@ Sub JobDone(Job As HttpJob)
Dim CAT_DP_CLASIF As String = records(RESULT.Columns.Get("CAT_DP_CLASIF"))
Dim CAT_DP_PRECIO As String = records(RESULT.Columns.Get("CAT_DP_PRECIO"))
Dim CAT_DP_PRECIO_SIMPTOS As String = records(RESULT.Columns.Get("CAT_DP_PRECIO_SIMPTOS"))
- Starter.skmt.ExecNonQuery2("INSERT INTO CAT_DETALLES_PAQ(CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS))
+ Dim CAT_DP_PRECIOB As String = records(RESULT.Columns.Get("CAT_DP_PRECIOB"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_DETALLES_PAQ(CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS,CAT_DP_PRECIOB) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS,CAT_DP_PRECIOB))
Next
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
@@ -1520,10 +1478,7 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_datos" Then 'query tag
If logger Then Log("TIEMPO hist_datos : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -1554,10 +1509,7 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hist_rmi" Then 'query tag
If logger Then Log("TIEMPO hist_rmi : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1586,10 +1538,7 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO = 0
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "variables" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim Cat_Va_Descripcion As String = records(RESULT.Columns.Get("CAT_VA_DESCRIPCION"))
@@ -1597,10 +1546,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object (Cat_Va_Descripcion, Cat_Va_Valor))
Next
End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If RESULT.Tag = "limite_abordo" Then 'query tag
If logger Then Log("TIEMPO limite_abordo : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1614,10 +1560,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
-
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+
If RESULT.Tag = "carga_encuesta" Then 'query tag
If logger Then Log("TIEMPO carga_encuesta : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1632,10 +1575,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ENCUESTA_PREGUNTA (CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA ) VALUES (?,?,?,?,?,?,?,?)", Array As Object (CAT_EP_ID ,CAT_EP_IDTIPOPREGUNTA ,CAT_CE_DESCRIPCION ,CAT_EP_PREGUNTA ,CAT_EP_RES1_PRED ,CAT_EP_RES2_PRED ,CAT_EP_RES3_PRED ,CAT_EP_ORDEN_PREGUNTA))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "carga_encuesta_cliente" Then 'query tag
If logger Then Log("TIEMPO carga_encuesta_cliente : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1644,10 +1584,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ENCUESTA_CLIENTE(HIST_ECD_IDGRUPO ,HIST_ECD_CLIENTE) VALUES (?,?)", Array As Object (HIST_ECD_IDGRUPO ,HIST_ECD_CLIENTE))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "valida_pedido" Then 'query tag
If logger Then Log("TIEMPO valida_pedido : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1661,10 +1598,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "valida_pedido1" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
@@ -1684,10 +1618,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "valida_pedidoc" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
@@ -1699,10 +1630,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "valida_noventa" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
@@ -1714,10 +1642,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ins_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
PB2.Progress = PB2.Progress + 5
@@ -1726,10 +1651,7 @@ Sub JobDone(Job As HttpJob)
PB2.Progress = 100
S_CP.Text = "VALIDANDO"
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "version" Then 'query tag
connecta.TextColor = Colors.White
' Subs.logJobDoneResultados(RESULT)
@@ -1741,19 +1663,13 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "count_cli" Then 'query tag
For Each records() As Object In RESULT.Rows
COUNT_CLIE = records(RESULT.Columns.Get("COUNT_CLIE"))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ruta" Then 'query tag
e_ruta.Enabled = True
' Log(RESULT)
@@ -1783,10 +1699,7 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "usuario" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim name2 As String = records(RESULT.Columns.Get("VALIDO"))
@@ -1796,10 +1709,7 @@ Sub JobDone(Job As HttpJob)
End If
P1.Visible = False
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "fecha" Then 'query tag
For Each records() As Object In RESULT.Rows
Starter.FECHA_HOY = records(RESULT.Columns.Get("FECHA"))
@@ -1807,10 +1717,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",Starter.FECHA_HOY))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "hora" Then 'query tag
For Each records() As Object In RESULT.Rows
Starter.HORA = records(RESULT.Columns.Get("HORA"))
@@ -1822,10 +1729,7 @@ Sub JobDone(Job As HttpJob)
MsgboxAsync("La hora del equipo NO coincide con la hora del servidor, es necesario corregirla", "AVISO IMPORTANTE")
End If
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "folio" Then 'query tag
If logger Then Log("TIEMPO folio : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1834,11 +1738,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FOLIO",FOLIO))
Next
End If
- End If
- 'Perfil
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Perfil
If RESULT.Tag = "perfil" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim PERFIL As String = records(RESULT.Columns.Get("PERFIL"))
@@ -1846,11 +1747,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("PERFIL",PERFIL))
Next
End If
- End If
- 'Marcas
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Marcas
If RESULT.Tag = "marcas" Then 'query tag
If logger Then Log("TIEMPO marcas : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1859,11 +1757,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MARCAS",MARCAS))
Next
End If
- End If
- ' SUCURSAL
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' SUCURSAL
If RESULT.Tag = "sucursal" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim SUCURSAL As String = records(RESULT.Columns.Get("SUCURSAL"))
@@ -1871,10 +1766,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SUCURSAL",SUCURSAL))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "placas" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim PLACAS As String = records(RESULT.Columns.Get("PLACAS"))
@@ -1882,10 +1774,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("PLACAS",PLACAS))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "SEMANA" Then 'query tag
If logger Then Log("TIEMPO SEMANA : " & ((DateTime.Now-inicioContador)/1000))
For Each records() As Object In RESULT.Rows
@@ -1894,10 +1783,7 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SEMANA",Cat_Va_Valor))
Next
End If
- End If
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "dia_visita" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim DIA_VISITA As String = records(RESULT.Columns.Get("DIA_VISITA"))
@@ -1906,11 +1792,8 @@ Sub JobDone(Job As HttpJob)
'Msgbox(DIA_VISITA, "") 'ignore
Next
End If
- End If
- 'CUOTAS
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' CUOTAS
If RESULT.Tag = "CUOTAS" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HC_RUTA As String = records(RESULT.Columns.Get("HC_RUTA"))
@@ -1929,12 +1812,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CUOTAS(HC_RUTA, HC_CUOTA1,HC_CUOTA2,HC_CUOTA3,HC_CUOTA4,HC_CUOTA5,HC_CUOTA6,HC_META1,HC_META2,HC_META3,HC_META4,HC_META5,HC_META6) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (HC_RUTA, HC_CUOTA1,HC_CUOTA2,HC_CUOTA3,HC_CUOTA4,HC_CUOTA5,HC_CUOTA6,HC_META1,HC_META2,HC_META3,HC_META4,HC_META5,HC_META6))
Next
End If
- End If
-
- 'Cambios
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Cambios
If RESULT.Tag = "cat_cambios" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAMBIOS As String = records(RESULT.Columns.Get("CAT_VA_VALOR"))
@@ -1942,11 +1821,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CAMBIOS",CAMBIOS))
Next
End If
- End If
- 'Precios
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Precios
If RESULT.Tag = "precios" Then 'query tag
If logger Then Log("TIEMPO precios : " & ((DateTime.Now-inicioContador)/1000))
' Subs.cronoX("Precios", 1)
@@ -1973,11 +1849,8 @@ Sub JobDone(Job As HttpJob)
' If Logger Then LogColor($"///////////////// ${Subs.cronoX("Precios", 2)} ///////////////////////////"$, Colors.red)
' ToastMessageShow("LISTA DE PRECIOS OK LISTA DE PRECIOS OK", True)
End If
- End If
- 'Candado Fin Dia
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Candado Fin Dia
If RESULT.Tag = "pass_fin_dia" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim nuevaContrasena As String = records(RESULT.Columns.Get("CAR_VA_VALOR3"))
@@ -1985,11 +1858,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FINDIA_PASS", nuevaContrasena))
Next
End If
- End If
- 'Exhibidores
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' Exhibidores
If RESULT.Tag = "exhibidores" Then 'query tag
If logger Then Log("TIEMPO exhibidores : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -2002,11 +1872,8 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
End If
- End If
- 'HIST_ENCUESTA2
- If Job.JobName = "DBRequest" Then
- Dim RESULT As DBResult = reqManager.HandleJob(Job)
+' HIST_ENCUESTA2
If RESULT.Tag = "HIST_ENCUESTA2" Then 'query tag
If logger Then Log("TIEMPO HIST_ENCUESTA2 : " & ((DateTime.Now-inicioContador)/1000))
Starter.skmt.BeginTransaction
@@ -2343,6 +2210,7 @@ Sub e_ruta_EnterPressed
Starter.skmt.ExecNonQuery("delete from TMP_CAT_MONEDAS")
Starter.skmt.ExecNonQuery("delete from TREND_SPENDING")
Starter.skmt.ExecNonQuery("delete from HIST_TREND_SPENDING_SEMANAL")
+ Starter.skmt.ExecNonQuery("delete from VERSIONES")
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"))
@@ -3436,7 +3304,7 @@ Sub descargaCartaPorte
' cartaPortePDF = "CPORTE2_100_Prueba.pdf" 'Para pruebas
' Log(cartaPortePDF)
'Para el servidor
- Private pdfServer As String = "keymon.lat"
+ Private pdfServer As String = "keymon.net"
If Starter.DBReqServer.IndexOf("10.0.0.205") > -1 Then pdfServer = "10.0.0.205"
' Log(pdfServer)
pdfURL = $"https://${pdfServer}/CartaPorteKelloggs/CartaPorteMovil${DateTime.Date(DateTime.now)}/${cartaPortePDF}"$
diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas
index 5e2ab56..7728bfc 100644
--- a/B4A/C_Productos.bas
+++ b/B4A/C_Productos.bas
@@ -9,6 +9,7 @@ Sub Class_Globals
Private xui As XUI 'ignore
Dim ruta As String
Dim kh As kms_helperSubs
+ Dim ts As C_TrendSpending
Dim q_buscar As String
Dim forzarBusqueda As Boolean = False
Dim skmt As SQL
@@ -100,18 +101,19 @@ Sub Class_Globals
Dim dispAbordo As String
Private l_avisoAbordo As Label
Private l_infoPedido As Label
- Dim promosC As Promociones
+' Dim promosC As Promociones
Dim invTotal As Int
Dim TS_RMI() As String
Dim TS_DESCUENTOS() As String
Dim TS_BONIFICACIONES() As String
- dim bonificacionesMaximas as int = 0
+ Dim bonificacionesMaximas As Int = 0
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
kh.Initialize(Me, "kh", Starter.skmt)
- promosC.Initialize(Me, "promosC", Starter.skmt)
+ ts.Initialize(Me, "ts", Starter.skmt)
+' promosC.Initialize(Me, "promosC", Starter.skmt)
Return Me
End Sub
@@ -249,7 +251,7 @@ Sub B4XPage_Appear
' l_totProds.Width = Root.Width * 0.19
' l_total.Left = l_totProds.Width + 20
' l_total.Width = Root.Width * 0.25
-
+
' Log(Subs.traeTotalesClienteActual)
Dim m As Map = Subs.traeTotalesClienteActual
prodsPedidoActual = m.Get("productos")
@@ -284,7 +286,7 @@ Sub B4XPage_Appear
End If
If B4XPages.MainPage.cliente.la_cuenta.text = "0" Then b_rmi.Visible = False
' Log(Starter.tipov)
- Private mx As Map = Subs.traeInfoTrendSpending
+ Private mx As Map = ts.traeInfoTrendSpending
TS_RMI = Regex.Split(",", mx.Get("RMI"))
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
@@ -354,7 +356,6 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
Log(c2.GetString("CAT_PA_PORCENTAJE_PAQUETE"))
If c2.GetString("CAT_PA_TIPO_PROMONTO") = "0" Then ' Si NO es promo por monto entonces la mostamos.
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
-
End If
End If
Next
@@ -600,25 +601,34 @@ Sub b_prodMenos_Click
Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
- Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
+' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
Log(clv_prods_ll.GetValue(index).As(Map))
- ' ######## Trend Spending - Poner estas lienas antes de que si es negativo se ponga en CERO.
- Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
- If laBonificacion > 0 Then
- Log("LA BONIFICACION: " & laBonificacion)
- Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
- Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
- bonificacionesMaximas = ((laCant.text * laBonificacion) + BonsRestantes) / laBonificacion
- Log("MAX: " & bonificacionesMaximas)
- Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
- End If
- Log("LA BONIFICACION: " & laBonificacion)
- If laCant.text >= 0 Then
- Subs.modTrendSpending("suma", "bonificaciones", laBonificacion)
- End If
+ ' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
+' Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
+' If laBonificacion > 0 Then
+' Log("LA BONIFICACION: " & laBonificacion)
+' Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
+' Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
+' bonificacionesMaximas = ((laCant.text * laBonificacion) + BonsRestantes) / laBonificacion
+' Log("MAX: " & bonificacionesMaximas)
+' Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
+' End If
+' Log("LA BONIFICACION: " & laBonificacion)
+' If laCant.text >= 0 Then
+' Subs.modTrendSpending("suma", "bonificaciones", laBonificacion)
+' End If
' #######################
+ ' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
+ If lfila.Text = "PRODUCTOS" Then
+ Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
+ ts.trendSpending("prodMenos", "descuentos", clienteId, id, laCant.Text, 0)
+ else If lfila.Text = "RMI" Then
+ ts.trendSpending("prodMenos", "rmi", clienteId, id, laCant.Text, 0)
+ End If
+ ' #######################
+
If laCant.Text < 0 Then laCant.Text = 0
' Log(tmpMap)
' prodsMap.Put(id, tmpMap)
@@ -656,6 +666,7 @@ Sub b_prodMenos_Click
End Sub
Sub b_prodMas_Click
+ Private logger As Boolean = True
Root.RequestFocus
etCantHasFocus = False
Private buttonTag As String = Sender.As(Button).tag
@@ -664,47 +675,67 @@ Sub b_prodMas_Click
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0)
Dim lProdX As B4XView = pnl.GetView(1)
- Log("========= " & pnl0.Tag)
- Log("========= " & pnl.Tag)
- Log("========= " & pnl.GetView(1).Tag)
- Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Log("========= " & pnl0.Tag)
+' Log("========= " & pnl.Tag)
+' Log("========= " & pnl.GetView(1).Tag)
+' Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
If laCant.Text = "" Then laCant.Text = 0
- Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
- Private inv As Int = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
- Log($"Existencias: ${inv}, inv: ${Subs.traeinventario(pnl.GetView(1).Tag)}"$)
-
- inv = Subs.traeinventario(pnl.GetView(1).Tag)
- Log($"Existencias: ${inv}, inv: ${Subs.traeinventario(pnl.GetView(1).Tag)}"$)
-
+' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
+' Private inv As Int = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Log($"Existencias: ${inv}, inv: ${Subs.traeinventario(pnl.GetView(1).Tag)}"$)
+ Private inv As Int = Subs.traeinventario(pnl.GetView(1).Tag)
+ Log($"inv: ${Subs.traeinventario(pnl.GetView(1).Tag)}"$)
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
Private almacenX As String = Subs.traeAlmacen
Private nombreX As String = Subs.traeProdNombre(id)
Private precioX As String = precio
-
- '######## Trend Spending
- Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
- If laBonificacion > 0 Then
- Log("LA BONIFICACION: " & laBonificacion)
- Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
- Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
- Log("BON RESTANTE: " & BonsRestantes)
- bonificacionesMaximas = ((laCant.text * laBonificacion) + BonsRestantes) / laBonificacion
- Log("MAX: " & bonificacionesMaximas)
- Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
+
+' ######## Trend Spending
+ ' NOTA:
+ ' Cuando se haga la funcion debemos de enviar si es bonificacion o rmi y el regreso tene que ser "bonificacionesMaximas" y "laBonificacion"
+' Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
+' If laBonificacion > 0 Then
+' Log("LA BONIFICACION: " & laBonificacion)
+' Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
+' Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
+' Log("BON RESTANTE: " & BonsRestantes)
+' bonificacionesMaximas = ((laCant.text * laBonificacion) + BonsRestantes) / laBonificacion
+' Log("MAX: " & bonificacionesMaximas)
+' Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
+' End If
+' If laCant.Text = bonificacionesMaximas Then
+' ToastMessageShow("El presupuesto de BONIFICACIONES no permite agregar mas productos!!", False)
+' End If
+' Log("LA BONIFICACION: " & laBonificacion)
+' If inv > 0 And laCant.Text < bonificacionesMaximas Then
+' Subs.modTrendSpending("resta", "bonificaciones", laBonificacion)
+' Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
+' End If
+' Log("BONIFCACIONES RESTANTES: " & (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones")))
+ Private tsMonto As String = 0
+ Private tsMaximas As Int = 0
+ If lfila.Text = "PRODUCTOS" Then
+ Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
+ Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - ts.traeAcumuladoHoyTS("descuentos")) ' Traemos monto restante de Trend Spending para bonificaciones.
+ tsMonto = NumberFormat2(ts.traePrecio(id)*(ts.traeDescXSku(clienteId, id)/100), 1, 2, 2, False) ' Traemos el monto (descuento total) del producto actual.
+ tsMaximas = ((laCant.text * tsMonto) + tsRestantes) / tsMonto ' Traemos la cantidad maxima de descuentos por presupuesto de Trend Spending.
+ Log("tsRestantes: " & tsRestantes)
+' Log("tsMonto: " & tsMonto)
+ Log("tsMaximas: " & tsMaximas)
+ Log("tsMaximas2: " & ts.traeMaximas("descuentos", clienteId, id, laCant.Text, ""))
+' Log("tsMonto2: " & ts.traeMonto(clienteId, id))
+ Else if lfila.Text = "RMI" Then
+ Log(">>>>>>>>>> RMI <<<<<<<<<<<<<<")
+ Private tsRestantes As String = (TS_RMI(0) - TS_RMI(1) - ts.traeAcumuladoHoyTS("rmi")) ' Traemos monto restante de Trend Spending para RMIs.
+ tsMonto = NumberFormat2(ts.traePrecioRMI(id), 1, 2, 2, False) ' Traemos el monto (precio) del RMI actual.
+ tsMaximas = ((laCant.text * tsMonto) + tsRestantes) / tsMonto ' Traemos la cantidad maxima de RMIs por presupuesto de Trend Spending.
+' Log(tsMaximas)
+' Log(tsMonto)
End If
- If laCant.Text = bonificacionesMaximas Then
- ToastMessageShow("El presupuesto de BONIFICACIONES no permite agregar mas productos!!", False)
- End If
- Log("LA BONIFICACION: " & laBonificacion)
- If inv > 0 And laCant.Text < bonificacionesMaximas Then
- Subs.modTrendSpending("resta", "bonificaciones", laBonificacion)
- Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
- End If
- Log("BONIFCACIONES RESTANTES: " & (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones")))
- '##########################
-
+' ##########################
+
' Private iq As Cursor = Starter.skmt.ExecQuery($"select cat_gp_almacen from ${Subs.traeTablaProds(Starter.tipov)} where cat_gp_id = '${clv_prods_ll.GetValue(index).As(Map).Get("id")}'"$)
' If iq.RowCount > 0 Then
' iq.Position = 0
@@ -714,8 +745,11 @@ Sub b_prodMas_Click
' Log($"${kh.traeLimiteCredito(Subs.traeCliente)} < ${kh.totalPedido + precio}"$)
' Log(kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + precio))
+' Log(inv > 0)
+' Log(tsMonto.As(Int) = 0)
+
If 1 = 2 And buttonTag = "vendido" And lfila.Text = "PRODUCTOS" Then
- Log(1)
+' Log(11)
' Log("VENDIDO")
Log($"${(laCant.Text + 1 <= inv)} And ${(kh.totalPedido - precio > 1)}"$)
' If inv > 0 And (laCant.Text + 1 <= (laCant.Text + existencias)) And (kh.totalPedido - precio > 1) Then
@@ -726,38 +760,41 @@ Sub b_prodMas_Click
inv = inv - 1
' laCant.Text = $"$1.0{laCant.Text+1}"$
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
+ ts.trendSpending("prodMas", "descuentos", clienteId, id, laCant.Text, inv)
' Log(clv_prods_ll.GetValue(index).As(Map))
End If
else if kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + precio) And lfila.Text = "PRODUCTOS" Then
- Log(3)
+' Log(33)
Log($"#######################${CRLF}#### LIMITE CREDITO SUPERADO${CRLF}#######################"$)
ToastMessageShow("LIMITE DE CREDITO SUPERADO", False)
- else If inv > 0 And laBonificacion = 0 And lfila.Text = "PRODUCTOS" Then
+ else If inv > 0 And tsMonto.As(Int) = 0 And lfila.Text = "PRODUCTOS" Then
+' Log(55)
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
- else If inv > 0 And laBonificacion > 0 And laCant.Text < bonificacionesMaximas And lfila.Text = "PRODUCTOS" Then
- Log(4)
-' LogColor(inv, Colors.blue)
-' laCant.Text = $"$1.0{laCant.Text + 1}"$
+ ts.trendSpending("prodMas", "descuentos", clienteId, id, laCant.Text, inv)
+ else If inv > 0 And tsMonto > 0 And laCant.Text < tsMaximas And lfila.Text = "PRODUCTOS" Then
+' Log(44)
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
-' Log(kh.totalPedido)
-' else If lfila.Text = "RMI" And laCant.Text + 1 <= inv And (kh.totalPedido - precio > 1) Then
- else If lfila.Text = "RMI" And (kh.totalPedido - precio > 1) Then
- Log(5)
+ ts.trendSpending("prodMas", "descuentos", clienteId, id, laCant.Text, inv)
+ else If lfila.Text = "RMI" And laCant.Text >= tsMaximas Then
+ ToastMessageShow("El presupuesto de RMI no permite agregar mas productos!!", False)
+ else If lfila.Text = "RMI" And laCant.Text < tsMaximas And (kh.totalPedido - precio > 1) Then
+' Log(66)
+ ts.trendSpending("prodMas", "rmi", clienteId, id, laCant.Text, inv)
LogColor(inv, Colors.blue)
' laCant.Text = $"$1.0{laCant.Text + 1}"$
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
Log(kh.totalPedido)
else if kh.totalPedido < 1 Then
- Log(6)
+' Log(77)
laCant.Text = "0"
End If
-
+' Log(99)
If lfila.Text = "RMI" Then
almacenX = "DUR"
nombreX = "CAMBIO"&Subs.traeRMINombre(id)
precioX = precioX * -1
End If
-
+
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
Log($"Existencias: ${inv}, inv: ${Subs.traeinventario(pnl.GetView(1).Tag)}"$)
Log($"TotalPedido: ${NumberFormat2(kh.totalPedido,1,2,2,False)}"$)
@@ -808,6 +845,7 @@ End Sub
Private Sub et_pCant_TextChanged (Old As String, New As String)
' If Not(Old = "0" And New = "") And etCantHasFocus Then cuentaProds
+' Log($"${Old}|${New}"$)
If etCantHasFocus = True Then
Try
LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
@@ -828,7 +866,7 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
If existencias = "" Then existencias = 0
existencias = NumberFormat2(existencias, 1, 0, 0, False)
Log($"laCant: ${laCant.text}, Precio: ${precio}, DISPONIBLES: ${disp}"$)
- Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
If(New = "" Or New = Null) Then New = 0
Log($"Nuevo: ${New}, InvTotal: ${invTotal}"$)
' If(New >= invTotal) Then
@@ -874,33 +912,32 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
End If
'######## Trend Spending
- Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
- Log("LA BONIFICACION: " & laBonificacion)
- Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
- Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
- Private maxDispPorBonificaciones As Int = (BonsRestantes/laBonificacion).As(Int)
- Log($"Max disponibles por bonificaciones: ${maxDispPorBonificaciones}"$)
- If laBonificacion > 0 Then
- If New > bonificacionesMaximas Then
- If invTotal > bonificacionesMaximas Then
- laCant.Text = bonificacionesMaximas
- Else
- laCant.Text = invTotal
+ If lfila.Text = "PRODUCTOS" Then
+ Private tsMonto As String = NumberFormat2(ts.traePrecio(id)*(ts.traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
+ Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - ts.traeAcumuladoHoyTS("descuentos"))
+ Log("tsMonto: " & tsMonto)
+ Log("Monto del presupuesto disponible: " & tsRestantes)
+' Private tsMaximas As Int = (tsRestantes/tsMonto).As(Int)
+' Log($"tsMaximas: ${tsMaximas}"$)
+ Log($"tsMaximas: ${ts.tsMaximas}"$)
+ If tsMonto > 0 Then
+ If New > ts.tsMaximas Then
+ If invTotal > ts.tsMaximas Then
+ laCant.Text = ts.tsMaximas
+ Else
+ laCant.Text = invTotal
+ End If
+ End If
+ Else if tsMonto = 0 Then
+ If laCant.Text > invTotal Or New > invTotal Then
+ laCant.text = invTotal
End If
End If
- Else if laBonificacion = 0 Then
- If laCant.Text > invTotal Or New > invTotal Then
-' Log("Se pasa!!")
-' Log($"Ponemos laCant en: ${invTotal}"$)
- laCant.text = invTotal
- End If
+ ts.modTrendSpending("resta", "descuentos", ((New * tsMonto) - (Old * tsMonto)))
+ Log("tsAcumulado: " & ts.traeAcumuladoHoyTS("descuentos"))
End If
-
- Subs.modTrendSpending("resta", "bonificaciones", ((New * laBonificacion) - (Old * laBonificacion)))
- Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
'##########################
-
' If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then
Subs.actualizaProducto(almacenX, precioX, laCant.Text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
' End If
@@ -936,24 +973,23 @@ Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
Dim pnl As B4XView = pnl0.GetView(0)
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
-
- '######## Trend Spending
- Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
- If laBonificacion > 0 And HasFocus Then
- Log("LA BONIFICACION: " & laBonificacion)
- Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones"))
- Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
-
- bonificacionesMaximas = ((laCant.text * laBonificacion) + BonsRestantes) / laBonificacion
- Log("MAX: " & bonificacionesMaximas)
-' Private maxDispPorBonificaciones As Int = ((BonsRestantes/laBonificacion)+laCant.text).As(Int)
-' Log($"Max disponibles por bonificaciones: ${maxDispPorBonificaciones}"$)
-
-' Subs.modTrendSpending("resta", "bonificaciones", ((New * laBonificacion) - (Old * laBonificacion)))
- Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
+ If lfila.Text = "PRODUCTOS" Then
+ '######## Trend Spending
+ Private laBonificacion As String = ts.traePrecio(id)*(ts.traeDescXSku(clienteId, id)/100)
+ If laBonificacion > 0 And HasFocus Then
+ Log("LA BONIFICACION: " & laBonificacion)
+ Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - ts.traeAcumuladoHoyTS("descuentos"))
+ Log("Monto de prespuesto disponible: " & tsRestantes)
+ ts.tsMaximas = ((laCant.text * laBonificacion) + tsRestantes) / laBonificacion
+ Log("tsMaximas: " & ts.tsMaximas)
+ Log(ts.traeAcumuladoHoyTS("descuentos"))
+ End If
+ '##########################
End If
- '##########################
-
+' If HasFocus Then
+' bonificacionesMaximas = Subs.trendSpendingFuncs("focusChanged", "bonificaciones", clienteId, id, laCant.text, 0)
+'' Log("bonificacionesMaximas: " & bonificacionesMaximas)
+' End If
invTotal = laCant.Text + Subs.traeinventario(id)
LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
cuentaProds
@@ -1232,12 +1268,12 @@ Private Sub lv_prodsPedido_ItemLongClick (Position As Int, Value As Object)
'Si no es RMI, actualizamos el inventario.
If prod.GetString("PE_CEDIS") <> "DUR" Then Starter.skmt.ExecNonQuery2($"update ${Subs.traeTablaProds(Starter.tipov)} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(m.get("cant"), m.get("prodId")))
Log($"BORRAMOS ${Value}, ${m.Get("cedis")}"$)
- ' Codigo para regresar el dinero al resupuesto de BONIFICACIONES (Trend Spending)
+ ' Codigo para regresar el dinero al presupuesto de DESCUENTOS (Trend Spending)
Private precio0 As String = Subs.traePrecio(m.Get("prodId"))
Private precioConDesc As String = (kh.traeDescXSku(Subs.traeCliente, m.Get("prodId"))/100)*precio0
Log(precioConDesc)
Log(">>>>>>>>>>>>> " & (precioConDesc * m.Get("cant")))
- Subs.modTrendSpending("suma", "bonificaciones", (precioConDesc * m.Get("cant")))
+ Subs.modTrendSpending("suma", "descuentos", (precioConDesc * m.Get("cant")))
' Termina Trend Spending
Starter.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cedis = ? and pe_cant = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value, m.Get("cedis"), m.Get("cant")))
@@ -1365,6 +1401,11 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
prioridad = p1.GetInt("CAT_GP_TIPOPROD2")
' Log(prioridad)
End If
+' Log("NIVEL: " & lfila.Text)
+ If lfila.Text = "RMI" Then ' Si es RMI, la cantidad solo se puede cambiar con los botones.
+ et_pCant.Enabled = False
+ et_pCant.TextColor = Colors.black
+ End If
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null And clv_prods_ll.GetValue(i).As(Map).Get("cant") > 0 Then
p_prods.Color=0xFFE2EEFF
' Log($"select CAT_GP_TIPOPROD2 from CAT_GUNAPROD where CAT_GP_ID = '${clv_prods_ll.GetValue(i).As(Map).Get("id")}'"$)
@@ -1530,7 +1571,7 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
Private Pnl As B4XView = xui.CreatePanel("")
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip)
Private tempMap As Map = listaProdsConCant.Get(pr0)
- Private inv = tempMap.Get("almacen")' + tempMap.Get("cant")
+ Private inv As String = tempMap.Get("almacen")' + tempMap.Get("cant")
tempMap.Put("almacen", inv)
' Log(tempMap)
clv_prods_ll.Add(Pnl, tempMap)
diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas
index 45c0294..bbad2fb 100644
--- a/B4A/C_Promos.bas
+++ b/B4A/C_Promos.bas
@@ -35,7 +35,7 @@ Sub Class_Globals
Dim estaPromo, esteCliente As String
Private b_promoMas As Button
Private b_promoMenos As Button
- dim et_promoCant As EditText
+ Dim et_promoCant As EditText
Private l_promosCant As Label
Private b_continuar As Button
Private p_prodsVariables As Panel
@@ -43,11 +43,13 @@ Sub Class_Globals
Dim prodsPedidoActual As String
Dim montoPedidoActual As String
Dim promosMap As Map
+ Dim ts As C_TrendSpending
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
' promosC.Initialize(Me, "promosC", Starter.skmt)
+ ts.Initialize("ts", "ts", Starter.skmt)
Return Me
End Sub
@@ -436,7 +438,7 @@ End Sub
' Esto pasa cuando el producto fijo de una promocion tambien es parte de los productos variables de la misma, asi que
' si la promo usa 3 productos fijos y quedan 10 para los variables, cuando pedimos 2 promociones, en lugar de usar
' 3 para los fijos, ahora vamos a necesitar 6, y en lugar de quedar 10 para los variables, ahora solo quedan 7.
-' Regresa un mapa con el nuevo inventario de los productos variables afectados.
+' Regresa un mapa con el nuevo inventario de los productos variables afectados.
Sub revisaInvProdsVariables As Map
Private invVariablesModificados As Map = CreateMap()
' Private prodsFijosOriginales As Int = (tpf / et_promoCant.Text)
@@ -487,7 +489,7 @@ End Sub
Private Sub b_continuar_Click
cuentaProds
' Log("====================================================================")
-' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
+ Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal
index 2519099..33f38cc 100644
Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ
diff --git a/B4A/Files/kelloggs.rkmt.km b/B4A/Files/kelloggs.rkmt.km
new file mode 100644
index 0000000..16e5f52
Binary files /dev/null and b/B4A/Files/kelloggs.rkmt.km differ
diff --git a/B4A/Files/kmt.db b/B4A/Files/kmt.db
index 6d9dc45..8e9cc51 100644
Binary files a/B4A/Files/kmt.db and b/B4A/Files/kmt.db differ
diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a
index 13c3a4a..88130d4 100644
--- a/B4A/KelloggsV4.b4a
+++ b/B4A/KelloggsV4.b4a
@@ -1,424 +1,425 @@
Build1=Default,kelloggsV2.keymon.lat,HU2_PUBLIC
File1=alcancia.png
File10=cacahuates_blanco2.png
-File100=marker-azul-34.png
-File101=marker-azul-35.png
-File102=marker-azul-36.png
-File103=marker-azul-37.png
-File104=marker-azul-38.png
-File105=marker-azul-39.png
-File106=marker-azul4.png
-File107=marker-azul-4.png
-File108=marker-azul-40.png
-File109=marker-azul-41.png
+File100=marker-azul-33.png
+File101=marker-azul-34.png
+File102=marker-azul-35.png
+File103=marker-azul-36.png
+File104=marker-azul-37.png
+File105=marker-azul-38.png
+File106=marker-azul-39.png
+File107=marker-azul4.png
+File108=marker-azul-4.png
+File109=marker-azul-40.png
File11=cacahuates_blanco3.png
-File110=marker-azul-42.png
-File111=marker-azul-43.png
-File112=marker-azul-44.png
-File113=marker-azul-45.png
-File114=marker-azul-46.png
-File115=marker-azul-47.png
-File116=marker-azul-48.png
-File117=marker-azul-49.png
-File118=marker-azul5.png
-File119=marker-azul-5.png
+File110=marker-azul-41.png
+File111=marker-azul-42.png
+File112=marker-azul-43.png
+File113=marker-azul-44.png
+File114=marker-azul-45.png
+File115=marker-azul-46.png
+File116=marker-azul-47.png
+File117=marker-azul-48.png
+File118=marker-azul-49.png
+File119=marker-azul5.png
File12=cacahuates_chico.png
-File120=marker-azul-50.png
-File121=marker-azul-51.png
-File122=marker-azul-52.png
-File123=marker-azul-53.png
-File124=marker-azul-54.png
-File125=marker-azul-55.png
-File126=marker-azul-56.png
-File127=marker-azul-57.png
-File128=marker-azul-58.png
-File129=marker-azul-59.png
+File120=marker-azul-5.png
+File121=marker-azul-50.png
+File122=marker-azul-51.png
+File123=marker-azul-52.png
+File124=marker-azul-53.png
+File125=marker-azul-54.png
+File126=marker-azul-55.png
+File127=marker-azul-56.png
+File128=marker-azul-57.png
+File129=marker-azul-58.png
File13=cacahuates_original.jpeg
-File130=marker-azul-6.png
-File131=marker-azul-60.png
-File132=marker-azul-61.png
-File133=marker-azul-62.png
-File134=marker-azul-63.png
-File135=marker-azul-64.png
-File136=marker-azul-65.png
-File137=marker-azul-66.png
-File138=marker-azul-67.png
-File139=marker-azul-68.png
+File130=marker-azul-59.png
+File131=marker-azul-6.png
+File132=marker-azul-60.png
+File133=marker-azul-61.png
+File134=marker-azul-62.png
+File135=marker-azul-63.png
+File136=marker-azul-64.png
+File137=marker-azul-65.png
+File138=marker-azul-66.png
+File139=marker-azul-67.png
File14=cacahuates_original2.bmp
-File140=marker-azul-69.png
-File141=marker-azul-7.png
-File142=marker-azul-70.png
-File143=marker-azul-71.png
-File144=marker-azul-72.png
-File145=marker-azul-73.png
-File146=marker-azul-74.png
-File147=marker-azul-75.png
-File148=marker-azul-76.png
-File149=marker-azul-77.png
+File140=marker-azul-68.png
+File141=marker-azul-69.png
+File142=marker-azul-7.png
+File143=marker-azul-70.png
+File144=marker-azul-71.png
+File145=marker-azul-72.png
+File146=marker-azul-73.png
+File147=marker-azul-74.png
+File148=marker-azul-75.png
+File149=marker-azul-76.png
File15=cacahuates_original2.jpg
-File150=marker-azul-78.png
-File151=marker-azul-79.png
-File152=marker-azul-8.png
-File153=marker-azul-80.png
-File154=marker-azul-81.png
-File155=marker-azul-82.png
-File156=marker-azul-83.png
-File157=marker-azul-84.png
-File158=marker-azul-85.png
-File159=marker-azul-86.png
+File150=marker-azul-77.png
+File151=marker-azul-78.png
+File152=marker-azul-79.png
+File153=marker-azul-8.png
+File154=marker-azul-80.png
+File155=marker-azul-81.png
+File156=marker-azul-82.png
+File157=marker-azul-83.png
+File158=marker-azul-84.png
+File159=marker-azul-85.png
File16=cacahuates_original3.bmp
-File160=marker-azul-87.png
-File161=marker-azul-88.png
-File162=marker-azul-89.png
-File163=marker-azul-9.png
-File164=marker-azul-90.png
-File165=marker-azul-91.png
-File166=marker-azul-92.png
-File167=marker-azul-93.png
-File168=marker-azul-94.png
-File169=marker-azul-95.png
+File160=marker-azul-86.png
+File161=marker-azul-87.png
+File162=marker-azul-88.png
+File163=marker-azul-89.png
+File164=marker-azul-9.png
+File165=marker-azul-90.png
+File166=marker-azul-91.png
+File167=marker-azul-92.png
+File168=marker-azul-93.png
+File169=marker-azul-94.png
File17=carrito.png
-File170=marker-azul-96.png
-File171=marker-azul-97.png
-File172=marker-azul-98.png
-File173=marker-azul-99.png
-File174=marker-rojo.png
-File175=marker-rojo-0.png
-File176=marker-rojo1.png
-File177=marker-rojo-1.png
-File178=marker-rojo-10.png
-File179=marker-rojo-100.png
+File170=marker-azul-95.png
+File171=marker-azul-96.png
+File172=marker-azul-97.png
+File173=marker-azul-98.png
+File174=marker-azul-99.png
+File175=marker-rojo.png
+File176=marker-rojo-0.png
+File177=marker-rojo1.png
+File178=marker-rojo-1.png
+File179=marker-rojo-10.png
File18=checklist.bal
-File180=marker-rojo-11.png
-File181=marker-rojo-12.png
-File182=marker-rojo-13.png
-File183=marker-rojo-14.png
-File184=marker-rojo-15.png
-File185=marker-rojo-16.png
-File186=marker-rojo-17.png
-File187=marker-rojo-18.png
-File188=marker-rojo-19.png
-File189=marker-rojo2.png
+File180=marker-rojo-100.png
+File181=marker-rojo-11.png
+File182=marker-rojo-12.png
+File183=marker-rojo-13.png
+File184=marker-rojo-14.png
+File185=marker-rojo-15.png
+File186=marker-rojo-16.png
+File187=marker-rojo-17.png
+File188=marker-rojo-18.png
+File189=marker-rojo-19.png
File19=checks.bal
-File190=marker-rojo-2.png
-File191=marker-rojo-20.png
-File192=marker-rojo-21.png
-File193=marker-rojo-22.png
-File194=marker-rojo-23.png
-File195=marker-rojo-24.png
-File196=marker-rojo-25.png
-File197=marker-rojo-26.png
-File198=marker-rojo-27.png
-File199=marker-rojo-28.png
+File190=marker-rojo2.png
+File191=marker-rojo-2.png
+File192=marker-rojo-20.png
+File193=marker-rojo-21.png
+File194=marker-rojo-22.png
+File195=marker-rojo-23.png
+File196=marker-rojo-24.png
+File197=marker-rojo-25.png
+File198=marker-rojo-26.png
+File199=marker-rojo-27.png
File2=alert2.png
File20=cliente.bal
-File200=marker-rojo-29.png
-File201=marker-rojo-3.png
-File202=marker-rojo-30.png
-File203=marker-rojo-31.png
-File204=marker-rojo-32.png
-File205=marker-rojo-33.png
-File206=marker-rojo-34.png
-File207=marker-rojo-35.png
-File208=marker-rojo-36.png
-File209=marker-rojo-37.png
+File200=marker-rojo-28.png
+File201=marker-rojo-29.png
+File202=marker-rojo-3.png
+File203=marker-rojo-30.png
+File204=marker-rojo-31.png
+File205=marker-rojo-32.png
+File206=marker-rojo-33.png
+File207=marker-rojo-34.png
+File208=marker-rojo-35.png
+File209=marker-rojo-36.png
File21=cliente.bal.bak
-File210=marker-rojo-38.png
-File211=marker-rojo-39.png
-File212=marker-rojo-4.png
-File213=marker-rojo-40.png
-File214=marker-rojo-41.png
-File215=marker-rojo-42.png
-File216=marker-rojo-43.png
-File217=marker-rojo-44.png
-File218=marker-rojo-45.png
-File219=marker-rojo-46.png
+File210=marker-rojo-37.png
+File211=marker-rojo-38.png
+File212=marker-rojo-39.png
+File213=marker-rojo-4.png
+File214=marker-rojo-40.png
+File215=marker-rojo-41.png
+File216=marker-rojo-42.png
+File217=marker-rojo-43.png
+File218=marker-rojo-44.png
+File219=marker-rojo-45.png
File22=clientes.bal
-File220=marker-rojo-47.png
-File221=marker-rojo-48.png
-File222=marker-rojo-49.png
-File223=marker-rojo-5.png
-File224=marker-rojo-50.png
-File225=marker-rojo-51.png
-File226=marker-rojo-52.png
-File227=marker-rojo-53.png
-File228=marker-rojo-54.png
-File229=marker-rojo-55.png
+File220=marker-rojo-46.png
+File221=marker-rojo-47.png
+File222=marker-rojo-48.png
+File223=marker-rojo-49.png
+File224=marker-rojo-5.png
+File225=marker-rojo-50.png
+File226=marker-rojo-51.png
+File227=marker-rojo-52.png
+File228=marker-rojo-53.png
+File229=marker-rojo-54.png
File23=detalle_promo.bal
-File230=marker-rojo-56.png
-File231=marker-rojo-57.png
-File232=marker-rojo-58.png
-File233=marker-rojo-59.png
-File234=marker-rojo-6.png
-File235=marker-rojo-60.png
-File236=marker-rojo-61.png
-File237=marker-rojo-62.png
-File238=marker-rojo-63.png
-File239=marker-rojo-64.png
+File230=marker-rojo-55.png
+File231=marker-rojo-56.png
+File232=marker-rojo-57.png
+File233=marker-rojo-58.png
+File234=marker-rojo-59.png
+File235=marker-rojo-6.png
+File236=marker-rojo-60.png
+File237=marker-rojo-61.png
+File238=marker-rojo-62.png
+File239=marker-rojo-63.png
File24=durakelo.png
-File240=marker-rojo-65.png
-File241=marker-rojo-66.png
-File242=marker-rojo-67.png
-File243=marker-rojo-68.png
-File244=marker-rojo-69.png
-File245=marker-rojo-7.png
-File246=marker-rojo-70.png
-File247=marker-rojo-71.png
-File248=marker-rojo-72.png
-File249=marker-rojo-73.png
+File240=marker-rojo-64.png
+File241=marker-rojo-65.png
+File242=marker-rojo-66.png
+File243=marker-rojo-67.png
+File244=marker-rojo-68.png
+File245=marker-rojo-69.png
+File246=marker-rojo-7.png
+File247=marker-rojo-70.png
+File248=marker-rojo-71.png
+File249=marker-rojo-72.png
File25=durakelo1.png
-File250=marker-rojo-74.png
-File251=marker-rojo-75.png
-File252=marker-rojo-76.png
-File253=marker-rojo-77.png
-File254=marker-rojo-78.png
-File255=marker-rojo-79.png
-File256=marker-rojo-8.png
-File257=marker-rojo-80.png
-File258=marker-rojo-81.png
-File259=marker-rojo-82.png
+File250=marker-rojo-73.png
+File251=marker-rojo-74.png
+File252=marker-rojo-75.png
+File253=marker-rojo-76.png
+File254=marker-rojo-77.png
+File255=marker-rojo-78.png
+File256=marker-rojo-79.png
+File257=marker-rojo-8.png
+File258=marker-rojo-80.png
+File259=marker-rojo-81.png
File26=engrane.jpg
-File260=marker-rojo-83.png
-File261=marker-rojo-84.png
-File262=marker-rojo-85.png
-File263=marker-rojo-86.png
-File264=marker-rojo-87.png
-File265=marker-rojo-88.png
-File266=marker-rojo-89.png
-File267=marker-rojo-9.png
-File268=marker-rojo-90.png
-File269=marker-rojo-91.png
+File260=marker-rojo-82.png
+File261=marker-rojo-83.png
+File262=marker-rojo-84.png
+File263=marker-rojo-85.png
+File264=marker-rojo-86.png
+File265=marker-rojo-87.png
+File266=marker-rojo-88.png
+File267=marker-rojo-89.png
+File268=marker-rojo-9.png
+File269=marker-rojo-90.png
File27=engrane.png
-File270=marker-rojo-92.png
-File271=marker-rojo-93.png
-File272=marker-rojo-94.png
-File273=marker-rojo-95.png
-File274=marker-rojo-96.png
-File275=marker-rojo-97.png
-File276=marker-rojo-98.png
-File277=marker-rojo-99.png
-File278=marker-verde.png
-File279=marker-verde-0.png
+File270=marker-rojo-91.png
+File271=marker-rojo-92.png
+File272=marker-rojo-93.png
+File273=marker-rojo-94.png
+File274=marker-rojo-95.png
+File275=marker-rojo-96.png
+File276=marker-rojo-97.png
+File277=marker-rojo-98.png
+File278=marker-rojo-99.png
+File279=marker-verde.png
File28=engranes.png
-File280=marker-verde-1.png
-File281=marker-verde-10.png
-File282=marker-verde-100.png
-File283=marker-verde-11.png
-File284=marker-verde-12.png
-File285=marker-verde-13.png
-File286=marker-verde-14.png
-File287=marker-verde-15.png
-File288=marker-verde-16.png
-File289=marker-verde-17.png
+File280=marker-verde-0.png
+File281=marker-verde-1.png
+File282=marker-verde-10.png
+File283=marker-verde-100.png
+File284=marker-verde-11.png
+File285=marker-verde-12.png
+File286=marker-verde-13.png
+File287=marker-verde-14.png
+File288=marker-verde-15.png
+File289=marker-verde-16.png
File29=errormanager.bal
-File290=marker-verde-18.png
-File291=marker-verde-19.png
-File292=marker-verde-2.png
-File293=marker-verde-20.png
-File294=marker-verde-21.png
-File295=marker-verde-22.png
-File296=marker-verde-23.png
-File297=marker-verde-24.png
-File298=marker-verde-25.png
-File299=marker-verde-26.png
+File290=marker-verde-17.png
+File291=marker-verde-18.png
+File292=marker-verde-19.png
+File293=marker-verde-2.png
+File294=marker-verde-20.png
+File295=marker-verde-21.png
+File296=marker-verde-22.png
+File297=marker-verde-23.png
+File298=marker-verde-24.png
+File299=marker-verde-25.png
File3=alerta.jpg
File30=fondo_kmt.jpg
-File300=marker-verde-27.png
-File301=marker-verde-28.png
-File302=marker-verde-29.png
-File303=marker-verde-3.png
-File304=marker-verde-30.png
-File305=marker-verde-31.png
-File306=marker-verde-32.png
-File307=marker-verde-33.png
-File308=marker-verde-34.png
-File309=marker-verde-35.png
+File300=marker-verde-26.png
+File301=marker-verde-27.png
+File302=marker-verde-28.png
+File303=marker-verde-29.png
+File304=marker-verde-3.png
+File305=marker-verde-30.png
+File306=marker-verde-31.png
+File307=marker-verde-32.png
+File308=marker-verde-33.png
+File309=marker-verde-34.png
File31=foto.bal
-File310=marker-verde-36.png
-File311=marker-verde-37.png
-File312=marker-verde-38.png
-File313=marker-verde-39.png
-File314=marker-verde-4.png
-File315=marker-verde-40.png
-File316=marker-verde-41.png
-File317=marker-verde-42.png
-File318=marker-verde-43.png
-File319=marker-verde-44.png
+File310=marker-verde-35.png
+File311=marker-verde-36.png
+File312=marker-verde-37.png
+File313=marker-verde-38.png
+File314=marker-verde-39.png
+File315=marker-verde-4.png
+File316=marker-verde-40.png
+File317=marker-verde-41.png
+File318=marker-verde-42.png
+File319=marker-verde-43.png
File32=foto1.jpg
-File320=marker-verde-45.png
-File321=marker-verde-46.png
-File322=marker-verde-47.png
-File323=marker-verde-48.png
-File324=marker-verde-49.png
-File325=marker-verde-5.png
-File326=marker-verde-50.png
-File327=marker-verde-51.png
-File328=marker-verde-52.png
-File329=marker-verde-53.png
+File320=marker-verde-44.png
+File321=marker-verde-45.png
+File322=marker-verde-46.png
+File323=marker-verde-47.png
+File324=marker-verde-48.png
+File325=marker-verde-49.png
+File326=marker-verde-5.png
+File327=marker-verde-50.png
+File328=marker-verde-51.png
+File329=marker-verde-52.png
File33=foto2.jpg
-File330=marker-verde-54.png
-File331=marker-verde-55.png
-File332=marker-verde-56.png
-File333=marker-verde-57.png
-File334=marker-verde-58.png
-File335=marker-verde-59.png
-File336=marker-verde-6.png
-File337=marker-verde-60.png
-File338=marker-verde-61.png
-File339=marker-verde-62.png
+File330=marker-verde-53.png
+File331=marker-verde-54.png
+File332=marker-verde-55.png
+File333=marker-verde-56.png
+File334=marker-verde-57.png
+File335=marker-verde-58.png
+File336=marker-verde-59.png
+File337=marker-verde-6.png
+File338=marker-verde-60.png
+File339=marker-verde-61.png
File34=foto3.jpg
-File340=marker-verde-63.png
-File341=marker-verde-64.png
-File342=marker-verde-65.png
-File343=marker-verde-66.png
-File344=marker-verde-67.png
-File345=marker-verde-68.png
-File346=marker-verde-69.png
-File347=marker-verde-7.png
-File348=marker-verde-70.png
-File349=marker-verde-71.png
+File340=marker-verde-62.png
+File341=marker-verde-63.png
+File342=marker-verde-64.png
+File343=marker-verde-65.png
+File344=marker-verde-66.png
+File345=marker-verde-67.png
+File346=marker-verde-68.png
+File347=marker-verde-69.png
+File348=marker-verde-7.png
+File349=marker-verde-70.png
File35=foto4.jpg
-File350=marker-verde-72.png
-File351=marker-verde-73.png
-File352=marker-verde-74.png
-File353=marker-verde-75.png
-File354=marker-verde-76.png
-File355=marker-verde-77.png
-File356=marker-verde-78.png
-File357=marker-verde-79.png
-File358=marker-verde-8.png
-File359=marker-verde-80.png
+File350=marker-verde-71.png
+File351=marker-verde-72.png
+File352=marker-verde-73.png
+File353=marker-verde-74.png
+File354=marker-verde-75.png
+File355=marker-verde-76.png
+File356=marker-verde-77.png
+File357=marker-verde-78.png
+File358=marker-verde-79.png
+File359=marker-verde-8.png
File36=guardagestion.bal
-File360=marker-verde-81.png
-File361=marker-verde-82.png
-File362=marker-verde-83.png
-File363=marker-verde-84.png
-File364=marker-verde-85.png
-File365=marker-verde-86.png
-File366=marker-verde-87.png
-File367=marker-verde-88.png
-File368=marker-verde-89.png
-File369=marker-verde-9.png
+File360=marker-verde-80.png
+File361=marker-verde-81.png
+File362=marker-verde-82.png
+File363=marker-verde-83.png
+File364=marker-verde-84.png
+File365=marker-verde-85.png
+File366=marker-verde-86.png
+File367=marker-verde-87.png
+File368=marker-verde-88.png
+File369=marker-verde-89.png
File37=guna_viejo.png
-File370=marker-verde-90.png
-File371=marker-verde-91.png
-File372=marker-verde-92.png
-File373=marker-verde-93.png
-File374=marker-verde-94.png
-File375=marker-verde-95.png
-File376=marker-verde-96.png
-File377=marker-verde-97.png
-File378=marker-verde-98.png
-File379=marker-verde-99.png
+File370=marker-verde-9.png
+File371=marker-verde-90.png
+File372=marker-verde-91.png
+File373=marker-verde-92.png
+File374=marker-verde-93.png
+File375=marker-verde-94.png
+File376=marker-verde-95.png
+File377=marker-verde-96.png
+File378=marker-verde-97.png
+File379=marker-verde-98.png
File38=historico.bal
-File380=nota.bal
-File381=noventa.bal
-File382=nuevocliente.bal
-File383=palomita_verde.png
-File384=palomita_verde_original.png
-File385=pedido.bal
-File386=pedidoItem.bal
-File387=planfia_logo.png
-File388=planfia_logo_old.png
-File389=planfia_logo_old2.png
+File380=marker-verde-99.png
+File381=nota.bal
+File382=noventa.bal
+File383=nuevocliente.bal
+File384=palomita_verde.png
+File385=palomita_verde_original.png
+File386=pedido.bal
+File387=pedidoItem.bal
+File388=planfia_logo.png
+File389=planfia_logo_old.png
File39=info_gral.resp
-File390=principal.bal
-File391=proditem.bal
-File392=productos.bal
-File393=productos2.bal
-File394=profina.jpg
-File395=profina.png
-File396=promociones.bal
-File397=qr.bal
-File398=rechazo.jpg
-File399=rojo.png
+File390=planfia_logo_old2.png
+File391=principal.bal
+File392=proditem.bal
+File393=productos.bal
+File394=productos2.bal
+File395=profina.jpg
+File396=profina.png
+File397=promociones.bal
+File398=qr.bal
+File399=rechazo.jpg
File4=alerta_amarilla.png
File40=infonavit1.jpg
-File400=salma.jpg
-File401=salma.png
-File402=senial.jpg
-File403=sync.png
-File404=tache_rojo.png
-File405=tache_rojo_original.png
-File406=telefonos.bal
-File407=ticketsDia.bal
-File408=Tiendita.jpg
-File409=transporte.png
+File400=rojo.png
+File401=salma.jpg
+File402=salma.png
+File403=senial.jpg
+File404=sync.png
+File405=tache_rojo.png
+File406=tache_rojo_original.png
+File407=telefonos.bal
+File408=ticketsDia.bal
+File409=Tiendita.jpg
File41=INVENTARIO (1).jpg
-File410=verde.png
-File411=vista1.png
-File412=vista2.png
-File413=vista3.png
-File414=vista4.png
-File415=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg
-File416=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpg
-File417=whatsapp.png
-File418=whatsapp_original.png
-File419=WHATSTEL.jpeg
+File410=transporte.png
+File411=verde.png
+File412=vista1.png
+File413=vista2.png
+File414=vista3.png
+File415=vista4.png
+File416=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg
+File417=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpg
+File418=whatsapp.png
+File419=whatsapp_original.png
File42=INVENTARIO.jpg
-File420=WHATSTEL.png
+File420=WHATSTEL.jpeg
+File421=WHATSTEL.png
File43=inventario.PNG
File44=itembuttonblue.png
File45=itembuttonred.png
File46=kellanova.png
File47=kellanova_borde.png
File48=kelloggs.png
-File49=kelloggs_chico.png
+File49=Kelloggs.rkmt.km
File5=amarillo.png
-File50=kelloggs_original.png
-File51=kelloggs2.jpg
-File52=kelloggs2.png
-File53=keymon_logo.png
-File54=kmt.db
-File55=knv_logo_white.png
-File56=login.bal
-File57=logo sanfer.jpg
-File58=logo_192x192.png
-File59=logo_exitus1.jpg
+File50=kelloggs_chico.png
+File51=kelloggs_original.png
+File52=kelloggs2.jpg
+File53=kelloggs2.png
+File54=keymon_logo.png
+File55=kmt.db
+File56=knv_logo_white.png
+File57=login.bal
+File58=logo sanfer.jpg
+File59=logo_192x192.png
File6=anterior.jpg
-File60=logo2.png
-File61=logo2_192x192.png
-File62=MainPage.bal
-File63=Malo.jpg
-File64=mapa.bal
-File65=mapa_rutas.bal
-File66=mapas.bal
-File67=marker-azul.png
-File68=marker-azul-0.png
-File69=marker-azul1.png
+File60=logo_exitus1.jpg
+File61=logo2.png
+File62=logo2_192x192.png
+File63=MainPage.bal
+File64=Malo.jpg
+File65=mapa.bal
+File66=mapa_rutas.bal
+File67=mapas.bal
+File68=marker-azul.png
+File69=marker-azul-0.png
File7=BLACNCO.jpg
-File70=marker-azul-1.png
-File71=marker-azul-10.png
-File72=marker-azul-100.png
-File73=marker-azul-11.png
-File74=marker-azul-12.png
-File75=marker-azul-13.png
-File76=marker-azul-14.png
-File77=marker-azul-15.png
-File78=marker-azul-16.png
-File79=marker-azul-17.png
+File70=marker-azul1.png
+File71=marker-azul-1.png
+File72=marker-azul-10.png
+File73=marker-azul-100.png
+File74=marker-azul-11.png
+File75=marker-azul-12.png
+File76=marker-azul-13.png
+File77=marker-azul-14.png
+File78=marker-azul-15.png
+File79=marker-azul-16.png
File8=cacahuates.png
-File80=marker-azul-18.png
-File81=marker-azul-19.png
-File82=marker-azul2.png
-File83=marker-azul-2.png
-File84=marker-azul-20.png
-File85=marker-azul-21.png
-File86=marker-azul-22.png
-File87=marker-azul-23.png
-File88=marker-azul-24.png
-File89=marker-azul-25.png
+File80=marker-azul-17.png
+File81=marker-azul-18.png
+File82=marker-azul-19.png
+File83=marker-azul2.png
+File84=marker-azul-2.png
+File85=marker-azul-20.png
+File86=marker-azul-21.png
+File87=marker-azul-22.png
+File88=marker-azul-23.png
+File89=marker-azul-24.png
File9=cacahuates_blanco.png
-File90=marker-azul-26.png
-File91=marker-azul-27.png
-File92=marker-azul-28.png
-File93=marker-azul-29.png
-File94=marker-azul3.png
-File95=marker-azul-3.png
-File96=marker-azul-30.png
-File97=marker-azul-31.png
-File98=marker-azul-32.png
-File99=marker-azul-33.png
+File90=marker-azul-25.png
+File91=marker-azul-26.png
+File92=marker-azul-27.png
+File93=marker-azul-28.png
+File94=marker-azul-29.png
+File95=marker-azul3.png
+File96=marker-azul-3.png
+File97=marker-azul-30.png
+File98=marker-azul-31.png
+File99=marker-azul-32.png
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup100=Default Group
@@ -777,6 +778,7 @@ FileGroup418=Default Group
FileGroup419=Default Group
FileGroup42=Default Group
FileGroup420=Default Group
+FileGroup421=Default Group
FileGroup43=Default Group
FileGroup44=Default Group
FileGroup45=Default Group
@@ -868,46 +870,47 @@ Library6=camera
Library7=contentresolver
Library8=core
Library9=fileprovider
-ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~)~\n~'Set activity to Landscape~\n~SetActivityAttribute(foto, android:screenOrientation, "landscape")~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\n~~\n~)~\n~'''' para el teclado~\n~ SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~ ~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~~\n~AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~'Le da mas memoria a la aplicacion~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~)~\n~CreateResource(xml, provider_paths, ~\n~~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)
+ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~)~\n~'Set activity to Landscape~\n~SetActivityAttribute(foto, android:screenOrientation, "landscape")~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\n~~\n~)~\n~'''' para el teclado~\n~ SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~ ~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~~\n~AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~'Le da mas memoria a la aplicacion~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~)~\n~CreateResource(xml, provider_paths, ~\n~~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()~\n~AddApplicationText(~\n~~\n~ ~\n~ )~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)
Module1=B4XMainPage
Module10=C_Pedidos
Module11=C_Principal
Module12=C_Productos
Module13=C_Promos
Module14=C_TicketsDia
-Module15=C_updateAvailable
-Module16=CameraExClass
-Module17=DBRequestManager
-Module18=DownloadService
-Module19=errorManager
+Module15=|relative|..\C_TrendSpending
+Module16=C_updateAvailable
+Module17=CameraExClass
+Module18=DBRequestManager
+Module19=DownloadService
Module2=C_CheckList
-Module20=EscPosPrinter
-Module21=FileHandler
-Module22=foto
-Module23=kms_helperSubs
-Module24=ManageExternalStorage
-Module25=MAPA_RUTAS
-Module26=Promociones
-Module27=SD_Spinner
-Module28=Starter
-Module29=Subs
+Module20=errorManager
+Module21=EscPosPrinter
+Module22=FileHandler
+Module23=foto
+Module24=kms_helperSubs
+Module25=ManageExternalStorage
+Module26=MAPA_RUTAS
+Module27=Promociones
+Module28=SD_Spinner
+Module29=Starter
Module3=C_Cliente
-Module30=Tracker
+Module30=Subs
+Module31=Tracker
Module4=C_Clientes
Module5=C_Historico
Module6=C_Mapas
Module7=C_Nota
Module8=C_NoVenta
Module9=C_NuevoCliente
-NumberOfFiles=420
+NumberOfFiles=421
NumberOfLibraries=28
-NumberOfModules=30
+NumberOfModules=31
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
- #VersionName: 5.04.21
+ #VersionName: 5.04.28
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true
diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta
index 3a42c75..f090162 100644
--- a/B4A/KelloggsV4.b4a.meta
+++ b/B4A/KelloggsV4.b4a.meta
@@ -23,6 +23,7 @@ ModuleBookmarks28=
ModuleBookmarks29=
ModuleBookmarks3=
ModuleBookmarks30=
+ModuleBookmarks31=
ModuleBookmarks4=
ModuleBookmarks5=
ModuleBookmarks6=
@@ -54,6 +55,7 @@ ModuleBreakpoints28=
ModuleBreakpoints29=
ModuleBreakpoints3=
ModuleBreakpoints30=
+ModuleBreakpoints31=
ModuleBreakpoints4=
ModuleBreakpoints5=
ModuleBreakpoints6=
@@ -64,8 +66,8 @@ ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes10=
ModuleClosedNodes11=
-ModuleClosedNodes12=3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
-ModuleClosedNodes13=
+ModuleClosedNodes12=3,7,8,9,10,11,12
+ModuleClosedNodes13=6,7,8,9,10,11,12,13,14,16,17
ModuleClosedNodes14=
ModuleClosedNodes15=
ModuleClosedNodes16=
@@ -76,21 +78,22 @@ ModuleClosedNodes2=
ModuleClosedNodes20=
ModuleClosedNodes21=
ModuleClosedNodes22=
-ModuleClosedNodes23=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=
+ModuleClosedNodes23=
+ModuleClosedNodes24=4,24,25,26,27,31,32,33,35
+ModuleClosedNodes25=
+ModuleClosedNodes26=4
ModuleClosedNodes27=
ModuleClosedNodes28=
ModuleClosedNodes29=
-ModuleClosedNodes3=1,5,6,7
-ModuleClosedNodes30=
+ModuleClosedNodes3=5,6,7
+ModuleClosedNodes30=115
+ModuleClosedNodes31=
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
-NavigationStack=Subs,modTrendSpending,2124,4,Subs,traeAcumuladoHoyTS,2150,2,C_Principal,Class_Globals,6,0,Subs,borraPedidoClienteActual,1505,6,Subs,Process_Globals,14,0,Subs,actualizaProducto,983,0,C_Productos,et_pCant_FocusChanged,938,6,C_Productos,et_pCant_TextChanged,893,6,C_Productos,b_prodMenos_Click,619,6,C_Productos,b_prodMas_Click,675,6
+NavigationStack=C_Clientes,Class_Globals,23,0,C_Clientes,B_IMP_Click,236,0,C_Cliente,B4XPage_Created,316,0,B4XMainPage,B4XPage_Created,155,1,C_Principal,JobDone,1064,0,Diseñador Visual,cliente.bal,-100,3,C_Cliente,B_IMP_Click,1138,0,Subs,ponImpreso,658,0,C_Cliente,Imprime_ticket,1210,6,kms_helperSubs,RD_respalda_kmt_info,362,0,kms_helperSubs,RD_Init,94,4
SelectedBuild=0
-VisibleModules=1,28,11,3,29,12,7,9,23
+VisibleModules=1,29,11,3,30,13,12,7,27,26,24,4
diff --git a/B4A/Starter.bas b/B4A/Starter.bas
index 65d5627..734e23f 100644
--- a/B4A/Starter.bas
+++ b/B4A/Starter.bas
@@ -25,7 +25,7 @@ Sub Process_Globals
Dim GPS As GPS
'Para ENVIA_ULTIMA_GPS
Dim Timer1 As Timer
- Dim Interval As Int = 20
+ Dim Interval As Int = 600
Dim DBReqServer As String
Dim pe As PhoneEvents
Dim ph As Phone
@@ -47,7 +47,7 @@ Sub Process_Globals
Dim ultimaActualizacionGPS As String = 235959 '
Dim fechaRuta As String 'ignore
Dim tiempos As Map
- Dim Logger As Boolean = False
+ Dim Logger As Boolean = True
Dim ultimaActividad As String = ""
Dim boleta As String = 0
Dim sesion As Map
@@ -57,7 +57,7 @@ Sub Process_Globals
Dim errorConnDBReq As Boolean = False
Dim GUID As String = ""
Dim passSupervisor As String = "13X#X$X46" ' Valor predeterminado DIFERENTE a ""
- dim semana as int = 0
+ Dim semana As Int = 0
End Sub
Sub Service_Create
@@ -74,7 +74,7 @@ Sub Service_Create
Subs.revisaBD
pe.Initialize("pe") 'Para obtener la bateria
' skmt = s.dbInit 'Inicializamos BD.
- DBReqServer = "http://keymon.lat:1781"
+ DBReqServer = "http://keymon.net:1781"
' DBReqServer = "http://keymon.lat:9003"
Private c As Cursor = skmt.ExecQuery($"select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'SERVER'"$)
If c.RowCount > 0 Then
@@ -231,7 +231,8 @@ Sub JobDone(Job As HttpJob)
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("HORA", HORA))
DateTime.DateFormat = "HH"
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("HORASRVR"))
- skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("HORASRVR", DateTime.Date(DateTime.Now)))
+ skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("HORAMVL"))
+ skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("HORAMVL", DateTime.Date(DateTime.Now)))
Next
End If
End If
diff --git a/B4A/Subs.bas b/B4A/Subs.bas
index 362e104..117a277 100644
--- a/B4A/Subs.bas
+++ b/B4A/Subs.bas
@@ -1184,7 +1184,7 @@ End Sub
'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
Sub traeMaxPromos(pm As Map) As Int
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
+ Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
Private maxPromos As List
Private mp0, mp As String = "0"
maxPromos.Initialize
@@ -1197,7 +1197,11 @@ Sub traeMaxPromos(pm As Map) As Int
' LogColor("SIN HCCP CANT", Colors.Magenta)
' End If
If thisLog Then LogColor("==== HISTORICO:"&pm.Get("historico"), Colors.Red)
+' Log("### PRODS VARIABLES: " & pm.Get("prodsVariables"))
+ Private maxPromosXDescPV As String = B4XPages.MainPage.promos.ts.maxPromosPorProdsVariables(pm.Get("prodsVariables"), pm.Get("id"))
+ Log("########### " & maxPromosXDescPV)
If thisLog Then Log(pm)
+ maxPromos.Add(maxPromosXDescPV.As(Int))
If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente")) 'Si hay historico, agregamos maxRecurrente
If pm.Get("maxPromos") <> "null" Then maxPromos.Add(pm.Get("maxPromos").As(Int)) 'Agregamos maxPromos
If pm.Get("maxXcliente") <> "null" Then maxPromos.Add(pm.Get("maxXcliente").As(Int)) 'Agregamos maxXcliente
@@ -1232,15 +1236,13 @@ End Sub
'3799, 7226, 7228, 7230
Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
+ Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
Private inicioContador As String = DateTime.Now
Private mp As Int = 0
If thisLog Then LogColor($"********* Iniciamos revision de Promo ${idPromo} *********"$, Colors.red)
'Obtenemos el mapa con toda la info de la promoción.
Private pm As Map = traePromo(idPromo, cliente)
-
' B4XPages.MainPage.productos.promosC.traePromo(idPromo, cliente)
-
If thisLog Then LogColor(pm, Colors.Blue)
' If thisLog Then LogColor("|" & pm.Get("maxPromos") & "|", Colors.Blue)
' Log("|"&revisaMaxPromosProdsFijosPorInventario(pm)&"|")
@@ -1336,17 +1338,20 @@ Sub revisaMaxPromosProdsFijosPorInventario(pm As Map) As Int
Private thisInvDisp As Int = 0
If invDispParaPromo.Get(idProdsFijos.Get(p)) <> Null Then thisInvDisp = invDispParaPromo.Get(idProdsFijos.Get(p))
If thisLog Then Log($"id=${idProdsFijos.Get(p)}, inv=${thisInvDisp}, pzas=${prodsFijosPiezas.Get(p)}"$)
+' Log(">>>>> Monto Bonificacion: " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsFijos.Get(p), pm.Get("id")))
+' If thisLog Then LogColor(">> Max prods fijos x Bonificaciones: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), pm.Get("id")), Colors.blue)
+ t.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), pm.Get("id")))
' If thisLog Then Log($"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$)
Private x() As String = Regex.Split("\.", $"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$) 'Separamos el resultado de la division por el punto decimal.
-' If thisLog Then Log(x(0))
+ If thisLog Then Log(x(0))
t.Add(x(0).As(Int)) 'Solo guardamos la parte del entero de la division.
Next
t.Sort(True) 'Ordenamos la lista para que en el lugar 0 este el resultao mas pequeño.
If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
- If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
+' If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
+ LogColor(">>>>>> T: " & t, Colors.red)
If thisLog Then LogColor("Max promos de prodsFijos POR inventario = " & t.Get(0), Colors.red)
-' LogColor(">>>>>> " & t.Get(0), Colors.red)
Return t.Get(0) 'Regresamos el resultado mas pequeño.
End Sub
@@ -1357,7 +1362,7 @@ End Sub
'fijos es 5, entonces regresamos 5.
Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
Private thisLog As Boolean = True
- If thisLog Then Log("======================================================")
+ If thisLog Then LogColor("==================revisaMaxPromosProdsVariablesPorInventario====================", Colors.red)
If thisLog Then Log("======================================================")
Private invFijoXpromo As Map
invFijoXpromo.Initialize
@@ -1371,36 +1376,58 @@ Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
Private idProdsFijos As List = pm.Get("prodsFijos")
- For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
- invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
- Private idEsteProd As String = idProdsFijos.Get(p)
- Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
- Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
- If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
+' For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
+' invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
+' Private idEsteProd As String = idProdsFijos.Get(p)
+' Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
+' Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
+' If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
- Next
+' Next
If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
If thisLog Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
- If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
+' If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
Private maxPromosXVariables As Int = 0
+
+ 'Si prodsFijosCant = 0 entonces no debemos de hacemos el loop, solo sumamos las existencias de los variables / cant de variables requeridos y ese seria el maximo.
+
+ Private revisiones As Int = maxPromosXFijos
+
+ If pm.Get("prodsFijos").As(List).Size = 0 Then
+ revisiones = 1
+ Log(pm.Get("prodsVariables"))
+
+ End If
+
+ Log(pm.Get("prodsFijos").As(List).Size)
+ Log(maxPromosXFijos)
+
For x = 1 To maxPromosXFijos
+ If thisLog Then Log("==================== maxPromosXFijos "& x &" ========================")
If thisLog Then Log("=====================================================")
- If thisLog Then Log("=====================================================")
+ Log("FIJOS: " & idProdsFijos.Size)
For i = 0 To idProdsFijos.Size - 1
If thisLog Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosPiezas.Get(i).As(Int)*(i+1)}"$)
invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosPiezas.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
Next
If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
-
totalProdsVariablesDisponibles = 0
+ Private prodsVariablesXPresupuestoBonificaciones As List
+ prodsVariablesXPresupuestoBonificaciones.Initialize
For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
+ Log($"Este prodVariable: ${idProdsVariables.Get(i)}"$)
+ Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
+' Log(">> Monto Bonificacion: " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsVariables.Get(i), pm.Get("id")))
+ prodsVariablesXPresupuestoBonificaciones.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, pm.Get("id")))
+' If thisLog Then LogColor(">> Max prods fijos x Bonificaciones: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, pm.Get("id")), Colors.blue)
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
End If
Next
+ If thisLog Then Log($"prodsVariablesXPresupuestoBonificaciones: ${prodsVariablesXPresupuestoBonificaciones}"$)
'Revisamos variables.
If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
@@ -1409,7 +1436,9 @@ Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
maxPromosXVariables = x
Next
'Restamos fijos.
-' LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
+ LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
+ If thisLog Then Log("=====================================================")
+ If thisLog Then LogColor("=================TERMINA MAXPROMOSPRODSVARIABLES===================", Colors.red)
Return maxPromosXVariables
End Sub
@@ -1945,7 +1974,12 @@ Sub revisaPromoPorMonto As Map
Private rangoMin As String = "0"
Private promoId As String = ""
m.Initialize
- Private pm As Cursor = Starter.skmt.ExecQuery("select CAT_PA_ID, ifNull(CAT_PA_PORCENTAJE_PAQUETE, 0) as CAT_PA_PORCENTAJE_PAQUETE, ifNull(CAT_PA_PRECIO1, 0) as CAT_PA_PRECIO1, ifNull(CAT_PA_PRECIO2, 0) as CAT_PA_PRECIO2 from promos_comp where CAT_PA_TIPO_PROMONTO = '1' and CAT_PA_ID not in (select PE_CEDIS from PEDIDO where PE_CEDIS = PE_PROID)") 'Traemos las "promos por monto" que no existen en el "PEDIDO" del cliente.
+ Private pm As Cursor = Starter.skmt.ExecQuery($"select CAT_PA_ID,
+ ifNull(CAT_PA_PORCENTAJE_PAQUETE, 0) As CAT_PA_PORCENTAJE_PAQUETE,
+ ifNull(CAT_PA_PRECIO1, 0) As CAT_PA_PRECIO1,
+ ifNull(CAT_PA_PRECIO2, 0) As CAT_PA_PRECIO2 from promos_comp
+ where CAT_PA_TIPO_PROMONTO = '1' and
+ CAT_PA_ID Not in (Select PE_CEDIS from PEDIDO where PE_CEDIS = PE_PROID And PE_CLIENTE = '${traeCliente}')"$) 'Traemos las "promos por monto" que no existen en el "PEDIDO" del cliente.
If pm.RowCount > 0 Then
Private clienteId As String = traeCliente
For i = 0 To pm.RowCount - 1
@@ -2051,46 +2085,45 @@ Sub comparaVersiones(versionMinima As String, versionActual As String) As Int
End If
' Si son iguales, sigue comparando
Next
-
' Si todas las partes comparadas son iguales:
Return 0
End Sub
-' Regresa un mapa con el tipo, monto permitido semanal y el acumulado hasta el día anterior:
-' ej:
-' - RMI=1500,0
-' - DESCUENTOS=1500,0
-' - BONIFICACIONES=1500,480
-Sub traeInfoTrendSpending As Map
- Private semana As Int = 0
- Private HIST_TSS_SEMANA As String
- Private HIST_TSS_SEMANA_ACUM As String
- Private m As Map
- m.Initialize
- Private c As Cursor = Starter.skmt.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
- If c.RowCount > 0 Then
- c.Position = 0
- semana = c.GetInt("CAT_VA_VALOR")
- End If
- If semana > 0 Then
- c = Starter.skmt.ExecQuery($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
- If c.RowCount > 0 Then
- For i = 0 To c.RowCount - 1
- c.Position = i
- HIST_TSS_SEMANA = c.GetString($"HIST_TSS_SEMANA${semana}"$)
- HIST_TSS_SEMANA_ACUM = c.GetString($"HIST_TSS_SEMANA${semana}_ACUM"$)
- If c.GetString("HIST_TSS_TIPO") = "RMI" Then
- m.Put("RMI", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
- else if c.GetString("HIST_TSS_TIPO") = "DESCUENTOS" Then
- m.Put("DESCUENTOS", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
- else if c.GetString("HIST_TSS_TIPO") = "BONIFICACIONES" Then
- m.Put("BONIFICACIONES", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
- End If
- Next
- End If
- End If
- Return m
-End Sub
+'' Regresa un mapa con el tipo, monto permitido semanal y el acumulado hasta el día anterior:
+'' ej:
+'' - RMI=1500,0
+'' - DESCUENTOS=1500,0
+'' - BONIFICACIONES=1500,480
+'Sub traeInfoTrendSpending As Map
+' Private semana As Int = 0
+' Private HIST_TSS_SEMANA As String
+' Private HIST_TSS_SEMANA_ACUM As String
+' Private m As Map
+' m.Initialize
+' Private c As Cursor = Starter.skmt.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
+' If c.RowCount > 0 Then
+' c.Position = 0
+' semana = c.GetInt("CAT_VA_VALOR")
+' End If
+' If semana > 0 Then
+' c = Starter.skmt.ExecQuery($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
+' If c.RowCount > 0 Then
+' For i = 0 To c.RowCount - 1
+' c.Position = i
+' HIST_TSS_SEMANA = c.GetString($"HIST_TSS_SEMANA${semana}"$)
+' HIST_TSS_SEMANA_ACUM = c.GetString($"HIST_TSS_SEMANA${semana}_ACUM"$)
+' If c.GetString("HIST_TSS_TIPO") = "RMI" Then
+' m.Put("RMI", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+' else if c.GetString("HIST_TSS_TIPO") = "DESCUENTOS" Then
+' m.Put("DESCUENTOS", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+' else if c.GetString("HIST_TSS_TIPO") = "BONIFICACIONES" Then
+' m.Put("BONIFICACIONES", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+' End If
+' Next
+' End If
+' End If
+' Return m
+'End Sub
' Modifica el acumulado del Trend Speding, le "suma" o "resta" al presupuesto especificado (RMI, BONIFICACIONES o DESCUENTOS)
Sub modTrendSpending(accion As String, tipo As String, monto As String)
@@ -2113,20 +2146,21 @@ Sub modTrendSpending(accion As String, tipo As String, monto As String)
End If
Log("acumulado:" & acumulado & " | monto: " & monto)
Private c As Cursor = Starter.skmt.ExecQuery($"select HIST_TSS_TIPO, ${HIST_TSS_SEMANA} as disponible, ${HIST_TSS_SEMANA_ACUM} as acumulado from HIST_TREND_SPENDING_SEMANAL where HIST_TSS_TIPO = '${tipo.ToUpperCase}'"$)
- If accion = "resta" Then
+ If accion.ToUpperCase = "RESTA" Then
If c.RowCount > 0 Then
c.Position = 0
- If tipo.ToUpperCase = "BONIFICACIONES" Then
+ If tipo.ToUpperCase = "BONIFICACIONES" Or tipo.ToUpperCase = "RMI" Then
Private nuevaBonificacion As String = NumberFormat2((acumulado + monto), 1, 2, 2, False)
- LogColor($"Nueva bonificacion = ${nuevaBonificacion}"$, Colors.Magenta)
+ LogColor($"Nuevo acumulado ${tipo} = ${nuevaBonificacion}"$, Colors.Magenta)
Starter.skmt.ExecNonQuery($"delete from TREND_SPENDING where tipo = '${tipo.ToUpperCase}' "$)
Starter.skmt.ExecNonQuery($"insert into TREND_SPENDING (tipo, acumulado) values ('${tipo.ToUpperCase}', '${nuevaBonificacion}')"$)
+' else if tipo.ToUpperCase = "RMI" Then
End If
End If
- else if accion = "suma" Then
+ else if accion.ToUpperCase = "SUMA" Then
If c.RowCount > 0 Then
c.Position = 0
- If tipo.ToUpperCase = "BONIFICACIONES" Then
+ If tipo.ToUpperCase = "BONIFICACIONES" Or tipo.ToUpperCase = "RMI" Then
Private nuevaBonificacion As String = NumberFormat2((acumulado - monto), 1, 2, 2, False)
LogColor($"Nueva bonificacion = ${nuevaBonificacion}"$, Colors.Magenta)
Starter.skmt.ExecNonQuery($"delete from TREND_SPENDING where tipo = '${tipo.ToUpperCase}' "$)
@@ -2136,27 +2170,27 @@ Sub modTrendSpending(accion As String, tipo As String, monto As String)
End If
End Sub
-Sub traeAcumuladoHoyTS(tipo As String) As String
- Private HIST_TSS_SEMANA As String
- Private HIST_TSS_SEMANA_ACUM As String
- Private acumulado As String = "0"
- If Starter.semana = 0 Then
- Private c As Cursor = Starter.skmt.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
- If c.RowCount > 0 Then
- c.Position = 0
- Starter.semana = c.GetInt("CAT_VA_VALOR")
- End If
- End If
- HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
- HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
- Private d As Cursor = Starter.skmt.ExecQuery($"select acumulado from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
- If d.RowCount > 0 Then
- d.Position = 0
- acumulado = d.GetString("ACUMULADO")
- End If
- Logcolor("Acumulado hoy: " & acumulado, Colors.Blue)
- Return NumberFormat2(acumulado, 1, 2, 2, False)
-End Sub
+'Sub traeAcumuladoHoyTS(tipo As String) As String
+' Private HIST_TSS_SEMANA As String
+' Private HIST_TSS_SEMANA_ACUM As String
+' Private acumulado As String = "0"
+' If Starter.semana = 0 Then
+' Private c As Cursor = Starter.skmt.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
+' If c.RowCount > 0 Then
+' c.Position = 0
+' Starter.semana = c.GetInt("CAT_VA_VALOR")
+' End If
+' End If
+' HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
+' HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
+' Private d As Cursor = Starter.skmt.ExecQuery($"select acumulado from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
+' If d.RowCount > 0 Then
+' d.Position = 0
+' acumulado = d.GetString("ACUMULADO")
+' End If
+' LogColor($"Acumulado hoy de ${tipo}: "$ & acumulado, Colors.Blue)
+' Return NumberFormat2(acumulado, 1, 2, 2, False)
+'End Sub
Sub traePrecio(id As String) As String
Private precio As String = "0"
@@ -2166,4 +2200,132 @@ Sub traePrecio(id As String) As String
precio = c.GetString("CAT_GP_PRECIO")
End If
Return precio
-End Sub
\ No newline at end of file
+End Sub
+
+'
+'Sub trendSpendingFuncs(accion As String, tipo As String, clienteId As String, id As String, laCant As String, inv As Int) As String
+' Private logger As Boolean = True
+' Dim kh As kms_helperSubs
+' kh.Initialize("kh", "kh", Starter.skmt)
+' Dim TS_RMI() As String
+' Dim TS_DESCUENTOS() As String
+' Dim TS_BONIFICACIONES() As String
+' Private mx As Map = traeInfoTrendSpending
+' TS_RMI = Regex.Split(",", mx.Get("RMI"))
+' TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
+' TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
+'
+' If tipo.ToUpperCase = "RMI" Then
+' Private lasMaximas As Int = 0
+' Log($"Acumulado de RMIs: ${traeAcumuladoHoyTS("rmi")}"$)
+' Private elMonto As String = NumberFormat2(traePrecioRMI(id), 1, 2, 2, False)
+' Log($"elMonto: ${elMonto}"$)
+' Log($"TS_RMI(0): ${TS_RMI(0)}"$)
+' Log($"TS_RMI(1): ${TS_RMI(1)}"$)
+' Log($"LaCant: ${laCant}"$)
+' Private rmisRestantes As String = (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi"))
+' Log($"rmisRestantes: ${rmisRestantes}"$)
+'
+' If accion.ToUpperCase = "PRODMAS" Then 'Regresa lasMaximas y elMonto separadas por un "|"
+' If elMonto > 0 Then
+' lasMaximas = ((laCant * elMonto) + rmisRestantes) / elMonto
+' If logger Then Log("lasMaximas: " & lasMaximas)
+' If logger Then Log(traeAcumuladoHoyTS("rmi"))
+' End If
+'' If laCant + 1 = lasMaximas Then
+'' ToastMessageShow("El presupuesto de RMI no permite agregar mas productos!!", False)
+'' End If
+' If logger Then Log("EL RMI: " & elMonto)
+' Log($"lacant=${laCant} < lasMaximas=${lasMaximas} = ${laCant 0 Then
+' lasMaximas = ((laCant * elMonto) + BonsRestantes) / elMonto
+' If logger Then Log("lasMaximas: " & lasMaximas)
+' If logger Then Log(traeAcumuladoHoyTS("bonificaciones"))
+' End If
+' If laCant = lasMaximas Then
+' ToastMessageShow("El presupuesto de BONIFICACIONES no permite agregar mas productos!!", False)
+' End If
+' If logger Then Log("EL MONTO: " & elMonto)
+' If inv > 0 And laCant < lasMaximas Then
+' modTrendSpending("resta", "bonificaciones", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
+' End If
+' If logger Then Log(">>>> MONTO RESTANTE PRESUPUESTO: " & (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones")))
+' Return lasMaximas & "|" & elMonto
+' else if accion.ToUpperCase = "PRODMENOS" Then 'Regresa bonificacionesMaximas y elMonto separadas por un "|"
+' If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
+' If laCant >= 0 Then
+' modTrendSpending("suma", "bonificaciones", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
+' End If
+' Return lasMaximas & "|" & elMonto
+' else if accion.ToUpperCase = "TEXTCHANGED" Then
+' Log("TC")
+'' Private laBonificacion As String = NumberFormat2(kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
+'' Log("LA BONIFICACION: " & laBonificacion)
+'' Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones"))
+'' Log("Monto de BONIFICACIONES disponible: " & BonsRestantes)
+'' Private maxDispPorBonificaciones As Int = (BonsRestantes/laBonificacion).As(Int)
+'' Log($"Max disponibles por bonificaciones: ${maxDispPorBonificaciones}"$)
+'' If laBonificacion > 0 Then
+'' If New > bonificacionesMaximas Then
+'' If inv > bonificacionesMaximas Then
+'' laCant = bonificacionesMaximas
+'' Else
+'' laCant = inv
+'' End If
+'' End If
+'' Else if laBonificacion = 0 Then
+'' If laCant > inv Or New > inv Then
+''' Log("Se pasa!!")
+''' Log($"Ponemos laCant en: ${inv}"$)
+'' laCant = inv
+'' End If
+'' End If
+'' modTrendSpending("resta", "bonificaciones", ((New * laBonificacion) - (Old * laBonificacion)))
+'' Log(traeAcumuladoHoyTS("bonificaciones"))
+'' Return bonificacionesMaximas & "|" & laBonificacion
+' else if accion.ToUpperCase = "FOCUSCHANGED" Then 'Regresa bonificaciones maximas, SOLO correr esta parte si HASFOCUS es VERDADERO.
+' Log("FC")
+' Private elMonto As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
+' If elMonto > 0 Then 'And HasFocus
+' If logger Then Log("LA BONIFICACION: " & elMonto)
+' Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones"))
+' If logger Then Log("Monto del PRESUPUESTO disponible: " & BonsRestantes)
+' lasMaximas = ((laCant * elMonto) + BonsRestantes) / elMonto
+' If logger Then Log("bonificacionesMaximas: " & lasMaximas)
+' End If
+' Return lasMaximas
+' End If
+' End If
+'End Sub
+'
+'' Trae el precio del RMI desde CAT_RMI.
+'Sub traePrecioRMI(id As String) As String
+' Private precio As String = "0"
+' Private c As Cursor = Starter.skmt.ExecQuery($"select cat_monto from cat_rmi where cat_id = '${id}'"$)
+' If c.RowCount > 0 Then
+' c.Position = 0
+' precio = c.GetString("CAT_MONTO")
+' End If
+' Return precio
+'End Sub
\ No newline at end of file
diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas
index 1189499..d06b2e8 100644
--- a/B4A/kms_helperSubs.bas
+++ b/B4A/kms_helperSubs.bas
@@ -66,25 +66,41 @@ Sub RD_Init
If Not(File.IsDirectory(Dirp, Dir)) Then safePath = rp.GetSafeDirDefaultExternal("kmts")
' Log($"Hay directorio: ${Dirp} ${Dir} - ${File.IsDirectory(Dirp, Dir)}"$)
If Starter.Logger Then Log($"Safepath:${safePath}"$)
+ Private limpiarBD As Boolean = False
Private name() As String = Regex.split(" ", Application.LabelName) 'Obtenemos el nombre de la app para ponerselo a la BD.
+ If File.Exists(safePath, $"${name(0)}.rkmt.km"$) = False Then
+ File.Copy(File.DirAssets, $"${name(0)}.rkmt.km"$, safePath, $"${name(0)}.rkmt.km"$)
+ limpiarBD = True
+ Log("NO EXISTE BD")
+ End If
rkmt.Initialize(safePath, $"${name(0)}.rkmt.km"$, True)
+ If limpiarBD Then
+ LogColor("----->> LIMPIAMOS BD RECUPERACION PRIMERA VEZ <<-------", Colors.red)
+ rkmt.ExecNonQuery("delete from pedido")
+ rkmt.ExecNonQuery("delete from cat_gunaprod")
+ rkmt.ExecNonQuery("delete from cat_gunaprod2")
+ rkmt.ExecNonQuery("delete from kmt_info")
+ limpiarBD = False
+ End If
' Log("TAMAÑO DE ARCHIVO RESPALDO " &File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$))
- skmt.Initialize(File.DirInternal,"kmt.db", False)
- If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$)
- If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
- 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)"$)
+' skmt.Initialize(File.DirInternal,"kmt.db", False)
+ If chkIfTableExists(khdb, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(khdb, "PEDIDO")}, FECHA TEXT)"$)
+ If chkIfTableExists(khdb, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(khdb, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
+ If chkIfTableExists(khdb, "CAT_GUNAPROD") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD (${getTableColumnList(khdb, "CAT_GUNAPROD")}, FECHA TEXT)"$)
+ If chkIfTableExists(khdb, "CAT_GUNAPROD2") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD2 (${getTableColumnList(khdb, "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)"$)
+ If chkIfTableExists(khdb, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(khdb, "kmt_info")}, FECHA TEXT)"$)
+ If chkIfTableExists(khdb, "PROMOS_COMP") Then rkmt.ExecNonQuery($"create table if not exists PROMOS_COMP (${getTableColumnList(khdb, "PROMOS_COMP")}, FECHA TEXT)"$)
agregaColumna(rkmt, "PROMOS_COMP", "CAT_PA_PORCENTAJE_PAQUETE", "TEXT")
agregaColumna(rkmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
- If chkIfTableExists(skmt, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(skmt, "CAT_VARIABLES")}, FECHA TEXT)"$)
- If chkIfTableExists(skmt, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(skmt, "CAT_RMI")}, FECHA TEXT)"$)
+ agregaColumna(rkmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT")
+ agregaColumna(rkmt, "kmt_info", "CREDITO", "INTEGER")
+ If chkIfTableExists(khdb, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(khdb, "CAT_VARIABLES")}, FECHA TEXT)"$)
+ If chkIfTableExists(khdb, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(khdb, "CAT_RMI")}, FECHA TEXT)"$)
DateTime.DateFormat = "yyyyMMdd"
fechaHoy = DateTime.Date(DateTime.Now)
If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized)
@@ -126,7 +142,7 @@ End Sub
'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")
+ Dim rs As ResultSet = khdb.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"))
@@ -134,7 +150,7 @@ Sub revisaRkmtAttached As Boolean
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;"$)
+ khdb.ExecNonQuery($"attach database '${File.Combine(safePath,$"${name(0)}.rkmt.km"$)}' as rkmt1;"$)
rkmtAttached = True
End If
Return rkmtAttached
@@ -157,10 +173,10 @@ Sub RD_respalda_pedido
DateTime.DateFormat = "MM/dd/yyyy"
Private fechaHoy2 As String = DateTime.Date(DateTime.Now)
' Log("Copiando PEDIDO ...")
- Private x As Cursor = skmt.ExecQuery("select * from PEDIDO")
+ Private x As Cursor = khdb.ExecQuery("select * from PEDIDO")
' Log(x.RowCount)
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
+ Private lasCols As String = getTableColumnListName(khdb, "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) = '${fechaHoy2}'"$)
@@ -180,9 +196,9 @@ End Sub
Sub RD_respalda_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD ...")
- Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD")
+ Private x As Cursor = khdb.ExecQuery("select * from CAT_GUNAPROD")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
+ Private lasCols As String = getTableColumnListName(khdb, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
@@ -209,8 +225,8 @@ Sub RD_restaura_cat_gunaprod
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")}'"$)
+ khdb.ExecNonQuery("delete from CAT_GUNAPROD")
+ khdb.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")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -227,9 +243,9 @@ End Sub
Sub RD_respalda_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD2 ...")
- Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD2")
+ Private x As Cursor = khdb.ExecQuery("select * from CAT_GUNAPROD2")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
+ Private lasCols As String = getTableColumnListName(khdb, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la fecha del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
@@ -255,8 +271,8 @@ Sub RD_restaura_cat_gunaprod2
If c.RowCount > 0 Then
c.Position = 0
LogColor(">>>>> Restauramos GP: " & c.GetString("FECHA"), Colors.red)
- skmt.ExecNonQuery("delete from CAT_GUNAPROD2")
- skmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
+ khdb.ExecNonQuery("delete from CAT_GUNAPROD2")
+ khdb.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")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -296,10 +312,12 @@ End Sub
Sub RD_respalda_cat_detalle_paq
Private inicio As String = DateTime.Now
' Log("Copiando CAT_DETALLES_PAQ ...")
- Private x As Cursor = skmt.ExecQuery("select * from CAT_DETALLES_PAQ")
+ Private x As Cursor = khdb.ExecQuery("select * from CAT_DETALLES_PAQ")
+ Log(1)
Try
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
+ Log(2)
+ Private lasCols As String = getTableColumnListName(khdb, "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"$)
@@ -326,8 +344,8 @@ Sub RD_restaura_cat_detalle_paq
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")}'"$)
+ khdb.ExecNonQuery("delete from CAT_DETALLES_PAQ")
+ khdb.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")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -344,9 +362,9 @@ End Sub
Sub RD_respalda_kmt_info
Private inicio As String = DateTime.Now
' Log("Copiando kmt_info ...")
- Private x As Cursor = skmt.ExecQuery("select * from kmt_info")
+ Private x As Cursor = khdb.ExecQuery("select * from kmt_info")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
+ Private lasCols As String = getTableColumnListName(khdb, "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"$)
@@ -370,15 +388,15 @@ Sub RD_restaura_kmt_info
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
- skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DIA_VISITA"))' Ponemos el dia de hoy para visita.
- skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DIA_VISITA", Subs.traeDiaSemana))
- skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))' Borramos fecha de FIN DIA.
- skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_PASS"))' Ponemos la contraseña del FIN DIA en "CL"
- skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FINDIA_PASS", "CL"))
- Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) 'Ponemos la fecha de hoy en CAT_VARIABLES para que nos deje ingresar con el usuario guardado.
- Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA", fechaHoy))
- skmt.ExecNonQuery("delete from kmt_info")
- skmt.ExecNonQuery($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
+ khdb.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DIA_VISITA"))' Ponemos el dia de hoy para visita.
+ khdb.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DIA_VISITA", Subs.traeDiaSemana))
+ khdb.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))' Borramos fecha de FIN DIA.
+ khdb.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_PASS"))' Ponemos la contraseña del FIN DIA en "CL"
+ khdb.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FINDIA_PASS", "CL"))
+ khdb.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA")) 'Ponemos la fecha de hoy en CAT_VARIABLES para que nos deje ingresar con el usuario guardado.
+ khdb.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA", fechaHoy))
+ khdb.ExecNonQuery("delete from kmt_info")
+ khdb.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")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -395,9 +413,9 @@ End Sub
Sub RD_respalda_cat_variables
Private inicio As String = DateTime.Now
' Log("Copiando CAT_VARIABLES ...")
- Private x As Cursor = skmt.ExecQuery("select * from CAT_VARIABLES")
+ Private x As Cursor = khdb.ExecQuery("select * from CAT_VARIABLES")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "CAT_VARIABLES")
+ Private lasCols As String = getTableColumnListName(khdb, "CAT_VARIABLES")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_VARIABLES where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_VARIABLES (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.cat_variables"$)
@@ -421,8 +439,8 @@ Sub RD_restaura_cat_variables
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
- skmt.ExecNonQuery("delete from CAT_VARIABLES")
- skmt.ExecNonQuery($"insert into CAT_VARIABLES (${lasCols}) select ${lasCols} from rkmt1.CAT_VARIABLES where fecha = '${c.GetString("FECHA")}'"$)
+ khdb.ExecNonQuery("delete from CAT_VARIABLES")
+ khdb.ExecNonQuery($"insert into CAT_VARIABLES (${lasCols}) select ${lasCols} from rkmt1.CAT_VARIABLES where fecha = '${c.GetString("FECHA")}'"$)
' Log($"insert into CAT_VARIABLES (${lasCols}) select ${lasCols} from rkmt1.CAT_VARIABLES where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -439,9 +457,9 @@ End Sub
Sub RD_respalda_promos_comp
Private inicio As String = DateTime.Now
' Log("Copiando kmt_info ...")
- Private x As Cursor = skmt.ExecQuery("select * from PROMOS_COMP")
+ Private x As Cursor = khdb.ExecQuery("select * from PROMOS_COMP")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "PROMOS_COMP")
+ Private lasCols As String = getTableColumnListName(khdb, "PROMOS_COMP")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from PROMOS_COMP where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into PROMOS_COMP (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PROMOS_COMP"$)
@@ -465,8 +483,8 @@ Sub RD_restaura_promos_comp
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
- skmt.ExecNonQuery("delete from PROMOS_COMP")
- skmt.ExecNonQuery($"insert into PROMOS_COMP (${lasCols}) select ${lasCols} from rkmt1.PROMOS_COMP where fecha = '${c.GetString("FECHA")}'"$)
+ khdb.ExecNonQuery("delete from PROMOS_COMP")
+ khdb.ExecNonQuery($"insert into PROMOS_COMP (${lasCols}) select ${lasCols} from rkmt1.PROMOS_COMP where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into PROMOS_COMP (${lasCols}) select ${lasCols} from rkmt1.PROMOS_COMP where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -483,9 +501,9 @@ End Sub
Sub RD_respalda_cat_rmi
Private inicio As String = DateTime.Now
' Log("Copiando cat_rmi ...")
- Private x As Cursor = skmt.ExecQuery("select * from CAT_RMI")
+ Private x As Cursor = khdb.ExecQuery("select * from CAT_RMI")
If x.RowCount > 0 Then
- Private lasCols As String = getTableColumnListName(skmt, "CAT_RMI")
+ Private lasCols As String = getTableColumnListName(khdb, "CAT_RMI")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_RMI where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_RMI (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_RMI"$)
@@ -509,8 +527,8 @@ Sub RD_restaura_cat_rmi
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
- skmt.ExecNonQuery("delete from CAT_RMI")
- skmt.ExecNonQuery($"insert into CAT_RMI (${lasCols}) select ${lasCols} from rkmt1.CAT_RMI where fecha = '${c.GetString("FECHA")}'"$)
+ khdb.ExecNonQuery("delete from CAT_RMI")
+ khdb.ExecNonQuery($"insert into CAT_RMI (${lasCols}) select ${lasCols} from rkmt1.CAT_RMI where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_RMI (${lasCols}) select ${lasCols} from rkmt1.CAT_RMI where fecha = '${c.GetString("FECHA")}'"$)
Else
If fechaRestauracion.Length > 0 Then
@@ -598,7 +616,7 @@ End Sub
Sub getTableColumnList(db As SQL, table As String) As String 'ignore
Private l As String = ""
If chkIfTableExists(db, table) Then
- Private c As Cursor = skmt.ExecQuery($"pragma table_info(${table})"$)
+ Private c As Cursor = khdb.ExecQuery($"pragma table_info(${table})"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
@@ -620,7 +638,7 @@ End Sub
Sub getTableColumnListName(db As SQL, table As String) As String 'ignore
Private l As String = ""
If chkIfTableExists(db, table) Then
- Private c As Cursor = skmt.ExecQuery($"pragma table_info(${table})"$)
+ Private c As Cursor = khdb.ExecQuery($"pragma table_info(${table})"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
@@ -642,7 +660,7 @@ End Sub
Sub chkIfTableExists(db As SQL, table As String) As Boolean 'ignore
Private t As Boolean = False 'ignore
If db.IsInitialized Then
- Private c As Cursor = skmt.ExecQuery($"SELECT name FROM sqlite_master WHERE type='table' AND name='${table}'"$)
+ Private c As Cursor = khdb.ExecQuery($"SELECT name FROM sqlite_master WHERE type='table' AND name='${table}'"$)
If c.RowCount > 0 Then t = True
c.Close
End If
diff --git a/C_TrendSpending.bas b/C_TrendSpending.bas
new file mode 100644
index 0000000..d38dcd5
--- /dev/null
+++ b/C_TrendSpending.bas
@@ -0,0 +1,408 @@
+B4A=true
+Group=Default Group
+ModulesStructureVersion=1
+Type=Class
+Version=12.8
+@EndOfDesignText@
+' Clase para las funciones de Trend Spending.
+' Trend spending son 3 presupuestos que tiene Kelloggs, que son bonificaciones, descuentos y RMIs, estos se calculan semanalmente
+' y se descargan de la tabla HIST_TRADE_SPENDING_SEMANAL, de ahi obtenemos el presupuesto de la semana y el acumulado hasta ayer
+' en la noche, a cada presupuesto le vamos sumando cada que agregamos a pedido un descuento (Precios diferentes al original que
+' NO están en PROMOS), una bonificacion (precios con descuento que estan en promociones) o un RMI (de estos sumamos al presupuesto
+' el precio del RMI seleccionado), de acuerdo al presupuesto disponible de cada tipo, se limitan los productos, es decir que si
+' el presupuesto de bonificaciones ya se agoto, ya no aparecen promociones, o si el de descuentos se agoto, ya no se pueden agregar
+' mas productos con descuento.
+
+Sub Class_Globals
+ Private EventName As String 'ignore
+ Private CallBack As Object 'ignore
+ Dim tsMaximas As Int = 0
+ Private tsdb As SQL
+ Dim TS_RMI() As String
+ Dim TS_DESCUENTOS() As String
+ Dim TS_BONIFICACIONES() As String
+End Sub
+
+'Initializes the object. You can add parameters to this method if needed.
+Public Sub Initialize (vCallback As Object, vEventName As String, db As SQL) As Object
+ EventName = vEventName
+ CallBack = vCallback
+ tsdb = db
+ Private mx As Map = traeInfoTrendSpending
+ Log(mx)
+ TS_RMI = Regex.Split(",", mx.Get("RMI"))
+ TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
+ TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
+ Log(">>>>>>>>>>>>> TRENDSPENDING: " & mx)
+ Log("RMI: " & TS_RMI(0) & "|" & TS_RMI(1))
+ Log("DESCUENTOS: " & TS_DESCUENTOS(0) & "|" & TS_DESCUENTOS(1))
+ Log("BONIFICACIONES: " & TS_BONIFICACIONES(0) & "|" & TS_BONIFICACIONES(1))
+ Return Me
+End Sub
+
+'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta.
+Sub traeTablaProds(tipoventa As String) As String
+ Private tablaProds As String = "cat_gunaprod2"
+ If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod"
+' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0))
+ Return tablaProds
+End Sub
+
+'Regresa el descuento de condiciones comerciales por SKU.
+Sub traeDescXSku(clienteId As String, prodId As String) As String 'ignore
+ Private desc As String = "0"
+ Private c As Cursor = tsdb.ExecQuery($"Select * from CAT_DESCUENTOS_SKU where CAT_DS_CLIENTE = '${clienteId}' and CAT_DS_PRODID = '${prodId}'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ desc = c.GetString("CAT_DS_PORCENTAJE")
+ End If
+ Return desc
+End Sub
+
+' Regresa un mapa con el tipo, monto permitido semanal y el acumulado hasta el día anterior:
+' ej:
+' - RMI=1500,0
+' - DESCUENTOS=1500,0
+' - BONIFICACIONES=1500,480
+Sub traeInfoTrendSpending As Map
+ Private semana As Int = 0
+ Private HIST_TSS_SEMANA As String = 0
+ Private HIST_TSS_SEMANA_ACUM As String = 0
+ Private m As Map = CreateMap("RMI": 100000 & "," & 0, "DESCUENTOS": 100000 & "," & 0, "BONIFICACIONES": 100000 & "," & 0) ' El 100,000 es el default del presupuesto, por si NO HAY datos de trend spending.
+' m.Initialize
+ Private c As Cursor = tsdb.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ semana = c.GetInt("CAT_VA_VALOR")
+ End If
+ If semana > 0 Then
+ c = tsdb.ExecQuery($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ HIST_TSS_SEMANA = c.GetString($"HIST_TSS_SEMANA${semana}"$)
+ HIST_TSS_SEMANA_ACUM = c.GetString($"HIST_TSS_SEMANA${semana}_ACUM"$)
+ If c.GetString("HIST_TSS_TIPO") = "RMI" Then
+ m.Put("RMI", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+ else if c.GetString("HIST_TSS_TIPO") = "DESCUENTOS" Then
+ m.Put("DESCUENTOS", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+ else if c.GetString("HIST_TSS_TIPO") = "BONIFICACIONES" Then
+ m.Put("BONIFICACIONES", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
+ End If
+ Next
+ End If
+ End If
+ Return m
+End Sub
+
+' Modifica el acumulado del Trend Speding, le "suma" o "resta" al presupuesto especificado (RMI, BONIFICACIONES o DESCUENTOS)
+Sub modTrendSpending(accion As String, tipo As String, monto As String)
+ Private HIST_TSS_SEMANA As String
+ Private HIST_TSS_SEMANA_ACUM As String
+ Private acumulado As String = "0"
+ If Starter.semana = 0 Then
+ Private c As Cursor = tsdb.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ Starter.semana = c.GetInt("CAT_VA_VALOR")
+ End If
+ End If
+ HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
+ HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
+ Private d As Cursor = tsdb.ExecQuery($"select acumulado from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
+ If d.RowCount > 0 Then
+ d.Position = 0
+ acumulado = d.GetString("ACUMULADO")
+ End If
+ Log("acumulado:" & acumulado & " | monto: " & monto)
+ Private c As Cursor = tsdb.ExecQuery($"select HIST_TSS_TIPO, ${HIST_TSS_SEMANA} as disponible, ${HIST_TSS_SEMANA_ACUM} as acumulado from HIST_TREND_SPENDING_SEMANAL where HIST_TSS_TIPO = '${tipo.ToUpperCase}'"$)
+ If accion.ToUpperCase = "RESTA" Then
+ If c.RowCount > 0 Then
+ c.Position = 0
+ If tipo.ToUpperCase = "DESCUENTOS" Or tipo.ToUpperCase = "RMI" Then
+ Private nuevaBonificacion As String = NumberFormat2((acumulado + monto), 1, 2, 2, False)
+ LogColor($"Nuevo acumulado ${tipo} = ${nuevaBonificacion}"$, Colors.Magenta)
+ tsdb.ExecNonQuery($"delete from TREND_SPENDING where tipo = '${tipo.ToUpperCase}' "$)
+ tsdb.ExecNonQuery($"insert into TREND_SPENDING (tipo, acumulado) values ('${tipo.ToUpperCase}', '${nuevaBonificacion}')"$)
+' else if tipo.ToUpperCase = "RMI" Then
+ End If
+ End If
+ else if accion.ToUpperCase = "SUMA" Then
+ If c.RowCount > 0 Then
+ c.Position = 0
+ If tipo.ToUpperCase = "DESCUENTOS" Or tipo.ToUpperCase = "RMI" Then
+ Private nuevaBonificacion As String = NumberFormat2((acumulado - monto), 1, 2, 2, False)
+ LogColor($"Nueva bonificacion = ${nuevaBonificacion}"$, Colors.Magenta)
+ tsdb.ExecNonQuery($"delete from TREND_SPENDING where tipo = '${tipo.ToUpperCase}' "$)
+ tsdb.ExecNonQuery($"insert into TREND_SPENDING (tipo, acumulado) values ('${tipo.ToUpperCase}', '${nuevaBonificacion}')"$)
+ End If
+ End If
+ End If
+End Sub
+
+Sub traeAcumuladoHoyTS(tipo As String) As String
+' Private HIST_TSS_SEMANA As String
+' Private HIST_TSS_SEMANA_ACUM As String
+ Private acumulado As String = "0"
+ If Starter.semana = 0 Then
+ Private c As Cursor = tsdb.ExecQuery($"select cat_va_valor from cat_variables where cat_va_descripcion = 'SEM_CAL_LABORAL'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ Starter.semana = c.GetInt("CAT_VA_VALOR")
+ End If
+ End If
+' HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
+' HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
+ Private d As Cursor = tsdb.ExecQuery($"select acumulado from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
+ If d.RowCount > 0 Then
+ d.Position = 0
+ acumulado = d.GetString("ACUMULADO")
+ End If
+' LogColor($"Acumulado hoy de ${tipo}: "$ & acumulado, Colors.Blue)
+ Return NumberFormat2(acumulado, 1, 2, 2, False)
+End Sub
+
+'Trae el cliente de CUENTAA
+Sub traeCliente As String 'ignore
+ Private c As Cursor
+ Private cl As String
+ c = Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
+ c.Position = 0
+ cl = c.GetString("CUENTA")
+ c.Close
+ Return cl
+End Sub
+
+Sub traePrecio(id As String) As String
+ Private precio As String = "0"
+ Private c As Cursor = tsdb.ExecQuery($"select cat_gp_precio from ${traeTablaProds(Starter.tipov)} where cat_gp_id = '${id}'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ precio = c.GetString("CAT_GP_PRECIO")
+ End If
+ Return precio
+End Sub
+
+Sub trendSpending(accion As String, tipo As String, clienteId As String, id As String, laCant As String, inv As Int) As String
+ Private logger As Boolean = True
+ Dim TS_RMI() As String
+ Dim TS_DESCUENTOS() As String
+ Dim TS_BONIFICACIONES() As String
+ Private mx As Map = traeInfoTrendSpending
+ TS_RMI = Regex.Split(",", mx.Get("RMI"))
+ TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
+ TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
+ If tipo.ToUpperCase = "RMI" Then
+ Private lasMaximas As Int = 0
+ Log($"Acumulado de RMIs: ${traeAcumuladoHoyTS("rmi")}"$)
+ Private elMonto As String = NumberFormat2(traePrecioRMI(id), 1, 2, 2, False)
+ If logger Then Log($"elMonto: ${elMonto}"$)
+ If logger Then Log($"TS_RMI(0): ${TS_RMI(0)}"$)
+ If logger Then Log($"TS_RMI(1): ${TS_RMI(1)}"$)
+ If logger Then Log($"LaCant: ${laCant}"$)
+ Private tsRestantes As String = (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi"))
+ Log($"tsRestantes: ${tsRestantes}"$)
+ If accion.ToUpperCase = "PRODMAS" Then 'Regresa lasMaximas y elMonto separadas por un "|"
+ If elMonto > 0 Then
+ lasMaximas = ((laCant * elMonto) + tsRestantes) / elMonto
+ If logger Then Log("lasMaximas: " & lasMaximas)
+ If logger Then Log("traeAcumuladoHoyTS: " & traeAcumuladoHoyTS("rmi"))
+ End If
+' If laCant + 1 = lasMaximas Then
+' ToastMessageShow("El presupuesto de RMI no permite agregar mas productos!!", False)
+' End If
+ If logger Then Log("EL RMI: " & elMonto)
+ If logger Then Log($"lacant=${laCant} < lasMaximas=${lasMaximas} = ${laCant 0 Then
+ lasMaximas = ((laCant * elMonto) + tsRestantes) / elMonto
+ If logger Then Log("lasMaximas: " & lasMaximas)
+ If logger Then Log("lasMaximas2: " & traeMaximas("descuentos", clienteId, id, laCant, ""))
+ If logger Then Log(traeAcumuladoHoyTS("descuentos"))
+ End If
+ If laCant = lasMaximas Then
+ ToastMessageShow("El presupuesto de DESCUENTOS no permite agregar mas productos!!", False)
+ End If
+ If logger Then Log("EL MONTO: " & elMonto)
+ If inv > 0 And laCant < lasMaximas Then
+ modTrendSpending("resta", "descuentos", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
+ End If
+ If logger Then Log(">>>> MONTO RESTANTE PRESUPUESTO: " & (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - traeAcumuladoHoyTS("descuentos")))
+ Return lasMaximas & "|" & elMonto
+ else if accion.ToUpperCase = "PRODMENOS" Then 'Regresa descuentosMaximas y elMonto separadas por un "|"
+ If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
+ If laCant >= 0 Then
+ modTrendSpending("suma", "descuentos", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
+ End If
+ Return lasMaximas & "|" & elMonto
+ else if accion.ToUpperCase = "TEXTCHANGED" Then
+ If logger Then Log("TC")
+ else if accion.ToUpperCase = "FOCUSCHANGED" Then 'Regresa descuentos maximas, SOLO correr esta parte si HASFOCUS es VERDADERO.
+ If logger Then Log("FC")
+ Private elMonto As String = traePrecio(id)*(traeDescXSku(clienteId, id)/100)
+ If elMonto > 0 Then 'And HasFocus
+ If logger Then Log("LA BONIFICACION: " & elMonto)
+ Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - traeAcumuladoHoyTS("descuentos"))
+ If logger Then Log("Monto del PRESUPUESTO disponible: " & tsRestantes)
+ lasMaximas = ((laCant * elMonto) + tsRestantes) / elMonto
+ If logger Then Log("tsMaximas: " & lasMaximas)
+ End If
+ Return lasMaximas
+ End If
+ End If
+End Sub
+
+' Trae el precio del RMI desde CAT_RMI.
+Sub traePrecioRMI(id As String) As String
+ Private precio As String = "0"
+ Private c As Cursor = tsdb.ExecQuery($"select cat_monto from cat_rmi where cat_id = '${id}'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ precio = c.GetString("CAT_MONTO")
+ End If
+ Return precio
+End Sub
+
+ ' Traemos el monto (descuento total) del producto actual.
+ ' Utiliza el descuento de condiciones comerciales por SKU (tabla CAT_DESCUENTOS).
+Sub traeMonto(clienteId As String, id As String) As String
+ Private tsMonto As String
+ tsMonto = NumberFormat2(traePrecio(id)*(traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
+ Return tsMonto
+End Sub
+
+' Trae la cantidad máxima de rmis, bonificaciones o descuentos por presupuesto.
+Sub traeMaximas(tipo As String, clienteId As String, id As String, laCant As String, promoId As String) As Int
+ Private tsMaximas As Int = 100000
+ Private tsRestantes As String = 0
+ Private tsMonto As String '= traeMonto(clienteId, id)
+' If tsMonto > 0 Then
+ If tipo.ToUpperCase = "DESCUENTOS" Then
+ tsMonto = NumberFormat2(traePrecio(id)*(traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
+ tsRestantes = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - traeAcumuladoHoyTS("descuentos")) ' Traemos monto restante de Trend Spending para descuentos.
+ else If tipo.ToUpperCase = "RMI" Then
+ tsMonto = NumberFormat2(traePrecioRMI(id), 1, 2, 2, False)
+ tsRestantes = (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi")) ' Traemos monto restante de Trend Spending para rmis.
+' else If tipo.ToUpperCase = "BONIFICACIONES" Then
+' tsMonto = NumberFormat2(traeMontoBonificacion(id, promoId), 1, 2, 2, False)
+' tsRestantes = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones")) ' Traemos monto restante de Trend Spending para bonificaciones.
+ End If
+' Log($"${TS_BONIFICACIONES(0)} - ${TS_BONIFICACIONES(1)} - ${traeAcumuladoHoyTS("bonificaciones")}"$)
+' Log($"((${laCant} * ${tsMonto}) + ${tsRestantes}) / ${tsMonto}"$)
+ Log($"tsMonto: ${tsMonto}"$)
+ Log($"tsRestantes: ${tsRestantes}"$)
+ tsMaximas = ((laCant * tsMonto) + tsRestantes) / tsMonto
+' End If
+ Return tsMaximas
+End Sub
+
+' Trae la cantidad máxima de bonificaciones por presupuesto.
+Sub traeBonificacionesMaximas(tipo As String, clienteId As String, id As String, laCant As String, promoId As String) As Int
+ Private tsMaximas As Int = 100000
+ Private tsRestantes As String = 0
+ Private tsMonto As String
+ If tipo.ToUpperCase = "BONIFICACIONES" Then
+ tsMonto = NumberFormat2(traeMontoBonificacion(id, promoId), 1, 2, 2, False)
+ tsRestantes = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones")) ' Traemos monto restante de Trend Spending para bonificaciones.
+ End If
+' Log($"tsMonto: ${tsMonto}"$)
+' Log($"tsRestantes: ${tsRestantes}"$)
+' Log($"laCant: ${laCant}"$)
+ If tsMonto > 0 Then
+ tsMaximas = Floor(tsRestantes / (tsMonto * laCant))
+' Log(">>> tsMaximas: " & tsMaximas)
+ End If
+ Return tsMaximas
+End Sub
+
+' Trae el monto de la bonificacion, que es el precio original MENOS el precio de venta con descuento.
+' - Si CAT_DP_PRECIOB es 1, la bonificacion es: Precio original - precio de venta.
+' - Si CAT_DP_PRECIOB es 0, la bonificacion es: Precio original.
+Sub traeMontoBonificacion(id As String, promoId As String) As String
+' Log(promoId)
+ Private tsMonto As String = 0
+ Private c As Cursor = tsdb.ExecQuery($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_ID = '${promoId}'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ If c.GetInt("CAT_DP_PRECIOB") = 1 Then
+ tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta.
+ Else
+ tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original.
+ End If
+' Log($"${c.GetString("CAT_GP_PRECIO")} - ${c.GetString("CAT_DP_PRECIO")}"$)
+ End If
+' Log("ROWCOUNT: " & c.RowCount)
+ Return tsMonto
+End Sub
+
+' Recibe una lista con los ids de los productos variables, revisa cada id para traer los maximos por presupuesto para ese producto
+' y pone ese maximo en una lista, luego ordena esa lista para obtener el mas chico y regresa ese como maximo.
+' esta funcion se va a aplicar en la funcion maxpromos como un limite mas para que no muestre las promociones.
+' NOTA: hay que ver como y cuando dejar de mostrar promociones cuando quede poco presupuesto para bonificaciones.
+' NOTA: Talvez se pueda hacer que cuando se entre a PROMOS, si ya no hay presupuesto suficiente, mande un toast o msgbox diciendo que ya
+' se agoto el presupuesto.
+' Aunque si hay suficiente para mostrar algunas promos ... pues que si las muestre.
+Sub maxPromosPorProdsVariables(idProdsVariables As List, promo As String)As Int
+ Private logger As Boolean = False
+ Private Maxs As Int = 100000
+ Private prodsVariablesXPresupuestoBonificaciones As List
+ Private prodsVariablesRequeridos As Int = traeProdsVariablesRequeridos(promo)
+ prodsVariablesXPresupuestoBonificaciones.Initialize
+' Log("PRODS SIZE: " & idProdsVariables.Size)
+ For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
+ If logger Then Log($"Este prodVariable: ${idProdsVariables.Get(i)}"$)
+' Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
+ If logger Then Log(">> Monto Bonificacion: " & traeMontoBonificacion(idProdsVariables.Get(i), promo))
+ Private maxProds As Int = traeBonificacionesMaximas("bonificaciones", traeCliente, idProdsVariables.Get(i), prodsVariablesRequeridos, promo)
+ prodsVariablesXPresupuestoBonificaciones.Add(maxProds)
+ if logger then LogColor(">> Max prods x Bonificaciones: " & maxProds, Colors.blue)
+ Next
+ prodsVariablesXPresupuestoBonificaciones.Sort(True)
+ If prodsVariablesXPresupuestoBonificaciones.Size > 0 Then
+ Maxs = prodsVariablesXPresupuestoBonificaciones.Get(0)
+ End If
+ Return Maxs
+End Sub
+
+' Regresa los productos variables requeridos de la promocion dada.
+Sub traeProdsVariablesRequeridos(promo As String) As Int
+ Private pvr As Int = 0
+ Private c As Cursor = Starter.skmt.ExecQuery("Select CAT_GP_STS, CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '"& promo & "'") 'Obtenemos las piezas requeridas de productos variables para la promoción.
+ If c.RowCount > 0 Then
+ c.Position = 0
+ If c.RowCount > 0 Then
+ c.Position = 0
+ pvr = c.GetString("CAT_GP_STS")
+ End If
+ End If
+ c.Close
+ Return pvr
+End Sub
+
+'Poner en una funcion (maxPromosPorProdsFijos) el codigo para traer las promos maximas por productos fijos, igual que la de productos
+' variables, y ponerla igual en "traeMaxPromos" en lugar de en "revisaMaxPromosProdsFijosPorInventario".
+
+' Falta el codigo para el funcionamiento diferente de las bonificaciones:
+' Si CAT_DP_PRECIOB es 1 --> (Precio de original (cat_precio) - precio de venta) y se suma al acumulado de BONIFICACIONES
+' Si CAT_DP_PRECIOB es 0 --> precio orginal se suma al acumulado de BONIFICACIONES
+'Hay que traer desde web la columna "CAT_DP_PRECIOB" y gardarla en algun lado en movil!!
\ No newline at end of file