Se agregaron a la impresion del ticket, lo campos de propina, regimen fiscal, direccion fiscal y otros datos requeridos y la cantidad en letra.

This commit is contained in:
2024-02-22 16:31:13 -06:00
parent 1c914b524b
commit 7c5e244db0
6 changed files with 230 additions and 58 deletions

View File

@@ -92,6 +92,8 @@ Sub Class_Globals
Private et_propina As EditText Private et_propina As EditText
Private cb_pagoPropina As B4XComboBox Private cb_pagoPropina As B4XComboBox
' Private p_test As Panel ' Private p_test As Panel
Private tipoPago As String = "VENTA"
Dim n2t As numeroATexto
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -224,16 +226,22 @@ Sub B4XPage_Appear
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
End If End If
Printer1.Initialize(Me, "Printer1") Printer1.Initialize(Me, "Printer1")
n2t.Initialize
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
End Sub End Sub
Sub B4XPage_CloseRequest As ResumableSub Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed ' BACK key pressed
'Return True to close, False to cancel 'Return True to close, False to cancel
If clv_prods_ll.AsView.Visible Then If p_pago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos.
p_pago.Visible = False
Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los
clv_prods_ll.AsView.Visible = False clv_prods_ll.AsView.Visible = False
lv_categorias.Visible = True lv_categorias.Visible = True
Else If p_pago.visible Then
p_pago.Visible = False
else If p_mesa.Visible Then else If p_mesa.Visible Then
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
p_mesa.Visible = False p_mesa.Visible = False
@@ -918,6 +926,7 @@ Private Sub p_mesasItem_Click
' Log(p_prods.Width) ' Log(p_prods.Width)
' p_prods.Width = clv_prods_ll.GetBase.Width ' p_prods.Width = clv_prods_ll.GetBase.Width
' clv_prods_ll.Base_Resize(400,Root.Height) ' clv_prods_ll.Base_Resize(400,Root.Height)
tipoPago = "VENTA"
clv_prods_ll.AsView.Visible = False clv_prods_ll.AsView.Visible = False
lv_categorias.Visible = True lv_categorias.Visible = True
' Log(Sender.As(Panel).tag) ' Log(Sender.As(Panel).tag)
@@ -1033,10 +1042,10 @@ End Sub
Private Sub b_pagoCerrar_Click Private Sub b_pagoCerrar_Click
p_pago.Visible = False p_pago.Visible = False
If cb_pago.SelectedItem = "Efectivo" Then If cb_pago.SelectedItem = "Efectivo" Then
Private tipoPago As String = "EFECTIVO" tipoPago = "EFECTIVO"
Else Else
'Pago con tarjeta 'Pago con tarjeta
Private tipoPago As String = "TARJETA" tipoPago = "TARJETA"
End If End If
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago) 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 CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$)
@@ -1044,11 +1053,19 @@ Private Sub b_pagoCerrar_Click
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}'"$) 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}'"$) ' 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" Private laPropina As String = "0"
If et_propina.Text <> "" Then laPropina = et_propina.Text 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'"$) 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($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA"$)
B4XPage_CloseRequest Log(tipoPago)
Starter.ticketActual = sigTicket
b_imprimirTicket_Click
' Log("Close Request")
' B4XPage_CloseRequest
Sleep(1000)
WobbleMenu1_Tab1Click
End Sub End Sub
Private Sub cb_pago_SelectedIndexChanged (Index As Int) Private Sub cb_pago_SelectedIndexChanged (Index As Int)
@@ -1146,10 +1163,12 @@ End Sub
Private Sub et_inicioDia_EnterPressed Private Sub et_inicioDia_EnterPressed
If et_inicioDia.Text.trim = "INICIO DIA" Then If et_inicioDia.Text.trim = "INICIO DIA" Then
p_transparenteCierreAdmin.Visible = False p_transparenteCierreAdmin.Visible = False
et_inicioDia.Text = "" et_inicioDia.Text = ""
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("CIERRE ADMIN")) Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("CIERRE ADMIN"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CIERRE ADMIN","0")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CIERRE ADMIN","0"))
Starter.skmt.ExecNonQuery("delete from PEDIDO")
Starter.skmt.ExecNonQuery("delete from PEDIDO_TICKET")
End If End If
End Sub End Sub
@@ -1290,7 +1309,6 @@ Sub b_imp_Click
Else Else
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True) ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
End If End If
' Printer1.WriteString("__________" & CRLF) ' Printer1.WriteString("__________" & CRLF)
' Printer1.WriteString("------------------------------" & CRLF) ' Printer1.WriteString("------------------------------" & CRLF)
' Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) ' Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
@@ -1658,17 +1676,15 @@ Private Sub b_regresarProds_Click
End Sub End Sub
Private Sub b_imprimirTicket_Click Private Sub b_imprimirTicket_Click
Private imprimirEste As Boolean = True Private imprimirEste As Boolean = False
Private logger As Boolean = True Private logger As Boolean = True
Private TAMANO As Int Private TAMANO As Int
Private ESPACIO As Int Private ESPACIO As Int
Private BLANCO As String Private BLANCO As String
Private c, s As Cursor Private c, s As Cursor
Private l_total, la_cuenta As Label Private l_total, la_cuenta As Label
l_total.Initialize("l") l_total.Initialize("l")
la_cuenta.Initialize("2") la_cuenta.Initialize("2")
b_imp.Enabled = False 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). ' 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 ...") ProgressDialogShow("Imprimiendo, un momento ...")
@@ -1698,7 +1714,6 @@ Private Sub b_imprimirTicket_Click
Sleep(500) Sleep(500)
impresoraConectada = False impresoraConectada = False
End If End If
DateTime.DateFormat = "MM/dd/yyyy" DateTime.DateFormat = "MM/dd/yyyy"
Private sDate,sTime As String Private sDate,sTime As String
sDate = DateTime.Date(DateTime.Now) sDate = DateTime.Date(DateTime.Now)
@@ -1718,69 +1733,84 @@ Private Sub b_imprimirTicket_Click
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
myimage = Printer1.DitherImage2D(myimage, 128) myimage = Printer1.DitherImage2D(myimage, 128)
myimage= Printer1.PackImage(myimage) myimage= Printer1.PackImage(myimage)
' Mesero: Donald--------- # Mesa
' Mesero: Luis----------- # Mesa
' ...........................2
If imprimirEste Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening 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.WriteString(Printer1.REVERSE)
If imprimirEste Then Printer1.PrintImage(myimage) If imprimirEste Then Printer1.PrintImage(myimage)
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
Try Try
If imprimirEste Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) If imprimirEste Then Printer1.WriteString("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF)
If logger Then Log("LA LANTERNA RISTORANTE" & 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 imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF)
If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF) If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF)
If imprimirEste Then Printer1.WriteString(sDate &" " & sTime & CRLF) If imprimirEste Then Printer1.WriteString("CDMX " & sDate &" " & sTime & CRLF)
If logger Then Log(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 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 logger Then Log($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)} # Mesa${CRLF}"$)
If imprimirEste Then Printer1.WriteString($"${Printer1.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) 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 imprimirEste Then Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF) ' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF)
If imprimirEste Then Printer1.WriteString(" " & CRLF) If imprimirEste Then Printer1.WriteString(" " & CRLF)
If logger Then Log(" " & CRLF) c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
If c.RowCount > 0 Then If c.RowCount > 0 Then
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
For i = 0 To c.RowCount - 1 For i = 0 To c.RowCount - 1
c.Position = i c.Position = i
Private elNombre As String = c.GetString("PE_PRONOMBRE") Private elNombre As String = c.GetString("PE_PRONOMBRE")
If elNombre.Length > 30 Then elNombre.SubString2(0, 30) 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}"$) 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}"$) Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
Next Next
End If End If
c = Starter.skmt.ExecQuery($"select * from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = 'VENTA' and PT_TICKET = '${Starter.ticketActual}'"$) 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 If c.RowCount > 0 Then
c.Position = 0 c.Position = 0
If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$) ' Log(c.GetString("propina"))
If logger Then Log($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$) 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")
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 End If
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
' printer.WriteLine("------------VENTA-------------")
' printer.WriteLine("TOTAL COMPRA: $:" & total_cliente)
' Printer1.WriteString(Printer1.DEFAULTS & CRLF)
If imprimirEste Then Printer1.WriteString(CRLF) If imprimirEste Then Printer1.WriteString(CRLF)
' Printer1.WriteString(Printer1.SINGLE) If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
'Printer1.WriteString("------------------------------") If logger Then Log("------------------------------" & CRLF)
' Printer1.WriteString(Printer1.HIGH)
' Printer1.Justify = 1 If tipoPago <> "VENTA" Then
' If imprimirEste Then Printer1.WriteString( "Nombre y Firma del cliente" & CRLF) If imprimirEste Then Printer1.WriteString("----------- PAGADO -----------" & CRLF)
' If logger Then Log( "Nombre y Firma del cliente" & CRLF) If logger Then Log("------------ PAGADO ----------" & CRLF)
' If imprimirEste Then Printer1.WriteString(CRLF) Else
' If imprimirEste Then Printer1.WriteString(CRLF) If imprimirEste Then Printer1.WriteString("---------- NO PAGADO ---------" & CRLF)
' If imprimirEste Then Printer1.WriteString(CRLF) If logger Then Log("---------- NO PAGADO ---------" & CRLF)
' Printer1.WriteString(Printer1.DEFAULTS) End If
' Printer1.WriteString(Printer1.SINGLE)
' If imprimirEste Then Printer1.WriteString("__________" & CRLF)
' If logger Then Log("__________" & CRLF)
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF) If logger Then Log("------------------------------" & CRLF)
If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
@@ -1803,6 +1833,7 @@ Private Sub b_imprimirTicket_Click
Sleep(1000) Sleep(1000)
b_imp.Enabled = True b_imp.Enabled = True
ProgressDialogHide ProgressDialogHide
' B4XPage_CloseRequest
End Sub End Sub
Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int) Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int)

