From f66a527ee0afdce62fa3275059a765cf64ad3e00 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sat, 30 Mar 2024 00:22:07 -0600 Subject: [PATCH] =?UTF-8?q?-=20Se=20agreg=C3=B3=20que=20cuando=20son=20pag?= =?UTF-8?q?os=20multiples,=20y=20hay=20efectivo,=20se=20genere=20una=20ord?= =?UTF-8?q?en=20con=20pago=20de=20tarjeta=20que=20contenga=20todos=20los?= =?UTF-8?q?=20productos=20de=20la=20orden=20y=20a=20esa=20orden=20se=20le?= =?UTF-8?q?=20descuente=20el=20total=20del=20efectivo,=20asi=20tenemos=20l?= =?UTF-8?q?a=20orden=20completa,=20con=20el=20momto=20correcto=20(tarjeta?= =?UTF-8?q?=20menos=20efectivo).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/C_Principal.bas | 129 ++++++++++++++++++++++++++++++++++-------- B4A/Lanterna.b4a | 2 +- B4A/Lanterna.b4a.meta | 2 +- 3 files changed, 108 insertions(+), 25 deletions(-) diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 74ca3c0..22ddd65 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -1006,6 +1006,8 @@ Private Sub p_mesasItem_Click Starter.comensalesActuales = m.Get("comensales") Starter.totalActual = m.Get("subtotal") l_mesa.Text = $"MESA ${m.Get("nombre")}"$ + cb_opcionEfectivo.Checked = False + cb_mostrarDescuento.Checked = False cb_opcionEfectivo_CheckedChange(False) ' Log(m) b_mesaCerrar.Tag = m @@ -1041,12 +1043,12 @@ End Sub Private Sub p_mesasItem_LongClick Private m As Map = Sender.As(Panel).tag If m.Get("estatus") <> "CERRADA" Then - Log(m) +' Log(m) Private c As Cursor = Starter.skmt.ExecQuery($"select M_ID from CAT_MESAS where ifnull(M_ESTATUS, 0) <> 'ABIERTA' order by M_ID"$) If c.RowCount > 0 Then Private listaMesas As List listaMesas.Initialize - Log(c.RowCount) +' Log(c.RowCount) For i = 0 To c.RowCount - 1 c.Position = i listaMesas.Add(c.GetInt("M_ID")) @@ -1209,6 +1211,13 @@ Private Sub b_pagoCerrar_Click Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = 'MULTI-TICKET', PE_TICKET = '${sigTicketMT}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'MULTI-TICKET', PT_TICKET = '${sigTicketMT}', PT_PROPINA = '0', PT_PAGO_PROPINA = '0' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$) 'Reseteamos la mesa a cerrada. + Private primeraVez As Boolean = True +'' Private descuentoAplicado As Boolean = False + Private ticketAnt As String = "" + Private pagoAnt As String = "" + Private descXEfectivo As String = "" + Log($"${listaFormaDePago}|${listaMontoDePago}"$) + For fdp = 0 To listaFormasDePagoCB.Size - 1 formaPago = listaFormaDePago.Get(fdp) If formaPago = "Efectivo" Then @@ -1217,17 +1226,58 @@ Private Sub b_pagoCerrar_Click tipoPago = "TARJETA" 'Pago con tarjeta End If Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago) - Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago, formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) + + LogColor($"${primeraVez} - ${tipoPago} - |${formaPago}|"$, Colors.Red) + If primeraVez And tipoPago = "TARJETA" Then + Log("INSERTAMOS TARJETA") + Private pa As ResultSet = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${sigTicketMT}' and PE_TIPO = 'MULTI-TICKET'"$) + Log($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${sigTicketMT}' and PE_TIPO = 'MULTI-TICKET'"$) + Log(pa.RowCount) + Do While pa.NextRow + Log($"${pa.GetString("PE_PROID")}, ${pa.GetString("PE_COSTO_TOT")}, ${pa.GetString("PE_TIPO")}"$) + Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", _ + Array As Object (pa.GetString("PE_COSTO_TOT"), pa.GetString("PE_COSTOU"), pa.GetString("PE_CANT"), pa.GetString("PE_PRONOMBRE"), pa.GetString("PE_PROID"), sigTicket, pa.GetString("PE_FECHA"), pa.GetString("PE_MESERO"), pa.GetString("PE_MESA"), pa.GetString("PE_COSTO_SIN"), "TARJETA", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) + Loop + Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES, PT_ALMACEN, PT_PAGO2, PT_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) + Log("INSERTAMOS EN PT") + + ticketAnt = sigTicket + pagoAnt = formaPago + primeraVez = False + End If + If tipoPago = "EFECTIVO" Then + Log("INSERTAMOS EFECTIVO") + Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago, formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) + Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES, PT_ALMACEN, PT_PAGO2, PT_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) + Log("INSERTAMOS EN PT") + descXEfectivo = listaMontoDePago.Get(fdp).As(EditText).text + End If +' If Not(descuentoAplicado) And pagoAnt <> "" And ticketAnt <> "" And descXEfectivo <> "" Then +' Log("INSERTAMOS DESCUENTO") +' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ((descXEfectivo * -1), (descXEfectivo * -1), 1, "DESCUENTO", "DESC01", ticketAnt, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, descXEfectivo, "TARJETA", pagoAnt, $"${Starter.mesaActual}|${sigTicketMT}"$)) 'Agregamos el descuento al pedido de tarjeta. +' descuentoAplicado = True +' End If + Private laPropina As String = "0" If et_propina.Text <> "" Then laPropina = et_propina.Text End If - Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES, PT_ALMACEN, PT_PAGO2, PT_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$)) -' Log(tipoPago) + Starter.ticketActual = sigTicket Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago) listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click Next + + Private d As ResultSet = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as totalEfectivo from PEDIDO where PE_TIPO = 'EFECTIVO' and PE_ORIGEN = '${Starter.mesaActual}|${sigTicketMT}'"$) + Private elEfectivo As String = "0" + Do While d.NextRow + elEfectivo = d.GetString("totalEfectivo") + Loop + If elEfectivo > "0" Then + Log("INSERTAMOS DESCUENTO") + 'Agregamos el efectivo como DESCUENTO en el pedido de la tarjeta. + Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ((elEfectivo * -1), (elEfectivo * -1), 1, "DESCUENTO", "DESC01", ticketAnt, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, elEfectivo, "TARJETA", pagoAnt, $"${Starter.mesaActual}|${sigTicketMT}"$)) + End If Else Log(">>>>>>>> UN SOLO PAGO") formaPago = listaFormaDePago.Get(0) @@ -1377,6 +1427,7 @@ End Sub Private Sub p_transparenteResumen_Click 'Para evitar que el clic en pantalla no se siga hacia atras + p_transparenteResumen.Visible = False End Sub Sub Printer1_Connected (Success As Boolean) @@ -2153,10 +2204,12 @@ End Sub Private Sub p_transparenteCambioMesa_Click 'Para evitar que el clic en pantalla no se siga hacia atras + p_transparenteCambioMesa.Visible = False End Sub Private Sub p_transparenteDescuento_Click 'Para evitar que el clic en pantalla no se siga hacia atras + p_transparenteDescuento.Visible = False End Sub Private Sub l_prodX_LongClick @@ -2198,6 +2251,7 @@ End Sub Private Sub p_transparentePago_Click 'Para evitar que el clic en pantalla no se siga hacia atras + p_transparentePago.Visible = False End Sub Private Sub b_agregarPago_Click @@ -2243,7 +2297,7 @@ Private Sub cb_pago2_SelectedIndexChanged (Index As Int) cb_opcionEfectivo.Checked = True Else - Log(listaFormaDePago.Size) +' Log(listaFormaDePago.Size) p_opcionEfectivo.Visible = False cb_opcionEfectivo.Checked = False End If @@ -2251,27 +2305,27 @@ Private Sub cb_pago2_SelectedIndexChanged (Index As Int) End Sub Private Sub et_montoPago2_TextChanged (Old As String, New As String) - Log("TEXT CHANGED") +' Log("TEXT CHANGED") ' Log(Starter.totalActual) Private subtotal As String = 0 Private enBlanco As Boolean = False For i = 0 To listaMontoDePago.Size - 1 - Log(listaMontoDePago.Get(i).As(EditText).text) +' Log(listaMontoDePago.Get(i).As(EditText).text) If listaMontoDePago.Get(i).As(EditText).text <> "" Then subtotal = subtotal + listaMontoDePago.Get(i).As(EditText).text Else enBlanco = True End If Next - Log($"${Starter.totalActual} - ${subtotal} = ${Starter.totalActual - subtotal}"$) - LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue) +' Log($"${Starter.totalActual} - ${subtotal} = ${Starter.totalActual - subtotal}"$) +' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue) If listaMontoDePago.Size > 1 Then l_faltaMonto.Visible = True If subtotal < Starter.totalActual Then - LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red) +' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red) l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$ else if subtotal > Starter.totalActual Then - LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) +' LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ Else l_faltaMonto.Text = "" @@ -2285,24 +2339,24 @@ Private Sub et_montoPago2_TextChanged (Old As String, New As String) End Sub Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean) - Log("FOCUS CHANGED") - Log(Starter.totalActual) +' Log("FOCUS CHANGED") +' Log(Starter.totalActual) Private subtotal As String = 0 Private enBlanco As Boolean = False For i = 0 To listaMontoDePago.Size - 1 - Log(listaMontoDePago.Get(i).As(EditText).text) +' Log(listaMontoDePago.Get(i).As(EditText).text) If listaMontoDePago.Get(i).As(EditText).text <> "" Then subtotal = subtotal + listaMontoDePago.Get(i).As(EditText).text Else enBlanco = True End If Next - LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue) +' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue) If subtotal < Starter.totalActual Then - LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red) +' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red) l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$ else if subtotal > Starter.totalActual Then - LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) +' LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ Else l_faltaMonto.Text = "" @@ -2315,7 +2369,7 @@ Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean) End Sub Private Sub cb_opcionEfectivo_CheckedChange(Checked As Boolean) - Log(">> OPCION EFECTIVO CAMBIO - ACTUALIZAMOS PEDIDO") +' Log(">> OPCION EFECTIVO CAMBIO - ACTUALIZAMOS PEDIDO") Private desc As String = 1 / Subs.traeDescXefectivo ' Private tot As String = Subs.traeTotalTicketActual_P("VENTA") If Checked Then @@ -2327,13 +2381,19 @@ Private Sub cb_opcionEfectivo_CheckedChange(Checked As Boolean) ' et_montoPago2.Text = tot End If 'Recualculamos el total para ponerlo en PEDIDO_TICKET - Private c As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) - Log($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) + +' Private c As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) + Private c As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$) +' Log($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) Private elSubTotal As String = "0" Do While c.NextRow - elSubTotal = elSubTotal + c.GetString("PE_COSTO_TOT") - (c.GetString("PE_COSTO_TOT") * (c.GetString("DESC") / 100)) + If c.GetString("CAT_GP_TIPO") = "ALIMENTOS" Then + elSubTotal = elSubTotal + c.GetString("PE_COSTO_TOT") - (c.GetString("PE_COSTO_TOT") * (c.GetString("DESC") / 100)) + Else + elSubTotal = elSubTotal + c.GetString("PE_COSTO_TOT") + End If Loop - LogColor($">>>>> ${elSubTotal} "$, Colors.Blue) +' LogColor($">>>>> ${elSubTotal} "$, Colors.Blue) Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MONTO = '${NumberFormat2(Ceil(elSubTotal), 1, 0, 0, False)}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) If et_montoPago2.IsInitialized Then et_montoPago2.Text = Subs.traeTotalTicketActual_P("VENTA") End Sub @@ -2365,6 +2425,7 @@ End Sub Private Sub p_transparenteVerOrden_Click 'Para evitar que el clic en pantalla no se siga hacia atras + p_transparenteVerOrden.Visible = False End Sub Private Sub b_reabrirMesa_Click @@ -2433,7 +2494,13 @@ Private Sub b_leyendaDescuento_Click b_imprimirTicket.Enabled = False ' If l_total.Text <> Null And l_total.Text <> "null" Then Subs.ponImpreso(la_cuenta.Text) 'Solo lo marcamos como impreso si tiene venta (total > 0). ProgressDialogShow("Imprimiendo, un momento ...") + Private cont As Int = 0 For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticket. + LogColor($">>>> Forma de pago : ${listaTickets.Get(k).As(Map).Get("pago")}"$, Colors.Blue) + If listaTickets.Get(k).As(Map).Get("pago") = "EFECTIVO" Or cont > 0 Then 'Solo imprimimos si es el PRIMER ticket de TARJETA. + Continue + End If + cont = cont + 1 If imprimirEste Then Printer1.DisConnect If Not(Printer1.IsConnected) Then @@ -2626,4 +2693,20 @@ End Sub Private Sub cb_mostrarDescuento_CheckedChange(Checked As Boolean) cb_opcionEfectivo_CheckedChange(Checked) +End Sub + +Private Sub p_verOrden_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Private Sub p_leyendaDescuento_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Private Sub p_cambioMesa_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Private Sub p_resumen_Click + 'Para evitar que el clic en pantalla no se siga hacia atras End Sub \ No newline at end of file diff --git a/B4A/Lanterna.b4a b/B4A/Lanterna.b4a index 19b6bd4..49be753 100644 --- a/B4A/Lanterna.b4a +++ b/B4A/Lanterna.b4a @@ -82,7 +82,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Lanterna #VersionCode: 1 - #VersionName: 4.03.27 + #VersionName: 4.03.28 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Lanterna.b4a.meta b/B4A/Lanterna.b4a.meta index e30c92f..9ddddea 100644 --- a/B4A/Lanterna.b4a.meta +++ b/B4A/Lanterna.b4a.meta @@ -25,6 +25,6 @@ ModuleClosedNodes5= ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8=47,48 -NavigationStack=C_Principal,B4XPage_Appear,311,0,C_Principal,b_mesaCerrar_Click,1130,0,C_Principal,B4XPage_CloseRequest,320,0,C_Principal,PCLV_HintRequested,731,0,C_Principal,WobbleMenu1_Tab1Click,747,6,C_Principal,b_cierreTotal_Click,1315,0,C_Principal,b_leyendaDescuento_Click,2432,0,C_Principal,p_mesasItem_Click,1031,0,C_Principal,b_pagoCerrar_Click,1206,0,C_Principal,b_reabrirMesa_Click,2363,0 +NavigationStack=C_Principal,p_cambioMesa_Click,2681,0,C_Principal,p_resumen_Click,2685,0,C_Principal,p_transparentePago_Click,2226,3,C_Principal,p_pago_Click,1194,0,Subs,guardaProductoSinGestion,1334,0,C_Principal,b_prodMenos_Click,418,0,C_Principal,b_prodMas_Click,463,0,C_Principal,b_renombraVarios_Click,2225,0,Subs,actualizaProducto,1276,0,C_Principal,b_pagoCerrar_Click,1258,6 SelectedBuild=0 VisibleModules=1,7,8,2,3,6,4,5