- Código de promociones "al parecer" completo.

This commit is contained in:
2024-05-12 23:20:29 -06:00
parent 33550e86c3
commit c4feba0a09
4 changed files with 131 additions and 67 deletions

View File

@@ -43,11 +43,12 @@ Sub Class_Globals
Dim prodsPedidoActual As String
Dim montoPedidoActual As String
Dim promosMap As Map
Dim promosC As Promociones
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
' promosC.Initialize(Me, "promosC", Starter.skmt)
promosC.Initialize(Me, "promosC", Starter.skmt)
Return Me
End Sub
@@ -81,46 +82,65 @@ Sub B4XPage_Appear
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub muestraPromo(promo As String, cliente As String)
Log("muestraPromo:"&promo)
Private thisLog As Boolean = False
' If thisLog Then Log(promo)
estaPromo = promo
Sub muestraPromo(idPromo As String, cliente As String)
Log("muestraPromo: " & idPromo)
Private thisLog As Boolean = True
promosC.tablaProds = "CAT_GUNAPROD2"
If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then promosC.tablaProds = "CAT_GUNAPROD"
' If thisLog Then Log(idPromo)
estaPromo = idPromo
esteCliente = cliente
Private mp As Map = Subs.traePromo(promo, cliente)
If thisLog Then LogColor(mp, Colors.blue)
Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
' Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo)
Private invDispPromo As Map = Subs.restaFijosPromo(mp)
' Private mp As Map = Subs.traePromo(idPromo, cliente)
' If thisLog Then LogColor(mp, Colors.blue)
' Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
' Private invDispPromo As Map = Subs.restaFijosPromo(mp)
Private invDispPromo As Map = promosC.restaFijosDePromo(idPromo)
If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
If thisLog Then Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp))
If thisLog Then Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
If thisLog Then Log("Max promos por inv de prods FIJOS: " & promosC.revisaMaxPromosProdsFijosPorInventario(idPromo))
If thisLog Then Log("Max promos por inv de prods VARIABLES: " & promosC.revisaMaxPromosProdsVariablesPorInventario(idPromo))
' maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
maxCantPromos = promosC.revisaMaxPromosProdsVariablesPorInventario(idPromo)
Log($"MAXCANTPROMOS: ${maxCantPromos}"$)
et_promoCant.Text = 1
l_promosCant.text = "Max promos: " & maxCantPromos
Private cs As CSBuilder
cs.Initialize
If thisLog Then Log(mp)
If thisLog Then Log(prodsPromo)
'Ponemos la promo y descripción.
' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$
' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(promo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall
l_promoDesc.Text = cs.Color(Colors.RGB(100,149,237)).append("Promocion: ").pop.append(CRLF).Append(promo).append(CRLF).Append(mp.Get("descripcion")).Popall
' If thisLog Then Log(mp)
' If thisLog Then Log(prodsPromo)
'Ponemos la idPromo y descripción.
' Dim desc As String = $"Promoción: ${idPromo}${CRLF}${mp.Get("descripcion")}"$
' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(idPromo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall
Private c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_NOMBRE from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${idPromo}'"$)
Private descripcion As String = "PROMO"
If c.RowCount > 0 Then
c.Position = 0
descripcion = c.GetString("CAT_GP_NOMBRE")
End If
l_promoDesc.Text = cs.Color(Colors.RGB(100,149,237)).append("Promocion: ").pop.append(CRLF).Append(idPromo).append(CRLF).Append(descripcion).Popall
prodsFijosTot = 0
'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")
Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
' Dim pv As List = mp.Get("prodsVariables")
Dim pv As List = promosC.traeListaDePromo("P_PRODSVARIABLES", idPromo)
' Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
Dim listaPreciosPV As List = promosC.traeListaDePromo("P_PRODSVARIABLES_PRECIOS", idPromo)
' Logcolor(listaPreciosPV, Colors.red)
If thisLog Then Log(mp)
' If thisLog Then Log(mp)
tpf = 0
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
For Each pfp As Int In promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo)
tpf = tpf + pfp
Next
tpf2 = tpf
' tpf = tpf * maxCantPromos
l_prodsFijos.Text = $"Productos fijos (${tpf})"$
prodsVarReq = mp.Get("prodsVariablesRequeridos")
prodsVarReq = promosC.traeInfoDePromo("P_PRODSVARIABLES_REQUERIDOS", idPromo)
prodsVarReq2 = prodsVarReq
l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
If prodsVarReq = 0 Then
@@ -137,7 +157,7 @@ Sub muestraPromo(promo As String, cliente As String)
lv_prodsFijos.Clear
' If pf.Size < 1 Then pf.Add("Sin productos fijos.")
lv_prodsFijos.Clear
agregaFijosALista(mp, True)
agregaFijosALista(idPromo, True)
If thisLog Then Log("Total prods fijos = " & prodsFijosTot)
' If thisLog Then Log("======="&prodsMap)
l_totProds.text = $"Productos: ${tpf}"$
@@ -160,8 +180,8 @@ Sub muestraPromo(promo As String, cliente As String)
' bmp.Initialize2(ins)
Private indicePV As Int = pv.IndexOf(p)
Private estePrecio As String = listaPreciosPV.Get(indicePV)
Private thisProd As Map = prodsPromo.Get(p)
If thisLog Then Log(thisProd)
' Private thisProd As Map = prodsPromo.Get(p)
' If thisLog Then Log(thisProd)
If existenciaProdVariable > 0 Then
Log($">>>>> AGREGAMOS PROD VARIABLE ${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)
@@ -174,11 +194,13 @@ Sub muestraPromo(promo As String, cliente As String)
End Sub
'Agregamos los productos fijos a una lista para despues meterlos en el pedido.
Sub agregaFijosALista(mp As Map, addListItem As Boolean)
Sub agregaFijosALista(idPromo As String, addListItem As Boolean)
Private thisLog As Boolean = False
Private cont As Int = 0
prodsFijosTot = 0
Dim pf As List = mp.Get("prodsFijos")
' Dim pf As List = mp.Get("prodsFijos")
Dim pf As List = promosC.traeListaDePromo("P_PRODSFIJOS", idPromo)
If pf.Size < 1 Then pf.Add("Sin productos fijos.")
' Private m As Map
' prodsMap.Put(estaPromo, CreateMap("cant":1, "precio":0))
@@ -191,13 +213,15 @@ Sub agregaFijosALista(mp As Map, addListItem As Boolean)
prodsPrecios.Add(0)
For Each p As String In pf
' Log($"cont=${cont}, mp=${mp}"$)
If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
Private prodsFijosPiezas As List = promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo)
If prodsFijosPiezas.Size > 0 Then
Private tpi As String = prodsFijosPiezas.Get(cont)
Else
Private tpi As String = 0
End If
If mp.Get("prodsFijosPrecios").As(List).Size > 0 Then
Private tpr As String = mp.Get("prodsFijosPrecios").As(List).Get(cont)
Private prodsFijosPrecios As List = promosC.traeListaDePromo("P_PRODSFIJOS_PRECIOS", idPromo)
If prodsFijosPrecios.Size > 0 Then
Private tpr As String = prodsFijosPrecios.Get(cont)
Else
Private tpr As String = 0
End If
@@ -306,7 +330,7 @@ Sub cuentaProds
prodsCants2.Clear
prodsPrecios2.Clear
lv_prodsFijos.Clear
agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True)
agregaFijosALista(estapromo, True)
' Log(prodsIds)
Private tcpf As Float = 0 'Total de compra de productos fijos.
For pf = 0 To prodsIds.Size - 1

