mirror of
https://github.com/KeymonSoft/Lanterna.git
synced 2026-04-17 21:06:32 +00:00
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:
@@ -92,6 +92,8 @@ Sub Class_Globals
|
||||
Private et_propina As EditText
|
||||
Private cb_pagoPropina As B4XComboBox
|
||||
' Private p_test As Panel
|
||||
Private tipoPago As String = "VENTA"
|
||||
Dim n2t As numeroATexto
|
||||
End Sub
|
||||
|
||||
'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"))
|
||||
End If
|
||||
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
|
||||
|
||||
Sub B4XPage_CloseRequest As ResumableSub
|
||||
' BACK key pressed
|
||||
'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
|
||||
lv_categorias.Visible = True
|
||||
Else If p_pago.visible Then
|
||||
p_pago.Visible = False
|
||||
else If p_mesa.Visible Then
|
||||
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
|
||||
p_mesa.Visible = False
|
||||
@@ -918,6 +926,7 @@ 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)
|
||||
tipoPago = "VENTA"
|
||||
clv_prods_ll.AsView.Visible = False
|
||||
lv_categorias.Visible = True
|
||||
' Log(Sender.As(Panel).tag)
|
||||
@@ -1033,10 +1042,10 @@ End Sub
|
||||
Private Sub b_pagoCerrar_Click
|
||||
p_pago.Visible = False
|
||||
If cb_pago.SelectedItem = "Efectivo" Then
|
||||
Private tipoPago As String = "EFECTIVO"
|
||||
tipoPago = "EFECTIVO"
|
||||
Else
|
||||
'Pago con tarjeta
|
||||
Private tipoPago As String = "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}'"$)
|
||||
@@ -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}'"$)
|
||||
' 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
|
||||
|
||||
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"$)
|
||||
B4XPage_CloseRequest
|
||||
Log(tipoPago)
|
||||
Starter.ticketActual = sigTicket
|
||||
b_imprimirTicket_Click
|
||||
' Log("Close Request")
|
||||
' B4XPage_CloseRequest
|
||||
Sleep(1000)
|
||||
WobbleMenu1_Tab1Click
|
||||
End Sub
|
||||
|
||||
Private Sub cb_pago_SelectedIndexChanged (Index As Int)
|
||||
@@ -1146,10 +1163,12 @@ End Sub
|
||||
|
||||
Private Sub et_inicioDia_EnterPressed
|
||||
If et_inicioDia.Text.trim = "INICIO DIA" Then
|
||||
p_transparenteCierreAdmin.Visible = False
|
||||
p_transparenteCierreAdmin.Visible = False
|
||||
et_inicioDia.Text = ""
|
||||
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.ExecNonQuery("delete from PEDIDO")
|
||||
Starter.skmt.ExecNonQuery("delete from PEDIDO_TICKET")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -1290,7 +1309,6 @@ Sub b_imp_Click
|
||||
Else
|
||||
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
|
||||
End If
|
||||
|
||||
' Printer1.WriteString("__________" & CRLF)
|
||||
' Printer1.WriteString("------------------------------" & CRLF)
|
||||
' Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
|
||||
@@ -1658,17 +1676,15 @@ Private Sub b_regresarProds_Click
|
||||
End Sub
|
||||
|
||||
Private Sub b_imprimirTicket_Click
|
||||
Private imprimirEste As Boolean = True
|
||||
Private imprimirEste As Boolean = False
|
||||
Private logger As Boolean = True
|
||||
Private TAMANO As Int
|
||||
Private ESPACIO As Int
|
||||
Private BLANCO As String
|
||||
Private c, s As Cursor
|
||||
|
||||
Private l_total, la_cuenta As Label
|
||||
l_total.Initialize("l")
|
||||
la_cuenta.Initialize("2")
|
||||
|
||||
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 ...")
|
||||
@@ -1698,7 +1714,6 @@ Private Sub b_imprimirTicket_Click
|
||||
Sleep(500)
|
||||
impresoraConectada = False
|
||||
End If
|
||||
|
||||
DateTime.DateFormat = "MM/dd/yyyy"
|
||||
Private sDate,sTime As String
|
||||
sDate = DateTime.Date(DateTime.Now)
|
||||
@@ -1718,69 +1733,84 @@ Private Sub b_imprimirTicket_Click
|
||||
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
|
||||
myimage = Printer1.DitherImage2D(myimage, 128)
|
||||
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(Printer1.REVERSE)
|
||||
If imprimirEste Then Printer1.PrintImage(myimage)
|
||||
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
|
||||
Try
|
||||
If imprimirEste Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
||||
If logger Then Log("LA LANTERNA RISTORANTE" & CRLF)
|
||||
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(sDate &" " & sTime & CRLF)
|
||||
If logger Then Log(sDate &" " & sTime & 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.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$)
|
||||
If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$)
|
||||
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)
|
||||
If logger Then Log(" " & CRLF)
|
||||
c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
|
||||
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
|
||||
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 * 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
|
||||
c.Position = 0
|
||||
If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$)
|
||||
If logger Then Log($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$)
|
||||
' 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")
|
||||
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)
|
||||
' printer.WriteLine("------------VENTA-------------")
|
||||
' printer.WriteLine("TOTAL COMPRA: $:" & total_cliente)
|
||||
' Printer1.WriteString(Printer1.DEFAULTS & CRLF)
|
||||
If imprimirEste Then Printer1.WriteString(CRLF)
|
||||
' Printer1.WriteString(Printer1.SINGLE)
|
||||
'Printer1.WriteString("------------------------------")
|
||||
' Printer1.WriteString(Printer1.HIGH)
|
||||
' Printer1.Justify = 1
|
||||
' If imprimirEste Then Printer1.WriteString( "Nombre y Firma del cliente" & CRLF)
|
||||
' If logger Then Log( "Nombre y Firma del cliente" & CRLF)
|
||||
' If imprimirEste Then Printer1.WriteString(CRLF)
|
||||
' If imprimirEste Then Printer1.WriteString(CRLF)
|
||||
' If imprimirEste Then Printer1.WriteString(CRLF)
|
||||
' Printer1.WriteString(Printer1.DEFAULTS)
|
||||
' Printer1.WriteString(Printer1.SINGLE)
|
||||
' If imprimirEste Then Printer1.WriteString("__________" & CRLF)
|
||||
' If logger Then Log("__________" & 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)
|
||||
@@ -1803,6 +1833,7 @@ Private Sub b_imprimirTicket_Click
|
||||
Sleep(1000)
|
||||
b_imp.Enabled = True
|
||||
ProgressDialogHide
|
||||
' B4XPage_CloseRequest
|
||||
End Sub
|
||||
|
||||
Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int)
|
||||
|
||||
Binary file not shown.
@@ -69,17 +69,18 @@ Module2=C_Principal
|
||||
Module3=DBRequestManager
|
||||
Module4=errorManager
|
||||
Module5=EscPosPrinter
|
||||
Module6=Starter
|
||||
Module7=Subs
|
||||
Module6=numeroATexto
|
||||
Module7=Starter
|
||||
Module8=Subs
|
||||
NumberOfFiles=23
|
||||
NumberOfLibraries=17
|
||||
NumberOfModules=7
|
||||
NumberOfModules=8
|
||||
Version=12.8
|
||||
@EndOfDesignText@
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Lanterna
|
||||
#VersionCode: 1
|
||||
#VersionName: 4.02.13
|
||||
#VersionName: 4.02.14
|
||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
|
||||
@@ -6,6 +6,7 @@ ModuleBookmarks4=
|
||||
ModuleBookmarks5=
|
||||
ModuleBookmarks6=
|
||||
ModuleBookmarks7=
|
||||
ModuleBookmarks8=
|
||||
ModuleBreakpoints0=
|
||||
ModuleBreakpoints1=
|
||||
ModuleBreakpoints2=
|
||||
@@ -14,14 +15,16 @@ ModuleBreakpoints4=
|
||||
ModuleBreakpoints5=
|
||||
ModuleBreakpoints6=
|
||||
ModuleBreakpoints7=
|
||||
ModuleBreakpoints8=
|
||||
ModuleClosedNodes0=
|
||||
ModuleClosedNodes1=12
|
||||
ModuleClosedNodes2=50,51,52
|
||||
ModuleClosedNodes2=28
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes4=
|
||||
ModuleClosedNodes5=
|
||||
ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=47,48,68
|
||||
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
|
||||
ModuleClosedNodes7=
|
||||
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
|
||||
VisibleModules=1,6,7,2,3
|
||||
VisibleModules=1,7,8,2,3,6
|
||||
|
||||
@@ -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 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 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_TARJETA", "TEXT")
|
||||
agregaColumna("PEDIDO_TICKET", "PT_PROPINA", "TEXT")
|
||||
@@ -1483,6 +1484,7 @@ Sub rellenaHasta(tamano As Int) As String
|
||||
Return relleno
|
||||
End Sub
|
||||
|
||||
|
||||
'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS
|
||||
'1782
|
||||
'10.0.0.106
|
||||
|
||||
135
B4A/numeroATexto.bas
Normal file
135
B4A/numeroATexto.bas
Normal 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
|
||||
Reference in New Issue
Block a user