- VERSION 5.05.29

- Se corrigio que en los productos fijos de las promos solo tomaba en cuenta la cantidad de el primer producto fijo, y si el segundo llevaba otra cantidad, le ponia la cantidad del primero.
This commit is contained in:
2025-05-30 19:37:43 -06:00
parent 2cfb0a708c
commit e1aab9aa2d
3 changed files with 84 additions and 44 deletions

View File

@@ -287,6 +287,8 @@ Private Sub B4XPage_Appear
lblVariablesRequeridas2.Text = "0" lblVariablesRequeridas2.Text = "0"
lblVariablesRequeridas3.Text = "0" lblVariablesRequeridas3.Text = "0"
lblSumaTotal.Text = "0"
productosFijos = 0 productosFijos = 0
variablesRequeridas1= 0 variablesRequeridas1= 0
variablesRequeridas2= 0 variablesRequeridas2= 0
@@ -327,10 +329,8 @@ End Sub
Private Sub ObtenerFijos(promo As String) Private Sub ObtenerFijos(promo As String)
Dim cursorProductosFijos As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = '${promo}' AND CAT_DP_TIPO = '0'"$) Dim cursorProductosFijos As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_DP_PZAS FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = '${promo}' AND CAT_DP_TIPO = '0'"$)
If cursorProductosFijos.RowCount > 0 Then If cursorProductosFijos.RowCount > 0 Then
cursorProductosFijos.Position = 0 cursorProductosFijos.Position = 0
If cursorProductosFijos.GetInt("CAT_DP_PZAS") <> 0 And cursorProductosFijos.GetString("CAT_DP_PZAS") <> " " Then If cursorProductosFijos.GetInt("CAT_DP_PZAS") <> 0 And cursorProductosFijos.GetString("CAT_DP_PZAS") <> " " Then
productosFijos = cursorProductosFijos.GetInt("CAT_DP_PZAS") productosFijos = cursorProductosFijos.GetInt("CAT_DP_PZAS")
Else Else
@@ -338,11 +338,9 @@ Private Sub ObtenerFijos(promo As String)
etLimiteSuma_Sub_pnl1.Visible = False etLimiteSuma_Sub_pnl1.Visible = False
pnlFijos.Visible = False pnlFijos.Visible = False
End If End If
Else Else
productosFijos = 0 productosFijos = 0
End If End If
productosFijos_Iniciales = productosFijos productosFijos_Iniciales = productosFijos
End Sub End Sub
@@ -432,11 +430,11 @@ Sub muestraPromo(promo As String, cliente As String)
lblFijosRequeridos.Text = $"Productos Fijos: '${productosFijos}'"$ lblFijosRequeridos.Text = $"Productos Fijos: '${productosFijos}'"$
lblFijosRequeridos.Left = 0 lblFijosRequeridos.Left = 0
lblFijosRequeridos.Width = Root.Width lblFijosRequeridos.Width = Root.Width
Dim cursorProdFijo As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_DP_PRECIO, CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_TIPO FROM CAT_DETALLES_PAQ INNER JOIN CAT_GUNAPROD ON CAT_DP_IDPROD = CAT_GP_ID WHERE CAT_DP_ID = '${promo}' AND CAT_DP_TIPO = 0"$) Dim cursorProdFijo As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_NOMBRE, CAT_DP_PZAS, CAT_DP_PRECIO, CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_TIPO FROM CAT_DETALLES_PAQ INNER JOIN CAT_GUNAPROD ON CAT_DP_IDPROD = CAT_GP_ID WHERE CAT_DP_ID = '${promo}' AND CAT_DP_TIPO = 0"$)
If cursorProdFijo.RowCount > 0 Then If cursorProdFijo.RowCount > 0 Then
For i = 0 To cursorProdFijo.RowCount - 1 For i = 0 To cursorProdFijo.RowCount - 1
cursorProdFijo.Position = i cursorProdFijo.Position = i
GenerarFijos(cursorProdFijo.GetString("CAT_GP_NOMBRE"), cursorProdFijo.GetString("CAT_GP_ALMACEN"), cursorProdFijo.GetString("CAT_DP_PRECIO"), cursorProdFijo.GetString("CAT_DP_IDPROD"), i) GenerarFijos(cursorProdFijo.GetString("CAT_GP_NOMBRE"), cursorProdFijo.GetString("CAT_DP_PZAS"), cursorProdFijo.GetString("CAT_DP_PRECIO"), cursorProdFijo.GetString("CAT_DP_IDPROD"), i, promo)
Next Next
End If End If
Else Else
@@ -630,11 +628,9 @@ Private Sub btnVars1Mas_Click
' etVar3HasFocus = False ' etVar3HasFocus = False
Log("Iniciamos boton mas") Log("Iniciamos boton mas")
Log("Variables requeridas = " & variablesRequeridas1) Log("Variables requeridas = " & variablesRequeridas1)
Log(sumaVar1Tot.As(Int) > variablesRequeridas1.As(Int)) Log(sumaVar1Tot.As(Int) > variablesRequeridas1.As(Int))
If sumaVar1Tot.As(Int) >= variablesRequeridas1.As(Int) Then If sumaVar1Tot.As(Int) >= variablesRequeridas1.As(Int) Then
Log("Entramos al primer if") Log("Entramos al primer if")
ToastMessageShow("No se pueden agregar más productos, ya se alcanzó el máximo.", True) ToastMessageShow("No se pueden agregar más productos, ya se alcanzó el máximo.", True)
Return Return
End If End If
@@ -773,20 +769,32 @@ Private Sub btnVars3Menos_Click
End If End If
End Sub End Sub
Private Sub GenerarFijos(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int) Private Sub GenerarFijos(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int, estaPromoA As String)
If Not(pnlFijos.IsInitialized) Then If Not(pnlFijos.IsInitialized) Then
Return Return
End If End If
Log($", ${idProducto}, ${nombreProd}, ${inventario}, ${precio}"$)
Private estePrecio As String = precio Private estePrecio As String = precio
Dim pnlProducto As Panel Dim pnlProducto As Panel
pnlProducto.Initialize("pnlProducto") pnlProducto.Initialize("pnlProducto")
pnlProducto.SetLayout(0, 0, pnlFijos.Width, 70dip) pnlProducto.SetLayout(0, 0, pnlFijos.Width, 70dip)
Private cantidad As Int = 0
Private pzs As Cursor = Starter.skmt.ExecQuery($"select CAT_DP_PZAS from cat_detalles_paq where cat_dp_idprod = '${idProducto}' and cat_dp_id = '${estaPromoA}'"$)
If pzs.RowCount > 0 Then
pzs.Position = 0
Log("============================== " & pzs.GetString("CAT_DP_PZAS"))
cantidad = pzs.GetString("CAT_DP_PZAS")
End If
Dim lblNombre As Label Dim lblNombre As Label
lblNombre.Initialize("lblNombre") lblNombre.Initialize("lblNombre")
lblNombre.Text = nombreProd & CRLF & "Hay " & inventario & " $" & NumberFormat2(estePrecio,1,2,2,True) lblNombre.Text = nombreProd & CRLF & "Cant: " & cantidad & " $" & NumberFormat2(estePrecio,1,2,2,True)
lblNombre.Tag = idProducto lblNombre.Tag = idProducto
lblNombre.TextSize = 12 lblNombre.TextSize = 12
lblNombre.TextColor = xui.Color_Black lblNombre.TextColor = xui.Color_Black
@@ -798,6 +806,20 @@ Private Sub GenerarFijos(nombreProd As String, inventario As String, precio As S
pnlFijos.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlFijos.Width, 70dip) pnlFijos.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlFijos.Width, 70dip)
pnlFijos.Height = (numberOfViews * 70dip) + 70dip pnlFijos.Height = (numberOfViews * 70dip) + 70dip
Private totalCant As Int = 0
Private pzs2 As Cursor = Starter.skmt.ExecQuery($"select sum(CAT_DP_PZAS) as suma from cat_detalles_paq where cat_dp_tipo = '0' and cat_dp_id = '${estaPromoA}'"$)
If pzs2.RowCount > 0 Then
' For i = 0 To pzs2.RowCount - 1
pzs2.Position = 0
Log(pzs2.GetString("suma"))
' totalCant = totalCant + pzs2.GetString("CAT_DP_PZAS")
' Log(totalCant)
' Next
End If
lblFijosRequeridos.Text = "Productos fijos: " & pzs2.GetString("suma")
SumarFijos
pzs.Close
AjustarScroll AjustarScroll
End Sub End Sub
@@ -1165,10 +1187,9 @@ End Sub
'End Sub 'End Sub
Private Sub RecalcularSumas Private Sub RecalcularSumas
lblSumaTotal.Text = SumarFijos + SumarVariables1 + SumarVariables2 + SumarVariables3 lblSumaTotal.Text = NumberFormat2((SumarFijos + SumarVariables1 + SumarVariables2 + SumarVariables3), 1, 0, 0, False)
Log($"${lblFijosRequeridos.Text} + ${SumarVariables1} + ${SumarVariables2}"$)
ActualizarTotalValor ActualizarTotalValor
ActualizarVisibilidadBtnGuardaPromo ActualizarVisibilidadBtnGuardaPromo
End Sub End Sub
@@ -1217,7 +1238,6 @@ Private Sub AjustarScroll
End Sub End Sub
Private Sub btnGuardaPromo_Click Private Sub btnGuardaPromo_Click
Subs.guardaProductoSinGestion(estaPromo, 0, lblSumPromo.Text, Encabezado, estaPromo, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta) Subs.guardaProductoSinGestion(estaPromo, 0, lblSumPromo.Text, Encabezado, estaPromo, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
' Log("Esto es encabezado>>>>>>>>>>" & Encabezado) ' Log("Esto es encabezado>>>>>>>>>>" & Encabezado)
If productosFijos > 0 Then If productosFijos > 0 Then
@@ -1230,7 +1250,13 @@ Private Sub btnGuardaPromo_Click
Dim nombreProducto As String = lblNombre.Text Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto) Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
Log("Esto es el nombre dle producto? <<<<<<<<<<<<<<<<<<<<<<<|" &nomProd(1) & "|") Log("Esto es el nombre del producto? <<<<<<<<<<<<<<<<<<<<<<<|" &nomProd(1) & "|")
Private pzs As Cursor = Starter.skmt.ExecQuery($"select CAT_DP_PZAS from cat_detalles_paq where cat_dp_idprod = '${idProducto}' and cat_dp_id = '${estaPromo}'"$)
If pzs.RowCount > 0 Then
pzs.Position = 0
Log("============================== " & pzs.GetString("CAT_DP_PZAS"))
cantidad = pzs.GetString("CAT_DP_PZAS")
End If
If cantidad > 0 Then If cantidad > 0 Then
Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta) Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
End If End If
@@ -1238,7 +1264,6 @@ Private Sub btnGuardaPromo_Click
Else Else
Log("No hay productos fijos para guardar.") Log("No hay productos fijos para guardar.")
End If End If
If variablesRequeridas1 > 0 Then If variablesRequeridas1 > 0 Then
Log("Guardando productos variables (Grupo 1)...") Log("Guardando productos variables (Grupo 1)...")
For i = 0 To pnlVariables1.NumberOfViews - 1 For i = 0 To pnlVariables1.NumberOfViews - 1
@@ -1465,13 +1490,15 @@ Private Sub VerificarCondicionesParabtnGuardaPromo As Boolean
End Sub End Sub
Private Sub SumarFijos As Int Private Sub SumarFijos As Int
Dim totalFijos As Int = 0 Private fijos As String = 0
Private s() As String = Regex.Split(" ", lblFijosRequeridos.Text)
If pnlFijos.IsInitialized Then Log(lblFijosRequeridos.Text)
totalFijos = totalFijos + productosFijos Log("xxxxx " & s.Length)
If s.Length > 1 And s.Length < 4 Then
fijos = Regex.Split(" ", lblFijosRequeridos.Text)(2)
End If End If
' Log("------------>>> " & fijos)
Return totalFijos Return fijos
End Sub End Sub
Private Sub SumarVariables1 As Int Private Sub SumarVariables1 As Int
@@ -1529,13 +1556,26 @@ End Sub
Private Sub CalcularTotalValor As Float Private Sub CalcularTotalValor As Float
Dim total As Float = 0 Dim total As Float = 0
If pnlFijos.IsInitialized And productosFijos > 0 Then ' If pnlFijos.IsInitialized And productosFijos > 0 Then
For i = 0 To pnlFijos.NumberOfViews - 1 ' For i = 0 To pnlFijos.NumberOfViews - 1
Dim pnlProducto As Panel = pnlFijos.GetView(i) ' Dim pnlProducto As Panel = pnlFijos.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float) ' Dim precioProducto As Float = pnlProducto.Tag.As(Float)
total = total + (precioProducto * productosFijos) '
' Log($"---------->>> ${precioProducto}, ${Regex.Split(" ", lblFijosRequeridos.text)(2)}"$)
'
' total = total + (precioProducto * Regex.Split(" ", lblFijosRequeridos.text)(2))
' Next
' End If
Private tot As Cursor = Starter.skmt.ExecQuery($"select (cat_dp_precio * cat_dp_pzas) as total from cat_detalles_paq where cat_dp_tipo = '0' and cat_dp_id = '${estaPromo}'"$)
Private x As String = 0
If tot.RowCount > 0 Then
For i = 0 To tot.RowCount - 1
tot.Position = i
x = x + tot.GetString("total")
Next Next
total = x
End If End If
' Log("=====================>>>> " & x)
If pnlVariables1.IsInitialized Then If pnlVariables1.IsInitialized Then
For i = 0 To pnlVariables1.NumberOfViews - 1 For i = 0 To pnlVariables1.NumberOfViews - 1

