Corrección de segmentadas, para que no aparezca el popup de "Tienes derecho a una promocion" cuando no lo tienes.

This commit is contained in:
2024-02-08 10:22:38 -06:00
parent 46f20e6922
commit a2f3983e4d
7 changed files with 42 additions and 20 deletions

View File

@@ -138,6 +138,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FOTOS (HF_FOTO BLOB, HF_CUENTA TEXT, HF_IDENCUESTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_IMPRESO (CI_CUENTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CLIENTE_CANT_PROMOS (HCCP_CLIENTE TEXT, HCCP_PROMO TEXT, HCCP_CANT TEXT, HCCP_CANT_VENDIDA TEXT)")
kh.agregaColumna(Starter.skmt, "HIST_CLIENTE_CANT_PROMOS", "HCCP_CANT_VENDIDA", "TEXT")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_MONTO (CPM_IDPROMO TEXT, CPM_MONTO TEXT, CPM_PROID TEXT, CPM_CLIENTE TEXT, CPM_CANT TEXT, CPM_RANGO TEXT, CPM_DESC TEXT)")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_EXHIBIDORES2 (HIST_EX_ID_CLIENTE TEXT, HIST_EX_TIPO TEXT, HIST_EX_CANT TEXT)")
@@ -152,8 +154,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
''' FIN DOE
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
Root = Root1
' Root.LoadLayout("MainPage")
Root.LoadLayout("login")

View File

@@ -577,15 +577,27 @@ Sub B4XPage_Appear
c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa)")
c.Position =0
If c.GetString("CUANTOS") > 0 Then
C1=Starter.skmt.ExecQuery("SELECT HCCP_PROMO FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) ")
C1 = Starter.skmt.ExecQuery("SELECT HCCP_PROMO FROM HIST_CLIENTE_CANT_PROMOS WHERE HCCP_CLIENTE IN (Select cuenta from cuentaa) ")
C1.Position = 0
C3=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM CAT_GUNAPROD2 WHERE CAT_GP_ID = ? ", Array As String(C1.GetString("HCCP_PROMO")))
C3 = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM CAT_GUNAPROD2 WHERE CAT_GP_ID = ? ", Array As String(C1.GetString("HCCP_PROMO")))
C3.Position = 0
If Not(B4XPages.MainPage.cliente.muestraBoleta) And Subs.traeCliente <> "0" Then 'Si vamos a mostrar boleta entonces no mandamos aviso.
If C3.GetString("CUANTOS") > 0 Then
c2=Starter.skmt.ExecQuery2("SELECT CAT_GP_NOMBRE FROM CAT_GUNAPROD2 WHERE CAT_GP_ID = ? ", Array As String(C1.GetString("HCCP_PROMO")))
c2.Position = 0
If Not(Subs.hayPedido) Then MsgboxAsync("El cliente tiene derecho a una promo especial "& c2.GetString("CAT_GP_NOMBRE"),"Aviso") 'ignore
If Not(Subs.hayPedido) Then
' ############### PROMOCIONES SEGMENTADAS ###############
' Revisamos si la promo esta en la lista, y tiene promos disponibles segun las ventas anteriores.
Private ps2 As Cursor = Starter.skmt.ExecQuery($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${C1.GetString("HCCP_PROMO")}' and HCCP_CLIENTE = '${Subs.traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${C1.GetString("HCCP_PROMO")}' and HCCP_CLIENTE = '${Subs.traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
Log($"registros:${ps2.RowCount}"$)
If ps2.RowCount > 0 Then
ps2.Position = 0
Log($"registros:${ps2.RowCount}, cant:${ps2.GetString("HCCP_CANT")}"$)
MsgboxAsync("El cliente tiene derecho a una promo especial "& c2.GetString("CAT_GP_NOMBRE"),"Aviso") 'ignore
End If
' ############### TERMINA PROMOS SEGMENTADAS ###############
End If
c2.Close
Else
If Not(Subs.hayPedido) Then MsgboxAsync("El cliente tiene derecho a una promo especial ","Aviso") 'ignore

View File

@@ -937,7 +937,7 @@ Sub JobDone(Job As HttpJob)
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
@@ -972,7 +972,9 @@ Sub JobDone(Job As HttpJob)
Dim HCCP_CLIENTE As String = records(RESULT.Columns.Get("HCCP_CLIENTE"))
Dim HCCP_PROMO As String = records(RESULT.Columns.Get("HCCP_PROMO"))
Dim HCCP_CANT As String = records(RESULT.Columns.Get("HCCP_CANT"))
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CLIENTE_CANT_PROMOS(HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT) VALUES (?,?,?)", Array As Object (HCCP_CLIENTE, HCCP_PROMO,HCCP_CANT))
Dim HCCP_CANT_VENDIDA As String = records(RESULT.Columns.Get("HCCP_CANT_VENDIDA"))
If HCCP_CANT_VENDIDA = Null or HCCP_CANT_VENDIDA = "null" Then HCCP_CANT_VENDIDA = 0
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CLIENTE_CANT_PROMOS(HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT, HCCP_CANT_VENDIDA) VALUES (?,?,?,?)", Array As Object (HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT, HCCP_CANT_VENDIDA))
Next
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction

View File

@@ -680,7 +680,7 @@ Sub b_prodMas_Click
i.Position = 0
invActualizado = i.GetString("CAT_GP_ALMACEN")
End If
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${numberformat2(precio, 1, 2, 2, False)}"$).Popall
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall
End If
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
End Sub
@@ -1207,7 +1207,7 @@ Sub Busca_TextChanged (Old As String, New As String)
End If
cPromo.Close
else if lfila.text = "RMI" Then
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_ID as CAT_GP_ID, CAT_DESCRIPCION as CAT_GP_NOMBRE, CAT_MONTO as CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN from CAT_RMI where CAT_DESCRIPCION like '%${New}%' order by CAT_DESCRIPCION"$)
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_ID as CAT_GP_ID, CAT_DESCRIPCION as CAT_GP_NOMBRE, CAT_MONTO as CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN, 'RMI' as CAT_GP_TIPO from CAT_RMI where CAT_DESCRIPCION like '%${New}%' order by CAT_DESCRIPCION"$)
Log($"Llamamos LlenaProdsLL con ${p.RowCount} prods."$)
lfila.Text = "RMI"
b_rmi.Visible = False
@@ -1388,7 +1388,7 @@ Private Sub b_rmi_mas_Click
End Sub
Private Sub b_rmi_Click
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_ID as CAT_GP_ID, CAT_DESCRIPCION as CAT_GP_NOMBRE, CAT_MONTO as CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN from CAT_RMI order by CAT_DESCRIPCION"$)
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_ID as CAT_GP_ID, CAT_DESCRIPCION as CAT_GP_NOMBRE, CAT_MONTO as CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN, 'RMI' as CAT_GP_TIPO from CAT_RMI order by CAT_DESCRIPCION"$)
Log($"Llamamos LlenaProdsLL con ${p.RowCount} prods."$)
lfila.Text = "RMI"
b_rmi.Visible = False

View File

@@ -870,7 +870,7 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
#VersionName: 4.02.05
#VersionName: 4.02.07
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true

View File

@@ -61,7 +61,7 @@ ModuleBreakpoints7=
ModuleBreakpoints8=
ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=2,35
ModuleClosedNodes1=
ModuleClosedNodes10=
ModuleClosedNodes11=1,3,50,51,52
ModuleClosedNodes12=3
@@ -70,7 +70,7 @@ ModuleClosedNodes14=39,40,41,43,44
ModuleClosedNodes15=
ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=3,4,5,7,8,9,10,11,12,13,15,16,18
ModuleClosedNodes18=5,7,8,9,10,11,12,13,15,16,18
ModuleClosedNodes19=
ModuleClosedNodes2=
ModuleClosedNodes20=
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=3,11,12
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=Subs,traeCliente,834,0,C_Productos,clv_prods_ll_VisibleRangeChanged,1159,0,kms_helperSubs,traeDescXSku,1044,6,kms_helperSubs,traeDescXTipo,1030,0,Starter,Process_Globals,42,0,Starter,Service_Start,84,0,C_Productos,LlenaProdsLL,1286,6,B4XMainPage,Initialize,118,0,B4XMainPage,Class_Globals,110,0,Subs,traePromo,981,6
NavigationStack=C_Principal,JobDone,969,6,B4XMainPage,B4XPage_Created,143,6,C_Cliente,B4XPage_Appear,587,6,Subs,traePromo,986,6,Subs,procesaPromocion,1180,0,Subs,traePromosVendidas,1169,0,Main,Process_Globals,20,0,Main,Activity_KeyPress,42,0,Main,Activity_ActionBarHomeClick,37,0,Main,Activity_Create,33,0
SelectedBuild=0
VisibleModules=1,28,11,24,3,12,4,29,13,14
VisibleModules=1,28,11,3,12,4,29,13,14,24

View File

@@ -977,12 +977,20 @@ Sub traePromo(promo As String, cliente As String) As Map
If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM"))
'PROMOCIONES SEGMENTADAS, si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver.
Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$)
Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$)
' Log($"PROMOS SEGMENTADAS DISPONIBLES: ${ps.RowCount}"$)
If ps.RowCount > 0 Then
ps.Position = 0
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le aparece a ciertos clientes.
Log(">>> SEGMENTADA -> " & promo)
If traeCliente = ps.GetString("HCCP_CLIENTE") Then
promoMap = CreateMap("id":promo, "maxXcliente":ps.GetString("HCCP_CANT"), "maxRecurrente":0, "maxPromos":ps.GetString("HCCP_CANT")) 'Si es segmentada SOLO le aparece a ciertos clientes.
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le debe de aparecer a ciertos clientes.
Log(">>> SEGMENTADA -> " & promo & " | " & ps.GetString("HCCP_CLIENTE"))
' Select hccp_cliente As valido from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traecliente}'
Private ps2 As Cursor = Starter.skmt.ExecQuery($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
Log($"registros:${ps2.RowCount}"$)
If ps2.RowCount > 0 Then
ps2.Position = 0
' Log($"registros:${ps2.RowCount}, cant:${ps2.GetString("HCCP_CANT")}"$)
promoMap = CreateMap("id":promo, "maxXcliente":(ps2.GetString("HCCP_CANT")-ps2.GetString("HCCP_CANT_VENDIDA")), "maxRecurrente":0, "maxPromos":ps2.GetString("HCCP_CANT")) 'Si es segmentada SOLO le aparece a ciertos clientes.
End If
End If
'Termina promos segmentadas
@@ -1291,7 +1299,7 @@ End Sub
'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
'fijos es 5, entonces regresamos 5.
Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
Private thisLog As Boolean = False
Private thisLog As Boolean = True
If thisLog Then Log("======================================================")
If thisLog Then Log("======================================================")
Private invFijoXpromo As Map