View File

@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=Promociones,traeListaDePromo,491,0,Promociones,traeInfoDePromo,433,0,Promociones,revisaMaxPromosProdsVariablesPorInventarioXX,276,0,Promociones,traePromo,97,5,Promociones,alcanzanLosVariablesParaPromo,391,0,Promociones,traeMaxPromos,406,4,Promociones,traePromosVendidas,415,0,Promociones,revisaMaxPromosProdsFijosPorInventario,217,0,Promociones,restaFijosDePromo,332,0,Promociones,procesaPromocion,40,0
NavigationStack=C_Promos,cuentaProds,326,0,Subs,traeProdNombre,807,0,Subs,cuantosVariablesDisponiblesDB,1428,0,C_Productos,Class_Globals,0,0,Subs,revisaMaxPromosProdsVariablesPorInventario,1361,0,Promociones,procesaPromocion,30,0,Promociones,revisaMaxPromosProdsVariablesPorInventario,269,6,Promociones,traePromo,125,0,C_Promos,agregaFijosALista,233,6,C_Promos,muestraPromo,86,6
SelectedBuild=0
VisibleModules=1,28,11,3,26,12,4,29,8,13
VisibleModules=1,28,11,3,26,29,12,4,13

View File

@@ -12,7 +12,8 @@ Sub Class_Globals
Private EventName As String 'ignore
Private CallBack As Object 'ignore
Dim tablaProds As String
Dim muestraLogs, releaseMode As Boolean
Dim muestraLogs As Boolean
Dim releaseMode As Boolean
End Sub
'Initializes the object. You can add parameters to this method if needed.
@@ -25,7 +26,7 @@ Public Sub Initialize (vCallback As Object, vEventName As String, db0 As SQL) As
db.ExecNonQuery("DELETE FROM PROMOCIONES_INFO")
#if RELEASE
releaseMode = true
#Else
#Else if DEBUG
releaseMode = False
#end if
Return Me
@@ -101,13 +102,17 @@ End Sub
' P_ESTATUS="OK" 'Ok si existe la promocion.
' P_PRODSVARIABLES_REQUERIDOS=5 'Cantidad de productos variables requeridos para la promoción.
Sub traePromo(promo As String, cliente0 As String) As Map
'######################################################
muestraLogs = True ' Si es verdadero, se muestran los logs de la clase.
'######################################################
If releaseMode Then muestraLogs = False
If muestraLogs Then LogColor("> TraePromo: " & promo, Colors.blue)
' Private inicioContador As String = DateTime.Now
Private c As Cursor = Starter.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 promoMap As Map
Private prodsFijos, prodsFijosPrecios, prodsFijosReq, prodsVariables, prodsVariablesPrecios As List
' promoMap.Initialize
promoMap.Initialize
prodsFijos.Initialize
prodsFijosPrecios.Initialize
prodsFijosReq.Initialize
@@ -199,7 +204,7 @@ Sub traePromo(promo As String, cliente0 As String) As Map
c.Position = 0
pvr = c.GetString("CAT_GP_STS")
' promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
' promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
db.ExecNonQuery($"update PROMOCIONES_INFO set P_PRODSVARIABLES_REQUERIDOS = ${pvr} where P_ID = '${promo}'"$) 'Cantidad de productos variables requeridos para la promoción.
End If
c.Close
@@ -207,7 +212,7 @@ Sub traePromo(promo As String, cliente0 As String) As Map
' If muestraLogs Then Log($"Inv dispo: ${traemosInvDispParaPromo(promo)}"$)
' If muestraLogs Then LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Blue)
' If muestraLogs Then LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Blue)
' Return promoMap
Return promoMap
End Sub
' Regresa cuantas promos alcanzan con los productos FIJOS que hay en inventario.
@@ -244,23 +249,26 @@ End Sub
'promos por productos fijos llegan al maximo, aunque se puedan mas de producos variables, solo se
'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 revisaMaxPromosProdsVariablesPorInventarioXX(pm As Map) As Int 'ignore
If muestraLogs Then Log("======================================================")
Sub revisaMaxPromosProdsVariablesPorInventario(idPromo As String) As Int 'ignore
If muestraLogs Then LogColor("> revisaMaxPromosProdsVariablesPorInventario: " & idPromo, Colors.blue)
Private invFijoXpromo As Map
invFijoXpromo.Initialize
Private totalProdsVariablesDisponibles As Int = 0
If muestraLogs Then LogColor($"pm=${pm}"$, Colors.Blue)
Private invDispParaPromo As Map = traemosInvDispParaPromo(pm.Get("id"))
If muestraLogs Then Log($"invDispParaPromo=${invDispParaPromo}"$)
Private maxPromos As String = traeMaxPromos(pm)
Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
Private idProdsVariables As List = pm.Get("prodsVariables")
Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
Private prodsFijosReq As List = pm.Get("prodsFijosReq")
Private idProdsFijos As List = pm.Get("prodsFijos")
' If muestraLogs Then LogColor($"pm=${pm}"$, Colors.Blue)
Private invDispParaPromo As Map = traemosInvDispParaPromo(idPromo)
' If muestraLogs Then
Log($"invDispParaPromo=${invDispParaPromo}"$)
Private maxPromos As String = traeMaxPromos(idPromo)
Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(idPromo)
Private idProdsVariables As List = traeListaDePromo("P_PRODSVARIABLES", idPromo)
Private prodsVariablesRequeridos As Int = traeInfoDePromo("P_PRODSVARIABLES_REQUERIDOS", idPromo)
Private prodsFijosReq As List = traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo)
Private idProdsFijos As List = traeListaDePromo("P_PRODSFIJOS", idPromo)
For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosReq.Get(p))
Log(idProdsFijos)
Private idEsteProd As String = idProdsFijos.Get(p)
Log(idEsteProd)
Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
Private pzasReqEsteProd As Int = prodsFijosReq.Get(p)
If muestraLogs Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
@@ -268,24 +276,28 @@ Sub revisaMaxPromosProdsVariablesPorInventarioXX(pm As Map) As Int 'ignore
Next
If muestraLogs Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
If muestraLogs Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
If muestraLogs Then LogColor($"prodsFijosReqReq=${prodsFijosReq}"$, Colors.Blue)
If muestraLogs Then LogColor($"prodsFijosReq=${prodsFijosReq}"$, Colors.Blue)
If muestraLogs Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
If muestraLogs Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
If muestraLogs Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
Private maxPromosXVariables As Int = 0
If Not(releaseMode) Then muestraLogs = True
For x = 1 To maxPromosXFijos
If muestraLogs Then Log("=====================================================")
If muestraLogs Then Log("=====================================================")
For i = 0 To idProdsFijos.Size - 1
If muestraLogs Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosReq.Get(i).As(Int)*(i+1)}"$)
invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosReq.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
' Log(prodsFijosReq.Get(i))
Private prodsFijosRequeridos As Int = prodsFijosReq.Get(i)
Private esteProdFijo As String = idProdsFijos.Get(i)
' Log(invDispParaPromo)
If muestraLogs Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(esteProdFijo)} - ${prodsFijosRequeridos*(i+1)}"$)
invDispParaPromo.Put(esteProdFijo, invDispParaPromo.Get(esteProdFijo) - prodsFijosRequeridos*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
Next
If muestraLogs Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
totalProdsVariablesDisponibles = 0
For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
Private thisProdVariable As String = idProdsVariables.Get(i)
If invDispParaPromo.ContainsKey(thisProdVariable) Then
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(thisProdVariable)
End If
Next
'Revisamos variables.
@@ -301,10 +313,10 @@ Sub revisaMaxPromosProdsVariablesPorInventarioXX(pm As Map) As Int 'ignore
End Sub
'Regresa un mapa con el inventario disponible por producto para la promoción (desde la base de datos).
Sub traemosInvDispParaPromo(promo As String) As Map 'ignore
If muestraLogs Then LogColor("> traemosInvDispParaPromo: " & promo, Colors.blue)
Sub traemosInvDispParaPromo(idPromo As String) As Map 'ignore
If muestraLogs Then LogColor("> traemosInvDispParaPromo: " & idPromo, Colors.blue)
Private c As Cursor
c = Starter.skmt.ExecQuery2($"SELECT CAT_GP_ID, CAT_GP_ALMACEN FROM ${tablaProds} WHERE CAT_GP_ID IN (select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ?)"$, Array As String(promo))
c = Starter.skmt.ExecQuery2($"SELECT CAT_GP_ID, CAT_GP_ALMACEN FROM ${tablaProds} WHERE CAT_GP_ID IN (select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ?)"$, Array As String(idPromo))
' Private prodInv As Map
' prodInv.Initialize
Private prods As Map
@@ -342,7 +354,7 @@ Sub restaFijosDePromo(idPromo As String) As Map 'ignore
InvDispEsteProd = invDispEstaPromo.get(esteProd) 'Obtenemos del mapa el inventario de este producto.
nuevoInv = NumberFormat2((InvDispEsteProd - pzasReqEsteProd), 1, 0,0,False)
If muestraLogs Then Log($"Nuevo inventario de ${esteProd}: ${InvDispEsteProd}-${pzasReqEsteProd} = ${nuevoInv}"$) 'El nuevo inventario.
invDispEstaPromo.Put(esteProd, $"${nuevoInv}"$) 'Restamos del inventario las piezas requeridas para la promoción y guardamos el nuevo inventario en el mapa.
invDispEstaPromo.Put(esteProd.Trim, nuevoInv) 'Restamos del inventario las piezas requeridas para la promoción y guardamos el nuevo inventario en el mapa.
invDispEstaPromo.Put("resultado", "ok")
Else 'Si en el mapa no esta el id del producto, entonces no tenemos inventario.
invDispEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.")
@@ -438,6 +450,7 @@ End Sub
'Regresa una lista de la BD, en la BD se guarda como string y esta funcion la convierte en lista nuevamente.
Sub traeListaDePromo(col As String, promo As String) As List
' Log($"${col}, ${promo}"$)
Private res As List
Private s As String
Private c As ResultSet = db.ExecQuery($"select ${col} from PROMOCIONES_INFO where P_ID = '${promo}'"$)
@@ -445,6 +458,31 @@ Sub traeListaDePromo(col As String, promo As String) As List
s = c.GetString(col)
Loop
If s.StartsWith("[") And s.EndsWith("]") Then
' Private j As JSONParser
' j.Initialize(s)
' res.Initialize2(j.NextArray)
res.Initialize
s = s.Replace("[", "")
s = s.Replace("]", "")
Private s2() As String = Regex.Split(",", s)
For i = 0 To s2.Length - 1
res.Add(s2(i).as(String).trim)
Next
Else
res.Initialize
End If
Return res
End Sub
'Regresa una lista de la BD, en la BD se guarda como string y esta funcion la convierte en lista nuevamente.
Sub traeMapaDePromo(col As String, promo As String) As List
Private res As List
Private s As String
Private c As ResultSet = db.ExecQuery($"select ${col} from PROMOCIONES_INFO where P_ID = '${promo}'"$)
Do While c.NextRow
s = c.GetString(col)
Loop
If s.StartsWith("{") And s.EndsWith("}") Then
Private j As JSONParser
j.Initialize(s)
res.Initialize2(j.NextArray)

View File

@@ -802,6 +802,7 @@ Sub traeProdNombre(id As String) As String
Private h As Cursor
Private n As String
h=Starter.skmt.ExecQuery($"select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = '${id.Trim}' union select CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '${id.Trim}'"$)
' Log($"select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = '${id.Trim}' union select CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '${id.Trim}'"$)
If h.RowCount > 0 Then
h.Position = 0
n = h.GetString("CAT_GP_NOMBRE")
@@ -810,6 +811,7 @@ Sub traeProdNombre(id As String) As String
h.Close
If n = Null Or n="" Then n = "N/A"
' Log(h.RowCount&"|"&id&"|"&n&"|")
' Log(n)
Return n
End Sub
@@ -1002,7 +1004,7 @@ End Sub
' resultado="OK" 'Ok si existe la promocion.
' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
Sub traePromo(promo As String, cliente As String) As Map
Private thisLog As Boolean = True
Private thisLog As Boolean = False
If thisLog Then Log("traePromo:"&promo)
Private inicioContador As String = DateTime.Now
Private c As Cursor = Starter.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
@@ -1430,7 +1432,7 @@ Sub cuantosVariablesDisponiblesDB(promo As String)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Log(c.GetString("CAT_GP_ID") & ": " & c.GetString("CAT_GP_ALMACEN"))
' Log(c.GetString("CAT_GP_ID") & ": " & c.GetString("CAT_GP_ALMACEN"))
If c.GetString("CAT_GP_ALMACEN") <> Null Then x = c.GetString("CAT_GP_ALMACEN")
Next
End If