mirror of
https://github.com/KeymonSoft/Kelloggs_v4.git
synced 2026-04-17 18:26:11 +00:00
Se corrige que si una promocion no tiene ningun producto fijo configurado, regresaba que no hay suficiente producto fijo para la promo.
This commit is contained in:
@@ -869,7 +869,7 @@ Version=12.8
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Kelloggs Venta
|
||||
#VersionCode: 3000
|
||||
#VersionName: 4.02.16
|
||||
#VersionName: 4.02.17
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
#BridgeLogger:true
|
||||
|
||||
@@ -88,6 +88,6 @@ ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=3,11,12
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=Subs,traePromo,980,0,Subs,traeRuta,826,0,Starter,Service_Start,83,0,Subs,procesaPromocion,1176,1,Visual Designer,promociones.bal,-100,4,kms_helperSubs,traeVentaAbordo,780,0,Subs,traeInvDeBD,865,0,C_Promos,revisaInvProdsVariables,435,6,C_Promos,b_promoMenos_Click,375,0,C_Promos,b_promoMas_Click,422,6,C_Promos,cuentaProds,347,0
|
||||
NavigationStack=Subs,traeCliente,835,0,C_Promos,b_promoMenos_Click,375,0,C_Promos,b_promoMas_Click,425,6,C_Promos,cuentaProds,358,0,Subs,revisaMaxPromosProdsVariablesPorInventario,1346,0,Subs,traeMaxPromos,1140,1,Subs,revisaMaxPromosProdsFijosPorInventario2,1231,1,Subs,procesaPromocion,1188,1,Subs,alcanzanLosVariablesParaPromo,1119,1,Subs,traePromo,1003,5,Subs,restaFijosPromo,1093,6,Subs,traemosInventarioDisponibleParaPromo,1078,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=1,27,11,3,12,4,28,13,23,2
|
||||
|
||||
17
B4A/Subs.bas
17
B4A/Subs.bas
@@ -992,7 +992,7 @@ Sub traePromo(promo As String, cliente As String) As Map
|
||||
' 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}"$)
|
||||
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 debe de aparecer a ciertos clientes.
|
||||
@@ -1000,13 +1000,14 @@ Sub traePromo(promo As String, cliente As String) As Map
|
||||
' 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}"$)
|
||||
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.
|
||||
Log($"registros:${ps2.RowCount}, cliente: ${ps2.GetString("HCCP_CLIENTE")} cant:${ps2.GetString("HCCP_CANT")}"$)
|
||||
promoMap = CreateMap("id":promo, "maxXcliente":(ps2.GetString("HCCP_CANT")-ps2.GetString("HCCP_CANT_VENDIDA")), "maxRecurrente":ps2.GetString("HCCP_CANT"), "maxPromos":ps2.GetString("HCCP_CANT")) 'Si es segmentada SOLO le aparece a ciertos clientes.
|
||||
End If
|
||||
End If
|
||||
Log(promoMap)
|
||||
' ########## TERMINA PROMOS SEGMENTADAS ##########
|
||||
c = Starter.skmt.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción.
|
||||
c.Position = 0
|
||||
@@ -1086,15 +1087,17 @@ End Sub
|
||||
'Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
|
||||
'Regresa en el mapa la llave "resultado" que nos da "ok" o "No hay suficiente producto para la promocion".
|
||||
Sub restaFijosPromo(promoMap As Map) 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 inventariosDisponiblesParaEstaPromo As Map = traemosInventarioDisponibleParaPromo(promoMap.Get("id")) 'Obtenemos un mapa con el inventario disponible para cada producto de la promocion desde la base de datos.
|
||||
If thisLog Then LogColor(inventariosDisponiblesParaEstaPromo, Colors.red)
|
||||
If thisLog Then LogColor("Inventario inicial antes de FIJOS: "&inventariosDisponiblesParaEstaPromo, Colors.Gray) 'Inventario inicial.
|
||||
Private i As Int
|
||||
Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
|
||||
Private prodsFijos As List = promoMap.get("prodsFijos") 'Obtenemos un a lista con los productos fijos de la promoción.
|
||||
If thisLog Then LogColor("ProdsFijos > " & prodsFijos, Colors.red)
|
||||
If thisLog Then LogColor("ProdsFijos -> " & prodsFijos, Colors.red)
|
||||
inventariosDisponiblesParaEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.") 'Valor por default
|
||||
Log($"Prods fijos requeridos ${prodsFijos.Size}"$)
|
||||
If prodsFijos.Size = 0 Then inventariosDisponiblesParaEstaPromo.Put("resultado", "ok") 'Si no lleva prods fijos la promo, entonces ponemos FIJOS OK.
|
||||
For p = 0 To prodsFijos.Size - 1
|
||||
Private t As String = prodsFijos.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
|
||||
Private p2 As Map = prodsmap.Get(t) 'Obtenemos un mapa con los datos de este producto (id, precio, almacen, tipo, piezas, etc.)
|
||||
@@ -1116,7 +1119,7 @@ Sub restaFijosPromo(promoMap As Map) As Map 'ignore
|
||||
Exit
|
||||
End If
|
||||
Next
|
||||
If thisLog Then LogColor("Inventario final depues de FIJOS: "&inventariosDisponiblesParaEstaPromo, Colors.blue) 'Inventario final.
|
||||
If thisLog Then LogColor("Inventario final despues de FIJOS: "&inventariosDisponiblesParaEstaPromo, Colors.blue) 'Inventario final.
|
||||
Return inventariosDisponiblesParaEstaPromo
|
||||
End Sub
|
||||
|
||||
|
||||
Reference in New Issue
Block a user