Binary file not shown.

View File

@@ -69,17 +69,18 @@ Module2=C_Principal
Module3=DBRequestManager Module3=DBRequestManager
Module4=errorManager Module4=errorManager
Module5=EscPosPrinter Module5=EscPosPrinter
Module6=Starter Module6=numeroATexto
Module7=Subs Module7=Starter
Module8=Subs
NumberOfFiles=23 NumberOfFiles=23
NumberOfLibraries=17 NumberOfLibraries=17
NumberOfModules=7 NumberOfModules=8
Version=12.8 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Lanterna #ApplicationLabel: Lanterna
#VersionCode: 1 #VersionCode: 1
#VersionName: 4.02.13 #VersionName: 4.02.14
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -6,6 +6,7 @@ ModuleBookmarks4=
ModuleBookmarks5= ModuleBookmarks5=
ModuleBookmarks6= ModuleBookmarks6=
ModuleBookmarks7= ModuleBookmarks7=
ModuleBookmarks8=
ModuleBreakpoints0= ModuleBreakpoints0=
ModuleBreakpoints1= ModuleBreakpoints1=
ModuleBreakpoints2= ModuleBreakpoints2=
@@ -14,14 +15,16 @@ ModuleBreakpoints4=
ModuleBreakpoints5= ModuleBreakpoints5=
ModuleBreakpoints6= ModuleBreakpoints6=
ModuleBreakpoints7= ModuleBreakpoints7=
ModuleBreakpoints8=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1=12 ModuleClosedNodes1=12
ModuleClosedNodes2=50,51,52 ModuleClosedNodes2=28
ModuleClosedNodes3= ModuleClosedNodes3=
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5= ModuleClosedNodes5=
ModuleClosedNodes6= ModuleClosedNodes6=
ModuleClosedNodes7=47,48,68 ModuleClosedNodes7=
NavigationStack=Starter,Service_Start,53,0,C_Principal,B4XPage_Created,169,0,C_Principal,p_mesasItem_Click,925,0,C_Principal,LlenaProdsLL,401,6,C_Principal,b_prodMas_Click,304,0,Visual Designer,principal.bal,-100,1,Visual Designer,login.bal,-100,5,B4XMainPage,user_TextChanged,240,6,B4XMainPage,JobDone,206,0,C_Principal,b_prodMenos_Click,256,0 ModuleClosedNodes8=47,48,68
NavigationStack=numeroATexto,NumberToWordsPositive,40,6,C_Principal,p_mesasItem_Click,922,0,C_Principal,Class_Globals,88,1,C_Principal,b_regresarProds_Click,1664,0,C_Principal,b_imprimirTicket_Click,1826,6,C_Principal,Printer1_Error,1195,0,C_Principal,b_mesaCerrar_Click,1008,0,Visual Designer,principal.bal,-100,6,C_Principal,b_pagoCerrar_Click,1060,2,C_Principal,b_imp_Click,1205,2,C_Principal,et_inicioDia_EnterPressed,1164,2
SelectedBuild=0 SelectedBuild=0
VisibleModules=1,6,7,2,3 VisibleModules=1,7,8,2,3,6

