From 86e50323b24b8c3ed4dcfa1125ecfad80278b6df Mon Sep 17 00:00:00 2001 From: cheveguerra Date: Thu, 7 Sep 2023 21:04:40 -0600 Subject: [PATCH] 7/9/20 - Promos, prods fijos y variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- B4A/C_Promos.bas | 5 ++++- B4A/Mariana.b4a | 2 +- B4A/Subs.bas | 9 +++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index adea100..8805ab9 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -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 diff --git a/B4A/Mariana.b4a b/B4A/Mariana.b4a index 2ea30f4..fb9866d 100644 --- a/B4A/Mariana.b4a +++ b/B4A/Mariana.b4a @@ -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 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index aae1f2f..3aebcd2 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -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.")