From a6e77b99a40e74b057e3c1c5366bac1e8ff06a42 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Wed, 6 Mar 2024 05:51:37 -0600 Subject: [PATCH] =?UTF-8?q?-=20Se=20agreg=C3=B3=20multi-ticket=20al=20cerr?= =?UTF-8?q?ar=20la=20mesa=20-=20Se=20agreg=C3=B3=20la=20impresion=20del=20?= =?UTF-8?q?resumen=20de=20platillos=20vendidos=20en=20click=20largo=20de?= =?UTF-8?q?=20impresion=20en=20Cierre=20Total?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/B4XMainPage.bas | 3 + B4A/C_Principal.bas | 776 ++++++++++++++++++++++++++++++---------- B4A/Files/formapago.bal | Bin 0 -> 2900 bytes B4A/Files/principal.bal | Bin 33380 -> 38406 bytes B4A/Lanterna.b4a | 42 +-- B4A/Lanterna.b4a.meta | 6 +- B4A/Starter.bas | 4 +- B4A/Subs.bas | 9 +- 8 files changed, 622 insertions(+), 218 deletions(-) create mode 100644 B4A/Files/formapago.bal diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index c63db38..e159625 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -197,6 +197,9 @@ Sub JobDone(Job As HttpJob) Dim CAT_GP_CLASIF As String = records(result.Columns.Get("CAT_GP_CLASIF")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF) VALUES (?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD,CAT_GP_CLASIF)) Next + For v = 1 To 20 'Agregamos productos varios (editables) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF) VALUES (?,?,?,?,?,?,?,?)", Array As Object ($"VAR${NumberFormat2(v, 2, 0, 0, False)}"$,$"Alimentos Varios ${NumberFormat2(v, 2, 0, 0, False)}"$,"1","10000",Null,"2024-02-04 17:00:00","2024-02-04 17:00:00","Varios")) + Next Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction End If diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index b06c3be..631e843 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -100,6 +100,24 @@ Sub Class_Globals Private cb_cambioMesa As B4XComboBox Private b_cambioMesa As Button Private l_cambioMesa As Label + Private p_renombraVarios As Panel + Private l_renombraVarios As Label + Private b_renombraVarios As Button + Private et_precioVariable As EditText + Private et_nombreVariable As EditText + Private p_transparentePago As Panel + Private b_agregarPago As Button + Private l_tipoPago1 As Label + Private p_propina As Panel + Private cb_pago2 As B4XComboBox + Private l_tipoPago2 As Label + Private et_montoPago1 As EditText + Private et_montoPago2 As EditText + Private p_formasDePago As Panel + Dim listaFormasDePagoCB, listaFormaDePago, listaMontoDePago, listaTickets As List + Private l_tipoPago As Label + Private formaPago As String + Private l_faltaMonto As Label End Sub 'You can add more parameters here. @@ -144,7 +162,12 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.panelWH(p_transparenteCierreAdmin, Root.Width, Root.Height) p_transparenteCierreAdmin.Top = 0 : p_transparenteCierreAdmin.left = 0 Subs.panelWH(p_transparenteResumen, Root.Width, Root.Height) + Subs.panelWH(p_transparentePago, Root.Width, Root.Height) + p_transparentePago.Top = 0 : p_transparentePago.left = 0 sv_resumen.Panel.LoadLayout("resumenCont") + Subs.centraEtiqueta(l_pago, p_pago.Width) + Subs.centraPanel(p_propina, p_pago.Width) + Subs.centraBoton(b_pagoCerrar, p_pago.Width) Dim cs As CSBuilder cs.Initialize l_inicioDia.Text = cs.append("Para iniciar día, ingrese el texto ").bold.Append("INICIO DIA").Pop.Append(" y la tecla ").Bold.Append("Retorno").Pop.Append(" del teclado.").Color(Colors.red).Append(" Los datos del día anterior se borraran.").Popall @@ -165,7 +188,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) p_mesas.Width = Root.Width Subs.panelVisible(p_mesas, 0, 0) cb_comensales.SetItems(Array As String(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)) - cb_pago.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo")) +' cb_pago.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo")) cb_pagoPropina.SetItems(Array As String("Tarjeta", "Efectivo")) cb_mesero.SetItems(Subs.traeMeserosLista) Private lasCats As List = Subs.traeCategorias @@ -188,6 +211,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) End Sub Sub B4XPage_Appear + Starter.imprimirTicket = False reqManager.Initialize(Me, Starter.DBReqServer) B4XPages.MainPage.atrasPresionado = False ' Log(Starter.DBReqServer) @@ -236,8 +260,8 @@ Sub B4XPage_Appear End If Printer1.Initialize(Me, "Printer1") n2t.Initialize - Log(n2t.NumberToWords(456.50)) - Log(n2t.NumberToWords(456.51)) +' Log(n2t.NumberToWords(456.50)) +' Log(n2t.NumberToWords(456.51)) ' For x = 198 To 305 ' Log(NumberFormat2(x&".52", 1,2,2,True) & " -> " & n2t.NumberToWords(x&".52")) ' Next @@ -246,10 +270,13 @@ End Sub Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel - If p_transparenteCambioMesa.Visible Then + If p_renombraVarios.Visible Then + p_renombraVarios.Visible = False + Else If p_transparenteCambioMesa.Visible Then p_transparenteCambioMesa.Visible = False - Else If p_pago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos. - p_pago.Visible = False + Else If p_transparentePago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos. +' p_pago.Visible = False + p_transparentePago.Visible = False Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los clv_prods_ll.AsView.Visible = False lv_categorias.Visible = True @@ -406,13 +433,13 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) ' Loop ' pe.Close - Private c As Cursor = Starter.skmt.ExecQuery($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG, PE_PROID, PE_CANT from cat_gunaprod join pedido on cat_gp_id = Pe_proid where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$) + Private c As Cursor = Starter.skmt.ExecQuery($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG, PE_PROID, PE_CANT, PE_PRONOMBRE, PE_COSTOU from cat_gunaprod join pedido on cat_gp_id = Pe_proid where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$) ' Log(c.RowCount) If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i ' If hayPedido And cantsMap.ContainsKey(c.GetString("CAT_GP_ID")) Then cant = cantsMap.Get(p.GetString("CAT_GP_ID")) 'Agregamos la cantidad ya comprada al producto - Dim tempMap As Map = CreateMap("prod":c.GetString("CAT_GP_NOMBRE"), "precio":c.GetString("CAT_GP_PRECIO"), "almacen":c.GetString("CAT_GP_ALMACEN"), "id":c.GetString("CAT_GP_ID"), "cant":c.GetString("PE_CANT"), "img":Null) + Dim tempMap As Map = CreateMap("prod":c.GetString("PE_PRONOMBRE"), "precio":c.GetString("PE_COSTOU"), "almacen":c.GetString("CAT_GP_ALMACEN"), "id":c.GetString("CAT_GP_ID"), "cant":c.GetString("PE_CANT"), "img":Null) listaProdsConCant2.Add(tempMap) listaProdsConCantIndex2.Add(c.GetString("CAT_GP_ID")) ' listaProdsConCant2.Add(tempMap) @@ -552,7 +579,7 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In Private precio As String=NumberFormat2(clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False) If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant") l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(precio, 1, 2, 2, True)}"$).Popall - l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map).Get("almacen") + l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map) l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id") ' Log(clv_prods_ll.GetValue(i).As(Map).Get("id")) ' Private rs_img As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_IMG from cat_gunaprod where CAT_GP_ID = '${clv_prods_ll.GetValue(i).As(Map).Get("id")}'"$) @@ -771,7 +798,7 @@ Private Sub b_terminar_Click End Sub Sub llenaHistorial - Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select * from pedido_ticket where PT_PAGO <> 'VENTA' order by PT_PAGO desc, PT_TICKET"$) + Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select * from pedido_ticket where PT_PAGO <> 'VENTA' and PT_PAGO <> 'MULTI-TICKET' order by PT_PAGO desc, PT_TICKET"$) If rs_hist.RowCount > 0 Then l_historialVacio.Visible = False Private cs As CSBuilder @@ -937,6 +964,11 @@ Private Sub p_mesasItem_Click ' Log(p_prods.Width) ' p_prods.Width = clv_prods_ll.GetBase.Width ' clv_prods_ll.Base_Resize(400,Root.Height) + listaFormasDePagoCB.Initialize + listaFormaDePago.Initialize + listaMontoDePago.Initialize + listaTickets.Initialize + Starter.formasDePago = 1 tipoPago = "VENTA" clv_prods_ll.AsView.Visible = False lv_categorias.Visible = True @@ -948,6 +980,7 @@ Private Sub p_mesasItem_Click Starter.meseroActual = m.Get("mesero") Starter.ticketActual = m.Get("ticket") Starter.comensalesActuales = m.Get("comensales") + Starter.totalActual = m.Get("subtotal") l_mesa.Text = $"MESA NO. ${m.Get("id")}"$ ' Log(m) b_mesaCerrar.Tag = m @@ -956,7 +989,7 @@ Private Sub p_mesasItem_Click LlenaProdsLL(Null, Null) p_mesas.Visible = False cb_mesero.SelectedIndex = 0 - cb_pago.SelectedIndex = 0 +' cb_pago.SelectedIndex = 0 cb_comensales.SelectedIndex = 0 ' Private mesero As String = Subs.traeMesero(m.Get("id")) If m.Get("mesero") <> "NINGUNO" Then cb_mesero.SelectedIndex = cb_mesero.IndexOf(m.Get("mesero")) @@ -1029,6 +1062,7 @@ Private Sub b_abrirMesa_Click End If Starter.meseroActual = cb_mesero.SelectedItem Starter.comensalesActuales = cb_comensales.SelectedItem + Starter.skmt.ExecNonQuery($"delete from usuarioa"$) Starter.skmt.ExecNonQuery($"insert into usuarioa (usuario) values ('${cb_mesero.SelectedItem}')"$) LlenaProdsLL(Null, Null) l_comensalesAbierta2.Text = cb_comensales.SelectedItem @@ -1050,17 +1084,33 @@ Private Sub cb_comensales_SelectedIndexChanged (Index As Int) End Sub Private Sub cb_mesero_SelectedIndexChanged (Index As Int) - Log(Index) +' Log(Index) End Sub Private Sub b_mesaCerrar_Click ' Log("Cerrar") + listaFormasDePagoCB.Initialize + listaFormaDePago.Initialize + listaMontoDePago.Initialize + listaTickets.Initialize + Starter.formasDePago = 1 + p_formasDePago.Height = 40dip + p_propina.Top = 133dip + b_pagoCerrar.Top = 263dip + p_pago.Height = 320dip + p_formasDePago.RemoveAllViews Private c As Cursor = Starter.skmt.ExecQuery($"select PE_MESA from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$) If c.RowCount > 0 Then Log(Sender.As(Button).tag) + p_transparentePago.Visible = True + p_transparentePago.BringToFront + agregaFormaDePago(l_tipoPago.Left, 0, Starter.formasDePago) + et_montoPago2.Text = Starter.totalActual et_propina.Text = "" - p_pago.BringToFront - p_pago.Visible = True + et_montoPago2.Text = Starter.totalActual +' p_pago.Elevation = 100dip +' p_pago.BringToFront +' p_pago.Visible = True Else 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}'"$) B4XPage_CloseRequest @@ -1091,30 +1141,59 @@ Private Sub p_pago_Click End Sub Private Sub b_pagoCerrar_Click - p_pago.Visible = False - If cb_pago.SelectedItem = "Efectivo" Then - tipoPago = "EFECTIVO" +' p_pago.Visible = False + listaTickets.Initialize + p_transparentePago.Visible = False + Log("###################### " & listaFormasDePagoCB.Size) + If listaFormasDePagoCB.Size > 1 Then + Log(">>>>>>>> VARIOS PAGOS") + Private sigTicketMT As String = Subs.traeConsecutivoTicket("CERRADA", "MULTI-TICKET") + 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. + For fdp = 0 To listaFormasDePagoCB.Size - 1 + formaPago = listaFormaDePago.Get(fdp) + If formaPago = "Efectivo" Then + tipoPago = "EFECTIVO" + Else + 'Pago con tarjeta + tipoPago = "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) 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)) + 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) 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)) +' 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 Else - 'Pago con tarjeta - tipoPago = "TARJETA" + Log(">>>>>>>> UN SOLO PAGO") + formaPago = listaFormaDePago.Get(0) + If formaPago = "Efectivo" Then + tipoPago = "EFECTIVO" + Else + 'Pago con tarjeta + tipoPago = "TARJETA" + End If + Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago) + 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}'"$) + Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) + Private laPropina As String = "0" + If et_propina.Text <> "" Then + laPropina = et_propina.Text + End If + Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${formaPago}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) +' 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 End If - Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago) - 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}'"$) -' Log($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$) - Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) -' Log($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) - Private laPropina As String = "0" - If et_propina.Text <> "" Then - laPropina = et_propina.Text -' Starter.skmt.ExecNonQuery($"insert into PROPINAS (PR_MESA, PR_TICKET, PR_PAGO, PR_PROPINA, PT_MESERO, PR_FECHA) values ('${Starter.mesaActual}', '${sigTicket}', '${tipoPago}', '${laPropina}', '${Starter.meseroActual}', '${DateTime.Date(DateTime.Now)}')"$) - End If - Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${cb_pago.SelectedItem}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) -' Log($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA"$) - Log(tipoPago) - Starter.ticketActual = sigTicket b_imprimirTicket_Click -' Log("Close Request") -' B4XPage_CloseRequest Sleep(1000) WobbleMenu1_Tab1Click End Sub @@ -1257,7 +1336,7 @@ Sub Printer1_Error End Sub Sub b_imp_Click - Private imprimirAqui As Boolean = False + Private imprimirAqui As Boolean = Starter.imprimirTicket Private sDate, sTime As String Private c As Cursor sv_resumen.Panel.Height = p_resumen.Height @@ -1267,33 +1346,36 @@ Sub b_imp_Click la_cuenta.Initialize("2") b_imp.Enabled = False ProgressDialogShow("Imprimiendo, un momento ...") - Printer1.DisConnect - If Not(Printer1.IsConnected) Then - If Starter.logger Then Log("conectando 1") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) - Sleep(1000) - cont = cont + 1 - If cont = 7 Then Printer1.Connect 'Tratamos de reconectar - If cont > 15 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False - Else - If Starter.logger Then Log("conectando 2") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) - Sleep(1000) - cont = cont + 1 - If cont = 2 Then Printer1.Connect - If cont > 4 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False + If imprimirAqui Then + Printer1.DisConnect + If Not(Printer1.IsConnected) Then + If Starter.logger Then Log("conectando 1") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + cont = cont + 1 + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + If Starter.logger Then Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If + Printer1.Reset End If - Printer1.Reset + Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) @@ -1325,21 +1407,28 @@ Sub b_imp_Click For i = 0 To c.RowCount - 1 c.Position = i ticket = c.GetString("PE_TICKET") - If c.GetString("PE_TIPO") = "TARJETA" Then tipo = "Pago Tarjeta " Else tipo = "Pago Efectivo " + If c.GetString("PE_TIPO") = "TARJETA" Then + tipo = "Pago Tarjeta " + Else If c.GetString("PE_TIPO") = "EFECTIVO" Then + tipo = "Pago Efectivo " + End If If mesaAnt <> c.GetString("PE_MESA") Then - Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}'"$) + Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO <> 'MULTI-TICKET'"$) tm.Position = 0 cs.Color(Colors.red).Append($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$).pop If imprimirAqui Then Printer1.WriteString($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$) + Private tipoAnt As String = "" End If - If tipoAnt <> c.GetString("PE_TIPO") Then + If tipoAnt <> c.GetString("PE_TIPO") And c.GetString("PE_TIPO") <> "MULTI-TICKET" Then Private tpt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalTipo from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO = '${c.GetString("PE_TIPO")}'"$) tpt.Position = 0 cs.Color(Colors.red).Append($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$).pop If imprimirAqui Then Printer1.WriteString($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$) End If - cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall - If imprimirAqui Then Printer1.WriteString($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$) + If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then + cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall + If imprimirAqui Then Printer1.WriteString($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$) + End If mesaAnt = c.GetString("PE_MESA") tipoAnt = c.GetString("PE_TIPO") Next @@ -1347,10 +1436,12 @@ Sub b_imp_Click Private tt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'TARJETA'"$) Private te As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$) tt.Position = 0 : te.Position = 0 + Private totalEfectivo As String = 0 + If te.GetString("total") <> Null Then totalEfectivo = te.GetString("total") cs.color(Colors.green).Append($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall If imprimirAqui Then Printer1.WriteString($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$) - cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(te.GetString("total"), 1,2,2,True)}${CRLF}"$).popall - If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(te.GetString("total"), 1,2,2,True)}${CRLF}"$) + cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall + If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$) l_resumen.Text = cs l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text) @@ -1366,9 +1457,166 @@ Sub b_imp_Click ' Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) ' Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) ' Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) +' Printer1.WriteString(CRLF) +' Printer1.WriteString(CRLF) +' Printer1.WriteString(CRLF) + Sleep(1000) + Printer1.DisConnect + Catch + ToastMessageShow("Error en la impresion 2.", True) + Printer1.Disconnect + B4XPages.ShowPage("Principal") + End Try + Sleep(1000) + b_imp.Enabled = True + ProgressDialogHide +End Sub + +Sub b_imp_LongClick + Private imprimirAqui As Boolean = Starter.imprimirTicket + Private sDate, sTime As String + Private c As Cursor + sv_resumen.Panel.Height = p_resumen.Height + cs.Initialize + Private l_total, la_cuenta As Label + l_total.Initialize("l") + la_cuenta.Initialize("2") + b_imp.Enabled = False + ProgressDialogShow("Imprimiendo, un momento ...") + If imprimirAqui Then + Printer1.DisConnect + If Not(Printer1.IsConnected) Then + If Starter.logger Then Log("conectando 1") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + cont = cont + 1 + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + If Starter.logger Then Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If + Printer1.Reset + End If + +' Dim bmp As Bitmap +' bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore +' Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) +' myimage = Printer1.DitherImage2D(myimage, 128) +' myimage= Printer1.PackImage(myimage) +' If imprimirAqui Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening +' If imprimirAqui Then Printer1.WriteString(Printer1.REVERSE) +' If imprimirAqui Then Printer1.PrintImage(myimage) +' If imprimirAqui Then Printer1.WriteString(Printer1.UNREVERSE) + Try + DateTime.DateFormat = "yyyymmdd" + sDate = DateTime.Date(DateTime.Now) + If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) + DateTime.DateFormat = "MM/dd/yyyy" + sDate = DateTime.Date(DateTime.Now) + sTime = DateTime.Time(DateTime.Now) + + Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$) + Log(c.RowCount) + If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ... + Private c As Cursor = Starter.skmt.ExecQuery("select distinct CAT_GP_CLASIF, PE_PRONOMBRE, sum(pe_cant) as cuantos from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by PE_PRONOMBRE order by CAT_GP_CLASIF, PE_PRONOMBRE") + If c.RowCount > 0 Then + c.Position = 0 + Private catAnt As String = "" + Private catTotal As String = 0 +' Private tipoAnt As String = "" +' Private tipo As String +' Private ticket As String + If imprimirAqui Then Printer1.WriteString($"Fecha: ${sDate} ${sTime} ${CRLF}${CRLF}"$) + For i = 0 To 30 ' c.RowCount - 1 + c.Position = i +' ticket = c.GetString("PE_TICKET") +' If c.GetString("PE_TIPO") = "TARJETA" Then +' tipo = "Pago Tarjeta " +' Else If c.GetString("PE_TIPO") = "EFECTIVO" Then +' tipo = "Pago Efectivo " +' End If +' Log($"${catAnt} - ${c.GetString("CAT_GP_CLASIF")}"$) + If catAnt <> c.GetString("CAT_GP_CLASIF") Then +' Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO <> 'MULTI-TICKET'"$) + If catAnt <> "" Then + cs.Color(Colors.Green).Append($"Total ${catAnt}: ${catTotal}${CRLF}"$).pop + If imprimirAqui Then + Printer1.WriteString(Printer1.BOLD) + Printer1.WriteString($"Total ${catAnt}: ${catTotal}${CRLF}${CRLF}"$) + Printer1.WriteString(Printer1.NOBOLD) + End If + Log($">>>>>>> CAT TOTAL ${catAnt}: ${catTotal}"$ ) + End If +' tm.Position = 0 + cs.Color(Colors.red).Append($"** ${c.GetString("CAT_GP_CLASIF")} **${CRLF}"$).pop + Printer1.WriteString(Printer1.BOLD) + If imprimirAqui Then Printer1.WriteString($"** ${c.GetString("CAT_GP_CLASIF")} **${CRLF}"$) + Printer1.WriteString(Printer1.NOBOLD) + Private tipoAnt As String = "" + catTotal = 0 + End If + + + Private elNombre As String = c.GetString("PE_PRONOMBRE") + If elNombre.Length > 28 Then elNombre = elNombre.SubString2(0, 28) + Log($"${elNombre.Length} - ${elNombre}"$) +' If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) +' Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) + + + + cs.Color(Colors.DarkGray).Append($"${elNombre} - ${c.GetString("cuantos")} ${CRLF}"$).pop + If imprimirAqui Then Printer1.WriteString($"${elNombre}${Subs.alineaDerecha(c.GetString("cuantos"), (31 - elNombre.Length), ".")} ${CRLF}"$) + catTotal = catTotal + c.GetString("cuantos") + Private tipoAnt As String = "" +' If tipoAnt <> c.GetString("PE_TIPO") And c.GetString("PE_TIPO") <> "MULTI-TICKET" Then +' Private tpt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalTipo from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO = '${c.GetString("PE_TIPO")}'"$) +' tpt.Position = 0 +' cs.Color(Colors.red).Append($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$).pop +' If imprimirAqui Then Printer1.WriteString($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$) +' End If +' If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then +' cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall +' If imprimirAqui Then Printer1.WriteString($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$) +' End If + catAnt = c.GetString("CAT_GP_CLASIF") +' tipoAnt = c.GetString("PE_TIPO") + + Next + If imprimirAqui Then Printer1.WriteString(CRLF) +' Private tt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'TARJETA'"$) +' Private te As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$) +' tt.Position = 0 : te.Position = 0 +' Private totalEfectivo As String = 0 +' If te.GetString("total") <> Null Then totalEfectivo = te.GetString("total") +' cs.color(Colors.green).Append($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall +' If imprimirAqui Then Printer1.WriteString($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$) +' cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall +' If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$) + + l_resumen.Text = cs + l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text) + sv_resumen.Panel.Height = l_resumen.Height + End If + Subs.panelVisible(p_transparenteResumen, 0, 0) + Else + ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True) + End If Sleep(1000) Printer1.DisConnect Catch @@ -1716,6 +1964,7 @@ Sub JobDone(Job As HttpJob) Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_TIPO = 'EFECTIVO'"$) Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$) llenaHistorial + Log(">>>>> ENVIO TERMINADO") ToastMessageShow("¡Envío terminado!", False) End If If reqManager.errorList.Size > 0 Then Log(">>>>> ERRORES - " & reqManager.errorList) @@ -1726,8 +1975,15 @@ Private Sub b_regresarProds_Click WobbleMenu1_Tab1Click End Sub +Sub imprimeTicket (ticket As String, pago As String) As ResumableSub + Starter.ticketActual = ticket + tipoPago = pago + b_imprimirTicket_Click +End Sub + Private Sub b_imprimirTicket_Click - Private imprimirEste As Boolean = False + Private imprimirEste As Boolean = Starter.imprimirTicket +' Log(imprimirEste) Private logger As Boolean = True Private TAMANO As Int Private ESPACIO As Int @@ -1739,31 +1995,33 @@ Private Sub b_imprimirTicket_Click b_imp.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 ...") - Printer1.DisConnect - If Not(Printer1.IsConnected) Then - If Starter.logger Then Log("conectando 1") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) - Sleep(1000) - cont = cont + 1 - If cont = 7 Then Printer1.Connect 'Tratamos de reconectar - If cont > 15 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False - Else - If Starter.logger Then Log("conectando 2") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) - Sleep(1000) - cont = cont + 1 - If cont = 2 Then Printer1.Connect - If cont > 4 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False + If imprimirEste Then + Printer1.DisConnect + If Not(Printer1.IsConnected) Then + If Starter.logger Then Log("conectando 1") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + cont = cont + 1 + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + If Starter.logger Then Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If End If DateTime.DateFormat = "MM/dd/yyyy" Private sDate,sTime As String @@ -1778,109 +2036,116 @@ Private Sub b_imprimirTicket_Click ESPACIO = 14 BLANCO = " " 'esto para las impresoras nuevas 'printer.Initialize(cmp20.OutputStream) - Printer1.Reset + If imprimirEste Then Printer1.Reset Dim bmp As Bitmap bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) myimage = Printer1.DitherImage2D(myimage, 128) myimage= Printer1.PackImage(myimage) - If imprimirEste Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening - If imprimirEste Then Printer1.WriteString(Printer1.REVERSE) - If imprimirEste Then Printer1.PrintImage(myimage) - If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) - Try - If imprimirEste Then Printer1.WriteString("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF) - If logger Then Log("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF) - If imprimirEste Then Printer1.WriteString("RFC: RCI230918DAA " & CRLF) - If logger Then Log("RFC: RCI230918DAA" & CRLF) - If imprimirEste Then Printer1.WriteString("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF) - If logger Then Log("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF) - If imprimirEste Then Printer1.WriteString("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) - If logger Then Log("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) - If imprimirEste Then Printer1.WriteString("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) - If logger Then Log("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) - If imprimirEste Then Printer1.WriteString("TEL: 55 5207 9969" & CRLF) - If logger Then Log("TEL: 55 5207 9969" & CRLF) - If imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) - If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF) - If imprimirEste Then Printer1.WriteString("CDMX " & sDate &" " & sTime & CRLF) - If logger Then Log("CDMX " & sDate &" " & sTime & CRLF) - If imprimirEste Then Printer1.WriteString($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)}${Printer1.BOLD} # Mesa${CRLF}"$) - If logger Then Log($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)} # Mesa${CRLF}"$) - If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) - If imprimirEste Then Printer1.WriteString($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Printer1.BOLD} ${Starter.mesaActual}${CRLF}"$) - If logger Then Log($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Starter.mesaActual}${CRLF}"$) -' If imprimirEste Then Printer1.WriteString($"${Printer1.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) -' If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) -' If imprimirEste Then Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) -' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF) - If imprimirEste Then Printer1.WriteString(" " & CRLF) - c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$) - If c.RowCount > 0 Then +' LogColor(listaTickets, Colors.red) + For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticlet. + LogColor($">>>>>> INICIA IMPRESION DE TICKET ${listaTickets.Get(k).As(Map).Get("ticket")} <<<<<<<<<<<<"$, Colors.Red) + Starter.ticketActual = listaTickets.Get(k).As(Map).Get("ticket") + tipoPago = listaTickets.Get(k).As(Map).Get("pago") + Try + If imprimirEste Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + If imprimirEste Then Printer1.WriteString(Printer1.REVERSE) + If imprimirEste Then Printer1.PrintImage(myimage) + If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) + If imprimirEste Then Printer1.WriteString("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF) + If logger Then Log("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF) + If imprimirEste Then Printer1.WriteString("RFC: RCI230918DAA " & CRLF) + If logger Then Log("RFC: RCI230918DAA" & CRLF) + If imprimirEste Then Printer1.WriteString("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF) + If logger Then Log("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF) + If imprimirEste Then Printer1.WriteString("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) + If logger Then Log("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) + If imprimirEste Then Printer1.WriteString("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) + If logger Then Log("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF) + If imprimirEste Then Printer1.WriteString("TEL: 55 5207 9969" & CRLF) + If logger Then Log("TEL: 55 5207 9969" & CRLF) + If imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) + If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF) + If imprimirEste Then Printer1.WriteString("CDMX " & sDate &" " & sTime & CRLF) + If logger Then Log("CDMX " & sDate &" " & sTime & CRLF) + If imprimirEste Then Printer1.WriteString($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)}${Printer1.BOLD} # Mesa${CRLF}"$) + If logger Then Log($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)} # Mesa${CRLF}"$) If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) - For i = 0 To c.RowCount - 1 - c.Position = i - Private elNombre As String = c.GetString("PE_PRONOMBRE") - If elNombre.Length > 30 Then elNombre.SubString2(0, 30) - If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) - Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) - Next - End If - c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = '${tipoPago}' and PT_TICKET = '${Starter.ticketActual}'"$) -' Log($"Rowcount: ${c.RowCount}"$) - If c.RowCount > 0 Then - c.Position = 0 -' Log(c.GetString("propina")) - Private elTotal As String = c.GetString("PT_MONTO") - If c.GetString("propina") <> 0 And c.GetString("PT_PAGO_PROPINA") = "Tarjeta" Then - If imprimirEste Then Printer1.WriteString($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$) - If logger Then Log($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$) - elTotal = elTotal + c.GetString("PT_PROPINA") + If imprimirEste Then Printer1.WriteString($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Printer1.BOLD} ${Starter.mesaActual}${CRLF}"$) + If logger Then Log($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Starter.mesaActual}${CRLF}"$) +' If imprimirEste Then Printer1.WriteString($"${Printer1.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) +' If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) +' If imprimirEste Then Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) +' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF) + If imprimirEste Then Printer1.WriteString(" " & CRLF) + c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$) + +' Log($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$) +' Log(c.RowCount) + If c.RowCount > 0 Then + If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) + For i = 0 To c.RowCount - 1 + c.Position = i + Private elNombre As String = c.GetString("PE_PRONOMBRE") + If elNombre.Length > 30 Then elNombre.SubString2(0, 30) + If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) + Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$) + Next End If - - If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$) - If logger Then Log($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$) - If imprimirEste Then Printer1.WriteString($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$) - If logger Then Log($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$) + c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = '${tipoPago}' and PT_TICKET = '${Starter.ticketActual}'"$) +' Log($"Rowcount: ${c.RowCount}"$) + If c.RowCount > 0 Then + c.Position = 0 +' Log(c.GetString("propina")) + Private elTotal As String = c.GetString("PT_MONTO") +' If c.GetString("propina") <> 0 And c.GetString("PT_PAGO_PROPINA") = "Tarjeta" Then 'Se comento porque lo propina no se debe de sumar al ticket. +' If imprimirEste Then Printer1.WriteString($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$) +' If logger Then Log($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$) +' elTotal = elTotal + c.GetString("PT_PROPINA") +' End If + If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$) + If logger Then Log($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$) + If imprimirEste Then Printer1.WriteString($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$) + If logger Then Log($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$) + If tipoPago <> "VENTA" Then + If imprimirEste Then Printer1.WriteString($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$) + If logger Then Log($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$) + End If + End If + If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) + If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) + If imprimirEste Then Printer1.WriteString(CRLF) + If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) + If logger Then Log("------------------------------" & CRLF) + If tipoPago <> "VENTA" Then - If imprimirEste Then Printer1.WriteString($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$) - If logger Then Log($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$) + If imprimirEste Then Printer1.WriteString("----------- PAGADO -----------" & CRLF) + If logger Then Log("------------ PAGADO ----------" & CRLF) + Else + If imprimirEste Then Printer1.WriteString("---------- NO PAGADO ---------" & CRLF) + If logger Then Log("---------- NO PAGADO ---------" & CRLF) End If - End If - If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) - If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) - If imprimirEste Then Printer1.WriteString(CRLF) - If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) - If logger Then Log("------------------------------" & CRLF) - - If tipoPago <> "VENTA" Then - If imprimirEste Then Printer1.WriteString("----------- PAGADO -----------" & CRLF) - If logger Then Log("------------ PAGADO ----------" & CRLF) - Else - If imprimirEste Then Printer1.WriteString("---------- NO PAGADO ---------" & CRLF) - If logger Then Log("---------- NO PAGADO ---------" & CRLF) - End If - - If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) - If logger Then Log("------------------------------" & CRLF) - If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) - If logger Then Log("----ESTE TICKET NO ES UN -----" & CRLF) - If imprimirEste Then Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) - If logger Then Log("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) - If imprimirEste Then Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) - If logger Then Log("--------INFORMATIVO-----------" & CRLF) - If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) - If logger Then Log("------------------------------" & CRLF) - If imprimirEste Then Printer1.WriteString(CRLF) - If imprimirEste Then Printer1.WriteString(CRLF) - If imprimirEste Then Printer1.WriteString(CRLF) - Sleep(1000) - Printer1.DisConnect + If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) + If logger Then Log("------------------------------" & CRLF) + If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) + If logger Then Log("----ESTE TICKET NO ES UN -----" & CRLF) + If imprimirEste Then Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + If logger Then Log("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + If imprimirEste Then Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) + If logger Then Log("--------INFORMATIVO-----------" & CRLF) + If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) + If logger Then Log("------------------------------" & CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) - Catch - Log(LastException) - End Try + Sleep(1000) + Printer1.DisConnect + Catch + Log(LastException) + End Try + Next Sleep(1000) b_imp.Enabled = True ProgressDialogHide @@ -1892,5 +2157,136 @@ Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int) End Sub Private Sub p_transparenteCambioMesa_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Private Sub l_prodX_LongClick + Log(Sender.As(Label).tag) + Private m As Map = Sender.As(Label).tag.As(Map) + If m.Get("prod").As(String).Contains("Alimentos Varios") Then + p_renombraVarios.BringToFront + et_nombreVariable.Text = m.Get("prod") + et_nombreVariable.tag = m + et_precioVariable.Text = m.Get("precio") + p_renombraVarios.Visible = True + Else + ToastMessageShow("Este artículo no es editable", False) + End If +End Sub + +Private Sub b_renombraVarios_Click + p_renombraVarios.Visible = False + Private m As Map = et_nombreVariable.tag.As(Map) +' Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where PE_PROID = '${m.Get("id")}' and PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$) +' Log($"select * from pedido where PE_PROID = '${m.Get("id")}' and PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$) +' If c.RowCount > 0 Then +' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${m.Get("id")}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$) +' Log($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${et_nombreVariable.tag}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$) +' Else + Private cant As Int = m.Get("cant") + If cant = 0 Then cant = 1 + Subs.actualizaProducto(et_precioVariable.text, cant, et_nombreVariable.Text, m.Get("id"), Starter.ticketActual, DateTime.Now, Starter.meseroActual, Starter.mesaActual, et_precioVariable.Text, "VENTA", Starter.comensalesActuales) +' End If + LlenaProdsLL(Null, Null) +End Sub + +Private Sub p_transparentePago_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Private Sub b_agregarPago_Click + Starter.formasDePago = Starter.formasDePago + 1 +' Log(Starter.formasDePago) + agregaFormaDePago(l_tipoPago.Left, (70 * (Starter.formasDePago - 1)), Starter.formasDePago) +End Sub + +Sub agregaFormaDePago(left0 As Int, top0 As Int, tag0 As Int) + Log("agregaFormaDePago |" & top0 & "|" & tag0) + Private p_num As Panel + p_num.Initialize("") + p_num.LoadLayout("formaPago") + If Starter.formasDePago > 1 Then + p_propina.Top = p_propina.Top + 70 + p_formasDePago.Height = p_formasDePago.Height + 70 + p_pago.Height = p_pago.Height + 70 + b_pagoCerrar.Top = b_pagoCerrar.Top + 70 + End If + l_tipoPago2.Text = $"${Starter.formasDePago}:"$ + cb_pago2.Tag = tag0 + et_montoPago2.Tag = tag0 + cb_pago2.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo")) + p_num.Tag = tag0 + listaFormasDePagoCB.Add(cb_pago2) + listaFormaDePago.Add(cb_pago2.SelectedItem) + listaMontoDePago.Add(et_montoPago2) + p_formasDePago.AddView(p_num, left0, top0, 340dip, 38dip) + b_pagoCerrar.Enabled = False +End Sub + +Private Sub cb_pago2_SelectedIndexChanged (Index As Int) + Log(Sender.As(B4XComboBox).tag) + Log(Sender.As(B4XComboBox).SelectedItem) + listaFormaDePago.Set(Sender.As(B4XComboBox).tag - 1, Sender.As(B4XComboBox).SelectedItem) + Log(listaFormaDePago) +End Sub + +Private Sub et_montoPago2_TextChanged (Old As String, New As String) + 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) + 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) + If subtotal < Starter.totalActual Then + 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) + l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ + Else + l_faltaMonto.Text = "" + End If + If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then + b_pagoCerrar.Enabled = False + Else + b_pagoCerrar.Enabled = True + End If +End Sub + +Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean) + 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) + 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) + If subtotal < Starter.totalActual Then + 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) + l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ + Else + l_faltaMonto.Text = "" + End If + If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then + b_pagoCerrar.Enabled = False + Else + b_pagoCerrar.Enabled = True + End If End Sub \ No newline at end of file diff --git a/B4A/Files/formapago.bal b/B4A/Files/formapago.bal new file mode 100644 index 0000000000000000000000000000000000000000..33554e913da33ae24e635a3de2b1cbe9a0d6bb7b GIT binary patch literal 2900 zcmbtU%~Kpz5T6wmT|wFC>AiK=2Dc!m_&%l4ZeV1D+(avk&%}*_o}G2Mal+ z%8M1XDpjenyjos8>cN92PoX%eCr|nx=*=7cem%?p$zqans=8mle%(FYzwY4^o+;Z+#oxp^620YB*PV9)rMzD3 zwCA|1byd~I70XZTHJjD48V}yAzhwuA1wlGv>=pjV(1YLh*Q=p`?7F%Y>Z<}*dA3|+`pRQR z>$hD2ZkKU?a%~m*QCGO7Gf`~hT#Qr`IJ4}^^wjw(i^9Yxpy*CJz85lh%dXe8w?dZ? ztE)=dQ*;TSJVbxrL1e4Y;APi@tZZj=C8Bj5YuF6N#rL+Kg#oL!e1u<@!Ln7O2x@4 zN3lFxnTg6AIq0g#uUn_rkKNk$L^6kEKX6pR_oOim?HMY$N-Mb0UTamdB;`jL95O_fD5Wh9c{;^fB-SGoc*^WDESoQx2yC<*Jpn=D9fgoi9Ru%r5-e2* z<7*|t@mOHrMDq*|Q|W<@W8dRWd&APJe&_;Rel zYIVN?mU$Jd50p+x?XN-Xr=HcF0wLn%+-YhCz>+K_ZyE|X%tneNID;T@7q}RZv)wD0 z@jMGkTd#v>hQJaC`AB6(z|MlC0D+4xqda;8>`e-9fh8zKFeiBK;tit+ZwhkGbR}=X zkW`XHq8;bT>V6w6!uuUag7+ANcN6t{v6?8o56XN1c832H z3NVcNRfHt{nuM@ttf#QO6R-2ormX{pn?0Te$tYidAh-G=H6<_slz%w@Q2ud0pfk{< qqv=n{^#2!{u)R+-zlTd%ezAK8eu=|ijWA_Z_k<}uqT4{pvi=2d*yrj1 literal 0 HcmV?d00001 diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 89539196683b5637979e3df8e36561f8814d49bf..dd395b404e04f5ea8dbe93f1370c52775275cdcb 100644 GIT binary patch delta 5001 zcmb7H3sjWH72ZMC_-}MqSdh0Yf{K9h619Tije>&9!?$Mn!G!=TyDr2hX3-dvYJK&d zXlg{IHZ--?*t4xRp7+L zsj|znWqX}<`+uw88MY?Q4^`%76W5qYBUf3>y+WJaTwP~%3!#gh8afz7 zRAaR-k(=_&WE>p6OT%n-tF5k4CM!0R(hA)4Eg0s{70q_JvB@T*zS%W3Nxhg=z{~3W zjsZBp7aMKVjcJk|TL88|0S^;!kbr{)93tRQ0fz}V9B~A;;VP9w71{TpG6*~I-P5ENqtJWjxg0!|WevVc3y-fXfA3A>dg8o-N=x0-h`2c^-@w=X*X>ss#dGDBwi` zepZ=*vmsoa)LAdi4MBF75Q^32H{_u+|;z(YF|vU<#yTDJ4;DBI#lN6=N1-c&oGtD zD$dC-D<_YtygZUn=JCkoveFI_Zdsvj>NLKzku#(r1}gksf-b+=P_O@4AaP{1Wf}6G zb#ar)Vqy3_5i)&;L2f{aLz^o1$04@It2Cyo>9}7NzVFV%Na!Iqv3i`RGJTp zl9MPzHj_7%5yjd}M6q5B3B~@CM$;xx>mo@SP+i5x8eI}1TBLj%%+QZ;C~5^Qc4xy5 zgQ0*J*Ra@ZAj+lC#VbX`_yx%K*~`sM)+J`|s-UEDa;E}mog4G26|Qhl<#750pNoO5 zt7PVYUuGp>pFJ%Z5>ool7tQ)q}L__N;9h}dQSu3y{J!~zTqH9GZk>OzS zR&qenTmxGR*WwD<5QweM3t5L^im3EFcEqM?Mt(`_(L&(B7f7Ij_Q^pbiBmR^hO+-6 zwt+o&ANIUNlJ8?j^;LQvmPUl?*CP~`#IKF8(o)4X!4*p|%y>@H{0e1M8dx-B8zbSl zJdLK$57<-?^Oy^7MjL$#!_5M%nkbYnm#_(uno-3XK&6VUz>ew^TZ|o#SqcKdjd87u z;KIZMYzuBZ4Qvr%x-B?B*a_U5F^X-4&WJ*oIbCAgfh|vlN}~p>b7W{K3PZ`I$TT=# zq{S>zpnnL~F@>Oul;B9PKWpM#xv4)P&7yD|6`^pYq^`Vn^Y&zBfbdIi?T z=fcI*0JaNF8iRMCux~Rv@yj&{J&gm%>1MCuuu#_?l3wjMnCgpKMW;a8jUAB*KMGV+ zq&D~}_vm*!vWGje2WNbvBhLJ8wpVauZ@c~C_ow^0u%nhuaN2wj7v=QbFkAoBC zdg;e#j7pap45h(vbhy8cBz?ZLLuXht-mQVKZ@dF5tcEhi_6siUSI)t&Z*}P> zuyj^5dkxw{g1|6N3&&=;627%UW*vgrj{nc>Prb~>%}K{oQUKc`N3z%9(j24ib)`Yf zbDrSFuDR*GXZIAwN~zP#Pluspt}|H~<_Ei56XEak>mh4i08}oRqC4PaneN5U`Mn5V zm=0@3Y9KUrH+;P?ksX96hf#OXYrHAi0{!_~UG>`fl}Hx)i|Ej#8RgMAGdBHx{?e_Xy(5-kjG(5jE(N`3VD9(#-L;w{fE zf*U*7aSAKcShT3^44Vi~rAjc_+Qv@sJw&uj(VbBEdz^N|PEwWN`3b87x$bw{g|L#NVQxeU2rYb8;tsapI+_r^P0{ja}bmJI;MMwzPwt=4n6OU+cVV z&tdExPwL-M3^~nH|2sN&&aP%0c*ZmEO#gv&B;d6JAIBM zzsK%8wt+o8gH)VG-^Z^Dq`HXRC6}tF=MM-NJqs?oC4WR9{RunHsvjWuGf7IY`wKQS z*wgb@1dKw#f0w#w`h5>ge@J(QeF%qF3}YW)3gY2hL?-O1#bm8aVSj^8@-SXS>wQ7K!h?)21+c7cV;^}E{*hwTRi5x`JmHsHIzVa(fNez~ z5HTwT=C^3kGSvv(^w3`ZNJq2@8XRGe)I34=4=pb z{Q&#abLu|znngSKC+$E}fExbxxD7MQlX<--`oHPP$4#%PbOHax^Fc2SHR#qQE8YON zxSO}UX7yff{Zf?ko%*_W+K3OWQ2spJmN4c!^Ts}-qZs^|!aOae%%6sS@bGQr!nM+5 zDwf~)p1e(49c0XYycgwWG|WlF^`gAp&k;^}(cVuydY^KCh?;l+QXp|*tS8=g(23p` zj_!`qCcgo9DdPI%epZa!3cU|8;hKA>Ps1kt8)h$Mj(a%-`x7Av%!AB2& zh_Wv{w!To<>gHSgl2;)l6@9$h9pW;69iri0=|=X@GymZu=KqK0hrf#&9%zpd`rX`X LBx+r@4^#aQpbuf7 delta 3344 zcmb7`dr;I>6vy|Xi~N4+Zo)!*en?_piTxz@mv|WQaFPI$hkMzs89@yriHT&S#DNkANjys8V2MXdJVxTN5{F1U zPO#m%@px%qg2bT`he;eRafHMZC7vX4q{NdYoJUR^m8`<0Ve$Vmn`)C=Db@oGfvQ#1@HDC7vm9n#8jtPM0`CqlxSJf=p>3OX6&a zbBJ?EW|QQRh=4_*TEf0_TvvY?1l6!f;Te=|NlwYd4nv+NPmpqvAl(^+%YM_)q55LD z*Ki$AGusp0X@gl_VWaibm5>;3nH8IspFVq5Tw->P2RC9}wW@MOMZrMg$_i^aa{U4a z^E`8A<%&#<_aBKL4TrRhI;W!E+rXxw(YwHhug42G$tQyU$E!aKNjFyQi?gv=e1~k-+CmkLWf&FRKzBRPfLK5X!Qv7cq_oPyT zdixw!OQt5{r*Xr4YpIi`(_rojWdkYaA~dWEK~VZ#wh`gs{%jMh$&YZX^N}$UN5P<3J8;p zSida-L*}bk`+}7<;M5p@#1v1_H@L3meqgUr>R7-%WFrqnAS_ZvNQsIGrV!NTda(m2 zF-?S$r=zgo*L>Avfah$UN+s-|6z&IIY}Zk%-)K98sJuW%2Mr#D>O3-+l>}q*D0Wyf zdHDaCd|fj6^Bgm|RK;Le;W00thcum*STF}TQ#=onALEc2v_Xh3{nGkXuQ0psyhu@0fj z+SqZ?x?7^7{*K5%G0R@m$WHWx*9n)Mj*B!qRD2I7OGPo_4n}C1jx6!OJBiS37UY*E z{%i7`B4_ADG<>C(GVqE&NkRo0cV_V|gQM72a-jS=@r> zx5U7$d@no09~%7`m(f=73Gc(WvQGVgMnvs6i`b}m{J!!5c8)gi4*QS>*st{Ji4&fs zmdJemwDR{+IY+8DnOiBnrqU~=U~9!*c3vFm{6EZSGb)aQtD+dYAg=d<%arq?>V3qo z*KzDgih+w_(#5||;$ec8%Eu_+?xjtze@ru!F{Cb$h(llIJy%FwC2{ZU^bo%;lxx)b zgb#g6>bi5Nv-2|o#(yq<-raM9K>31{C{SM#e8qdxNqtR120J^yAz<7U;#a-%&Ale7 z-A$e+zBg&4*FoHGPGcf1kFQ?CZc(x%;BsLwYZF)6Ca%K*!che diff --git a/B4A/Lanterna.b4a b/B4A/Lanterna.b4a index 4a9f3f2..daee104 100644 --- a/B4A/Lanterna.b4a +++ b/B4A/Lanterna.b4a @@ -1,27 +1,28 @@ Build1=Default,lanterna.keymon.lat,HU2_PUBLIC File1=candado.png -File10=logoLanter.png -File11=logoLanter_192x192.png -File12=logoLanter2.bmp -File13=logoLanterNegro.bmp -File14=logoLanterNegro.png -File15=logoLanterNegro2.bmp -File16=MainPage.bal -File17=mesasItem.bal -File18=principal.bal -File19=proditem.bal +File10=logoLanter.bmp +File11=logoLanter.png +File12=logoLanter_192x192.png +File13=logoLanter2.bmp +File14=logoLanterNegro.bmp +File15=logoLanterNegro.png +File16=logoLanterNegro2.bmp +File17=MainPage.bal +File18=mesasItem.bal +File19=principal.bal File2=durakelo.png -File20=proditemCarrito.bal -File21=resumenCont.bal -File22=usuario.png -File23=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white.png +File20=proditem.bal +File21=proditemCarrito.bal +File22=resumenCont.bal +File23=usuario.png +File24=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white.png File3=engrane.png File4=engranes.png File5=errormanager.bal -File6=kmt.db -File7=login.bal -File8=logo.png -File9=logoLanter.bmp +File6=formaPago.bal +File7=kmt.db +File8=login.bal +File9=logo.png FileGroup1=Default Group FileGroup10=Default Group FileGroup11=Default Group @@ -38,6 +39,7 @@ FileGroup20=Default Group FileGroup21=Default Group FileGroup22=Default Group FileGroup23=Default Group +FileGroup24=Default Group FileGroup3=Default Group FileGroup4=Default Group FileGroup5=Default Group @@ -72,7 +74,7 @@ Module5=EscPosPrinter Module6=numeroATexto Module7=Starter Module8=Subs -NumberOfFiles=23 +NumberOfFiles=24 NumberOfLibraries=17 NumberOfModules=8 Version=12.8 @@ -80,7 +82,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Lanterna #VersionCode: 1 - #VersionName: 4.02.25 + #VersionName: 4.03.04 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Lanterna.b4a.meta b/B4A/Lanterna.b4a.meta index 1338ba3..5ea4a10 100644 --- a/B4A/Lanterna.b4a.meta +++ b/B4A/Lanterna.b4a.meta @@ -17,7 +17,7 @@ ModuleBreakpoints6= ModuleBreakpoints7= ModuleBreakpoints8= ModuleClosedNodes0= -ModuleClosedNodes1=12 +ModuleClosedNodes1= ModuleClosedNodes2= ModuleClosedNodes3= ModuleClosedNodes4= @@ -25,6 +25,6 @@ ModuleClosedNodes5= ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8=47,48,68 -NavigationStack=Subs,panelWH,545,0,C_Principal,b_pagoCerrar_Click,1060,2,C_Principal,b_imp_Click,1216,2,C_Principal,et_inicioDia_EnterPressed,1172,2,C_Principal,b_abrirMesa_Click,991,0,C_Principal,p_transparenteCambioMesa_Click,1868,0,C_Principal,b_cambioMesa_Click,996,6,C_Principal,p_mesasItem_Click,969,0,Visual Designer,principal.bal,-100,6,C_Principal,p_mesasItem_LongClick,983,6 +NavigationStack=C_Principal,agregaFormaDePago,2198,6,Visual Designer,principal.bal,-100,6,C_Principal,b_mesaCerrar_Click,1103,0,C_Principal,Printer1_Connected,1318,0,C_Principal,Printer1_Error,1330,0,C_Principal,b_imp_Click,1390,6,C_Principal,b_imprimirTicket_Click,2057,0,C_Principal,cb_pago2_SelectedIndexChanged,2221,0,C_Principal,b_imp_LongClick,1561,6,C_Principal,B4XPage_Appear,206,6 SelectedBuild=0 -VisibleModules=1,7,8,2,3,6 +VisibleModules=1,7,8,2,3,6,4 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 5f2f7b2..0ee4e4b 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -24,7 +24,9 @@ Sub Process_Globals Dim Logger As Boolean Dim rutav As String = "" Dim tipov As String = "VENTA" - Dim ticketActual, mesaActual, meseroActual, comensalesActuales, mac_impresora As String + Dim ticketActual, mesaActual, meseroActual, comensalesActuales, totalActual, mac_impresora As String + Dim formasDePago As Int = 1 + dim imprimirTicket as Boolean = False End Sub Sub Service_Create diff --git a/B4A/Subs.bas b/B4A/Subs.bas index dd8cdc4..a1ecd40 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -691,8 +691,8 @@ End Sub Sub traeFecha As String 'ignore DateTime.DateFormat = "MM/dd/yyyy" - Private sDate As String =DateTime.Date(DateTime.Now) - Private sTime As String =DateTime.Time(DateTime.Now) + Private sDate As String = DateTime.Date(DateTime.Now) + Private sTime As String = DateTime.Time(DateTime.Now) Return sDate & sTime End Sub @@ -1252,7 +1252,7 @@ Sub actualizaProducto(costoU As String, cant As String, nombre As String, prodId Private antCant As Int = 0 If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") Private difCant As Int = cant - antCant - Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))} where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) + Starter.skmt.ExecNonQuery($"update pedido set pe_pronombre = '${nombre}', pe_cant = ${cant}, pe_costou = ${costoU}, pe_costo_tot = ${(cant*costoU)} where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) c=Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) ' Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) @@ -1368,6 +1368,7 @@ Sub traeCategorias As List For i = 0 To c.RowCount - 1 c.Position = i l.Add(c.GetString("CAT_GP_CLASIF")) + Log(c.GetString("CAT_GP_CLASIF")) Next End If Return l @@ -1407,7 +1408,7 @@ Sub traeConsecutivoTicket(estatus As String, pago As String) As String Private m As String = "00000" Private sqlPago As String = $"M_PAGO = '${pago}'"$ If pago = "PENDIENTE" Then sqlPago = $"M_PAGO is NULL"$ - If pago = "EFECTIVO" Or pago = "TARJETA" Then + If pago = "EFECTIVO" Or pago = "TARJETA" Or pago = "MULTI-TICKET" Then Private c As Cursor = Starter.skmt.ExecQuery($"select max(PE_TICKET) as ultimo from PEDIDO where PE_TIPO = '${pago}'"$) Else Private c As Cursor = Starter.skmt.ExecQuery($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$)