View File

@@ -159,12 +159,12 @@ Module9=C_Nota
NumberOfFiles=46 NumberOfFiles=46
NumberOfLibraries=33 NumberOfLibraries=33
NumberOfModules=30 NumberOfModules=30
Version=13.1 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Intmex #ApplicationLabel: Intmex
#VersionCode: 1 #VersionCode: 1
#VersionName: 5.05.25 #VersionName: 5.05.29
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -81,7 +81,7 @@ ModuleClosedNodes24=
ModuleClosedNodes25=2 ModuleClosedNodes25=2
ModuleClosedNodes26= ModuleClosedNodes26=
ModuleClosedNodes27=1 ModuleClosedNodes27=1
ModuleClosedNodes28=3,7,8,9,11,12 ModuleClosedNodes28=
ModuleClosedNodes29= ModuleClosedNodes29=
ModuleClosedNodes3= ModuleClosedNodes3=
ModuleClosedNodes30= ModuleClosedNodes30=
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=Subs,guardaProductoSinGestion,764,0,C_Promos,btnGuardaPromo_Click,1214,6,C_Promos,btnContinuar_Click,1308,4,C_Productos,b_continuar_Click,793,0,C_Productos,l_prodX_LongClick,808,0,C_Nota,B4XPage_Appear,100,0,C_Productos,b_aceptar_Click,901,0,C_Productos,lv_prodsPedido_ItemLongClick,904,0,C_Nota,borra_Click,157,0,C_Nota,ListView1_ItemLongClick,170,5,Main,Activity_ActionBarHomeClick,37,0 NavigationStack=C_Promos,GenerarVariables3,1179,0,C_Promos,RecalcularSumas,1183,6,C_Promos,B4XPage_Created,147,0,C_Promos,ActualizarTotalValor,1591,0,C_Promos,muestraPromo,430,0,C_Promos,Class_Globals,35,0,C_Promos,GenerarFijos,790,0,C_Promos,SumarFijos,1490,6,C_Promos,VerificarCondicionesParabtnGuardaPromo,1477,0,C_Promos,CalcularTotalValor,1550,6
SelectedBuild=0 SelectedBuild=0
VisibleModules=28,2,13,20,14,9,4,29,27,17,15 VisibleModules=28,2,13,20,14,29,17,15