7/9/20 - Promos, prods fijos y variables

Corrige el error de que, si el producto fijo en una promo también esta en los variables, el variable tomaba el precio del fijo.
This commit is contained in:
2023-09-07 21:04:40 -06:00
parent 485ad9abf4
commit 86e50323b2
3 changed files with 12 additions and 4 deletions

View File

@@ -110,6 +110,7 @@ Sub muestraPromo(promo As String, cliente As String)
'Ponemos el texto en las etiquetas de la cantidad de productos.
' Dim pf As List = mp.Get("prodsFijos")
Dim pv As List = mp.Get("prodsVariables")
Private listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
If thisLog Then Log(mp)
tpf = 0
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
@@ -154,9 +155,11 @@ Sub muestraPromo(promo As String, cliente As String)
' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
Private indicePV = pv.IndexOf(p)
Private estePrecio = listaPreciosPV.Get(indicePV)
Private thisProd As Map = prodsPromo.Get(p)
If thisLog Then Log(thisProd)
clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & thisProd.Get("precio"), thisProd.Get("precio"), invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p)
clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p)
End If
Next
b_terminar1.Visible = False

View File

@@ -749,7 +749,7 @@ Module9=C_NoVenta
NumberOfFiles=347
NumberOfLibraries=29
NumberOfModules=22
Version=12.5
Version=12.2
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Mariana

View File

@@ -828,12 +828,13 @@ Sub traePromo(promo As String, cliente As String) As Map
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
Private siHistorico As String = 0
Private promoMap As Map
Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List
Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariablesPrecios As List
promoMap.Initialize
prodsFijos.Initialize
prodsFijosPrecios.Initialize
prodsFijosPiezas.Initialize
prodsVariables.Initialize
prodsVariablesPrecios.Initialize
c.Position = 0
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"))
c = B4XPages.MainPage.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.
@@ -855,7 +856,10 @@ Sub traePromo(promo As String, cliente As String) As Map
prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
End If
If c.GetString("CAT_DP_TIPO") = "1" Then prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
If c.GetString("CAT_DP_TIPO") = "1" Then
prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
prodsVariablesPrecios.Add(c.GetString("CAT_DP_PRECIO"))
End If
' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
Next
promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.)
@@ -866,6 +870,7 @@ Sub traePromo(promo As String, cliente As String) As Map
promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
promoMap.Put("prodsVariablesCant", prodsVariables.Size)
promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios)
promoMap.Put("resultado", "ok")
Else
promoMap.Put("resultado", "No hay datos de la promoción.")