View File

@@ -200,6 +200,7 @@ Sub revisaBD 'ignore
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESEROS(MS_ID TEXT, MS_NOMBRE TEXT, MS_MESAS_ASIGNADAS TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESEROS(MS_ID TEXT, MS_NOMBRE TEXT, MS_MESAS_ASIGNADAS TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_MESA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_TICKET TEXT,PE_FECHA TEXT,PE_MESERO TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_MESA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_TICKET TEXT,PE_FECHA TEXT,PE_MESERO TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_TICKET (PT_FACT TEXT, PT_COSTO_SIN TEXT, PT_MESA TEXT, PT_PAGO TEXT, PT_ALMACEN TEXT, PT_LON TEXT, PT_LAT TEXT, PT_TICKET TEXT, PT_FECHA TEXT, PT_MESERO TEXT, PT_COMENSALES INTEGER, PT_NOART NUMERIC, PT_MONTO TEXT, PT_ENVIO_OK INTEGER, PT_TIEMPO_TIENDA FLOAT, PT_FACTURA INTEGER)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_TICKET (PT_FACT TEXT, PT_COSTO_SIN TEXT, PT_MESA TEXT, PT_PAGO TEXT, PT_ALMACEN TEXT, PT_LON TEXT, PT_LAT TEXT, PT_TICKET TEXT, PT_FECHA TEXT, PT_MESERO TEXT, PT_COMENSALES INTEGER, PT_NOART NUMERIC, PT_MONTO TEXT, PT_ENVIO_OK INTEGER, PT_TIEMPO_TIENDA FLOAT, PT_FACTURA INTEGER)")
' kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROPINAS (PR_MESA TEXT, PR_TICKET TEXT, PR_PAGO TEXT, PR_PROPINA TEXT, PT_MESERO TEXT, PR_FECHA TEXT)")
agregaColumna("PEDIDO_TICKET", "PT_TICKET", "TEXT") agregaColumna("PEDIDO_TICKET", "PT_TICKET", "TEXT")
agregaColumna("PEDIDO_TICKET", "PT_TARJETA", "TEXT") agregaColumna("PEDIDO_TICKET", "PT_TARJETA", "TEXT")
agregaColumna("PEDIDO_TICKET", "PT_PROPINA", "TEXT") agregaColumna("PEDIDO_TICKET", "PT_PROPINA", "TEXT")
@@ -1483,6 +1484,7 @@ Sub rellenaHasta(tamano As Int) As String
Return relleno Return relleno
End Sub End Sub
'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS 'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS
'1782 '1782
'10.0.0.106 '10.0.0.106

135
B4A/numeroATexto.bas Normal file
View File

@@ -0,0 +1,135 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.8
@EndOfDesignText@
Sub Class_Globals
Dim UnitWords() As String = Array As String( _
"", "un", "dos", "tres", "cuatro", _
"cinco", "seis", "siete", "ocho", "nueve", _
"diez", "once", "doce", "trece", "catorce", _
"quince", "dieciseis", "diecisiete", "dieciocho", "diecinueve" _
)
Dim TenWords() As String = Array As String( _
"", "diez", "veinte", "treinta", "cuarenta", _
"cincuenta", "sesenta", "setenta", "ochenta", "noventa" _
)
'only need to go up to Pentillions to handle largest Long integer, but while we're here...
Dim ThousandWords() As String = Array As String( _
"", "mil", "millon", "billon", "trillon", _
"Cuadrillon", "Pentillion", "Sexillion", "Septillion", "Octillion" _
)
Dim moneda As String = "pesos"
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
Return Me
End Sub
Sub NumberToWords(N As Double) As String
If N < 0 Then
Return "Minus " & NumberToWordsPositive(-N)
Else
Return NumberToWordsPositive(N) 'including zero
End If
End Sub
Sub NumberToWordsPositive(N0 As Double) As String
Private N As Long
Private temp1() As String = Regex.Split("\.", NumberFormat2(N0, 1, 2, 2, False))
Private conDecimales As Boolean = False
Private losCents As String = 0
' Log(N0)
' Log(temp1.Length)
' Log(temp1(0))
If temp1.Length > 1 Then
conDecimales = True
N = temp1(0)
losCents = temp1(1)
' Log($"Con Decimales: ${losCents}"$)
Else
N = N0
End If
' Log(">> " & N)
If N = 0 Then
Return "Cero" 'that gets rid of that pesky special case
End If
Dim GroupsOfThree(10) As Int
Dim NumGroupsOfThree As Int = 0
Do While N <> 0
GroupsOfThree(NumGroupsOfThree) = N Mod 1000
NumGroupsOfThree = NumGroupsOfThree + 1
N = N / 1000
Loop
Dim Temp As String = ""
For GroupOfThree = NumGroupsOfThree - 1 To 0 Step -1
Dim ThisGroup As Int = GroupsOfThree(GroupOfThree)
If ThisGroup <> 0 Then
If Temp.Length <> 0 Then
' If GroupOfThree = 0 And ThisGroup < 100 Then
' Temp = Temp & " y "
'' If Temp.Contains("mil y ") Then Temp = "mil "
' Else
' Temp = Temp & " "
' End If
Temp = Temp & " "
End If
Temp = Temp & NumberToWords1000(ThisGroup)
If GroupOfThree <> 0 Then
' Log($"${Temp} - ${ThousandWords(GroupOfThree)}"$)
Temp = Temp & " " & ThousandWords(GroupOfThree)
If Temp = "un mil" Then
' Log(9)
Temp = "mil"
End If
End If
End If
Next
Temp = Temp.Substring2(0,1).ToUppercase & Temp.SubString(1)
Return Temp & $" ${moneda} ${NumberFormat2(losCents, 2, 0, 0, False)}/100 M.N."$
End Sub
Sub NumberToWords1000(N As Int) As String
If N < 100 Then
' Log(1)
Return NumberToWords100(N)
End If
Dim Hundreds As String = UnitWords(N / 100) & "cientos" 'Hundreds always non-blank since N < 100 already done
If UnitWords(N/100) = "nueve" Then Hundreds = "novecientos"
If UnitWords(N/100) = "cinco" Then Hundreds = "quinientos"
If UnitWords(N/100) = "siete" Then Hundreds = "setecientos"
' Log($"${N/100} - ${UnitWords(N / 100)}"$)
If UnitWords(N / 100) = "un" Then Hundreds = "ciento"
Dim TensUnits As String = NumberToWords100(N Mod 100) 'TensUnits could be blank if digits are 00
If TensUnits.Length = 0 Then
' Log(2)
If UnitWords(N / 100) = "un" Then Hundreds = "cien"
Return Hundreds
Else
' Log(3)
Return Hundreds & " " & TensUnits
End If
End Sub
Sub NumberToWords100(N As Int) As String
If N < 20 Then
Return UnitWords(N)
End If
Dim Tens As String = TenWords(N / 10) 'Tens always non-blank since N < 20 already done
Dim Units As String = UnitWords(N Mod 10) 'Units could be blank if digit is 0
If Units.Length = 0 Then
Return Tens
Else
' Log($"${Tens} - ${Units}"$)
If Tens = "veinte" Then
Return "veinti" & Units
Else
Return Tens & " y " & Units
End If
End If
End Sub