- VERSION 5.06.25

- Se agregó la forma de pago en el ticket (credito o efectivo)
This commit is contained in:
2025-06-27 13:48:23 -06:00
parent 73877991ba
commit e639848418
14 changed files with 1357 additions and 826 deletions

View File

@@ -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")

View File

@@ -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

View File

@@ -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}"$

View File

@@ -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)

View File

@@ -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)

Binary file not shown.

BIN
B4A/Files/kelloggs.rkmt.km Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -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

View File

@@ -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

View File

@@ -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
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<lasMaximas}"$)
' If laCant < lasMaximas Then
' modTrendSpending("resta", "rmi", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
' End If
' If logger Then Log("RMI RESTANTES: " & (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi")))
' Return lasMaximas & "|" & elMonto
' else if accion.ToUpperCase = "PRODMENOS" Then
' If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
' If laCant >= 0 Then
' modTrendSpending("suma", "rmi", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
' End If
' Return lasMaximas & "|" & elMonto
' End If
' else If tipo.ToUpperCase = "BONIFICACIONES" Then
' Dim lasMaximas As Int = 0
' Dim elMonto As String = 0
' Private elMonto As String = NumberFormat2(kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
' Private BonsRestantes As String = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones"))
' If logger Then Log("EL MONTO: " & elMonto)
' Log("Monto del presupuesto disponible: " & BonsRestantes)
' If accion.ToUpperCase = "PRODMAS" Then 'Regresa lasMaximas y elMonto separadas por un "|"
' Log("PMAS")
' If elMonto > 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

View File

@@ -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

408
C_TrendSpending.bas Normal file
View File

@@ -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<lasMaximas}"$)
If laCant < lasMaximas Then
modTrendSpending("resta", "rmi", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
End If
If logger Then Log("RMI RESTANTES: " & (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi")))
Return lasMaximas & "|" & elMonto
else if accion.ToUpperCase = "PRODMENOS" Then
If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
If laCant >= 0 Then
modTrendSpending("suma", "rmi", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
End If
Return lasMaximas & "|" & elMonto
End If
else If tipo.ToUpperCase = "DESCUENTOS" Then
Dim lasMaximas As Int = 0
Dim elMonto As String = 0
Private elMonto As String = NumberFormat2(traePrecio(id)*(traeDescXSku(clienteId, id)/100), 1, 2, 2, False)
Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - traeAcumuladoHoyTS("descuentos"))
If logger Then Log("EL MONTO: " & elMonto)
If logger Then Log("Monto del presupuesto disponible: " & tsRestantes)
If accion.ToUpperCase = "PRODMAS" Then 'Regresa lasMaximas y elMonto separadas por un "|"
If logger Then Log("PMAS")
If elMonto > 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!!