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. 'Ponemos el texto en las etiquetas de la cantidad de productos.
' Dim pf As List = mp.Get("prodsFijos") ' Dim pf As List = mp.Get("prodsFijos")
Dim pv As List = mp.Get("prodsVariables") Dim pv As List = mp.Get("prodsVariables")
Private listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
If thisLog Then Log(mp) If thisLog Then Log(mp)
tpf = 0 tpf = 0
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List) 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") ' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) ' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins) ' bmp.Initialize2(ins)
Private indicePV = pv.IndexOf(p)
Private estePrecio = listaPreciosPV.Get(indicePV)
Private thisProd As Map = prodsPromo.Get(p) Private thisProd As Map = prodsPromo.Get(p)
If thisLog Then Log(thisProd) 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 End If
Next Next
b_terminar1.Visible = False b_terminar1.Visible = False

View File

@@ -749,7 +749,7 @@ Module9=C_NoVenta
NumberOfFiles=347 NumberOfFiles=347
NumberOfLibraries=29 NumberOfLibraries=29
NumberOfModules=22 NumberOfModules=22
Version=12.5 Version=12.2
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Mariana #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 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 siHistorico As String = 0
Private promoMap As Map Private promoMap As Map
Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariablesPrecios As List
promoMap.Initialize promoMap.Initialize
prodsFijos.Initialize prodsFijos.Initialize
prodsFijosPrecios.Initialize prodsFijosPrecios.Initialize
prodsFijosPiezas.Initialize prodsFijosPiezas.Initialize
prodsVariables.Initialize prodsVariables.Initialize
prodsVariablesPrecios.Initialize
c.Position = 0 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")) 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. 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")) prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS")) prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
End If 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")}"$) ' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
Next Next
promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.) 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("prodsFijosPrecios", prodsFijosPrecios)
promoMap.Put("prodsFijosPiezas", prodsFijosPiezas) promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
promoMap.Put("prodsVariablesCant", prodsVariables.Size) promoMap.Put("prodsVariablesCant", prodsVariables.Size)
promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios)
promoMap.Put("resultado", "ok") promoMap.Put("resultado", "ok")
Else Else
promoMap.Put("resultado", "No hay datos de la promoción.") promoMap.Put("resultado", "No hay datos de la promoción.")