- Regresamos C_Promos y C_Productos a la version anterior para "deshabilitar" los cambios a las nuevas promociones.

This commit is contained in:
2024-05-13 17:48:03 -06:00
parent c4feba0a09
commit 21dc3d24da
3 changed files with 53 additions and 78 deletions

View File

@@ -326,11 +326,10 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
If c2.RowCount > 0 Then
For i=0 To c2.RowCount -1
c2.Position=i
' Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
Private tm As Map = promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId, Starter.tipov)
' Log(tm)
Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
' promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("prodsFijosCant") & " V:" & tm.Get("prodsVariablesCant"))
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
End If
Next
Else
@@ -936,7 +935,7 @@ End Sub
Private Sub lv_promos_ItemLongClick (Position As Int, Value As Object)
Log("Promo longclic = "&Value)
Private id As String = ""
Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$)
Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from cat_gunaprod where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$)
If c.RowCount > 0 Then
c.Position = 0
id = c.GetString("CAT_GP_ID")
@@ -994,22 +993,22 @@ Private Sub b_rechazar_Click
Log("Rechazo de pedido")
' Log($"Folio: ${folio}"$)
' If folio <> "" Then
result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos por separado."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
Subs.borraPedidoClienteActual
result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos por separado."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
Subs.borraPedidoClienteActual
' prodsMap.Initialize
B4XPages.MainPage.promos.promosMap.Initialize
B4XPages.MainPage.promos.promosMap.Initialize
' Log("Llamamos LlenaProdsLL")
LlenaProdsLL(Null, Null)
LlenaProdsLL(Null, Null)
' Log("Positivo")
Subs.iniciaActividad("Cliente")
Subs.iniciaActividad("Cliente")
' B4XPages.ShowPage("Cliente")
Else
Else
' Log("NO Positivo")
p_vistaPreviaTrans.Visible = False
End If
p_vistaPreviaTrans.Visible = False
End If
' Else
'' Msgbox("LA VENTA YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
'' Msgbox("LA VENTA YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
' End If
p_vistaPreviaTrans.Visible=False
Subs.iniciaActividad("Cliente")
@@ -1436,4 +1435,4 @@ Private Sub b_rmi_Click
clv_prods_ll.AsView.BringToFront
clv_prods_ll.AsView.Visible = True
l_mDisponible.Visible = True
End Sub
End Sub

View File

@@ -43,12 +43,11 @@ 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
@@ -82,65 +81,46 @@ 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(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
Sub muestraPromo(promo As String, cliente As String)
Log("muestraPromo:"&promo)
Private thisLog As Boolean = False
' If thisLog Then Log(promo)
estaPromo = promo
esteCliente = cliente
' 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)
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)
If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
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}"$)
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)
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 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
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
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 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)
Dim pv As List = mp.Get("prodsVariables")
Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
' Logcolor(listaPreciosPV, Colors.red)
' If thisLog Then Log(mp)
If thisLog Then Log(mp)
tpf = 0
For Each pfp As Int In promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo)
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
tpf = tpf + pfp
Next
tpf2 = tpf
' tpf = tpf * maxCantPromos
l_prodsFijos.Text = $"Productos fijos (${tpf})"$
prodsVarReq = promosC.traeInfoDePromo("P_PRODSVARIABLES_REQUERIDOS", idPromo)
prodsVarReq = mp.Get("prodsVariablesRequeridos")
prodsVarReq2 = prodsVarReq
l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
If prodsVarReq = 0 Then
@@ -157,7 +137,7 @@ Sub muestraPromo(idPromo As String, cliente As String)
lv_prodsFijos.Clear
' If pf.Size < 1 Then pf.Add("Sin productos fijos.")
lv_prodsFijos.Clear
agregaFijosALista(idPromo, True)
agregaFijosALista(mp, True)
If thisLog Then Log("Total prods fijos = " & prodsFijosTot)
' If thisLog Then Log("======="&prodsMap)
l_totProds.text = $"Productos: ${tpf}"$
@@ -178,10 +158,10 @@ Sub muestraPromo(idPromo As String, cliente As String)
' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' 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 indicePV = pv.IndexOf(p)
Private estePrecio = listaPreciosPV.Get(indicePV)
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)
@@ -194,13 +174,11 @@ Sub muestraPromo(idPromo As String, cliente As String)
End Sub
'Agregamos los productos fijos a una lista para despues meterlos en el pedido.
Sub agregaFijosALista(idPromo As String, addListItem As Boolean)
Sub agregaFijosALista(mp As Map, 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 = promosC.traeListaDePromo("P_PRODSFIJOS", idPromo)
Dim pf As List = mp.Get("prodsFijos")
If pf.Size < 1 Then pf.Add("Sin productos fijos.")
' Private m As Map
' prodsMap.Put(estaPromo, CreateMap("cant":1, "precio":0))
@@ -213,15 +191,13 @@ Sub agregaFijosALista(idPromo As String, addListItem As Boolean)
prodsPrecios.Add(0)
For Each p As String In pf
' Log($"cont=${cont}, mp=${mp}"$)
Private prodsFijosPiezas As List = promosC.traeListaDePromo("P_PRODSFIJOS_PIEZAS", idPromo)
If prodsFijosPiezas.Size > 0 Then
Private tpi As String = prodsFijosPiezas.Get(cont)
If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
Else
Private tpi As String = 0
End If
Private prodsFijosPrecios As List = promosC.traeListaDePromo("P_PRODSFIJOS_PRECIOS", idPromo)
If prodsFijosPrecios.Size > 0 Then
Private tpr As String = prodsFijosPrecios.Get(cont)
If mp.Get("prodsFijosPrecios").As(List).Size > 0 Then
Private tpr As String = mp.Get("prodsFijosPrecios").As(List).Get(cont)
Else
Private tpr As String = 0
End If
@@ -330,7 +306,7 @@ Sub cuentaProds
prodsCants2.Clear
prodsPrecios2.Clear
lv_prodsFijos.Clear
agregaFijosALista(estapromo, True)
agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), 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=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
NavigationStack=C_Promos,B4XPage_Appear,70,0,C_Promos,b_terminar1_Click,490,0,C_Promos,revisaInvProdsVariables,456,0,C_Promos,muestraPromo,111,6,C_Promos,Class_Globals,0,0,C_Promos,et_promoCant_TextChanged,518,0,Promociones,traeListaDePromo,457,0,C_Clientes,Class_Globals,0,0,C_Productos,b_rechazar_Click,1004,0,C_Productos,lv_catalogos_ItemClick,304,0,C_Productos,PCLV_AddProds,279,0
SelectedBuild=0
VisibleModules=1,28,11,3,26,29,12,4,13