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 0000000..33554e9 Binary files /dev/null and b/B4A/Files/formapago.bal differ diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 8953919..dd395b4 100644 Binary files a/B4A/Files/principal.bal and b/B4A/Files/principal.bal differ 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}"$)