mirror of
https://github.com/KeymonSoft/Kelloggs_v4.git
synced 2026-04-17 18:26:11 +00:00
- Código de promociones "al parecer" completo.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user