Files
Intmex_Multiventa/B4A/C_Promos.bas
IsR0d 2cfb0a708c Version: 5.05.25
En esta version se ajusto el envio de promociones y el como se estaba guardando la promocion en el movil.
2025-05-29 17:45:16 -06:00

1580 lines
55 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private pnlPantallaCompleta As Panel
Private lblFijosRequeridos As Label
Private lblVariablesRequeridas1 As Label
Private lblVariablesRequeridas2 As Label
Private lblVariablesRequeridas3 As Label
Private etLimiteSuma_Sub_pnl1 As Label
Private etLimiteSuma_Sub_pnl2 As Label
Private etLimiteSuma_Sub_pnl3 As Label
Private etLimiteSuma_Sub_pnl4 As Label
Private scrollView As ScrollView
Private pnlFijos As Panel
Private pnlVariables1 As Panel
Private pnlVariables2 As Panel
Private pnlVariables3 As Panel
' Private panelHeight As Int = 60dip
Private pnlMaxPromo As Panel
Private lblPromocion As Label
Private lblMaxPromo As Label
Private btnMenosPromo As Button
Private lblSumPromo As Label
Private btnSumaPromo As Button
Private btnGuardaPromo As Button
Private btnContinuar As Button
Private pnlProdTot As Panel
Private lblTotProd As Label
Private lblSumaTotal As Label
Private lblTotalProdPromo As Label
Private lblTotalValor As Label
Private lblNomPromo As Label
Dim estaPromo, esteCliente As String
' Dim tpf2 As Int = 0
Dim laPromo = "", elCliente = "" As String
Dim prodsPedidoActual As String
Dim montoPedidoActual As String
Dim promosMap As Map
' Dim prodsVarReq As Int = 0
' Dim prodsVarReq_ As Int = 0
' Dim prodsVarReq2_ As Int = 0
Dim productosFijos As Int
Dim variablesRequeridas1 As Int
Dim variablesRequeridas2 As Int
Dim variablesRequeridas3 As Int
Dim productosFijos_Iniciales As Int
Dim variablesRequeridas1_Inicial As Int
Dim variablesRequeridas2_Inicial As Int
Dim variablesRequeridas3_Inicial As Int
Private sumaVar1Tot As Int = 0
Private sumaVar2Tot As Int = 0
Private sumaVar3Tot As Int = 0
Dim Encabezado As String
' Dim etVar1HasFocus As Boolean = False
' Dim etVar2HasFocus As Boolean = False
' Dim etVar3HasFocus As Boolean = False
End Sub
Public Sub Initialize As Object
Return Me
End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Dim pnlProdTotHeight As Int = 80dip
ObtenerVariablesRequeridas(estaPromo)
ObtenerFijos(estaPromo)
pnlMaxPromo = xui.CreatePanel("pnlMaxPromo")
pnlMaxPromo.SetLayoutAnimated(0, 0, 0, Root.Width, 100dip)
pnlMaxPromo.Color = xui.Color_LightGray
Root.AddView(pnlMaxPromo, 0, 0, Root.Width, 100dip)
lblPromocion.Initialize("lblPromocion")
lblPromocion.TextSize = 14
lblPromocion.TextColor = Colors.RGB(100,149,237)
lblPromocion.Gravity = Gravity.CENTER_VERTICAL
Dim lblPromocionWidth As Int = 180dip
lblPromocion.Text = "Max promos: "
pnlMaxPromo.AddView(lblPromocion, 10dip, 10dip, lblPromocionWidth, 30dip)
lblMaxPromo.Initialize("lblMaxPromo")
lblMaxPromo.TextSize = 16
lblMaxPromo.TextColor = xui.Color_Black
lblMaxPromo.Gravity = Gravity.CENTER
lblMaxPromo.Color = xui.Color_White
Dim lblMaxPromoWidth As Int = 40dip
pnlMaxPromo.AddView(lblMaxPromo, lblPromocion.Left + lblPromocion.Width, 10dip, lblMaxPromoWidth, 30dip)
btnMenosPromo.Initialize("btnMenosPromo")
btnMenosPromo.Text = "-"
btnMenosPromo.TextSize = 16
btnMenosPromo.Color = Colors.RGB(185, 106, 106)
btnMenosPromo.TextColor = xui.Color_White
Dim btnMenosPromoWidth As Int = 30dip
pnlMaxPromo.AddView(btnMenosPromo, lblMaxPromo.Left + lblMaxPromo.Width + 10dip, 10dip, btnMenosPromoWidth, 30dip)
lblSumPromo.Initialize("lblSumPromo")
lblSumPromo.TextSize = 16
lblSumPromo.TextColor = xui.Color_Black
lblSumPromo.Gravity = Gravity.CENTER
lblSumPromo.Color = xui.Color_White
Dim lblSumPromoWidth As Int = 40dip
pnlMaxPromo.AddView(lblSumPromo, btnMenosPromo.Left + btnMenosPromo.Width + 10dip, 10dip, lblSumPromoWidth, 30dip)
btnSumaPromo.Initialize("btnSumaPromo")
btnSumaPromo.Text = "+"
btnSumaPromo.TextSize = 16
btnSumaPromo.Color = Colors.RGB(133, 185, 106)
btnSumaPromo.TextColor = xui.Color_White
Dim btnSumaPromoWidth As Int = 30dip
pnlMaxPromo.AddView(btnSumaPromo, lblSumPromo.Left + lblSumPromo.Width + 10dip, 10dip, btnSumaPromoWidth, 30dip)
Dim lblNomPromo As Label
lblNomPromo.Initialize("lblNomPromo")
lblNomPromo.TextSize = 14
lblNomPromo.TextColor = xui.Color_Black
lblNomPromo.Gravity = Gravity.CENTER_VERTICAL
pnlMaxPromo.AddView(lblNomPromo, 10dip, 50dip, 100%x, 50dip)
pnlPantallaCompleta = xui.CreatePanel("pnlPantallaCompleta")
pnlPantallaCompleta.SetLayoutAnimated(0, 0, pnlMaxPromo.Height, Root.Width, Root.Height - pnlMaxPromo.Height - pnlProdTotHeight)
Root.AddView(pnlPantallaCompleta, 0, pnlMaxPromo.Height, Root.Width, Root.Height - pnlMaxPromo.Height - pnlProdTotHeight)
pnlProdTot.Initialize("pnlProdTot")
pnlProdTot.Color = xui.Color_White
Root.AddView(pnlProdTot, 0, Root.Height - pnlProdTotHeight, Root.Width, pnlProdTotHeight)
lblTotProd.Initialize("lblTotProd")
lblTotProd.Text = "Productos: "
lblTotProd.TextSize = 14
lblTotProd.TextColor = xui.Color_Black
pnlProdTot.AddView(lblTotProd, 10dip, 10dip, 100dip, 30dip)
lblSumaTotal.Initialize("lblSumaTotal")
lblSumaTotal.Text = "0"
lblSumaTotal.TextSize = 14
lblSumaTotal.TextColor = xui.Color_Blue
pnlProdTot.AddView(lblSumaTotal, lblTotProd.Left + lblTotProd.Width + 10dip, 10dip, 60dip, 30dip)
lblTotalProdPromo.Initialize("lblTotalProdPromo")
lblTotalProdPromo.Text = "Total: $"
lblTotalProdPromo.TextSize = 14
lblTotalProdPromo.TextColor = xui.Color_Black
pnlProdTot.AddView(lblTotalProdPromo, 10dip, 50dip, 100dip, 30dip)
lblTotalValor.Initialize("lblTotalValor")
lblTotalValor.Text = "0"
lblTotalValor.TextSize = 14
lblTotalValor.TextColor = xui.Color_Blue
pnlProdTot.AddView(lblTotalValor, lblTotalProdPromo.Left + lblTotalProdPromo.Width + 10dip, 50dip, 100dip, 30dip)
btnGuardaPromo.Initialize("btnGuardaPromo")
btnGuardaPromo.Text = "Terminar"
btnGuardaPromo.Color = Colors.RGB(106, 162, 185)
btnGuardaPromo.TextColor = xui.Color_White
btnGuardaPromo.Enabled = False
Dim btnWidth As Int = pnlProdTot.Width * 0.25
Dim btnHeight As Int = 50dip
pnlProdTot.AddView(btnGuardaPromo, pnlProdTot.Width - btnWidth, (pnlProdTot.Height - btnHeight) / 2, btnWidth, btnHeight)
btnContinuar.Initialize("btnContinuar")
btnContinuar.Text = "Continuar"
btnContinuar.Color = Colors.RGB(133, 185, 106)
btnContinuar.TextColor = xui.Color_White
btnContinuar.Enabled = False
Dim btnWidth As Int = pnlProdTot.Width * 0.25
Dim btnHeight As Int = 50dip
Dim separacion As Int = 5dip
pnlProdTot.AddView(btnContinuar, pnlProdTot.Width - btnWidth * 2 - separacion, (pnlProdTot.Height - btnHeight) / 2, btnWidth, btnHeight)
scrollView.Initialize(1000)
pnlPantallaCompleta.AddView(scrollView, 0, 0, pnlPantallaCompleta.Width, pnlPantallaCompleta.Height)
Dim pnlContainer As Panel
pnlContainer.Initialize("pnlContainer")
scrollView.Panel.AddView(pnlContainer, 0, 0, pnlPantallaCompleta.Width, 10000000dip)
lblFijosRequeridos.Initialize("lblFijosRequeridos")
lblFijosRequeridos.TextColor = xui.Color_Black
lblFijosRequeridos.TextSize = 12
lblFijosRequeridos.Color = xui.Color_LightGray
lblFijosRequeridos.Gravity = Gravity.CENTER
lblFijosRequeridos.SingleLine = True
pnlFijos.Initialize("pnlFijos")
pnlContainer.AddView(pnlFijos, 5dip, lblFijosRequeridos.Top + lblFijosRequeridos.Height + 10dip, pnlContainer.Width - 10dip, 100dip)
pnlFijos.Color = xui.Color_White
pnlFijos.Tag = "pnlFijos"
lblVariablesRequeridas1.Initialize("lblVariablesRequeridas1")
lblVariablesRequeridas1.TextColor = xui.Color_Black
lblVariablesRequeridas1.TextSize = 12
lblVariablesRequeridas1.Color = xui.Color_LightGray
lblVariablesRequeridas1.Gravity = Gravity.CENTER
lblVariablesRequeridas1.SingleLine = True
pnlVariables1.Initialize("pnlVariables1")
pnlContainer.AddView(pnlVariables1, 5dip, lblVariablesRequeridas1.Top + lblVariablesRequeridas1.Height + 10dip, pnlContainer.Width - 10dip, 100dip)
pnlVariables1.Color = xui.Color_White
pnlVariables1.Tag = "pnlVariables1"
lblVariablesRequeridas2.Initialize("lblVariablesRequeridas2")
lblVariablesRequeridas2.TextSize = 12
lblVariablesRequeridas2.Color = xui.Color_LightGray
lblVariablesRequeridas2.Gravity = Gravity.CENTER
lblVariablesRequeridas2.TextColor = xui.Color_Black
lblVariablesRequeridas2.SingleLine = True
pnlVariables2.Initialize("pnlVariables2")
pnlContainer.AddView(pnlVariables2, 5dip, lblVariablesRequeridas2.Top + lblVariablesRequeridas2.Height + 10dip, pnlContainer.Width - 10dip, 100dip)
pnlVariables2.Color = xui.Color_White
pnlVariables2.Tag = "pnlVariables2"
etLimiteSuma_Sub_pnl1.Initialize("etLimiteSuma_Sub_pnl1")
etLimiteSuma_Sub_pnl1.TextColor = xui.Color_Black
etLimiteSuma_Sub_pnl1.SingleLine = True
etLimiteSuma_Sub_pnl2.Initialize("etLimiteSuma_Sub_pnl2")
etLimiteSuma_Sub_pnl2.TextColor = xui.Color_Black
etLimiteSuma_Sub_pnl2.SingleLine = True
etLimiteSuma_Sub_pnl3.Initialize("etLimiteSuma_Sub_pnl3")
etLimiteSuma_Sub_pnl3.TextColor = xui.Color_Black
etLimiteSuma_Sub_pnl3.SingleLine = True
Dim anchoTotal As Int = pnlContainer.Width - 20dip
Dim ancholblFijosRequeridos As Int = anchoTotal * 0.65
Dim anchoEtLimiteSuma As Int = anchoTotal - ancholblFijosRequeridos
pnlContainer.AddView(lblFijosRequeridos, 10dip, 10dip, ancholblFijosRequeridos, 50dip)
pnlContainer.AddView(etLimiteSuma_Sub_pnl1, lblFijosRequeridos.Left + lblFijosRequeridos.Width + 10dip, 10dip, anchoEtLimiteSuma, 50dip)
pnlContainer.AddView(lblVariablesRequeridas1, 10dip, lblFijosRequeridos.Top + lblFijosRequeridos.Height + 10dip, ancholblFijosRequeridos, 50dip)
pnlContainer.AddView(etLimiteSuma_Sub_pnl2, lblVariablesRequeridas1.Left + lblVariablesRequeridas1.Width + 10dip, lblVariablesRequeridas1.Top, anchoEtLimiteSuma, 50dip)
pnlContainer.AddView(lblVariablesRequeridas2, 10dip, lblVariablesRequeridas1.Top + lblVariablesRequeridas1.Height + 10dip, ancholblFijosRequeridos, 50dip)
pnlContainer.AddView(etLimiteSuma_Sub_pnl3, lblVariablesRequeridas2.Left + lblVariablesRequeridas2.Width + 10dip, lblVariablesRequeridas2.Top, anchoEtLimiteSuma, 50dip)
lblVariablesRequeridas3.Initialize("lblVariablesRequeridas3")
lblVariablesRequeridas3.TextSize = 12
lblVariablesRequeridas3.Color = xui.Color_LightGray
lblVariablesRequeridas3.Gravity = Gravity.CENTER
lblVariablesRequeridas3.TextColor = xui.Color_Black
lblVariablesRequeridas3.SingleLine = True
etLimiteSuma_Sub_pnl4.Initialize("etLimiteSuma_Sub_pnl4")
etLimiteSuma_Sub_pnl4.TextColor = xui.Color_Black
etLimiteSuma_Sub_pnl4.SingleLine = True
pnlVariables3.Initialize("pnlVariables3")
pnlContainer.AddView(pnlVariables3, 5dip, lblVariablesRequeridas3.Top + lblVariablesRequeridas3.Height + 10dip, pnlContainer.Width - 10dip, 100dip)
pnlVariables3.Color = xui.Color_White
pnlVariables3.Tag = "pnlVariables3"
pnlContainer.AddView(lblVariablesRequeridas3, 10dip, lblVariablesRequeridas2.Top + lblVariablesRequeridas2.Height + 10dip, ancholblFijosRequeridos, 50dip)
pnlContainer.AddView(etLimiteSuma_Sub_pnl4, lblVariablesRequeridas3.Left + lblVariablesRequeridas3.Width + 10dip, lblVariablesRequeridas3.Top, anchoEtLimiteSuma, 50dip)
If VerificarCondicionesParabtnGuardaPromo Then
btnGuardaPromo.Visible = True
Else
btnGuardaPromo.Visible = False
End If
B4XPage_Appear
AjustarScroll
End Sub
Private Sub B4XPage_Appear
lblFijosRequeridos.Text = "0"
lblVariablesRequeridas1.Text = "0"
lblVariablesRequeridas2.Text = "0"
lblVariablesRequeridas3.Text = "0"
productosFijos = 0
variablesRequeridas1= 0
variablesRequeridas2= 0
variablesRequeridas3= 0
sumaVar1Tot = 0
sumaVar2Tot = 0
sumaVar3Tot = 0
If pnlFijos.IsInitialized Then pnlFijos.RemoveAllViews
If pnlVariables1.IsInitialized Then pnlVariables1.RemoveAllViews
If pnlVariables2.IsInitialized Then pnlVariables2.RemoveAllViews
If pnlVariables3.IsInitialized Then pnlVariables3.RemoveAllViews
btnGuardaPromo.Visible = False
Dim m As Map = Subs.traeTotalesClienteActual
prodsPedidoActual = m.Get("productos")
montoPedidoActual = m.Get("monto")
If laPromo <> "" Then
muestraPromo(laPromo, elCliente)
End If
ObtenerVariablesRequeridas(estaPromo)
ObtenerFijos(estaPromo)
ActualizarTotalValor
lblSumaTotal.Text = SumarFijos + SumarVariables1 +SumarVariables2 + SumarVariables3
ActualizarVisibilidadBtnGuardaPromo
AjustarScroll
scrollView.ScrollPosition = 0
End Sub
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'"$)
If cursorProductosFijos.RowCount > 0 Then
cursorProductosFijos.Position = 0
If cursorProductosFijos.GetInt("CAT_DP_PZAS") <> 0 And cursorProductosFijos.GetString("CAT_DP_PZAS") <> " " Then
productosFijos = cursorProductosFijos.GetInt("CAT_DP_PZAS")
Else
lblFijosRequeridos.Visible = False
etLimiteSuma_Sub_pnl1.Visible = False
pnlFijos.Visible = False
End If
Else
productosFijos = 0
End If
productosFijos_Iniciales = productosFijos
End Sub
Private Sub ObtenerVariablesRequeridas(promo As String)
Log("Esto es promo: " & promo)
Dim cursorVariablesReq As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_STS AS CAT_GP_VAR1REQ, CAT_GP_IMP1 AS CAT_GP_VAR2REQ, CAT_GP_VARREQ3 from cat_gunaprod2 where cat_gp_id = '${promo}'"$)
If cursorVariablesReq.RowCount > 0 Then
cursorVariablesReq.Position = 0
If cursorVariablesReq.GetInt("CAT_GP_VAR1REQ") <> 0 And cursorVariablesReq.GetString("CAT_GP_VAR1REQ") <> " " Then
variablesRequeridas1 = cursorVariablesReq.GetInt("CAT_GP_VAR1REQ")
Else
lblVariablesRequeridas1.Visible = False
etLimiteSuma_Sub_pnl2.Visible = False
pnlVariables1.Visible = False
End If
If cursorVariablesReq.GetInt("CAT_GP_VAR2REQ") <> 0 And cursorVariablesReq.GetString("CAT_GP_VAR2REQ") <> " " Then
variablesRequeridas2 = cursorVariablesReq.GetInt("CAT_GP_VAR2REQ")
Else
lblVariablesRequeridas2.Visible = False
etLimiteSuma_Sub_pnl3.Visible = False
pnlVariables2.Visible = False
End If
If cursorVariablesReq.GetInt("CAT_GP_VARREQ3") <> 0 And cursorVariablesReq.GetString("CAT_GP_VARREQ3") <> " " Then
variablesRequeridas3 = cursorVariablesReq.GetInt("CAT_GP_VARREQ3")
lblVariablesRequeridas3.Visible = True
etLimiteSuma_Sub_pnl4.Visible = True
pnlVariables3.Visible = True
Else
lblVariablesRequeridas3.Visible = False
etLimiteSuma_Sub_pnl4.Visible = False
pnlVariables3.Visible = False
End If
Else
variablesRequeridas1 = 0
variablesRequeridas2 = 0
variablesRequeridas3 = 0
End If
variablesRequeridas1_Inicial = variablesRequeridas1
variablesRequeridas2_Inicial = variablesRequeridas2
variablesRequeridas3_Inicial = variablesRequeridas3
End Sub
Sub muestraPromo(promo As String, cliente As String)
estaPromo = promo
Log("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" & estaPromo & "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
esteCliente = cliente
Private mp As Map = Subs.traePromo(promo, cliente)
Log("Esto es el minimo? <<<<<<<<" & Subs.MaxPromQuery(promo))
lblMaxPromo.Text = Subs.MaxPromQuery(promo)
lblSumPromo.Text = 1
Private cs As CSBuilder
cs.Initialize
lblNomPromo.text = cs.Color(Colors.RGB(100,149,237)).Size(18).Append("Promocion: ").Pop.Append(promo).Append(CRLF).Append(mp.Get("descripcion")).Popall
Log("|" &lblNomPromo.text&"|")
ObtenerVariablesRequeridas(promo)
ObtenerFijos(promo)
Log(etLimiteSuma_Sub_pnl2.Text)
If pnlFijos.IsInitialized Then pnlFijos.RemoveAllViews
If pnlVariables1.IsInitialized Then pnlVariables1.RemoveAllViews
If pnlVariables2.IsInitialized Then pnlVariables2.RemoveAllViews
If pnlVariables3.IsInitialized Then pnlVariables3.RemoveAllViews
Dim nombrePromo As String = lblNomPromo.Text
Dim nomPromo() As String = Regex.Split("\r\n|\n", nombrePromo)
Log("Esto es nombre promo? <<<<<<<<<<<|" & nomPromo(1) & "|")
Encabezado = nomPromo(1)
Log("Esto es encabezado? |" & Encabezado)
' Dim promoText As String = lblNomPromo.Text.Trim()
' Dim idPromo() As String = Regex.Split(":", promoText)
' Log("Esto es idPromo? | <<<<<<<<<<<<<<<<<<|" & idPromo(1).Trim() & "|")
If productosFijos > 0 Then
pnlFijos.Visible = True
lblFijosRequeridos.Visible = True
lblFijosRequeridos.Text = $"Productos Fijos: '${productosFijos}'"$
lblFijosRequeridos.Left = 0
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"$)
If cursorProdFijo.RowCount > 0 Then
For i = 0 To cursorProdFijo.RowCount - 1
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)
Next
End If
Else
pnlFijos.Visible = False
lblFijosRequeridos.Text = $"No hay productos Fijos"$
lblFijosRequeridos.Visible = False
End If
If variablesRequeridas1 > 0 Then
pnlVariables1.Visible = True
lblVariablesRequeridas1.Visible = True
lblVariablesRequeridas1.Text = $"Primeros Variables Requeridos: '${variablesRequeridas1}'"$
lblVariablesRequeridas1.Left = 0
lblVariablesRequeridas1.Width = Root.Width
Dim cursorNomProductosVar1 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 = 1"$)
If cursorNomProductosVar1.RowCount > 0 Then
For i = 0 To cursorNomProductosVar1.RowCount - 1
cursorNomProductosVar1.Position = i
GenerarVariables1(cursorNomProductosVar1.GetString("CAT_GP_NOMBRE"), cursorNomProductosVar1.GetString("CAT_GP_ALMACEN"), cursorNomProductosVar1.GetString("CAT_DP_PRECIO"), cursorNomProductosVar1.GetString("CAT_DP_IDPROD"), i)
Next
End If
Else
pnlVariables1.Visible = False
lblVariablesRequeridas1.Visible = False
End If
If variablesRequeridas2 > 0 Then
pnlVariables2.Visible = True
lblVariablesRequeridas2.Visible = True
lblVariablesRequeridas2.Text = $"Segundos Variables Requeridos: '${variablesRequeridas2}'"$
lblVariablesRequeridas2.Left = 0
lblVariablesRequeridas2.Width = Root.Width
Dim cursorNomProductosVar2 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 = 2"$)
If cursorNomProductosVar2.RowCount > 0 Then
For i = 0 To cursorNomProductosVar2.RowCount - 1
cursorNomProductosVar2.Position = i
GenerarVariables2(cursorNomProductosVar2.GetString("CAT_GP_NOMBRE"), cursorNomProductosVar2.GetString("CAT_GP_ALMACEN"), cursorNomProductosVar2.GetString("CAT_DP_PRECIO"), cursorNomProductosVar2.GetString("CAT_DP_IDPROD"), i)
Next
End If
Else
pnlVariables2.Visible = False
lblVariablesRequeridas2.Visible = False
End If
If variablesRequeridas3 > 0 Then
pnlVariables3.Visible = True
lblVariablesRequeridas3.Visible = True
lblVariablesRequeridas3.Text = $"Tercer Variables Requeridas: '${variablesRequeridas3}'"$
lblVariablesRequeridas3.Width = Root.Width
Dim cursorNomProductosVar3 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 = 3"$)
If cursorNomProductosVar3.RowCount > 0 Then
For i = 0 To cursorNomProductosVar3.RowCount - 1
cursorNomProductosVar3.Position = i
GenerarVariables3(cursorNomProductosVar3.GetString("CAT_GP_NOMBRE"), cursorNomProductosVar3.GetString("CAT_GP_ALMACEN"), cursorNomProductosVar3.GetString("CAT_DP_PRECIO"), cursorNomProductosVar3.GetString("CAT_DP_IDPROD"), i)
Next
End If
Else
pnlVariables3.Visible = False
lblVariablesRequeridas3.Visible = False
End If
AjustarScroll
End Sub
Private Sub btnMenosPromo_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Dim currentValue As Int = lblSumPromo.Text.As(Int)
If currentValue > 1 Then
currentValue = currentValue - 1
End If
lblSumPromo.Text = currentValue
productosFijos = productosFijos_Iniciales * currentValue
variablesRequeridas1 = variablesRequeridas1_Inicial * currentValue
variablesRequeridas2 = variablesRequeridas2_Inicial * currentValue
variablesRequeridas3 = variablesRequeridas3_Inicial * currentValue
sumaVar1Tot = 0
sumaVar2Tot = 0
sumaVar3Tot = 0
If pnlVariables1.IsInitialized Then
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
lblValueVar1.Text = "0"
Next
End If
If pnlVariables2.IsInitialized Then
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
lblValueVar2.Text = "0"
Next
End If
If pnlVariables3.IsInitialized Then
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
lblValueVar3.Text = "0"
Next
End If
lblFijosRequeridos.Text = $"Productos Fijos: '${productosFijos}'"$
lblVariablesRequeridas1.Text = $"Primeros Variables Requeridos: '${variablesRequeridas1}'"$
lblVariablesRequeridas2.Text = $"Segundos Variables Requeridos: '${variablesRequeridas2}'"$
lblVariablesRequeridas3.Text = $"Tercer Variables Requeridas: '${variablesRequeridas3}'"$
RecalcularSumas
ActualizarVisibilidadBtnGuardaPromo
End Sub
Private Sub btnSumaPromo_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Dim currentValue As Int = lblSumPromo.Text.As(Int)
Dim maxValue As Int = lblMaxPromo.Text.As(Int)
Log("Esto es currentValue: " & currentValue)
Log("Esto es maxValue: " & maxValue)
If currentValue < maxValue Then
Log("Esto es currentValue despues del if: " & currentValue)
Log("Esto es maxValue despues del if: " & maxValue)
currentValue = currentValue + 1
Log("Esto es una suma: " & (currentValue + 1))
End If
lblSumPromo.Text = currentValue
' Actualizar las variables requeridas
productosFijos = productosFijos_Iniciales * currentValue
variablesRequeridas1 = variablesRequeridas1_Inicial * currentValue
variablesRequeridas2 = variablesRequeridas2_Inicial * currentValue
variablesRequeridas3 = variablesRequeridas3_Inicial * currentValue
' Reiniciar las sumas totales
sumaVar1Tot = 0
sumaVar2Tot = 0
sumaVar3Tot = 0
' Forzar la actualización de los EditText
If pnlVariables1.IsInitialized Then
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
lblValueVar1.Text = "0" ' Reiniciar el valor
Next
End If
If pnlVariables2.IsInitialized Then
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
lblValueVar2.Text = "0" ' Reiniciar el valor
Next
End If
If pnlVariables3.IsInitialized Then
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
lblValueVar3.Text = "0" ' Reiniciar el valor
Next
End If
' Actualizar las etiquetas
lblFijosRequeridos.Text = $"Productos Fijos: '${productosFijos}'"$
lblVariablesRequeridas1.Text = $"Primeros Variables Requeridos: '${variablesRequeridas1}'"$
lblVariablesRequeridas2.Text = $"Segundos Variables Requeridos: '${variablesRequeridas2}'"$
lblVariablesRequeridas3.Text = $"Tercer Variables Requeridas: '${variablesRequeridas3}'"$
' Recalcular sumas y actualizar la interfaz
RecalcularSumas
ActualizarVisibilidadBtnGuardaPromo
End Sub
Private Sub btnVars1Mas_Click
' Dim totalVar1 As Int = 0
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Log("Iniciamos boton mas")
Log("Variables requeridas = " & variablesRequeridas1)
Log(sumaVar1Tot.As(Int) > variablesRequeridas1.As(Int))
If sumaVar1Tot.As(Int) >= variablesRequeridas1.As(Int) Then
Log("Entramos al primer if")
ToastMessageShow("No se pueden agregar más productos, ya se alcanzó el máximo.", True)
Return
End If
Log("Termiamos boton mas")
sumaVar1Tot = SumarVariables1
Dim pnlProducto As Panel = Sender.As(View).Parent
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
Dim currentValue As Int = lblValueVar1.Text.As(Int)
currentValue = currentValue + 1
lblValueVar1.Text = currentValue
sumaVar1Tot = sumaVar1Tot + 1
RecalcularSumas
End Sub
Private Sub btnVars1Menos_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Dim pnlProducto As Panel
pnlProducto = Sender.As(View).Tag
Dim lblValue As Label = pnlProducto.GetView(2)
Dim currentValue As Int
If IsNumber(lblValue.Text) Then
currentValue = lblValue.Text.As(Int)
Else
currentValue = 0
End If
If currentValue > 0 Then
currentValue = currentValue - 1
lblValue.Text = currentValue
sumaVar1Tot = sumaVar1Tot - 1
RecalcularSumas
End If
End Sub
Private Sub btnVars2Mas_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
If sumaVar2Tot >= variablesRequeridas2 Then
ToastMessageShow("No se pueden agregar más productos, ya se alcanzó el máximo.", True)
Return
End If
Dim pnlProducto As Panel = Sender.As(View).Parent
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
Dim currentValue As Int = lblValueVar2.Text.As(Int)
currentValue = currentValue + 1
lblValueVar2.Text = currentValue
sumaVar2Tot = sumaVar2Tot + 1
RecalcularSumas
End Sub
Private Sub btnVars2Menos_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Dim pnlProducto As Panel
pnlProducto = Sender.As(View).Tag
Dim lblValue As Label = pnlProducto.GetView(2)
Dim currentValue As Int
If IsNumber(lblValue.Text) Then
currentValue = lblValue.Text.As(Int)
Else
currentValue = 0
End If
If currentValue > 0 Then
currentValue = currentValue - 1
lblValue.Text = currentValue
sumaVar2Tot = sumaVar2Tot - 1
RecalcularSumas
End If
End Sub
Private Sub btnVars3Mas_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
If sumaVar3Tot >= variablesRequeridas3 Then
ToastMessageShow("No se pueden agregar más productos, ya se alcanzó el máximo.", True)
Return
End If
Dim pnlProducto As Panel = Sender.As(View).Parent
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
Dim currentValue As Int = lblValueVar3.Text.As(Int)
currentValue = currentValue + 1
lblValueVar3.Text = currentValue
sumaVar3Tot = sumaVar3Tot + 1
RecalcularSumas
End Sub
Private Sub btnVars3Menos_Click
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = False
Dim pnlProducto As Panel
pnlProducto = Sender.As(View).Tag
Dim lblValue As Label = pnlProducto.GetView(2)
Dim currentValue As Int
If IsNumber(lblValue.Text) Then
currentValue = lblValue.Text.As(Int)
Else
currentValue = 0
End If
If currentValue > 0 Then
currentValue = currentValue - 1
lblValue.Text = currentValue
sumaVar3Tot = sumaVar3Tot - 1
RecalcularSumas
End If
End Sub
Private Sub GenerarFijos(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int)
If Not(pnlFijos.IsInitialized) Then
Return
End If
Private estePrecio As String = precio
Dim pnlProducto As Panel
pnlProducto.Initialize("pnlProducto")
pnlProducto.SetLayout(0, 0, pnlFijos.Width, 70dip)
Dim lblNombre As Label
lblNombre.Initialize("lblNombre")
lblNombre.Text = nombreProd & CRLF & "Hay " & inventario & " $" & NumberFormat2(estePrecio,1,2,2,True)
lblNombre.Tag = idProducto
lblNombre.TextSize = 12
lblNombre.TextColor = xui.Color_Black
lblNombre.Gravity = Gravity.LEFT + Gravity.CENTER_VERTICAL
pnlProducto.AddView(lblNombre, 10dip, 10dip, pnlProducto.Width * 0.75 - 20dip, 50dip)
pnlProducto.Tag = estePrecio
pnlFijos.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlFijos.Width, 70dip)
pnlFijos.Height = (numberOfViews * 70dip) + 70dip
AjustarScroll
End Sub
Private Sub GenerarVariables1(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int)
If Not(pnlVariables1.IsInitialized) Then Return
Private estePrecio As String = precio
Dim pnlProducto As Panel
pnlProducto.Initialize("pnlProducto")
pnlProducto.SetLayout(0, 0, pnlVariables1.Width, 50dip)
Dim lblNombre As Label
lblNombre.Initialize("lblNombre")
lblNombre.Text = nombreProd & CRLF & "Hay " & inventario & " $" & NumberFormat2(estePrecio,1,2,2,True)
lblNombre.Tag = idProducto
lblNombre.TextSize = 12
lblNombre.TextColor = xui.Color_Black
lblNombre.Gravity = Gravity.LEFT + Gravity.CENTER_VERTICAL
pnlProducto.AddView(lblNombre, 10dip, 10dip, pnlProducto.Width * 0.75 - 20dip, 50dip)
Dim btnWidth As Int = pnlProducto.Width * 0.25 / 3
Dim lblWidth As Int = btnWidth
Dim spacing As Int = 5dip
Dim btnMenos As Button
btnMenos.Initialize("btnVars1Menos")
btnMenos.Tag = pnlProducto
btnMenos.Text = $"-"$
btnMenos.TextSize = 20
btnMenos.Color = Colors.RGB(185, 106, 106)
btnMenos.TextColor = xui.Color_White
pnlProducto.AddView(btnMenos, pnlProducto.Width - btnWidth - spacing * 2 - lblWidth - btnWidth, 10dip, btnWidth, pnlProducto.Height - 10dip)
Dim lblValueVar1 As Label
lblValueVar1.Initialize("lblValueVar1") ' Asignar el evento TextChanged aquí
' lblValueVar1.InputType = lblValueVar1.INPUT_TYPE_NUMBERS
' lblValueVar1.Hint = "0"
lblValueVar1.Text = "0"
lblValueVar1.TextColor = xui.Color_Black
lblValueVar1.Gravity = Gravity.CENTER
lblValueVar1.TextSize = 12
lblValueVar1.Tag = pnlProducto ' Asignar el panel como tag
pnlProducto.AddView(lblValueVar1, btnMenos.Left + btnMenos.Width + spacing, 10dip, lblWidth, pnlProducto.Height - 10dip)
Dim btnMas As Button
btnMas.Initialize("btnVars1Mas")
btnMas.Tag = pnlProducto
btnMas.Text = $"+"$
btnMas.TextSize = 20
btnMas.Color = Colors.RGB(133, 185, 106)
btnMas.TextColor = xui.Color_White
pnlProducto.AddView(btnMas, lblValueVar1.Left + lblValueVar1.Width + spacing, 10dip, btnWidth, pnlProducto.Height - 10dip)
pnlProducto.Tag = estePrecio
pnlVariables1.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlVariables1.Width, 70dip)
pnlVariables1.Height = (numberOfViews * 70dip) + 70dip
AjustarScroll
End Sub
Private Sub GenerarVariables2(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int)
If Not(pnlVariables2.IsInitialized) Then Return
Private estePrecio As String = precio
Dim pnlProducto As Panel
pnlProducto.Initialize("pnlProducto")
pnlProducto.SetLayout(0, 0, pnlVariables2.Width, 50dip)
Dim lblNombre As Label
lblNombre.Initialize("lblNombre")
lblNombre.Text = nombreProd & CRLF & "Hay " & inventario & " $" & NumberFormat2(estePrecio,1,2,2,True)
lblNombre.Tag = idProducto
lblNombre.TextSize = 12
lblNombre.TextColor = xui.Color_Black
lblNombre.Gravity = Gravity.LEFT + Gravity.CENTER_VERTICAL
pnlProducto.AddView(lblNombre, 10dip, 10dip, pnlProducto.Width * 0.75 - 20dip, 50dip)
Dim btnWidth As Int = pnlProducto.Width * 0.25 / 3
Dim lblWidth As Int = btnWidth
Dim spacing As Int = 5dip
Dim btnMenos As Button
btnMenos.Initialize("btnVars2Menos")
btnMenos.Tag = pnlProducto
btnMenos.Text = $"-"$
btnMenos.TextSize = 20
btnMenos.Color = Colors.RGB(185, 106, 106)
btnMenos.TextColor = xui.Color_White
pnlProducto.AddView(btnMenos, pnlProducto.Width - btnWidth - spacing * 2 - lblWidth - btnWidth, 10dip, btnWidth, pnlProducto.Height - 10dip)
Dim lblValueVar2 As Label
lblValueVar2.Initialize("lblValueVar2")
' lblValueVar2.InputType = lblValueVar2.INPUT_TYPE_NUMBERS
' lblValueVar2.Hint = "0"
lblValueVar2.Text = "0"
lblValueVar2.TextColor = xui.Color_Black
lblValueVar2.Gravity = Gravity.CENTER
lblValueVar2.TextSize = 12
lblValueVar2.Tag = pnlProducto
pnlProducto.AddView(lblValueVar2, btnMenos.Left + btnMenos.Width + spacing, 10dip, lblWidth, pnlProducto.Height - 10dip)
Dim btnMas As Button
btnMas.Initialize("btnVars2Mas")
btnMas.Tag = pnlProducto
btnMas.Text = $"+"$
btnMas.TextSize = 20
btnMas.Color = Colors.RGB(133, 185, 106)
btnMas.TextColor = xui.Color_White
pnlProducto.AddView(btnMas, lblValueVar2.Left + lblValueVar2.Width + spacing, 10dip, btnWidth, pnlProducto.Height - 10dip)
pnlProducto.Tag = estePrecio
pnlVariables2.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlVariables2.Width, 70dip)
pnlVariables2.Height = (numberOfViews * 70dip) + 70dip
AjustarScroll
End Sub
Private Sub GenerarVariables3(nombreProd As String, inventario As String, precio As String, idProducto As String, numberOfViews As Int)
If Not(pnlVariables3.IsInitialized) Then Return
Private estePrecio As String = precio
Dim pnlProducto As Panel
pnlProducto.Initialize("pnlProducto")
pnlProducto.SetLayout(0, 0, pnlVariables3.Width, 50dip)
Dim lblNombre As Label
lblNombre.Initialize("lblNombre")
lblNombre.Text = nombreProd & CRLF & "Hay " & inventario & " $" & NumberFormat2(estePrecio,1,2,2,True)
lblNombre.Tag = idProducto
lblNombre.TextSize = 12
lblNombre.TextColor = xui.Color_Black
lblNombre.Gravity = Gravity.LEFT + Gravity.CENTER_VERTICAL
pnlProducto.AddView(lblNombre, 10dip, 10dip, pnlProducto.Width * 0.75 - 20dip, 50dip)
Dim btnWidth As Int = pnlProducto.Width * 0.25 / 3
Dim lblWidth As Int = btnWidth
Dim spacing As Int = 5dip
Dim btnMenos As Button
btnMenos.Initialize("btnVars3Menos")
btnMenos.Tag = pnlProducto
btnMenos.Text = $"-"$
btnMenos.TextSize = 20
btnMenos.Color = Colors.RGB(185, 106, 106)
btnMenos.TextColor = xui.Color_White
pnlProducto.AddView(btnMenos, pnlProducto.Width - btnWidth - spacing * 2 - lblWidth - btnWidth, 10dip, btnWidth, pnlProducto.Height - 10dip)
Dim lblValueVar3 As Label
lblValueVar3.Initialize("lblValueVar3")
' lblValueVar3.InputType = lblValueVar3.INPUT_TYPE_NUMBERS
' lblValueVar3.Hint = "0"
lblValueVar3.Text = "0"
lblValueVar3.TextColor = xui.Color_Black
lblValueVar3.Gravity = Gravity.CENTER
lblValueVar3.TextSize = 12
lblValueVar3.Tag = pnlProducto
pnlProducto.AddView(lblValueVar3, btnMenos.Left + btnMenos.Width + spacing, 10dip, lblWidth, pnlProducto.Height - 10dip)
Dim btnMas As Button
btnMas.Initialize("btnVars3Mas")
btnMas.Tag = pnlProducto
btnMas.Text = $"+"$
btnMas.TextSize = 20
btnMas.Color = Colors.RGB(133, 185, 106)
btnMas.TextColor = xui.Color_White
pnlProducto.AddView(btnMas, lblValueVar3.Left + lblValueVar3.Width + spacing, 10dip, btnWidth, pnlProducto.Height - 10dip)
pnlProducto.Tag = estePrecio
pnlVariables3.AddView(pnlProducto, 0, numberOfViews * 70dip, pnlVariables3.Width, 70dip)
pnlVariables3.Height = (numberOfViews * 70dip) + 70dip
AjustarScroll
End Sub
'Private Sub lblValueVar1_TextChanged (Old As String, New As String)
' Dim totalVar1 As Int = 0
' If New = "" Or New = Null Then New = 0
' If Old = "" Or Old = Null Then Old = 0
' If New = "-" Then New = 0
' etVar1HasFocus = True
' totalVar1 = SumarVariables1
' If etVar1HasFocus = True Then
'' Log("Entramos a 1er If")
' Dim variablesRequeridas1int As Int = New
' If New = "" Then
'' Log("Entramos a 2do If")
' New = 0
' End If
' If New < 0 Then
'' Log("Entramos a 3er If")
' New = 0
' Else
'' Log("Entramos a else")
' If totalVar1 <= variablesRequeridas1 Then
'
' Else If totalVar1 > variablesRequeridas1 Then
' variablesRequeridas1int = variablesRequeridas1 - sumaVar1Tot
' If variablesRequeridas1int < 1 Then variablesRequeridas1int = 0
'' isProgrammaticChange = True
' Log("Ponemos valor en tal desde extChanged " & variablesRequeridas1int)
' Sender.As(EditText).Text = variablesRequeridas1int
' End If
' End If
' sumaVar1Tot = totalVar1
' RecalcularSumas
' End If
'' Log("Salimos")
'End Sub
'
'Private Sub lblValueVar2_TextChanged (Old As String, New As String)
' If isProgrammaticChange Then
' isProgrammaticChange = False
' Return
' End If
'
' Log("---------------------------------")
' Dim totalVar2 As Int = 0
'
' If pnlVariables2.IsInitialized Then
' For i = 0 To pnlVariables2.NumberOfViews - 1
' Dim pnlProducto As Panel = pnlVariables2.GetView(i)
' Dim lblValueVar2 As EditText = pnlProducto.GetView(2)
' If lblValueVar2.Text = "" Then
' lblValueVar2.Text = 0
' End If
' Log("Esto es total var2Antes : "&totalVar2)
' Log("Esto es ET2: "&lblValueVar2.Text.As(Int))
' totalVar2 = totalVar2 + lblValueVar2.Text.As(Int)
' Log("Esto es total var2: "&totalVar2)
' Next
' End If
'
' etVar2HasFocus = True
' Log("Esto es El focus2: " & etVar2HasFocus)
' If etVar2HasFocus = True And etVar1HasFocus = False And etVar3HasFocus = False Then
' If New = "" Or New = Null Then New = 0
' If Old = "" Or Old = Null Then Old = 0
' If New = "-" Then New = 0
' Dim variablesRequeridas2int As Int = New
' If New = "" Then
' New = 0
' End If
' If New < 0 Then
' New = 0
' Else
'' Log("---------------------------------")
' Log("Variables Requeridas2: " & variablesRequeridas2)
' Log("Valor EditText2: " & totalVar2)
' Log(totalVar2 <= variablesRequeridas2)
' If totalVar2 <= variablesRequeridas2 Then
'' Log("---------------------------------")
' Log("Estoy entrando aca")
' Else If totalVar2 > variablesRequeridas2 Then
' variablesRequeridas2int = variablesRequeridas2 - sumaVar2Tot
' If variablesRequeridas2int < 1 Then variablesRequeridas2int = 0
' isProgrammaticChange = True
' Sender.As(EditText).Text = variablesRequeridas2int
' End If
' End If
' sumaVar2Tot = totalVar2
' RecalcularSumas
' End If
'End Sub
'
'Private Sub lblValueVar3_TextChanged (Old As String, New As String)
' If isProgrammaticChange Then
' isProgrammaticChange = False
' Return
' End If
'
' Log("---------------------------------")
' Dim totalVar3 As Int = 0
'
' If pnlVariables3.IsInitialized Then
' For i = 0 To pnlVariables3.NumberOfViews - 1
' Dim pnlProducto As Panel = pnlVariables3.GetView(i)
' Dim lblValueVar3 As EditText = pnlProducto.GetView(2)
' If lblValueVar3.Text = "" Then
' lblValueVar3.Text = 0
' End If
' Log("Esto es total var3Antes : "& totalVar3)
' Log("Esto es ET3: "& lblValueVar3.Text.As(Int))
' totalVar3 = totalVar3 + lblValueVar3.Text.As(Int)
' Log("Esto es total var3: "&totalVar3)
' Next
' End If
'
' etVar3HasFocus = True
' Log("Esto es El focus3: " & etVar3HasFocus)
' If etVar3HasFocus = True And etVar1HasFocus = False And etVar2HasFocus = False Then
' If New = "" Or New = Null Then New = 0
' If Old = "" Or Old = Null Then Old = 0
' If New = "-" Then New = 0
' Dim variablesRequeridas3int As Int = New
' If New = "" Then
' New = 0
' End If
' If New < 0 Then
' New = 0
' Else
'' Log("---------------------------------")
' Log("Variables Requeridas3: " & variablesRequeridas3)
' Log("Valor EditText3: " & totalVar3)
' Log(totalVar3 <= variablesRequeridas3)
' If totalVar3 <= variablesRequeridas3 Then
'' Log("---------------------------------")
' Log("Estoy entrando aca")
' Else If totalVar3 > variablesRequeridas3 Then
' variablesRequeridas3int = variablesRequeridas3 - sumaVar3Tot
' Log(variablesRequeridas3)
' Log("Valor EditText3: " & totalVar3)
' Log(sumaVar3Tot)
' Log(variablesRequeridas3int)
' Log("Estoy entrando aqui Var3")
' If variablesRequeridas3int < 1 Then variablesRequeridas3int = 0
' isProgrammaticChange = True
' Sender.As(EditText).Text = variablesRequeridas3int
' End If
' End If
' sumaVar3Tot = totalVar3
' RecalcularSumas
' End If
'End Sub
'
'Sub lblValueVar1_FocusChanged (HasFocus As Boolean)
' etVar1HasFocus = HasFocus
' etVar2HasFocus = False
' etVar3HasFocus = False
' Log("FocusChanged: " & HasFocus)
' If HasFocus Then
' Log("El EditText tiene el foco.")
' Else
' Log("El EditText perdió el foco.")
' End If
'End Sub
'
'Sub lblValueVar2_FocusChanged (HasFocus As Boolean)
' etVar1HasFocus = False
' etVar2HasFocus = HasFocus
' etVar3HasFocus = False
' Log("FocusChanged: " & HasFocus)
' If HasFocus Then
' Log("El EditText tiene el foco.")
' Else
' Log("El EditText perdió el foco.")
' End If
'End Sub
'
'Sub lblValueVar3_FocusChanged (HasFocus As Boolean)
' etVar1HasFocus = False
' etVar2HasFocus = False
' etVar3HasFocus = HasFocus
' Log("FocusChanged: " & HasFocus)
' If HasFocus Then
' Log("El EditText tiene el foco.")
' Else
' Log("El EditText perdió el foco.")
' End If
'End Sub
Private Sub RecalcularSumas
lblSumaTotal.Text = SumarFijos + SumarVariables1 + SumarVariables2 + SumarVariables3
ActualizarTotalValor
ActualizarVisibilidadBtnGuardaPromo
End Sub
Private Sub AjustarScroll
Dim baseHeight As Int = 0
If productosFijos > 0 And pnlFijos.Visible Then
lblFijosRequeridos.Top = baseHeight
etLimiteSuma_Sub_pnl1.Top = lblFijosRequeridos.Top
baseHeight = baseHeight + lblFijosRequeridos.Height
pnlFijos.Top = baseHeight
baseHeight = baseHeight + pnlFijos.Height
End If
If variablesRequeridas1 > 0 And pnlVariables1.Visible Then
lblVariablesRequeridas1.Top = baseHeight
etLimiteSuma_Sub_pnl2.Top = lblVariablesRequeridas1.Top
baseHeight = baseHeight + lblVariablesRequeridas1.Height
pnlVariables1.Top = baseHeight
baseHeight = baseHeight + pnlVariables1.Height
End If
If variablesRequeridas2 > 0 And pnlVariables2.Visible Then
lblVariablesRequeridas2.Top = baseHeight
etLimiteSuma_Sub_pnl3.Top = lblVariablesRequeridas2.Top
baseHeight = baseHeight + lblVariablesRequeridas2.Height
pnlVariables2.Top = baseHeight
baseHeight = baseHeight + pnlVariables2.Height
End If
If variablesRequeridas3 > 0 And pnlVariables3.Visible Then
lblVariablesRequeridas3.Top = baseHeight
etLimiteSuma_Sub_pnl4.Top = lblVariablesRequeridas3.Top
baseHeight = baseHeight + lblVariablesRequeridas3.Height
pnlVariables3.Top = baseHeight
baseHeight = baseHeight + pnlVariables3.Height
End If
scrollView.Panel.Height = baseHeight
pnlProdTot.Top = Root.Height - pnlProdTot.Height
End Sub
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)
' Log("Esto es encabezado>>>>>>>>>>" & Encabezado)
If productosFijos > 0 Then
Log("Guardando productos fijos...")
For i = 0 To pnlFijos.NumberOfViews - 1
Dim pnlProducto As Panel = pnlFijos.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim cantidad As Int = productosFijos
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
Log("Esto es el nombre dle producto? <<<<<<<<<<<<<<<<<<<<<<<|" &nomProd(1) & "|")
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)
End If
Next
Else
Log("No hay productos fijos para guardar.")
End If
If variablesRequeridas1 > 0 Then
Log("Guardando productos variables (Grupo 1)...")
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar1.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Private idProducto As String = lblNombre.tag
Dim nombreProducto As String = lblNombre.Text
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
If cantidad > 0 Then
Log($"Guardando producto variable (Grupo 1): ${nombreProducto}, Cantidad: ${cantidad}, Precio: ${precioProducto}"$)
Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
End If
Next
Else
Log("No hay productos variables (Grupo 1) para guardar.")
End If
If variablesRequeridas2 > 0 Then
Log("Guardando productos variables (Grupo 2)...")
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar2.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Private idProducto As String = lblNombre.tag
Dim nombreProducto As String = lblNombre.Text
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
If cantidad > 0 Then
Log($"Guardando producto variable (Grupo 2): ${nombreProducto}, Cantidad: ${cantidad}, Precio: ${precioProducto}"$)
Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
End If
Next
Else
Log("No hay productos variables (Grupo 2) para guardar.")
End If
If variablesRequeridas3 > 0 Then
Log("Guardando productos variables (Grupo 3)...")
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar3.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
If cantidad > 0 Then
Log($"Guardando producto variable (Grupo 3): ${nombreProducto}, Cantidad: ${cantidad}, Precio: ${precioProducto}"$)
Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
End If
Next
Else
Log("No hay productos variables (Grupo 3) para guardar.")
End If
Log("Marcando bTerminarClicked como True...")
B4XPages.MainPage.bTerminarClicked = True
Log("Navegando a la página de productos...")
B4XPages.ShowPage("productos")
Log("Ejecutando b_terminar1_Click en la página de productos...")
B4XPages.MainPage.productos.b_terminar1_Click
Log("btnGuardaPromo_Click finalizado.")
End Sub
Private Sub btnContinuar_Click
Subs.guardaProductoSinGestion(estaPromo, 0, lblSumPromo.Text, Encabezado, estaPromo, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
' Log(Encabezado)
If productosFijos > 0 Then
For i = 0 To pnlFijos.NumberOfViews - 1
Dim pnlProducto As Panel = pnlFijos.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim cantidad As Int = productosFijos
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
Subs.guardaProductoSinGestion(estaPromo, precioProducto, cantidad, nomProd(0), idProducto, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
Log("" & estaPromo & "" & precioProducto & "" & cantidad & "" & nomProd(0) & "" & idProducto & "" & Subs.traeCliente & "" & Subs.traeFecha & "" & Subs.traeUsuarioDeBD & "" & Subs.traeRuta & "" & 0 & "" & B4XPages.MainPage.tipo_venta)
Next
Else
Log("No hay productos fijos para guardar.")
End If
If variablesRequeridas1 > 0 Then
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar1.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
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)
End If
Next
Else
Log("No hay productos variables (Grupo 1) para guardar.")
End If
If variablesRequeridas2 > 0 Then
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar2.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
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)
End If
Next
Else
Log("No hay productos variables (Grupo 2) para guardar.")
End If
If variablesRequeridas3 > 0 Then
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar3.Text.As(Int)
Dim lblNombre As Label = pnlProducto.GetView(0)
Dim nombreProducto As String = lblNombre.Text
Private idProducto As String = lblNombre.tag
Dim nomProd() As String = Regex.Split("\r\n|\n", nombreProducto)
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)
End If
Next
Else
Log("No hay productos variables (Grupo 3) para guardar.")
End If
Private prodspage As C_Productos
If prodspage.IsInitialized Then
prodspage.lv_catalogos.Visible = True
prodspage.lv_promos.Visible = False
prodspage.clv_productos.AsView.Visible = False
End If
B4XPages.MainPage.bTerminarClicked = True
B4XPages.ShowPage("productos")
Log("btnContinuar_Click finalizado.")
End Sub
Private Sub ActualizarVisibilidadBtnGuardaPromo
Dim condicionesCumplidas As Boolean = VerificarCondicionesParabtnGuardaPromo
If condicionesCumplidas Then
btnGuardaPromo.Visible = True
btnGuardaPromo.Enabled = True
btnContinuar.Visible = True
btnContinuar.Enabled = True
Else
btnGuardaPromo.Visible = False
btnGuardaPromo.Enabled = False
btnContinuar.Visible = False
btnContinuar.Enabled = False
End If
AjustarScroll
End Sub
Private Sub VerificarCondicionesParabtnGuardaPromo As Boolean
Dim hayProductosFijos As Boolean = (productosFijos > 0)
Dim hayVar1 As Boolean = (variablesRequeridas1 > 0)
Dim hayVar2 As Boolean = (variablesRequeridas2 > 0)
Dim hayVar3 As Boolean = (variablesRequeridas3 > 0)
If Not(hayProductosFijos) And Not(hayVar1) And Not(hayVar2) And Not(hayVar3) Then
Log("No hay valores mayores a 0, no se muestra el botón.")
Return False
End If
If hayVar1 Or hayVar2 Or hayVar3 Then
Dim condicionVar1 As Boolean = True
Dim condicionVar2 As Boolean = True
Dim condicionVar3 As Boolean = True
If hayVar1 Then
condicionVar1 = (SumarVariables1 = variablesRequeridas1)
' Log("Condición Var1: " & condicionVar1)
End If
If hayVar2 Then
condicionVar2 = (SumarVariables2 = variablesRequeridas2)
' Log("Condición Var2: " & condicionVar2)
End If
If hayVar3 Then
condicionVar3 = (SumarVariables3 = variablesRequeridas3)
' Log("Condición Var3: " & condicionVar3)
End If
If condicionVar1 And condicionVar2 And condicionVar3 Then
' Log("Todas las condiciones de variables requeridas se cumplen, se muestra el botón.")
Return True
Else
' Log("No se cumplen todas las condiciones de variables requeridas, no se muestra el botón.")
Return False
End If
End If
If hayProductosFijos Then
Return True
End If
' Log("No hay valores mayores a 0, no se muestra el botón.")
Return False
End Sub
Private Sub SumarFijos As Int
Dim totalFijos As Int = 0
If pnlFijos.IsInitialized Then
totalFijos = totalFijos + productosFijos
End If
Return totalFijos
End Sub
Private Sub SumarVariables1 As Int
Dim totalVar1 As Int = 0
If pnlVariables1.IsInitialized Then
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
If lblValueVar1.Text = "" Or lblValueVar1.Text = "-" Or lblValueVar1.Text = " " Then
lblValueVar1.Text = 0
End If
totalVar1 = totalVar1 + lblValueVar1.Text.As(Int)
Next
End If
Log("Total variables 1= " & totalVar1)
Return totalVar1
End Sub
Private Sub SumarVariables2 As Int
Dim totalVar2 As Int = 0
If pnlVariables2.IsInitialized Then
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
If lblValueVar2.Text = "" Then
lblValueVar2.Text = 0
End If
totalVar2 = totalVar2 + lblValueVar2.Text.As(Int)
Next
End If
Return totalVar2
End Sub
Private Sub SumarVariables3 As Int
Dim totalVar3 As Int = 0
If pnlVariables3.IsInitialized Then
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
If lblValueVar3.Text = "" Then
lblValueVar3.Text = 0
End If
totalVar3 = totalVar3 + lblValueVar3.Text.As(Int)
Next
End If
Return totalVar3
End Sub
Private Sub CalcularTotalValor As Float
Dim total As Float = 0
If pnlFijos.IsInitialized And productosFijos > 0 Then
For i = 0 To pnlFijos.NumberOfViews - 1
Dim pnlProducto As Panel = pnlFijos.GetView(i)
Dim precioProducto As Float = pnlProducto.Tag.As(Float)
total = total + (precioProducto * productosFijos)
Next
End If
If pnlVariables1.IsInitialized Then
For i = 0 To pnlVariables1.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables1.GetView(i)
Dim lblValueVar1 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar1.Text.As(Int)
If cantidad > 0 Then
total = total + (pnlProducto.Tag.As(Float) * cantidad)
End If
Next
End If
If pnlVariables2.IsInitialized Then
For i = 0 To pnlVariables2.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables2.GetView(i)
Dim lblValueVar2 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar2.Text.As(Int)
If cantidad > 0 Then
total = total + (pnlProducto.Tag.As(Float) * cantidad)
End If
Next
End If
If pnlVariables3.IsInitialized Then
For i = 0 To pnlVariables3.NumberOfViews - 1
Dim pnlProducto As Panel = pnlVariables3.GetView(i)
Dim lblValueVar3 As Label = pnlProducto.GetView(2)
Dim cantidad As Int = lblValueVar3.Text.As(Int)
If cantidad > 0 Then
total = total + (pnlProducto.Tag.As(Float) * cantidad)
End If
Next
End If
Return total
End Sub
Private Sub ActualizarTotalValor
Dim total As Float = CalcularTotalValor
lblTotalValor.Text = NumberFormat(total, 1, 2)
End Sub