mirror of
https://github.com/KeymonSoft/Lanterna_H.git
synced 2026-04-17 21:06:16 +00:00
4660 lines
222 KiB
QBasic
4660 lines
222 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Activity
|
|
Version=12.8
|
|
@EndOfDesignText@
|
|
#Region Activity Attributes
|
|
#FullScreen: False
|
|
#IncludeTitle: false
|
|
#End Region
|
|
|
|
Sub Process_Globals
|
|
'These global variables will be declared once when the application starts.
|
|
'These variables can be accessed from all modules.
|
|
Private xui As XUI 'ignore
|
|
Dim prodsMap As Map
|
|
Dim etCantHasFocus, hayPedido As Boolean 'ignore
|
|
Dim ticketId As String
|
|
Dim rutaUsuario, folio As String 'ignore
|
|
Dim query As String
|
|
Dim listaProds, listaHints, listaHintsM, list_prodsPedido As List
|
|
Dim reiniciarlistaProds As Boolean = False 'ignore
|
|
Dim forzarBusqueda As Boolean = False
|
|
Dim reqManager As DBRequestManager
|
|
Dim su As StringUtils
|
|
Dim cs As CSBuilder
|
|
Dim impresoraConectada As Boolean = False
|
|
Dim errorImpresora As Int = 0
|
|
Dim Printer1 As EscPosPrinter
|
|
Private tipoPago As String = "VENTA"
|
|
Dim n2t As numeroATexto
|
|
Dim n As Int
|
|
Dim pagoPropina As String
|
|
Dim sftp1 As SFtp 'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
End Sub
|
|
|
|
Sub Globals
|
|
'These global variables will be redeclared each time the activity is created.
|
|
'These variables can only be accessed from this module.
|
|
Dim listaFormasDePagoCB, listaFormaDePago, listaMontoDePago, listaTickets As List
|
|
Private p_leyendaDescuento As Panel
|
|
Private b_leyendaDescuento As Button
|
|
Private cb_leyendaDescuento As CheckBox
|
|
Private et_buscar As EditText
|
|
Private p_buscar As Panel
|
|
Private p_transparenteDescuento As Panel
|
|
Private cb_mostrarDescuento As CheckBox
|
|
Dim p_transparenteCierreAdmin As Panel
|
|
Private cd1 As ColorDrawable
|
|
Private p_botonesCierre As Panel
|
|
Private p_transparenteResumen As Panel
|
|
Private p_resumen As Panel
|
|
Private l_resumen As Label
|
|
Private sv_resumen As ScrollView
|
|
Dim b_imp As Button
|
|
Private b_envioInfo As Button
|
|
Private b_imprimirTicket As Button
|
|
Private b_regresarProds As Button
|
|
Private p_botonesProds As Panel
|
|
Private et_propina As EditText
|
|
Private cb_pagoPropina As B4XComboBox
|
|
' Private p_test As Panel
|
|
Private p_transparenteCambioMesa As Panel
|
|
Private p_cambioMesa As Panel
|
|
Private l_cambioMesa2 As Label
|
|
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
|
|
Private l_tipoPago As Label
|
|
Private formaPago As String
|
|
Private l_faltaMonto As Label
|
|
Private p_opcionEfectivo As Panel
|
|
Private l_opcionEfectivo As Label
|
|
Private CheckBox1 As CheckBox
|
|
Private cb_opcionEfectivo As CheckBox
|
|
' Private p_transparenteVerOrden As Panel
|
|
Private p_verOrden As Panel
|
|
Private l_verOrden As Label
|
|
Private lv_verOrden As ListView
|
|
Private b_reabrirMesa As Button
|
|
Private p_reabrirMesaMulti As Panel
|
|
Private b_reabrirMesaMulti As Button
|
|
Private b_imp2 As Button
|
|
Private p_wobble As Panel
|
|
Private p_botonesCerrar As Panel
|
|
Private b_imprimirCerrar As Button
|
|
Private p_principal As Panel
|
|
Dim WobbleMenu1 As WobbleMenu
|
|
Dim PCLV, PCLVM As PreoptimizedCLV
|
|
Private p_about As Panel
|
|
Private clv_prods_ll, clv As CustomListView
|
|
' Private p_botonesVenta As Panel
|
|
Private b_continuar As Button
|
|
Private l_about As Label
|
|
' Private et_busca As EditText
|
|
' Private b_buscar As Button
|
|
' Private lv_promos As ListView
|
|
Private b_prodMenos As Button
|
|
Private et_pCant As EditText
|
|
Private l_pCant As Label
|
|
Private b_prodMas As Button
|
|
Private p_botMasMen As Panel
|
|
Private l_prodX As Label
|
|
Private i_prod As ImageView
|
|
Private p_prods As Panel
|
|
Private p_mesas As Panel
|
|
Private b_terminar As Button
|
|
Private p_historial As Panel
|
|
' Private p_botonesHist As Panel
|
|
Private l_compraTerminada As Label
|
|
Private b_borrar As Button
|
|
Private l_historialVacio As Label
|
|
Private lv_historial As ListView
|
|
Dim clv_mesas As CustomListView
|
|
Private l_mesaX As Label
|
|
Private l_estatus As Label
|
|
Private l_mesa As Label
|
|
Private p_mesa As Panel
|
|
Private b_abrirMesa As Button
|
|
Private cb_comensales As B4XComboBox
|
|
Dim cb_mesero As B4XComboBox
|
|
Private l_mesero As Label
|
|
Private l_comensales As Label
|
|
Private l_pago As Label
|
|
Private cb_pago As B4XComboBox
|
|
Private p_mesaCampos As Panel
|
|
Private p_mesasItem As Panel
|
|
Private l_comensalesAbierta2 As Label
|
|
Private l_meseroAbierta2 As Label
|
|
Private b_mesaEditar As Button
|
|
Private b_mesaCerrar As Button
|
|
Private p_mesaAbierta As Panel
|
|
Private lv_categorias As ListView
|
|
Private p_pago As Panel
|
|
' Private Label1 As Label
|
|
Private b_pagoCerrar As Button
|
|
Private b_cierraAdmin As Button
|
|
Private b_cierreTotal As Button
|
|
Private p_cierreAdmin As Panel
|
|
Private et_inicioDia As EditText
|
|
Private l_inicioDia As Label
|
|
Private l_cierreAdmin As Label
|
|
Private clv_orden As CustomListView
|
|
Dim listaProdsOrden As List
|
|
Private p_productos1, p_productos2, p_productos3, p_productos4, p_productos5 As Panel
|
|
Private b_sigPagina As Button
|
|
Private panelEnUso As Int = 1
|
|
Private p_contProductos As Panel
|
|
Private l_selAlimentos As Label
|
|
Private l_selVinos As Label
|
|
Dim selBuscar As String = ""
|
|
Private et_selBuscar As EditText
|
|
Private Button1 As Button
|
|
Private l_panelEnUso As Label
|
|
Private l_about2 As Label
|
|
Private i_logo As ImageView
|
|
Private l_tituloHistorial As Label
|
|
Private p_prevBusqueda As Panel
|
|
Private l_total2 As Label
|
|
Private subtotal As String = 0
|
|
Private subtotal2 As String = 0
|
|
Private b_resumen As Button
|
|
Private cb_factura As CheckBox
|
|
Private p_resumenDia As Panel
|
|
Private clv_resumenDia As CustomListView
|
|
Private l_titResumenDia As Label
|
|
Private p_resItem As Panel
|
|
Private l_formaPago As Label
|
|
Private l_comprobante As Label
|
|
Private l_total As Label
|
|
Private l_propina, l_propinaPago As Label
|
|
Private l_consumo As Label
|
|
Private l_selMedios As Label
|
|
Private b_cierraParcial As Button
|
|
Private l_titResMesa As Label
|
|
Private l_titResConsumo As Label
|
|
Private l_titResPropina, l_titResPropinaPago As Label
|
|
Private l_titResPagoTot As Label
|
|
Private l_titResComprobante As Label
|
|
Private l_titResFormaPago As Label
|
|
Private b_imp3 As Button
|
|
Private p_contScrollView As Panel
|
|
Private p_resumenDiaTotales As Panel
|
|
Dim imprimirEfectivo As Boolean = False
|
|
Private l_propinaEfectivo, l_propinaAmex, l_propinaTDD, l_propinaTDC, l_propinaTotal, l_consumoEfectivo, l_consumoAmex, l_consumoTDC, l_consumoTDD, l_consumoTotal, l_totalEfectivo, l_totalAmex, l_totalTDD, l_totalTDC, l_totalTotal As Label
|
|
Private l_titPropinaPago As Label
|
|
Private p_transparenteCambioPagos As Panel
|
|
Private b_cambioPagos As Button
|
|
Private p_cambioPagos As Panel
|
|
Private cb_nuevoPago As B4XComboBox
|
|
Private cb_nuevoPagoPropina As B4XComboBox
|
|
Dim cambioPago, cambioPagoPropina As String
|
|
Private l_mesa0 As Label
|
|
Private b_reimprimirTicket As Button
|
|
Private p_selBuscar As Panel
|
|
Private b_prevPagina As Button
|
|
Private et_nuevoPago As EditText
|
|
Private et_nuevoPagoPropina As EditText
|
|
Private p_botonesCierreTotal As Panel
|
|
End Sub
|
|
|
|
Sub Activity_Create(FirstTime As Boolean)
|
|
'Do not forget to load the layout file created with the visual designer. For example:
|
|
Activity.LoadLayout("Principal")
|
|
Subs.panelWH(p_principal, Activity.Width, Activity.Height)
|
|
Subs.panelWH(p_mesa, Activity.Width, Activity.Height - WobbleMenu1.Height)
|
|
If File.Exists(Starter.ruta, "kmt.db") = False Then
|
|
File.Copy(File.DirAssets, "kmt.db", Starter.ruta, "kmt.db")
|
|
End If
|
|
PCLV.Initialize(Me, "PCLV", clv_prods_ll)
|
|
PCLVM.Initialize(Me, "PCLVM", clv_mesas)
|
|
WobbleMenu1.SetTabTextIcon(1,"Mesas", Chr(0xF00A), Typeface.FONTAWESOME)
|
|
WobbleMenu1.SetTabTextIcon(2,"Ordenes", Chr(0xF155), Typeface.FONTAWESOME)
|
|
WobbleMenu1.SetTabTextIcon(3,"Acerca de", Chr(0xF16B), Typeface.FONTAWESOME)
|
|
' WobbleMenu1.SetTabTextIcon(5,"Cinco", Chr(0xF29D), Typeface.FONTAWESOME)
|
|
p_resumenDia.Top = 10dip : p_resumenDia.left = 10dip
|
|
p_resumenDia.Width = Activity.Width - 20dip :p_resumenDia.height = Activity.height - 90dip
|
|
Subs.centraEtiqueta(l_titResumenDia, p_resumenDia.Width)
|
|
p_principal.Width = Activity.Width
|
|
p_principal.Height = Activity.Height
|
|
clv_prods_ll.GetBase.SetLayoutAnimated(0, 400dip, 10dip, Activity.Width - 430, Activity.Height * 0.55) 'Cambiamos el tamaño y posición de la lista de productos.
|
|
clv_prods_ll.Base_Resize(clv_prods_ll.GetBase.Width, clv_prods_ll.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que se ajuste al nuevo tamaño.
|
|
clv_mesas.GetBase.SetLayoutAnimated(0, 10dip, 80dip, clv_mesas.GetBase.Width, clv_mesas.GetBase.Height) 'Cambiamos el tamaño y posición de la lista de mesas.
|
|
clv_mesas.Base_Resize(clv_mesas.GetBase.Width, clv_mesas.GetBase.Height) 'Cambiamos el tamaño del panel interno de las mesas para que se ajuste al nuevo tamaño.
|
|
' clv_orden.GetBase.SetLayoutAnimated(0, 10dip, 10dip, clv_orden.GetBase.Width, Activity.Height - 220dip) 'Cambiamos el tamaño y posición de la lista de ordenes.
|
|
' clv_orden.Base_Resize(clv_orden.GetBase.Width, clv_orden.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que se ajuste al nuevo tamaño.
|
|
' Log(Activity.Height - 220)
|
|
p_about.Width = Activity.Width
|
|
p_about.Height = Activity.Height - WobbleMenu1.Height
|
|
Subs.centraEtiqueta(l_about, p_about.Width)
|
|
Subs.centraEtiqueta(l_about2, p_about.Width)
|
|
i_logo.Left = Round(p_about.Width/2)-(i_logo.Width/2)
|
|
p_mesas.Width = Activity.Width
|
|
p_mesaAbierta.Height = Activity.Height : p_mesaAbierta.width = Activity.width
|
|
p_mesas.Height = Activity.Height ' - WobbleMenu1.Height
|
|
p_historial.Width = Activity.Width
|
|
p_historial.Height = Activity.Height - WobbleMenu1.Height
|
|
Subs.centraPanel(p_cierreAdmin, Activity.Width)
|
|
Subs.centraPanel(p_cambioMesa, p_transparenteCambioMesa.Width)
|
|
p_transparenteCambioMesa.Top = 0 : p_transparenteCambioMesa.Left = 0
|
|
p_transparenteCambioMesa.Height = Activity.Height : p_transparenteCambioMesa.width = Activity.width
|
|
' p_transparenteVerOrden.Left = 0 : p_transparenteVerOrden.top = 0
|
|
' p_transparenteVerOrden.Height = Activity.Height : p_transparenteVerOrden.width = Activity.width
|
|
Subs.panelWH(p_transparenteCierreAdmin, Activity.Width, Activity.Height)
|
|
p_transparenteCierreAdmin.Top = 0 : p_transparenteCierreAdmin.left = 0
|
|
Subs.panelWH(p_transparenteResumen, Activity.Width, Activity.Height)
|
|
Subs.panelWH(p_transparentePago, Activity.Width, Activity.Height)
|
|
p_transparentePago.Top = 0 : p_transparentePago.left = 0
|
|
Subs.panelWH(p_transparenteDescuento, Activity.Width, Activity.Height)
|
|
p_transparenteDescuento.Top = 0 : p_transparenteDescuento.left = 0
|
|
sv_resumen.Panel.LoadLayout("resumenCont")
|
|
Subs.centraEtiqueta(l_pago, p_pago.Width)
|
|
Subs.centraEtiqueta(l_tituloHistorial, Activity.Width)
|
|
Subs.centraPanel(p_propina, p_pago.Width)
|
|
' Subs.centraPanel(p_botonesCerrar, p_pago.Width)
|
|
Subs.centraBoton(b_pagoCerrar, p_pago.Width)
|
|
p_contProductos.Width = Activity.Width - p_contProductos.Left - 10dip
|
|
p_contProductos.Height = Activity.Height - (p_mesaAbierta.Top + 1) - (WobbleMenu1.Height - 10dip) '165dip - 90dip
|
|
' Log($"${Activity.Height} - ${p_mesaAbierta.Top + 1} - ${(WobbleMenu1.Height - 10dip)}"$) ' - 90dip
|
|
' Log($"${Activity.Height - (p_mesaAbierta.Top + 1) - (WobbleMenu1.Height - 10dip)}"$) '- 90dip
|
|
p_productos1.Width = p_contProductos.Width - 30dip : p_productos1.height = p_contProductos.height - 60dip
|
|
p_productos2.Width = p_productos1.Width : p_productos2.Height = p_productos1.Height
|
|
p_productos3.Width = p_productos1.Width : p_productos3.Height = p_productos1.Height
|
|
p_productos4.Width = p_productos1.Width : p_productos4.Height = p_productos1.Height
|
|
p_productos5.Width = p_productos1.Width : p_productos5.Height = p_productos1.Height
|
|
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
|
|
' p_botonesVenta.Top = Activity.Height - p_botonesVenta.Height - WobbleMenu1.Height + 10
|
|
Subs.centraPanel(p_pago, p_mesaAbierta.Width)
|
|
Subs.centraBoton(b_abrirMesa, Activity.Width)
|
|
p_botonesProds.Top = clv_orden.AsView.top + clv_orden.AsView.Height + 1dip ' - b_mesaCerrar.Height
|
|
'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar).
|
|
If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then
|
|
p_botonesProds.Top = clv_orden.AsView.Height + clv_orden.AsView.top - 15dip
|
|
p_botonesProds.BringToFront
|
|
l_selMedios.Width = l_selMedios.Width * 0.7
|
|
p_selBuscar.Left = l_selMedios.Width + l_selMedios.left
|
|
p_selBuscar.Width = 90dip
|
|
l_selMedios.Left = l_selVinos.Left + l_selVinos.Width
|
|
' b_prevPagina.Width = b_prevPagina.Width * 0.85
|
|
b_prevPagina.Left = p_selBuscar.Left + p_selBuscar.Width
|
|
l_panelEnUso.left = b_prevPagina.Left + b_prevPagina.Width
|
|
b_sigPagina.left = l_panelEnUso.Left + l_panelEnUso.Width
|
|
p_botonesCierreTotal.Top = p_botonesCierreTotal.Top - 20dip
|
|
End If
|
|
' Subs.centraPanel(p_botonesProds, p_mesaAbierta.Width)
|
|
Subs.centraPanel(p_mesaCampos, Activity.Width)
|
|
Subs.centraPanel(p_mesaAbierta, Activity.Width)
|
|
lv_historial.Height = Activity.Height * 0.4
|
|
p_botonesCierre.Top = lv_historial.Top + lv_historial.Height + 20dip
|
|
' Subs.centraPanel(p_botonesCierre, p_historial.Width)
|
|
prodsMap.Initialize
|
|
listaProds.Initialize
|
|
listaHints.Initialize
|
|
listaHintsM.Initialize
|
|
listaProdsOrden.Initialize
|
|
p_mesas.Width = Activity.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_pagoPropina.SetItems(Array As String("Amex", "Mifel", "Efectivo"))
|
|
cb_mesero.SetItems(Subs.traeMeserosLista)
|
|
' Private lasCats As List = Subs.traeCategorias
|
|
Starter.nivelActual = "Cats"
|
|
lv_categorias.Color = Colors.White
|
|
' lv_categorias.Top = l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5
|
|
lv_categorias.Top = 10dip
|
|
lv_categorias.Height = Activity.Height * 0.60
|
|
Private Label1 As Label = lv_categorias.SingleLineLayout.Label
|
|
Label1.TextSize = 9dip
|
|
Label1.TextColor = Colors.Black
|
|
cb_nuevoPago.SetItems(Array As String("Amex", "Mifel", "Efectivo"))
|
|
cb_nuevoPagoPropina.SetItems(Array As String("Amex", "Mifel", "Efectivo"))
|
|
muestraCats
|
|
Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
|
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
|
' Log("REVISAMOS PERMISOS DE BT")
|
|
Starter.rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
|
|
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
|
|
' If Result Then Log("Tenemos permisos de bluetooth.")
|
|
' Log($"Resultado del CheckAndRequest: ${Result}"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_TARJETA = 'Mifel' where PT_TARJETA like '%Visa%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO_PROPINA = 'Mifel' where PT_TARJETA like '%Visa%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO2 = 'Mifel' where PT_TARJETA like '%Visa%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO2 = 'Mifel' where PT_PAGO2 like '%Visa%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_TARJETA = 'Amex' where PT_TARJETA like '%American%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO_PROPINA = 'Amex' where PT_TARJETA like '%American%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO2 = 'Amex' where PT_TARJETA like '%American%'"$)
|
|
Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO2 = 'Amex' where PT_PAGO2 like '%American%'"$)
|
|
If FirstTime Then
|
|
sftp1.Initialize("sftp1", "u114586321", "FTP&R3sp4ld0sK3ym0n", "access986911787.webspace-data.io", 22)
|
|
sftp1.SetKnownHostsStore(File.DirInternal, "hosts.txt")
|
|
End If
|
|
End Sub
|
|
|
|
Sub l_prods_Click
|
|
Private tlbl As Label = Sender
|
|
' Log(tlbl.text)
|
|
Log(tlbl.tag)
|
|
tlbl.Color = Colors.LightGray
|
|
Sleep(200)
|
|
tlbl.Color = Colors.white
|
|
' Log("clicked")
|
|
Private m As Map = tlbl.tag
|
|
' Log(listaProdsOrden.IndexOf(m.Get("id")))
|
|
Log(listaProdsOrden)
|
|
Private indice As String = listaProdsOrden.IndexOf(m.Get("id"))
|
|
Try
|
|
If indice = -1 Then ' No esta en la orden y lo agregamos con cantidad 1.
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_orden.AsView.Width, 40dip)
|
|
Log(clv_orden.Size)
|
|
clv_orden.Add(Pnl, CreateMap("prod":m.Get("prod"), "precio":m.Get("precio"), "almacen":m.Get("almacen"), "id":m.Get("id"), "cant":1, "img":Null))
|
|
Subs.actualizaProducto(m.Get("precio"), 1, m.Get("prod"), m.Get("id"), Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
' listaProdsOrden.Add(m.Get("id"))
|
|
Log(clv_orden.Size)
|
|
Sleep(200)
|
|
clv_orden.ScrollToItem(clv_orden.Size - 1)
|
|
Sleep(100)
|
|
' clv_orden.GetPanel(clv_orden.Size - 1).GetView(0).Color = Colors.RGB(0,230,0) 'Resaltamos el articulo.k
|
|
' resalta(clv_orden.GetPanel(clv_orden.Size - 1).GetView(0))
|
|
Try 'Si se presionan muy rapido los productos, a veces manda error de que no esta inicializada la vista.
|
|
Wait For (resalta(clv_orden.GetPanel(clv_orden.Size - 1).GetView(0))) Complete (Completed As Object)
|
|
Catch
|
|
Log(LastException)
|
|
listaProdsOrden.Initialize
|
|
LlenaOrden
|
|
End Try
|
|
' Sleep(400)
|
|
' clv_orden.GetPanel(clv_orden.Size - 1).GetView(0).Color = 0xFFE2EEFF 'Regresamos el color original.
|
|
Else 'Ya esta en la orden, le sumamos 1 a la cantidad.
|
|
Log(clv_orden.GetValue(indice).As(Map).Get("cant"))
|
|
Private newCant As Int = clv_orden.GetValue(indice).As(Map).Get("cant") + 1
|
|
clv_orden.GetValue(indice).As(Map).put("cant", newCant)
|
|
clv_orden.GetPanel(indice).GetView(0).GetView(2).GetView(4).As(EditText).text = newCant 'getview(0) = p_prods, getview(2) = p_botMasMen, getview(4) = et_pCant
|
|
Subs.actualizaProducto(m.Get("precio"), newCant, m.Get("prod"), m.Get("id"), Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
End If
|
|
If indice > -1 Then
|
|
' Log($"Brincamos a ${indice}"$)
|
|
clv_orden.ScrollToItem(indice)
|
|
clv_orden.GetPanel(indice).GetView(0).Color = Colors.RGB(0,230,0) 'Resaltamos el articulo
|
|
Sleep(400)
|
|
clv_orden.GetPanel(indice).GetView(0).Color = 0xFFE2EEFF
|
|
End If
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
et_selBuscar.Text = ""
|
|
Log(listaProdsOrden)
|
|
End Sub
|
|
|
|
Sub resalta(p As Panel) As ResumableSub
|
|
p.Color = Colors.RGB(0,230,0) 'Resaltamos el articulo.k
|
|
Sleep(400)
|
|
p.Color = 0xFFE2EEFF 'Regresamos el color original.
|
|
Return 1
|
|
End Sub
|
|
|
|
Sub Activity_Resume
|
|
If Starter.cargaMeseros Then cb_mesero.SetItems(Subs.traeMeserosLista)
|
|
' p_transparenteCierreAdmin.Elevation = 0
|
|
' p_wobble.Left = 0
|
|
' p_wobble.Height = 170
|
|
' p_wobble.Top = Activity.Height - p_wobble.Height - 50
|
|
' p_wobble.Elevation = 10
|
|
' p_wobble.BringToFront
|
|
Starter.imprimirTicket = True
|
|
reqManager.Initialize(Me, Starter.DBReqServer)
|
|
Starter.atrasPresionado = False
|
|
' Log(Starter.DBReqServer)
|
|
clv = clv_prods_ll
|
|
cuentaProds
|
|
LlenaMesas(Null, Null)
|
|
LlenaProdsLL(Null, Null)
|
|
' PCLV.lblHint.SetTextSizeAnimated(0,13)
|
|
' PCLV.B4XSeekBar1.Color1=Colors.DarkGray
|
|
' PCLV.B4XSeekBar1.Color2=Colors.DarkGray
|
|
' PCLV.B4XSeekBar1.ThumbColor=Colors.red
|
|
' PCLV.B4XSeekBar1.Radius1 = 15
|
|
' PCLV.B4XSeekBar1.Radius2 = 20
|
|
PCLV.B4XSeekBar1.mBase.Left = Activity.Width * 1.5 '0.92
|
|
' PCLV.B4XSeekBar1.mBase.Width = 40dip
|
|
'' PCLV.B4XSeekBar1.mBase.Top=-50
|
|
' PCLV.B4XSeekBar1.mBase.Height = clv_prods_ll.AsView.Height
|
|
' PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height
|
|
' PCLV.pnlOverlay.Width = clv_prods_ll.AsView.Width
|
|
' PCLV.B4XSeekBar1.Update
|
|
' PCLV.B4XSeekBar1.mBase.Visible = False
|
|
If clv_mesas.Size > 0 Then
|
|
clv_mesas.JumpToItem(0) 'Vamos al primer artículo de la lista.
|
|
End If
|
|
PCLVM.lblHint.SetTextSizeAnimated(0,13)
|
|
PCLVM.B4XSeekBar1.Color1 = Colors.DarkGray
|
|
PCLVM.B4XSeekBar1.Color2 = Colors.DarkGray
|
|
PCLVM.B4XSeekBar1.ThumbColor = Colors.red
|
|
PCLVM.B4XSeekBar1.Radius1 = 15
|
|
PCLVM.B4XSeekBar1.Radius2 = 20
|
|
PCLVM.B4XSeekBar1.mBase.Left = Activity.Width * 0.88
|
|
' PCLVM.B4XSeekBar1.mBase.Top=-50
|
|
PCLVM.B4XSeekBar1.mBase.Height=clv_mesas.AsView.Height
|
|
PCLVM.pnlOverlay.Height = clv_mesas.AsView.Height
|
|
PCLVM.pnlOverlay.Width = clv_mesas.AsView.Width
|
|
PCLVM.B4XSeekBar1.Update
|
|
p_about.Height = Activity.Height - WobbleMenu1.Height
|
|
If p_mesas.Visible And Subs.revisaCierreAdmin Then
|
|
p_transparenteCierreAdmin.BringToFront
|
|
p_transparenteCierreAdmin.Visible = True
|
|
Log(8)
|
|
Else
|
|
p_transparenteCierreAdmin.Visible = False
|
|
End If
|
|
Private c As Cursor = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
|
|
c.Position = 0
|
|
If c.RowCount > 0 Then
|
|
Starter.mac_impresora = c.GetString("CAT_VA_VALOR")
|
|
Else
|
|
Starter.mac_impresora = 0
|
|
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
|
|
WobbleMenu1.mBase.As(Panel).Elevation = 10dip 'Ponemos la elevacion en 10 para que quede enfrente de los paneles semitransparentes.
|
|
|
|
Private z As ResultSet = Starter.skmt.ExecQuery2("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As String ("IMPRESION_ACTIVA"))
|
|
Do While z.NextRow
|
|
Private ia As Boolean = False
|
|
If z.GetString("CAT_VA_VALOR") = 1 Then ia = True
|
|
Loop
|
|
Starter.imprimirTicket = ia
|
|
' Log(Starter.imprimirTicket)
|
|
sftp1.Activity_Resume
|
|
End Sub
|
|
|
|
Sub Activity_Pause (UserClosed As Boolean)
|
|
|
|
End Sub
|
|
|
|
Sub Activity_KeyPress (key As Int) As Boolean
|
|
' BACK key pressed
|
|
If key=KeyCodes.KEYCODE_BACK Then
|
|
If p_transparenteCambioPagos.Visible Then
|
|
p_transparenteCambioPagos.Visible = False
|
|
Else If p_resumenDia.Visible Then
|
|
p_resumenDia.Visible = False
|
|
else If p_prevBusqueda.Visible Then
|
|
p_prevBusqueda.Visible = False
|
|
' et_selBuscar.h
|
|
else If p_transparenteDescuento.Visible Then
|
|
p_transparenteDescuento.Visible = False
|
|
else If lv_categorias.Visible And n = 0 Then 'Or Starter.catActual = "VARIOS") And Starter.nivelActual = "SubCats"
|
|
clv_prods_ll.AsView.Visible = False
|
|
' p_buscar.Visible = False
|
|
lv_categorias.Visible = True
|
|
muestraCats
|
|
n = 1
|
|
Log(Starter.nivelActual & ", " & n)
|
|
Log(0)
|
|
Else If p_reabrirMesaMulti.Visible Then
|
|
Log(1)
|
|
p_reabrirMesaMulti.Visible = False
|
|
else If p_renombraVarios.Visible Then
|
|
Log(3)
|
|
p_renombraVarios.Visible = False
|
|
Else If p_transparenteCambioMesa.Visible Then
|
|
Log(4)
|
|
p_transparenteCambioMesa.Visible = False
|
|
Else If p_transparentePago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos.
|
|
Log(5)
|
|
' p_pago.Visible = False
|
|
p_transparentePago.Visible = False
|
|
Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los
|
|
' Log(6)
|
|
clv_prods_ll.AsView.Visible = False
|
|
' p_buscar.Visible = False
|
|
lv_categorias.Visible = True
|
|
n = 0
|
|
' Log(Starter.nivelActual & ", " & n)
|
|
else If p_mesa.Visible Then
|
|
' Log(7)
|
|
If Subs.revisaCierreAdmin Then
|
|
p_transparenteCierreAdmin.BringToFront
|
|
p_transparenteCierreAdmin.Visible = True
|
|
' Log(8)
|
|
Else
|
|
' Log(9)
|
|
p_transparenteCierreAdmin.Visible = False
|
|
End If
|
|
p_mesa.Visible = False
|
|
p_mesas.Visible = True
|
|
LlenaMesas(Null, Null)
|
|
Else if p_transparenteResumen.Visible Then
|
|
p_transparenteResumen.Visible = False
|
|
else if WobbleMenu1.GetCurrentTab = 2 Or WobbleMenu1.GetCurrentTab = 3 Then
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
WobbleMenu1_Tab1Click
|
|
else if WobbleMenu1.GetCurrentTab = 1 Then
|
|
' B4XPages.ShowPage("Login")
|
|
StartActivity(Main)
|
|
End If
|
|
Return True
|
|
End If
|
|
' Returning False signals the system to handle the key
|
|
End Sub
|
|
|
|
Sub muestraCats
|
|
' Log("MUESTRA CATS")
|
|
Private lasCats As List = Subs.traeCategorias
|
|
Starter.nivelActual = "Cats"
|
|
lv_categorias.Clear
|
|
For cat = 0 To lasCats.Size - 1
|
|
lv_categorias.AddSingleLine(lasCats.get(cat))
|
|
Next
|
|
End Sub
|
|
|
|
Sub b_prodMenos_Click
|
|
etCantHasFocus = False
|
|
clv = clv_orden
|
|
' Log(Sender.As(Button).text & "|" & Sender.As(Button).tag)
|
|
Private buttonTag As String = Sender.As(Button).tag
|
|
LogColor("b_prodMenos_Click", Colors.Magenta)
|
|
Dim index As Int = clv.GetItemFromView(Sender)
|
|
LogColor(clv.GetValue(index), Colors.Magenta)
|
|
Private inv As Int = clv.GetValue(index).As(Map).Get("almacen")
|
|
Dim pnl0 As B4XView = clv.GetPanel(index)
|
|
' Log(pnl0.As(Panel))
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant
|
|
' Log(pnl.GetView(0).NumberOfViews)
|
|
Dim elNombre As B4XView = pnl.GetView(1)
|
|
If WobbleMenu1.GetCurrentTab = 2 Then laCant = pnl.GetView(2).GetView(4)
|
|
' Log($"${pnl.GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$)
|
|
If buttonTag = "vendido" And laCant.Text > 0 Then
|
|
' Log(clv.GetValue(index).As(Map))
|
|
clv.GetValue(index).As(Map).Put("almacen",inv + 1)
|
|
' Log(clv.GetValue(index).As(Map))
|
|
End If
|
|
If laCant.Text = "" Then laCant.Text = 0
|
|
' Log($"|${laCant.Text}|"$)
|
|
laCant.Text = $"$1.0{laCant.Text-1}"$
|
|
If laCant.Text < 0 Then laCant.Text = 0
|
|
Private tmpMap As Map = clv.GetValue(index).As(Map)
|
|
Private precio As String = clv.GetValue(index).As(Map).Get("precio")
|
|
Private id As String=clv.GetValue(index).As(Map).Get("id")
|
|
Private prodNombre As String = clv.GetValue(index).As(Map).Get("prod")
|
|
Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
|
' Log(tmpMap)
|
|
prodsMap.Put(id, tmpMap)
|
|
If laCant.Text = 0 Then prodsMap.Remove(id)
|
|
' Private nombreX As String = Subs.traeProdNombre(id)
|
|
If laCant.Text = 0 Then
|
|
clv.RemoveAt(index)
|
|
listaProdsOrden.RemoveAt(index)
|
|
Log(listaProdsOrden)
|
|
End If
|
|
If laCant.text > 0 Then clv.GetValue(index).As(Map).Put("cant",laCant.text)
|
|
Subs.actualizaProducto(precio, laCant.text, prodNombre, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
cuentaProds
|
|
Dim cs As CSBuilder
|
|
cs.Initialize
|
|
If WobbleMenu1.GetCurrentTab = 2 Then
|
|
Private elTexto As String = clv.GetValue(index).As(Map).Get("prod")
|
|
Private elPrecioU As String = clv.GetValue(index).As(Map).Get("precio")
|
|
Private elTotal As String = elPrecioU * laCant.text
|
|
elNombre.Text = cs.Color(Colors.red).append(elTexto).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(elTotal, 1, 2, 2, True)}"$).Popall
|
|
End If
|
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
End Sub
|
|
|
|
Sub b_prodMas_Click
|
|
etCantHasFocus = False
|
|
clv = clv_orden
|
|
Private buttonTag As String = Sender.As(Button).tag
|
|
Dim index As Int = clv.GetItemFromView(Sender)
|
|
LogColor("b_prodMas_Click", Colors.Magenta)
|
|
Dim pnl0 As B4XView = clv.GetPanel(index)
|
|
Dim pnl As B4XView = pnl0.GetView(0)
|
|
Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant
|
|
Dim elNombre As B4XView = pnl.GetView(1)
|
|
If WobbleMenu1.GetCurrentTab = 2 Then laCant = pnl.GetView(2).GetView(4)
|
|
' Log($"${pnl.GetView(2).GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$)
|
|
If laCant.Text = "" Then laCant.Text = 0
|
|
Private precio As String=clv.GetValue(index).As(Map).Get("precio")
|
|
Private prodNombre As String = clv.GetValue(index).As(Map).Get("prod")
|
|
Private inv As Int = clv.GetValue(index).As(Map).Get("almacen")
|
|
' Log($"|${laCant.Text}, ${inv}"$)
|
|
If buttonTag = "vendido" Then
|
|
If inv > 0 And (laCant.Text + 1 <= inv) Then
|
|
' Log(clv.GetValue(index).As(Map))
|
|
clv.GetValue(index).As(Map).Put("almacen", (inv - 1))
|
|
inv = inv - 1
|
|
laCant.Text = $"$1.0{laCant.Text+1}"$
|
|
' Log(clv.GetValue(index).As(Map))
|
|
End If
|
|
else If laCant.Text + 1 <= inv Then
|
|
laCant.Text = $"$1.0{laCant.Text + 1}"$
|
|
Log(Subs.totalPedido)
|
|
End If
|
|
Private id As String=clv.GetValue(index).As(Map).Get("id")
|
|
' Private nombreX As String = Subs.traeProdNombre(id)
|
|
Private precioX As String = precio
|
|
If laCant.text > 0 Then clv.GetValue(index).As(Map).Put("cant",laCant.text)
|
|
Subs.actualizaProducto(precioX, laCant.text, prodNombre, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
cuentaProds
|
|
Dim cs As CSBuilder
|
|
cs.Initialize
|
|
If WobbleMenu1.GetCurrentTab = 2 Then
|
|
Private elTexto As String = clv.GetValue(index).As(Map).Get("prod")
|
|
Private elPrecioU As String = clv.GetValue(index).As(Map).Get("precio")
|
|
Private elTotal As String = elPrecioU * laCant.text
|
|
elNombre.Text = cs.Color(Colors.red).append(elTexto).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(elTotal, 1, 2, 2, True)}"$).Popall
|
|
End If
|
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
|
End Sub
|
|
|
|
Sub cuentaProds
|
|
' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
|
|
' Log("===========================")
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total, sum(PE_CANT) as cant from PEDIDO where PE_TICKET IN (Select cuenta from cuentaa)"$)
|
|
' LogColor("TIEMPO cuentaProds =" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
|
' LogColor(prodsMap, Colors.Magenta)
|
|
c.Position=0
|
|
' Log(Subs.totalPedido)
|
|
Private cant0 As String = "0"
|
|
Private total0 As String = "0"
|
|
If c.GetString("cant") <> Null And c.GetString("cant") <> "null" Then cant0 = c.GetString("cant")
|
|
If c.GetString("total") <> Null And c.GetString("total") <> "null" Then total0 = c.GetString("total")
|
|
Private p As Cursor = Starter.skmt.ExecQuery($"select count(PT_TICKET) as ordenes from pedido_TICKET where PT_PAGO <> 'MULTI-TICKET' and PT_PAGO <> 'VENTA' "$)
|
|
p.Position = 0
|
|
' Log($"Total Prods: ${cant0}, Total Compra: $$1.2{total0}"$)
|
|
' l_totalCarrito.text = $"Total: $${NumberFormat2(total0,1,2,2,True)}"$
|
|
c.Close
|
|
If WobbleMenu1.GetCurrentTab = 2 Then LlenaProdsLL(Null, Null)
|
|
If Subs.hayPedido Then WobbleMenu1.SetBadge(2, p.GetString("ordenes"), Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(2)
|
|
End Sub
|
|
|
|
Sub LlenaProdsLL(p As ResultSet, extra As String)
|
|
' Log("LlenaProdsLL")
|
|
listaProds.Initialize
|
|
Private listaProdsIndex As List
|
|
listaProdsIndex.Initialize
|
|
Dim cantsMap As Map
|
|
cantsMap.Initialize
|
|
hayPedido = Subs.hayPedido
|
|
' Log($"HAYPEDIDO: ${hayPedido}"$)
|
|
Private listaProdsConCant2, listaProdsConCantIndex2 As List
|
|
listaProdsConCant2.Initialize
|
|
listaProdsConCantIndex2.Initialize
|
|
If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
|
|
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
|
|
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"))
|
|
Next
|
|
End If
|
|
|
|
End If
|
|
' Log(p.IsInitialized)
|
|
If query = "" Or query = Null Then query = "cat_gunaprod2"
|
|
If p.IsInitialized Then
|
|
Log($"YA HAY RESULSET ${p.RowCount} registros"$)
|
|
Else
|
|
' Log("NO HAY RESULSET")
|
|
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
|
End If
|
|
' Log($"listaProdsConCant2= ${listaProdsConCant2}"$)
|
|
' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$)
|
|
' Log($"listaProdsConCant2=${listaProdsConCant2}"$)
|
|
' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$)
|
|
' Log(p.RowCount)
|
|
Private cont As Int = 0
|
|
Do While p.NextRow
|
|
Private cant As Int = 0
|
|
' If hayPedido And cantsMap.ContainsKey(p.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":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "img":Null)
|
|
listaProds.Add(tempMap)
|
|
' Log($"${p.GetString("CAT_GP_ID")}, ${p.GetString("CAT_GP_NOMBRE")}, ${cant}"$)
|
|
Loop
|
|
' Log($"listaProdsConCant2=${listaProdsConCant2}"$)
|
|
' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$)
|
|
p.Close
|
|
' Log("LISTAPRODS: " & listaProds)
|
|
PCLV.Commit
|
|
clv_prods_ll.Clear
|
|
Private cont As Int = 0
|
|
For pr0=0 To listaProdsConCant2.Size - 1 'Agregamos los productos con cantidad previa.
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip)
|
|
clv_prods_ll.Add(Pnl, listaProdsConCant2.Get(pr0))
|
|
' listaHints.Add(listaProdsConCant2.get(pr0).As(Map).Get("prod"))
|
|
cont = cont + 1
|
|
Next
|
|
' LogColor(clv_prods_ll.Size, Colors.red)
|
|
For pr = 0 To listaProds.Size - 1
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
If listaProds.Get(pr).As(Map).Get("almacen") < 1 Then
|
|
' Log("EN CERO" & listaProds.Get(pr).As(Map).Get("prod") & "|" & listaProds.Get(pr).As(Map).Get("almacen"))
|
|
Else
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip)
|
|
' Log($"Existe ${listaProds.get(pr).As(Map).Get("id")} -> ${listaProdsConCantIndex2.IndexOf(listaProds.get(pr).As(Map).Get("id"))}"$)
|
|
If listaProdsConCantIndex2.IndexOf(listaProds.get(pr).As(Map).Get("id")) = - 1 Then
|
|
clv_prods_ll.Add(Pnl, listaProds.Get(pr))
|
|
listaHints.Add(listaProds.get(pr).As(Map).Get("prod"))
|
|
End If
|
|
cont = cont + 1
|
|
End If
|
|
Next
|
|
If clv_prods_ll.Size > 0 Then
|
|
clv_prods_ll.JumpToItem(0) 'Vamos al primer artículo de la lista.
|
|
End If
|
|
' PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size
|
|
' PCLV.B4XSeekBar1.MinValue = 0
|
|
' PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/20
|
|
' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size
|
|
' PCLV.B4XSeekBar1.Update
|
|
' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/20}"$)
|
|
reiniciarlistaProds = False
|
|
End Sub
|
|
|
|
Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
|
|
' Log($"clv_prods_ll_VisibleRangeChanged : ${FirstIndex}, ${LastIndex} "$)
|
|
Dim ExtraSize As Int = 30 'List size
|
|
For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_prods_ll.Size - 1)
|
|
Dim Pnl As B4XView = clv_prods_ll.GetPanel(i)
|
|
If i > FirstIndex - ExtraSize And i < LastIndex + ExtraSize Then
|
|
' Log(listaRenglones)
|
|
' Log(clv_prods_ll.GetValue(i))
|
|
If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
|
|
Pnl.LoadLayout("proditem")
|
|
p_prods.Width = clv_prods_ll.GetBase.Width ' Activity.Width * 0.99
|
|
'
|
|
p_prods.Height = 50dip
|
|
' Pnl.SetLayoutAnimated(0, 0, 0, p_prods.Width, 200dip)
|
|
|
|
p_botMasMen.Left = (clv_prods_ll.GetBase.Width - p_botMasMen.Width - 32)
|
|
' Log(p_botMasMen.left)
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
l_prodX.SetTextSizeAnimated(0, 13)
|
|
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null And clv_prods_ll.GetValue(i).As(Map).Get("cant") > 0 Then
|
|
p_prods.Color=0xFFE2EEFF
|
|
et_pCant.TextColor=Colors.Red
|
|
' Log("VENDIDO ")
|
|
b_prodMenos.Tag = "vendido"
|
|
b_prodMas.Tag = "vendido"
|
|
End If
|
|
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)
|
|
l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
|
' Log(clv_prods_ll.GetValue(i).As(Map).Get("id"))
|
|
i_prod.Bitmap = clv_prods_ll.GetValue(i).As(Map).Get("img")
|
|
End If
|
|
' Log($"${i}, ${FirstIndex}, ${LastIndex}, ${Pnl.NumberOfViews}. ${clv_prods_ll.Size}"$)
|
|
Else 'Not visible
|
|
' If Pnl.NumberOfViews > 0 Then
|
|
' Pnl.RemoveAllViews 'Remove none visable item/layouts from the list/main layout
|
|
' End If
|
|
End If
|
|
' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$)
|
|
Next
|
|
End Sub
|
|
|
|
Sub et_busca_TextChanged (Old As String, New As String)
|
|
'' Private inicioContador As String = DateTime.Now
|
|
' If New.Length = 1 And Not(forzarBusqueda) Then Return
|
|
' forzarBusqueda = False
|
|
' If lfila.text = "PROMOCIONES" Then
|
|
'' If Not(lv_promos.Visible) Then lv_promos.Visible = True
|
|
'' Private cPromo As Cursor=Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${query} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID)"$)
|
|
'' Log($"res:${cPromo.RowCount}"$)
|
|
'' If cPromo.RowCount > 0 Then
|
|
'' lv_promos.Clear
|
|
'' For i=0 To cPromo.RowCount -1
|
|
'' cPromo.Position=i
|
|
'' Private tm As Map = Subs.procesaPromocion(cPromo.GetString("CAT_GP_ID"), ticketId)
|
|
'' If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
|
|
'' lv_promos.AddTwoLines(cPromo.GetString("CAT_GP_NOMBRE"),"# " & cPromo.GetString("CAT_GP_ALMACEN") & " $ " & cPromo.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
|
|
'' End If
|
|
'' Next
|
|
'' Else
|
|
'' ToastMessageShow("No hay promociones disponibles.", False)
|
|
'' End If
|
|
'' cPromo.Close
|
|
' Else
|
|
' If Not(clv_prods_ll.AsView.Visible) Then clv_prods_ll.AsView.Visible = True
|
|
' clv_prods_ll.Clear
|
|
' listaProds.Initialize
|
|
' listaHints.Initialize
|
|
' Sleep(0)
|
|
' Dim p As ResultSet = Starter.skmt.ExecQuery($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
|
' Log($"Llamamos LlenaProdsLL con ${p.RowCount} registros"$)
|
|
' LlenaProdsLL(p, Null)
|
|
' p.Close
|
|
' End If
|
|
End Sub
|
|
|
|
Sub llenaCarrito 'ignore
|
|
' Private totalPedido As String = 0
|
|
' Private cantPedido As String = 0
|
|
' p_mesas.Visible = False
|
|
'' Subs.agrupador
|
|
'' lv_carrito.Clear
|
|
' clv_carrito.Clear
|
|
' list_prodsPedido.Initialize
|
|
' Private c_prods As Cursor=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_FOLIO, PE_CEDIS, PE_PROID FROM PEDIDO WHERE PE_TICKET IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_PRONOMBRE")
|
|
'' Log(c_prods.RowCount)
|
|
' If c_prods.RowCount > 0 Then
|
|
' c_prods.Position = 0
|
|
'' lv_carrito.BringToFront
|
|
' clv_carrito.AsView.BringToFront
|
|
' Private cs As CSBuilder
|
|
' For i = 0 To c_prods.RowCount -1
|
|
' cs.Initialize
|
|
' c_prods.Position = i
|
|
'' Dim label1 As Label
|
|
'' lv_carrito.TwoLinesLayout.ItemHeight = 50dip
|
|
'' label1 = lv_carrito.TwoLinesLayout.Label
|
|
'' label1.TextSize = 15
|
|
'' label1.TextColor = Colors.Black
|
|
'' label1.color = Colors.White
|
|
'' label1.Height = 30dip
|
|
' Private textColor As Int = Colors.black 'ignore
|
|
'' Log(c_prods.GetString("PE_CEDIS"))
|
|
' If Not(IsNumber(c_prods.GetString("PE_CEDIS"))) Then textColor = Colors.RGB(210,105,30) 'Si es promo, cambiamos el color del texto.
|
|
' If c_prods.GetString("PE_CEDIS") = "DUR" Then textColor = Colors.red 'Si es promo, cambiamos el color del texto.
|
|
'' Dim label2 As Label
|
|
'' label2 = lv_carrito.TwoLinesLayout.SecondLabel
|
|
'' label2.TextSize = 10
|
|
'' label2.TextColor = Colors.Blue
|
|
'' label2.Tag = i
|
|
'' Log(c_prods.GetString("PE_PRONOMBRE"))
|
|
'' lv_carrito.AddTwoLines(cs.Color(textColor).append(c_prods.GetString("PE_PRONOMBRE")).pop,"Cantidad #"& c_prods.GetString("PE_CANT")& " SubTotal $"& c_prods.GetString("PE_COSTO_TOT")& " Folio "& c_prods.GetString("PE_FOLIO"))
|
|
' Private tempMap As Map = CreateMap("prod":c_prods.GetString("PE_PRONOMBRE"), "almacen":1000, "id": c_prods.GetString("PE_PROID"), "cant": c_prods.GetString("PE_CANT"), "precio": c_prods.GetString("PE_COSTOU"), "precioT": c_prods.GetString("PE_COSTO_TOT"))
|
|
' list_prodsPedido.Add(tempMap)
|
|
'' Private bmp As Bitmap = Subs.traeImgDeDB(c_prods.GetString("PE_PROID"))
|
|
'' Private elTexto As String = cs.Color(Colors.red).append(c_prods.GetString("PE_PRONOMBRE")).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(c_prods.GetString("PE_COSTO_TOT"), 1, 2, 2, True)}"$).Popall
|
|
' clv_carrito.Add(CreateListItem(c_prods.GetString("PE_PRONOMBRE"), c_prods.GetString("PE_CANT"), c_prods.GetString("PE_COSTO_TOT"), 1000, clv_carrito.AsView.Width, 150dip, Null, c_prods.GetString("PE_PROID")), tempMap)
|
|
' folio = 0
|
|
' totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT"))
|
|
' cantPedido = cantPedido + c_prods.GetString("PE_CANT")
|
|
' If c_prods.GetString("PE_FOLIO") <> Null Then folio = c_prods.GetString("PE_FOLIO")
|
|
' Next
|
|
' Else
|
|
' l_carritoVacio.Visible = True
|
|
' l_carritoVacio.Text = "No hay productos en tu carrito."
|
|
' End If
|
|
'' Log(list_prodsPedido)
|
|
' c_prods.Close
|
|
'' l_total2.Text = $"$1.2{totalPedido}"$
|
|
'' l_cant.Text = cantPedido
|
|
'' If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True
|
|
'' p_vistaPreviaTrans.Width = Activity.Width
|
|
'' p_vistaPreviaTrans.Height = Activity.Height
|
|
'' Subs.centraPanel(p_vistaPrevia, Activity.Width)
|
|
'' p_vistaPrevia.Visible=True
|
|
'' p_vistaPreviaTrans.Visible=True
|
|
End Sub
|
|
|
|
'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
|
|
Sub PCLV_HintRequested(Index As Int) As Object
|
|
' Dim word As String = listaHints.get(Index)
|
|
' Return word
|
|
End Sub
|
|
|
|
'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
|
|
Sub PCLVM_HintRequested(Index As Int) As Object
|
|
Dim word As String = listaHintsM.get(Index)
|
|
Return word
|
|
End Sub
|
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
|
|
|
Private Sub WobbleMenu1_Tab1Click
|
|
' Log("TAB 1")
|
|
Starter.tipov = "VENTA"
|
|
If p_resumenDia.Visible Then p_resumenDia.Visible = False
|
|
If p_transparentePago.Visible Then Activity_KeyPress(KeyCodes.KEYCODE_BACK)
|
|
If Subs.revisaCierreAdmin Then
|
|
p_transparenteCierreAdmin.BringToFront
|
|
p_transparenteCierreAdmin.Visible = True
|
|
Else
|
|
p_transparenteCierreAdmin.Visible = False
|
|
p_mesas.BringToFront
|
|
p_mesas.Visible = True
|
|
End If
|
|
cuentaProds
|
|
LlenaMesas(Null, Null)
|
|
' LlenaProdsLL(Null, Null)
|
|
Subs.panelVisible(p_mesas, 0, 0)
|
|
PCLVM.B4XSeekBar1.mBase.Visible = False
|
|
' PCLV.B4XSeekBar1.mBase.Visible = False
|
|
p_about.Visible = False
|
|
' p_carrito.Visible = False
|
|
p_historial.Visible = False
|
|
' p_mesa.Visible = False
|
|
p_transparenteResumen.Visible = False
|
|
End Sub
|
|
|
|
Private Sub WobbleMenu1_Tab2Click
|
|
' Log("TAB 2")
|
|
If p_resumenDia.Visible Then p_resumenDia.Visible = False
|
|
p_verOrden.Visible = False
|
|
Subs.panelVisible(p_historial, 0, 0)
|
|
p_about.Visible = False
|
|
' p_carrito.Visible = False
|
|
p_mesas.Visible = False
|
|
p_mesa.Visible = False
|
|
p_transparenteCierreAdmin.Visible = False
|
|
If Subs.revisaCierreAdmin Then
|
|
cd1.Initialize(Colors.gray, 10dip)
|
|
b_cierraAdmin.Background = cd1
|
|
Else
|
|
cd1.Initialize(Colors.red, 10dip)
|
|
b_cierraAdmin.Background = cd1
|
|
End If
|
|
llenaHistorial
|
|
End Sub
|
|
|
|
Private Sub WobbleMenu1_Tab3Click
|
|
' Log("TAB 3")
|
|
LlenaProdsLL(Null, Null)
|
|
' PCLVM.B4XSeekBar1.mBase.Visible = False
|
|
' PCLV.B4XSeekBar1.mBase.BringToFront
|
|
' PCLV.B4XSeekBar1.mBase.Visible = True
|
|
Subs.panelVisible(p_about, 0, 0)
|
|
p_mesas.Visible = False
|
|
' p_carrito.Visible = False
|
|
p_transparenteCierreAdmin.Visible = False
|
|
p_historial.Visible = False
|
|
p_mesa.Visible = False
|
|
p_transparenteResumen.Visible = False
|
|
actualizaProductos("Alimentos")
|
|
' For w = 0 To 150
|
|
'
|
|
' Next
|
|
End Sub
|
|
|
|
Private Sub b_continuar_Click
|
|
WobbleMenu1.SetCurrentTab(2)
|
|
End Sub
|
|
|
|
Private Sub lv_promos_ItemClick (Position As Int, Value As Object)
|
|
|
|
End Sub
|
|
|
|
Private Sub p_historial_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_carrito_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub b_terminar_Click
|
|
DateTime.DateFormat= $"yyMMdd-HHmmss-${Starter.ticketActual}"$
|
|
Private id As String = DateTime.Date(DateTime.Now)
|
|
Starter.skmt.ExecNonQuery($"insert into cat_hist_compras (H_IDCOMPRA, H_FOLIO, H_MESA, H_CEDIS, H_COSTO_TOT, H_COSTOU, H_CANT, H_PRONOMBRE, H_PROID, H_TICKET, H_FECHA) select '${id}', PE_FOLIO, PE_MESA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA from pedido where PE_TICKET = '${Starter.ticketActual}'"$)
|
|
Starter.skmt.ExecNonQuery($"delete from pedido where PE_TICKET = '${Starter.ticketActual}'"$)
|
|
LlenaProdsLL(Null, Null)
|
|
l_compraTerminada.Text = $"¡Felicidades!${CRLF}${CRLF}Tu compra con número de orden ${id} ha sido registrada.${CRLF}${CRLF}Llegará en tu siguiente día de entrega."$
|
|
l_compraTerminada.Visible = True
|
|
l_compraTerminada.BringToFront
|
|
End Sub
|
|
|
|
Sub llenaHistorial
|
|
Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select *, ifnull(PT_PAGO2,"") as pt 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
|
|
lv_historial.Clear
|
|
lv_historial.Visible = True
|
|
Do While rs_hist.NextRow
|
|
cs.Initialize
|
|
Dim Label1 As Label
|
|
Label1 = lv_historial.TwoLinesLayout.Label
|
|
Label1.TextSize = 16
|
|
Private elColor As Int = Colors.RGB(0,0,122)
|
|
If rs_hist.GetString("PT_PAGO") = "TARJETA" Then elColor = Colors.Red
|
|
Label1.color = Colors.White
|
|
Label1.Height = 30dip
|
|
Dim label2 As Label
|
|
label2 = lv_historial.TwoLinesLayout.SecondLabel
|
|
label2.TextSize = 14
|
|
label2.TextColor = Colors.RGB(1,127,1)
|
|
Private fecha As String = rs_hist.GetString("PT_FECHA")
|
|
fecha = fecha.SubString2(1,10)
|
|
Private pt As String = ""
|
|
|
|
If rs_hist.GetString("pt") = "Mifel" Or rs_hist.GetString("pt") = "Visa/Mastercard Debito" Then
|
|
pt = "Mifel"
|
|
Else if rs_hist.GetString("pt") = "Amex" Then
|
|
pt = "Amex"
|
|
else if rs_hist.GetString("pt") = "Efectivo" Then
|
|
pt = "Efectivo"
|
|
Else
|
|
pt = rs_hist.GetString("pt")
|
|
End If
|
|
Private co As String = rs_hist.GetString("PT_COMENSALES")
|
|
lv_historial.AddTwoLines2(cs.Color(elColor).Append("Orden: " & rs_hist.GetString("PT_TICKET") & " - Mesa: " & rs_hist.GetString("PT_MESA") & " - " & pt & " - C:" & co).PopAll, $"Fecha: ${fecha}, Productos: ${rs_hist.GetString("PT_NOART")}, Total: $${NumberFormat2(rs_hist.GetString("PT_MONTO"), 1, 2, 2, True)}"$, $"${rs_hist.GetString("PT_MESA")}|${rs_hist.GetString("PT_TICKET")}|${rs_hist.GetString("PT_PAGO")}|${rs_hist.GetString("PT_MESERO")}|${rs_hist.GetString("PT_COMENSALES")}|-|${rs_hist.GetString("PT_ORIGEN")}"$)
|
|
Loop
|
|
Else
|
|
lv_historial.Visible = False
|
|
l_historialVacio.Visible = True
|
|
l_historialVacio.Text = "No hay ordenes en tu historial."
|
|
End If
|
|
rs_hist.Close
|
|
End Sub
|
|
|
|
Sub CreateListItem(Text As String, cant As Int, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String) As Panel 'ignore
|
|
' Dim p As B4XView = xui.CreatePanel("")
|
|
' Dim cs As CSBuilder
|
|
' cs.Initialize
|
|
' p.SetLayoutAnimated(0, 0, 0, Width, Height)
|
|
' p.LoadLayout("prodItemCarrito")
|
|
'' i_prod.Bitmap = img
|
|
' l_prodX.TextSize = 15
|
|
' p_prods.Height = Height
|
|
' p_prods.Width = Width - 10
|
|
'' Log($"${clv_carrito.AsView.Width}, ${Activity.Width}, ${p_prods.Width}"$)
|
|
' p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width - 75)
|
|
' l_prodX.Height = Height
|
|
' l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU
|
|
' l_prodX.Text = cs.Color(Colors.red).append(Text).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(precioU, 1, 2, 2, True)}"$).Popall
|
|
' l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
|
|
' l_pCant.Tag = precioU&"|"&inv&"|"&prodId
|
|
' et_pCant.Tag = precioU&"|"&inv&"|"&prodId
|
|
' et_pCant.Text = cant
|
|
' et_pCant.BringToFront
|
|
' Return p
|
|
End Sub
|
|
|
|
Private Sub b_borrar_Click
|
|
' clv = clv_carrito
|
|
'' Private buttonTag As String = Sender.As(Button).tag
|
|
' Dim index As Int = clv.GetItemFromView(Sender)
|
|
' Msgbox2Async("¿Seguro que deseas borrar este producto?", "Borrar Producto", "Si", "", "No", Null, False)
|
|
' Wait For Msgbox_Result (Result As Int)
|
|
' If Result = DialogResponse.POSITIVE Then
|
|
' LogColor("b_borrar_Click", Colors.Magenta)
|
|
' Private precio As String=clv.GetValue(index).As(Map).Get("precio")
|
|
'' Private inv As Int = clv.GetValue(index).As(Map).Get("almacen")
|
|
' Dim pnl0 As B4XView = clv.GetPanel(index)
|
|
' Dim pnl As B4XView = pnl0.GetView(0)
|
|
' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
|
' If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4)
|
|
' Log(laCant.text)
|
|
' laCant.Text = "0"
|
|
' Private id As String=clv.GetValue(index).As(Map).Get("id")
|
|
'' Private almacenX As String = Subs.traeAlmacen
|
|
' Private nombreX As String = Subs.traeProdNombre(id)
|
|
' Private precioX As String = precio
|
|
' Subs.actualizaProducto(precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
'' Log($"${almacenX}, ${precioX}, ${laCant.text}, ${nombreX}, ${id}, ${Starter.ticketActual}, ${Subs.traeFecha}, ${Subs.traeUsuarioDeBD}, ${rutaUsuario}, 0, ${Starter.tipov}"$)
|
|
' cuentaProds
|
|
' llenaCarrito
|
|
' End If
|
|
End Sub
|
|
|
|
Private Sub clv_mesas_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
|
|
' Log($"clv_mesa_VisibleRangeChanged : ${FirstIndex}, ${LastIndex} "$)
|
|
Dim ExtraSize As Int = 30 'List size
|
|
Private m As Map
|
|
For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_mesas.Size - 1)
|
|
Dim Pnl As B4XView = clv_mesas.GetPanel(i)
|
|
m = clv_mesas.GetValue(i)
|
|
If i > FirstIndex - ExtraSize And i < LastIndex + ExtraSize Then
|
|
If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
|
|
Pnl.LoadLayout("mesasItem")
|
|
Pnl.Width = Pnl.Parent.Width - 1
|
|
Pnl.Left = 1dip
|
|
p_mesasItem.Width = p_mesasItem.Parent.As(Panel).Width - 1
|
|
p_mesasItem.Height = p_mesasItem.Parent.As(Panel).Height - 1dip
|
|
l_mesaX.Width = p_mesasItem.Width * 0.7
|
|
l_estatus.Width = p_mesasItem.Width * 0.26
|
|
l_estatus.Left = l_mesaX.left + l_mesaX.Width
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
l_mesaX.TextSize = 13
|
|
l_estatus.text = "DISPONIBLE"
|
|
' Log(m)
|
|
If m.Get("estatus") = "ABIERTA" Then l_estatus.Text = "ABIERTA"
|
|
' Log(m)
|
|
If l_estatus.text = "ABIERTA" Then
|
|
l_mesaX.Text = cs.Color(Colors.red).Size(16).Append($"Mesa ${m.Get("nombre")}"$).pop.append(CRLF).Color(0xFF017F01).Append($"Comensales ${m.Get("comensales")}"$).Append(" - Mesero ").pop.Color(Colors.red).append(m.Get("mesero")).pop.append(CRLF).Color(Colors.black).Append($"Subtotal. $${NumberFormat2(m.Get("subtotal"), 1,2,2,True)} - Articulos: ${m.Get("articulos")}"$).Popall
|
|
Else
|
|
l_mesaX.Text = cs.Color(Colors.red).Size(16).Append($"Mesa ${m.Get("nombre")}"$).Popall
|
|
End If
|
|
l_mesaX.Tag = m
|
|
p_mesasItem.Tag = m
|
|
End If
|
|
Else 'Not visible
|
|
' If Pnl.NumberOfViews > 0 Then
|
|
' Pnl.RemoveAllViews 'Remove none visable item/layouts from the list/main layout
|
|
' End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Sub LlenaMesas(p As ResultSet, extra As String) 'ignore
|
|
Private o As Cursor = Starter.skmt.ExecQuery("select count(PT_TICKET) as ordenes from pedido_TICKET where PT_PAGO <> 'MULTI-TICKET' and PT_PAGO <> 'VENTA' "$)
|
|
o.Position = 0
|
|
If o.GetInt("ordenes") > 0 Then WobbleMenu1.SetBadge(2, o.GetInt("ordenes"), Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(2)
|
|
Dim p As ResultSet = Starter.skmt.ExecQuery($"select *, IFNULL(M_ESTATUS, 'CERRADA') as ESTATUS2, IFNULL(M_MESERO, 'NINGUNO') as MESERO, IFNULL(M_COMENSALES, 0) as COMENSALES from cat_mesas order by ESTATUS2, cast(M_ID as INTEGER)"$)
|
|
' Log(p.RowCount)
|
|
PCLVM.Commit
|
|
clv_mesas.Clear
|
|
Private m_mesas As Map
|
|
m_mesas.Initialize
|
|
Do While p.NextRow
|
|
Private subtotal2 As String = "0"
|
|
Private NO_ARTS2 As String = "0"
|
|
' Log(p.GetString("ESTATUS2"))
|
|
If p.GetString("ESTATUS2") = "ABIERTA" Then
|
|
' Log($"PT_TICKET = '${p.GetString("M_TICKET")}' and PT_MESA = '${p.GetString("M_ID")}"$)
|
|
Private pt As Cursor = Starter.skmt.ExecQuery($"select ifnull(sum(PT_MONTO),0) as SUBTOTAL, ifnull(sum(PT_NOART), 0) as NO_ARTS from PEDIDO_TICKET where PT_TICKET = '${p.GetString("M_TICKET")}' and PT_MESA = '${p.GetString("M_ID")}' and PT_PAGO = 'VENTA'"$)
|
|
If pt.RowCount > 0 Then
|
|
pt.Position = 0
|
|
subtotal2 = pt.GetString("SUBTOTAL")
|
|
NO_ARTS2 = pt.GetString("NO_ARTS")
|
|
End If
|
|
End If
|
|
' Log($"${SUBTOTAL2}, ${NO_ARTS2}"$)
|
|
Dim tempMap As Map = CreateMap("id":p.GetString("M_ID"), "numero":p.GetString("M_NUMERO"), "nombre":p.GetString("M_NOMBRE"), "zona":p.GetString("M_ZONA"), "ticket":p.GetString("M_TICKET"), "estatus":p.GetString("ESTATUS2"), "mesero":p.GetString("MESERO"), "comensales":p.GetString("COMENSALES"), "subtotal":subtotal2, "articulos":NO_ARTS2)
|
|
' m_mesas.Put(p.GetString("M_ID"), tempMap)
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_mesas.AsView.Width, 70dip)
|
|
clv_mesas.Add(Pnl, tempMap)
|
|
listaHintsM.Add($"Mesa ${p.GetString("M_ID")}"$)
|
|
Loop
|
|
p.Close
|
|
PCLVM.B4XSeekBar1.MaxValue = clv_mesas.Size
|
|
PCLVM.B4XSeekBar1.MinValue = 0
|
|
PCLVM.B4XSeekBar1.Interval = clv_mesas.Size/20
|
|
PCLVM.B4XSeekBar1.Value = clv_mesas.Size
|
|
PCLVM.B4XSeekBar1.Update
|
|
reiniciarlistaProds = False
|
|
End Sub
|
|
|
|
'Entramos a la mesa seleccionada.
|
|
Private Sub p_mesasItem_Click
|
|
Log("Entramos a la mesa")
|
|
Starter.tipov = "VENTA"
|
|
Log(Sender.As(Panel).tag)
|
|
listaProdsOrden.Initialize
|
|
listaFormasDePagoCB.Initialize
|
|
listaFormaDePago.Initialize
|
|
listaMontoDePago.Initialize
|
|
listaTickets.Initialize
|
|
Starter.formasDePago = 1
|
|
tipoPago = "VENTA"
|
|
muestraCats
|
|
clv_prods_ll.AsView.Visible = False
|
|
' p_buscar.Visible = True
|
|
lv_categorias.Visible = True
|
|
' Log(Sender.As(Panel).tag)
|
|
b_abrirMesa.Text = "Abrir Mesa"
|
|
Subs.panelVisible(p_mesa, 0, 0)
|
|
Private m As Map = Sender.As(Panel).tag
|
|
Starter.mesaActual = m.Get("id")
|
|
Starter.meseroActual = m.Get("mesero")
|
|
Starter.ticketActual = m.Get("ticket")
|
|
Starter.comensalesActuales = m.Get("comensales")
|
|
Starter.totalActual = m.Get("subtotal")
|
|
l_mesa0.Text = $"MESA ${Starter.mesaActual}"$
|
|
cb_opcionEfectivo.Checked = False
|
|
cb_mostrarDescuento.Checked = False
|
|
cb_opcionEfectivo_CheckedChange(False)
|
|
' Log(m)
|
|
b_mesaCerrar.Tag = m
|
|
Starter.skmt.ExecNonQuery("delete from cuentaa")
|
|
Starter.skmt.ExecNonQuery($"insert into cuentaa (cuenta) values ('${m.Get("ticket")}')"$)
|
|
LlenaProdsLL(Null, Null)
|
|
p_mesas.Visible = False
|
|
cb_mesero.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"))
|
|
If m.Get("comensales") <> "0" Then cb_comensales.SelectedIndex = cb_comensales.IndexOf(m.Get("comensales"))
|
|
' Log(Subs.traeMesaEstatus(m.Get("id")))
|
|
If Subs.traeMesaEstatus(m.Get("id")) = "CERRADA" Then
|
|
p_mesaCampos.Visible = True
|
|
b_abrirMesa.Visible = True
|
|
p_mesaAbierta.Visible = False
|
|
Else
|
|
p_mesaCampos.Visible = False
|
|
b_abrirMesa.Visible = False
|
|
p_mesaAbierta.Visible = True
|
|
p_mesaAbierta.BringToFront
|
|
l_meseroAbierta2.Text = m.Get("mesero")
|
|
l_comensalesAbierta2.Text = m.Get("comensales")
|
|
End If
|
|
Private tm As Map = CreateMap("ticket":m.Get("ticket"), "pago":tipoPago)
|
|
listaTickets.Initialize
|
|
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
|
|
selBuscar = "%"
|
|
actualizaProductos("Alimentos")
|
|
LlenaOrden
|
|
Starter.ticketFactura = False
|
|
Private f As Cursor = Starter.skmt.ExecQuery($"select ifnull(PT_FACTURAR, 'false') as PT_FACTURAR from PEDIDO_TICKET where PT_TICKET = '${Starter.ticketActual}' and PT_MESA = '${Starter.mesaActual}' and PT_PAGO = 'VENTA'"$)
|
|
If f.RowCount > 0 Then
|
|
f.Position = 0
|
|
Starter.ticketFactura = f.GetString("PT_FACTURAR")
|
|
End If
|
|
cb_factura.Checked = Starter.ticketFactura
|
|
End Sub
|
|
|
|
Private Sub p_mesasItem_LongClick
|
|
Private m As Map = Sender.As(Panel).tag
|
|
If m.Get("estatus") <> "CERRADA" Then
|
|
Log(m)
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ID from CAT_MESAS where ifnull(M_ESTATUS, 0) <> 'ABIERTA' order by M_ID"$)
|
|
If c.RowCount > 0 Then
|
|
Private listaMesas As List
|
|
listaMesas.Initialize
|
|
' Log(c.RowCount)
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
listaMesas.Add(c.GetInt("M_ID"))
|
|
Next
|
|
listaMesas.Sort(True)
|
|
End If
|
|
cb_cambioMesa.SetItems(listaMesas)
|
|
l_cambioMesa2.Text = $"Reasignar la mesa ${m.Get("id")} a la mesa:"$
|
|
b_cambioMesa.Tag = m.Get("id")
|
|
Subs.centraPanel(p_cambioMesa, Activity.Width)
|
|
p_transparenteCambioMesa.BringToFront
|
|
p_transparenteCambioMesa.Visible = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub b_cambioMesa_Click
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select * from CAT_MESAS where M_ID = '${Sender.As(Button).tag}'"$)
|
|
Log($"select * from CAT_MESAS where M_ID = '${Sender.As(Button).tag}'"$)
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Starter.skmt.BeginTransaction
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_ESTATUS = '${c.GetString("M_ESTATUS")}', M_TICKET = '${c.GetString("M_TICKET")}', M_MESERO = '${c.GetString("M_MESERO")}', M_COMENSALES = '${c.GetString("M_COMENSALES")}' where M_ID = '${cb_cambioMesa.SelectedItem}'"$)
|
|
Log($"update CAT_MESAS set M_ESTATUS = '${c.GetString("M_ESTATUS")}', M_TICKET = '${c.GetString("M_TICKET")}', M_MESERO = '${c.GetString("M_MESERO")}', M_COMENSALES = '${c.GetString("M_COMENSALES")}' where M_ID = '${cb_cambioMesa.SelectedItem}'"$)
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_ESTATUS = null, M_TICKET = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Sender.As(Button).tag}'"$)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_MESA = '${cb_cambioMesa.SelectedItem}' where PE_TIPO = 'VENTA' and PE_TICKET = '${c.GetString("M_TICKET")}' and PE_MESA = '${Sender.As(Button).tag}'"$)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MESA = '${cb_cambioMesa.SelectedItem}' where PT_PAGO = 'VENTA' and PT_TICKET = '${c.GetString("M_TICKET")}' and PT_MESA = '${Sender.As(Button).tag}'"$)
|
|
Starter.skmt.TransactionSuccessful
|
|
Starter.skmt.EndTransaction
|
|
End If
|
|
p_transparenteCambioMesa.Visible = False
|
|
WobbleMenu1_Tab1Click
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
End Sub
|
|
|
|
Private Sub b_abrirMesa_Click
|
|
If cb_mesero.SelectedIndex <> 0 Then
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ID = '${Starter.mesaActual}' and M_ESTATUS = 'ABIERTA'"$)
|
|
If c.RowCount > 0 Then
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MESERO = '${cb_mesero.SelectedItem}', PT_COMENSALES = '${cb_comensales.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
|
|
Log($"update PEDIDO_TICKET set PT_MESERO = '${cb_mesero.SelectedItem}', PT_COMENSALES = '${cb_comensales.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}'"$)
|
|
Else
|
|
Starter.ticketActual = Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$)
|
|
' Log($"update CAT_MESAS set M_TICKET = '${Starter.ticketActual}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$)
|
|
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
|
|
l_meseroAbierta2.Text = cb_mesero.SelectedItem
|
|
p_mesaCampos.Visible = False
|
|
b_abrirMesa.Visible = False
|
|
p_mesaAbierta.Visible = True
|
|
Else
|
|
ToastMessageShow("Es necesario seleccionar un mesero", False)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub p_mesa_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub cb_comensales_SelectedIndexChanged (Index As Int)
|
|
Log(Index)
|
|
End Sub
|
|
|
|
Private Sub cb_mesero_SelectedIndexChanged (Index As Int)
|
|
' Log(Index)
|
|
End Sub
|
|
|
|
Private Sub b_mesaCerrar_Click
|
|
' Log("Cerrar")
|
|
listaFormasDePagoCB.Initialize
|
|
listaFormaDePago.Initialize
|
|
listaMontoDePago.Initialize
|
|
listaTickets.Initialize
|
|
Starter.formasDePago = 1
|
|
l_faltaMonto.Text = ""
|
|
cb_opcionEfectivo.Checked = False
|
|
p_formasDePago.Height = 40dip
|
|
p_propina.Top = 143dip
|
|
'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar).
|
|
If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then
|
|
b_pagoCerrar.Top = 235dip ' 295dip
|
|
b_pagoCerrar.Left = 20dip
|
|
b_pagoCerrar.BringToFront
|
|
Else
|
|
b_pagoCerrar.Top = 295dip ' 295dip
|
|
End If
|
|
p_pago.Height = 390dip
|
|
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, 60)
|
|
et_montoPago2.Text = Subs.traeTotalTicketActual_PT
|
|
Starter.totalActual = Subs.traeTotalTicketActual_PT
|
|
et_propina.Text = ""
|
|
' et_montoPago2.Text = Starter.totalActual
|
|
' p_pago.Elevation = 100dip
|
|
' p_pago.BringToFront
|
|
' p_pago.Visible = True
|
|
l_faltaMonto.Visible = False
|
|
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}'"$)
|
|
Activity_KeyPress(KeyCodes.KEYCODE_BACK)
|
|
End If
|
|
pagoPropina = "Amex"
|
|
cb_pagoPropina.SelectedIndex = 0
|
|
Try
|
|
cb_pago2.SelectedIndex = 0
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub b_mesaEditar_Click
|
|
b_abrirMesa.Text = "Guardar"
|
|
p_mesaCampos.Visible = True
|
|
b_abrirMesa.Visible = True
|
|
p_mesaAbierta.Visible = False
|
|
End Sub
|
|
|
|
Private Sub p_mesaAbierta_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub lv_categorias_ItemClick (Position As Int, Value As Object)
|
|
' Log("ITEM CLICKED")
|
|
' Starter.catActual = Value
|
|
If Starter.nivelActual = "Cats" Then
|
|
Starter.catActual = Value
|
|
Else if Starter.nivelActual = "SubCats" Then
|
|
Starter.subcatActual = Value
|
|
End If
|
|
' Log(Starter.nivelActual)
|
|
' Log($"${Starter.catActual}, ${Starter.subcatActual}"$)
|
|
' If Starter.nivelActual = "Cats" And Value = "VARIOS" Then
|
|
' Log(6)
|
|
' Starter.nivelActual = "SubCats"
|
|
' lv_categorias_ItemClick (1, "VARIOS")
|
|
' Starter.nivelActual = "SubCats"
|
|
' End If
|
|
|
|
If Starter.nivelActual = "Cats" Then
|
|
Private lasCats As List = Subs.traeSubCategorias(Value)
|
|
Starter.nivelActual = "SubCats"
|
|
lv_categorias.Clear
|
|
For cat = 0 To lasCats.Size - 1
|
|
lv_categorias.AddSingleLine(lasCats.get(cat))
|
|
Next
|
|
' p_buscar.Visible = True
|
|
Else
|
|
lv_categorias.Visible = False
|
|
clv_prods_ll.AsView.Visible = True
|
|
' p_buscar.Visible = True
|
|
Private c As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_CLASIF = '${Value}' and CAT_GP_TIPO = '${Starter.catActual}' order by CAT_GP_NOMBRE"$)
|
|
LlenaProdsLL(c, Null)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub p_pago_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub b_pagoCerrar_Click
|
|
listaTickets.Initialize
|
|
p_transparentePago.Visible = False
|
|
' Private pt As ResultSet = Starter.skmt.ExecQuery($"select * from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
|
|
' Do While pt.NextRow
|
|
' Private laPropina As String = pt.GetString("PT_PROPINA")
|
|
' Private laPropinaPago As String = pt.GetString("PT_PAGO_PROPINA")
|
|
' Loop
|
|
' Log($"${laPropina}, ${laPropinaPago}"$)
|
|
Log("###################### " & listaFormasDePagoCB.Size & "|" & listaFormaDePago)
|
|
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}'"$)
|
|
Log(1)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'MULTI-TICKET', PT_TICKET = '${sigTicketMT}', PT_PROPINA = '0', PT_PAGO_PROPINA = '0', PT_FECHA = '${Subs.traeFecha}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$) 'Reseteamos la mesa a cerrada.
|
|
Private primeraVez As Boolean = True
|
|
'' Private descuentoAplicado As Boolean = False
|
|
Private ticketX As String = Starter.ticketActual
|
|
Private ticketAnt As String = ""
|
|
Private pagoAnt As String = ""
|
|
Private descXEfectivo As String = ""
|
|
Private contT As Int = 0
|
|
For fdp = 0 To listaFormasDePagoCB.Size - 1
|
|
Log($"FOR - PASO ${fdp}"$)
|
|
formaPago = listaFormaDePago.Get(fdp)
|
|
If formaPago = "Efectivo" Then
|
|
tipoPago = "EFECTIVO"
|
|
Else
|
|
tipoPago = "TARJETA" 'Pago con tarjeta
|
|
End If
|
|
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago)
|
|
LogColor($"${primeraVez} - ${tipoPago} - |${formaPago}|"$, Colors.Red)
|
|
Private laPropina As String = "0"
|
|
If et_propina.Text <> "" Then
|
|
laPropina = et_propina.Text
|
|
End If
|
|
If tipoPago = "TARJETA" Then 'primeraVez And
|
|
Log("INSERTAMOS TARJETA")
|
|
Log($"${listaFormaDePago.Get(fdp)}"$)
|
|
Private pa As ResultSet = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${sigTicketMT}' and PE_TIPO = 'MULTI-TICKET'"$)
|
|
Log($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${sigTicketMT}' and PE_TIPO = 'MULTI-TICKET'"$)
|
|
Log(pa.RowCount)
|
|
Do While pa.NextRow
|
|
Log($"${pa.GetString("PE_PROID")}, ${pa.GetString("PE_COSTO_TOT")}, ${pa.GetString("PE_TIPO")}"$)
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", _
|
|
Array As Object (pa.GetString("PE_COSTO_TOT"), pa.GetString("PE_COSTOU"), pa.GetString("PE_CANT"), pa.GetString("PE_PRONOMBRE"), pa.GetString("PE_PROID"), sigTicket, pa.GetString("PE_FECHA"), pa.GetString("PE_MESERO"), pa.GetString("PE_MESA"), pa.GetString("PE_COSTO_SIN"), "TARJETA", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
|
|
Loop
|
|
LogColor("INSERTAMOS TARJETA EN PT", Colors.blue)
|
|
Private ptMonto As String = listaMontoDePago.Get(fdp).As(EditText).text
|
|
' Private ptPropina = laPropina
|
|
If fdp <> listaFormasDePagoCB.Size - 1 Then
|
|
laPropina = 0
|
|
pagoPropina = formaPago
|
|
Else
|
|
pagoPropina = cb_pagoPropina.SelectedItem
|
|
End If
|
|
Log($"${contT}|${laPropina}|${cb_pagoPropina.SelectedItem}|${pa.RowCount}|${ptMonto}, ${formaPago}"$)
|
|
Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES, PT_ALMACEN, PT_PAGO2, PT_ORIGEN, PT_PROPINA, PT_PAGO_PROPINA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object _
|
|
(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, pa.RowCount, ptMonto, Starter.mesaActual, ptMonto, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$, laPropina, pagoPropina))
|
|
ticketX = ticketAnt
|
|
ticketAnt = sigTicket
|
|
pagoAnt = formaPago
|
|
primeraVez = False
|
|
If contT = 0 Then
|
|
Private descuentoTicket As String = sigTicket
|
|
Private descuentoTipoPago As String = tipoPago
|
|
End If
|
|
Private d As ResultSet = Starter.skmt.ExecQuery($"select ifnull(sum(PE_COSTO_TOT), 0) as totalEfectivo from PEDIDO where PE_TIPO = 'EFECTIVO' and PE_ORIGEN = '${Starter.mesaActual}|${sigTicketMT}'"$)
|
|
Private elEfectivo As String = "0"
|
|
Do While d.NextRow
|
|
elEfectivo = d.GetString("totalEfectivo")
|
|
Loop
|
|
If elEfectivo > "0" Then
|
|
Log("INSERTAMOS DESCUENTO")
|
|
Log($"DescTicket: ${descuentoTicket}, descPago: ${descuentoTipoPago}"$)
|
|
'Agregamos el efectivo como DESCUENTO en el pedido de la tarjeta.
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ((elEfectivo * -1), (elEfectivo * -1), 1, "DESCUENTO", "DESC01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, elEfectivo, "TARJETA", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
|
|
Starter.ticketActual = ticketX
|
|
End If
|
|
contT = contT + 1
|
|
End If
|
|
If tipoPago = "EFECTIVO" Then
|
|
Log("INSERTAMOS EFECTIVO")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object _
|
|
(listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago, formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
|
|
Private laPropinaEfectivo As String = "0"
|
|
Private pagoPropinaEfectivo As String = "Efectivo"
|
|
If pagoPropina = "Efectivo" Then
|
|
laPropinaEfectivo = laPropina
|
|
pagoPropinaEfectivo = pagoPropina
|
|
End If
|
|
Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES, PT_ALMACEN, PT_PAGO2, PT_ORIGEN, PT_PROPINA, PT_PAGO_PROPINA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$, laPropinaEfectivo, pagoPropinaEfectivo))
|
|
Log("INSERTAMOS EFECTIVO EN PT")
|
|
descXEfectivo = listaMontoDePago.Get(fdp).As(EditText).text
|
|
End If
|
|
' If Not(descuentoAplicado) And pagoAnt <> "" And ticketAnt <> "" And descXEfectivo <> "" Then
|
|
' Log("INSERTAMOS DESCUENTO")
|
|
' Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ((descXEfectivo * -1), (descXEfectivo * -1), 1, "DESCUENTO", "DESC01", ticketAnt, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, descXEfectivo, "TARJETA", pagoAnt, $"${Starter.mesaActual}|${sigTicketMT}"$)) 'Agregamos el descuento al pedido de tarjeta.
|
|
' descuentoAplicado = True
|
|
' End If
|
|
Starter.ticketActual = sigTicket
|
|
Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago)
|
|
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
|
|
Next
|
|
Private d As ResultSet = Starter.skmt.ExecQuery($"select ifnull(sum(PE_COSTO_TOT), 0) as totalEfectivo from PEDIDO where PE_TIPO = 'EFECTIVO' and PE_ORIGEN = '${Starter.mesaActual}|${sigTicketMT}'"$)
|
|
Private elEfectivo As String = "0"
|
|
Do While d.NextRow
|
|
elEfectivo = d.GetString("totalEfectivo")
|
|
Loop
|
|
|
|
Log($"${Starter.ticketActual}, ${ticketAnt}, ${sigTicket}, ${ticketX}"$)
|
|
|
|
Starter.ticketActual = sigTicketMT
|
|
If elEfectivo > "0" Then
|
|
Private rd As ResultSet = Starter.skmt.ExecQuery($"select pe_proid from pedido where pe_pronombre = 'DESCUENTO' and pe_mesa = '${Starter.mesaActual}' and pe_ticket = '${descuentoTicket}'"$)
|
|
If rd.RowCount = 0 Then 'Si no se ha agregado el descuento al ticket, lo agregamos.
|
|
Log("INSERTAMOS DESCUENTO")
|
|
Log($"DescTicket: ${descuentoTicket}, descPago: ${descuentoTipoPago}"$)
|
|
' Agregamos el efectivo como DESCUENTO en el pedido de la tarjeta.
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ((elEfectivo * -1), (elEfectivo * -1), 1, "DESCUENTO", "DESC01", descuentoTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, elEfectivo, "TARJETA", descuentoTipoPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
|
|
End If
|
|
Starter.ticketActual = ticketX
|
|
End If
|
|
|
|
|
|
|
|
' Log(Subs.traeTotalTicketActual_P("MULTI-TICKET"))
|
|
' Private elTotalTarjeta As String = Subs.traeTotalTicketActual_P("MULTI-TICKET") - elEfectivo
|
|
' Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MONTO = '${elTotalTarjeta}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${ticketAnt}' and PT_PAGO = 'TARJETA'"$)
|
|
Else
|
|
Log(">>>>>>>> UN SOLO PAGO")
|
|
formaPago = listaFormaDePago.Get(0)
|
|
If formaPago = "Efectivo" Then
|
|
tipoPago = "EFECTIVO"
|
|
Else
|
|
tipoPago = "TARJETA" 'Pago con 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}', PE_TIPO2 = '${formaPago}' 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
|
|
Log(2)
|
|
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}', PT_PAGO2 = '${formaPago}', PT_FECHA = '${Subs.traeFecha}' 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
|
|
b_leyendaDescuento_Click
|
|
Sleep(1000)
|
|
WobbleMenu1_Tab1Click
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
End Sub
|
|
|
|
Private Sub cb_pago_SelectedIndexChanged (Index As Int)
|
|
Log(cb_pago.SelectedItem)
|
|
End Sub
|
|
|
|
Private Sub b_cierraAdmin_Click
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
|
|
If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ...
|
|
cd1.Initialize(Colors.gray, 10dip)
|
|
b_cierraAdmin.Background = cd1
|
|
ToastMessageShow("¡Cierre administrativo habilitado!", False)
|
|
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","1"))
|
|
Else
|
|
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
|
|
End If
|
|
DateTime.DateFormat = "yyMMdd_HHmmss"
|
|
sftp1.UploadFile(File.DirInternal, "kmt.db", $"/Lanterna/kmt_Lanterna_${DateTime.Date(DateTime.Now)}.db"$) 'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
End Sub
|
|
|
|
Private Sub b_cierraAdmin_LongClick
|
|
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"))
|
|
cd1.Initialize(Colors.red, 10dip)
|
|
b_cierraAdmin.Background = cd1
|
|
ToastMessageShow("¡Cierre administrativo cancelado!", False)
|
|
End Sub
|
|
|
|
Private Sub b_cierreTotal_Click
|
|
' Log("click")
|
|
b_envioInfo.Enabled = True
|
|
If Subs.revisaEfectivoBorrado Then
|
|
b_imp.Text = "Imprimir" & CRLF & "Z"
|
|
b_envioInfo.Visible = False
|
|
b_imp3.Visible = False
|
|
Else
|
|
b_imp.Text = "Imprimir" & CRLF & "A + B"
|
|
b_envioInfo.Visible = True
|
|
b_imp3.Visible = True
|
|
End If
|
|
sv_resumen.Panel.Height = p_resumen.Height
|
|
l_resumen.Width = sv_resumen.Width - 20dip
|
|
cs.Initialize
|
|
Log(l_resumen.text)
|
|
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 PE_MESA, PE_TIPO, PE_TICKET, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo, PE_TICKET order by PE_MESA, PE_TIPO desc")
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Private mesaAnt As String = ""
|
|
Private tipoAnt As String = ""
|
|
Private tipo As String
|
|
Private ticket As String
|
|
DateTime.DateFormat = "dd/mm/yyyy HH:mm:ss"
|
|
' cs.Append($"Fecha: ${DateTime.Date(DateTime.now)}${CRLF}${CRLF}"$)
|
|
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 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")}' and PT_PAGO <> 'MULTI-TICKET'"$)
|
|
tm.Position = 0
|
|
' Log($"Mesa ${c.GetString("PE_MESA")} - $${tm.GetString("totalMesa")} ${CRLF}"$)
|
|
cs.Color(Colors.RGB(1,127,1)).Append($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$).pop
|
|
Private tipoAnt As String = ""
|
|
End If
|
|
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
|
|
End If
|
|
If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
|
|
cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
|
|
End If
|
|
mesaAnt = c.GetString("PE_MESA")
|
|
tipoAnt = c.GetString("PE_TIPO")
|
|
Next
|
|
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
|
|
End Sub
|
|
|
|
Private Sub b_cierraParcial_Click
|
|
sv_resumen.Panel.Height = p_resumen.Height
|
|
l_resumen.Width = sv_resumen.Width - 20dip
|
|
b_envioInfo.Enabled = False
|
|
' If Subs.revisaEfectivoBorrado Then b_imp.Text = "Imprimir" & CRLF & "Z" Else b_imp.Text = "Imprimir" & CRLF & "A + B"
|
|
If Subs.revisaEfectivoBorrado Then
|
|
b_imp.Text = "Imprimir" & CRLF & "Z"
|
|
b_envioInfo.Visible = False
|
|
b_imp3.Visible = False
|
|
Else
|
|
b_imp.Text = "Imprimir" & CRLF & "A + B"
|
|
b_envioInfo.Visible = True
|
|
b_imp3.Visible = True
|
|
End If
|
|
cs.Initialize
|
|
Log(l_resumen.text)
|
|
Private c As Cursor = Starter.skmt.ExecQuery("select PE_MESA, PE_TIPO, PE_TICKET, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo, PE_TICKET order by PE_MESA, PE_TIPO desc")
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Private mesaAnt As String = ""
|
|
Private tipoAnt As String = ""
|
|
Private tipo As String
|
|
Private ticket As String
|
|
DateTime.DateFormat = "dd/mm/yyyy HH:mm:ss"
|
|
' cs.Append($"Fecha: ${DateTime.Date(DateTime.now)}${CRLF}${CRLF}"$)
|
|
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 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")}' and PT_PAGO <> 'MULTI-TICKET'"$)
|
|
tm.Position = 0
|
|
cs.Color(Colors.RGB(1,127,1)).Append($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$).pop
|
|
Private tipoAnt As String = ""
|
|
End If
|
|
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
|
|
End If
|
|
If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
|
|
cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
|
|
End If
|
|
mesaAnt = c.GetString("PE_MESA")
|
|
tipoAnt = c.GetString("PE_TIPO")
|
|
Next
|
|
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)
|
|
End Sub
|
|
|
|
Private Sub b_cierreTotal_LongClick
|
|
Log("click")
|
|
sv_resumen.Panel.Height = p_resumen.Height
|
|
cs.Initialize
|
|
Private m As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
|
|
If m.RowCount = 0 Then 'Si no hay mesas abiertas entonces ...
|
|
Private c As Cursor = Starter.skmt.ExecQuery("select PE_MESA, PE_TIPO, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo order by PE_MESA, PE_TIPO desc")
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Private mesaAnt As String = ""
|
|
Private tipo As String
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
If c.GetString("PE_TIPO") = "TARJETA" Then tipo = "Tarjeta " Else tipo = "Efectivo "
|
|
If mesaAnt <> c.GetString("PE_MESA") Then cs.Color(Colors.red).Append("Mesa " & c.GetString("PE_MESA") & CRLF).pop
|
|
cs.Append($"* ${tipo} $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
|
|
mesaAnt = c.GetString("PE_MESA")
|
|
Next
|
|
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
|
|
End Sub
|
|
|
|
Private Sub et_inicioDia_EnterPressed
|
|
If et_inicioDia.Text.trim = "INICIO DIA" Then
|
|
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.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("EFECTIVO BORRADO"))
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("EFECTIVO BORRADO","0"))
|
|
Starter.skmt.ExecNonQuery("delete from PEDIDO")
|
|
Starter.skmt.ExecNonQuery("delete from PEDIDO_TICKET")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub p_transparenteCierreAdmin_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_transparenteResumen_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
p_transparenteResumen.Visible = False
|
|
End Sub
|
|
|
|
Sub Printer1_Connected (Success As Boolean)
|
|
' If Logger Then Log("Printer1_Connected")
|
|
If Success Then
|
|
ToastMessageShow("Impresora conectada", False)
|
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP", Starter.mac_impresora))
|
|
If Starter.logger Then LogColor("Impresora conectada", Colors.Green)
|
|
' B_IMP2.Enabled = True
|
|
impresoraConectada = True
|
|
Else
|
|
' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore
|
|
' ToastMessageShow("Error conectando la impresora", False)
|
|
LogColor("Error conectando la impresora", Colors.Red)
|
|
errorImpresora = errorImpresora + 1
|
|
If errorImpresora > 1 Then
|
|
Starter.MAC_IMPRESORA = "0"
|
|
errorImpresora = 0
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub Printer1_Error
|
|
Log("error printer")
|
|
End Sub
|
|
|
|
Sub b_imp_Click
|
|
b_impAB_Click
|
|
End Sub
|
|
|
|
Sub b_imp_LongClick
|
|
imprimeResumenMesas
|
|
End Sub
|
|
|
|
Sub imprimeResumenMesas
|
|
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 ...")
|
|
Log(imprimirAqui)
|
|
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)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
DateTime.DateFormat = "dd/MM/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 PE_MESA, PE_TIPO, PE_TICKET, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO where PE_TIPO <> 'VENTA' group by PE_MESA, pe_tipo, PE_TICKET order by PE_MESA, PE_TIPO desc")
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Private mesaAnt As String = ""
|
|
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 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
|
|
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")}' and PT_PAGO <> 'MULTI-TICKET'"$)
|
|
tm.Position = 0
|
|
cs.Color(Colors.RGB(1,127,1)).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") 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
|
|
mesaAnt = c.GetString("PE_MESA")
|
|
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.RGB(1,127,1)).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}"$)
|
|
If totalEfectivo > 0 Then
|
|
cs.color(Colors.RGB(1,127,1)).Append($"${CRLF}Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall
|
|
If imprimirAqui Then Printer1.WriteString($"${CRLF}Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$)
|
|
cs.color(Colors.RGB(1,127,1)).Append($"Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall
|
|
If imprimirAqui Then Printer1.WriteString($"Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$)
|
|
Else
|
|
cs.color(Colors.RGB(1,127,1)).Append($"${CRLF}Total: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall
|
|
If imprimirAqui Then Printer1.WriteString($"${CRLF}Total: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$)
|
|
End If
|
|
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
|
|
' Printer1.WriteString("__________" & CRLF)
|
|
' Printer1.WriteString("------------------------------" & CRLF)
|
|
' Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
|
|
' Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF)
|
|
' Printer1.WriteString("--------INFORMATIVO-----------" & 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")
|
|
Activity_Resume
|
|
End Try
|
|
Sleep(1000)
|
|
b_imp.Enabled = True
|
|
ProgressDialogHide
|
|
End Sub
|
|
|
|
Sub b_imp2_Click
|
|
imprimeResumenGrupos
|
|
End Sub
|
|
|
|
'Sub b_imp2_LongClick
|
|
' b_impAB_Click
|
|
'End Sub
|
|
|
|
Sub imprimeResumenGrupos
|
|
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_imp2.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)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
DateTime.DateFormat = "dd/MM/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 PE_PRONOMBRE, PE_PROID, CAT_GP_TIPO2, CAT_GP_CLASIF, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto, PE_FECHA from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_TIPO <> 'MULTI-TICKET' and PE_PROID not like 'CDA%' and PE_PROID not like 'DESC%' group by CAT_GP_TIPO2, PE_PRONOMBRE order by CAT_GP_ORDEN_GRUPOS, CAT_GP_TIPO2, PE_PRONOMBRE") 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
|
|
' Log(c.RowCount)
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Private catAnt As String = ""
|
|
Private catTotal As String = 0
|
|
Private catMontoTotal As String = 0
|
|
Private laFecha() As String = Regex.Split(" ", c.GetString("PE_FECHA")) 'Traemos la fecha del PEDIDO.
|
|
If imprimirAqui Then Printer1.WriteString($"Fecha: ${laFecha(0)} ${sTime} ${CRLF}${CRLF}"$)
|
|
cs.Color(Colors.red).Append($"Fecha: ${laFecha(0)} ${sTime}${CRLF}"$).pop
|
|
Log($"Fecha: ${laFecha(0)} ${sTime} ${CRLF}${CRLF}"$)
|
|
Log("*** GRUPOS ***")
|
|
cs.Color(Colors.red).Append($"*** GRUPOS ***${CRLF}"$).pop
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** GRUPOS ***${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
' For i = 0 To c.RowCount - 1
|
|
' c.Position = i
|
|
'' Log($"${catAnt} - ${c.GetString("CAT_GP_TIPO2")}"$)
|
|
' If catAnt <> c.GetString("CAT_GP_TIPO2") 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'"$)
|
|
'' tm.Position = 0
|
|
' If catAnt <> "" Then
|
|
' Private primerEspacioLargo As Int = 45 - "Total ".Length - catAnt.Length - 5 - catTotal.Length - NumberFormat2(catMontoTotal,1,0,0,True).Length
|
|
' Private primerEspacio As String = ""
|
|
' For n = 1 To primerEspacioLargo
|
|
' primerEspacio = primerEspacio & "."
|
|
' Next
|
|
'' Log("primer espacio : " & primerEspacioLargo)
|
|
' cs.Color(Colors.Green).Append($"Total ${catAnt}: ${catTotal}${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}"$).pop
|
|
' Log($"Total ${catAnt}: ${catTotal}${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}"$)
|
|
' If imprimirAqui Then
|
|
' Printer1.WriteString(Printer1.BOLD)
|
|
' Printer1.WriteString($"Total ${catAnt}: ${catTotal}${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}${CRLF}"$)
|
|
' Printer1.WriteString(Printer1.NOBOLD)
|
|
' End If
|
|
'' Log($">>>>>>> CAT TOTAL ${catAnt}: ${catTotal}"$ )
|
|
' End If
|
|
' cs.Color(Colors.red).Append($"++ ${c.GetString("CAT_GP_TIPO2")} ++${CRLF}"$).pop
|
|
' LogColor($"++ ${c.GetString("CAT_GP_TIPO2")} ++${CRLF}"$, Colors.blue)
|
|
' Printer1.WriteString(Printer1.BOLD)
|
|
' If imprimirAqui Then Printer1.WriteString($"++ ${c.GetString("CAT_GP_TIPO2")} ++${CRLF}"$)
|
|
' Printer1.WriteString(Printer1.NOBOLD)
|
|
' Private tipoAnt As String = ""
|
|
' catTotal = 0
|
|
' catMontoTotal = 0
|
|
' End If
|
|
' Private elNombre As String = c.GetString("PE_PRONOMBRE")
|
|
' If c.GetString("PE_PROID").StartsWith("LA") Then
|
|
' Private nn As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = '${c.GetString("PE_PROID")}'"$)
|
|
' Do While nn.NextRow
|
|
' elNombre = nn.GetString("CAT_GP_NOMBRE")
|
|
' Loop
|
|
' End If
|
|
' Private monto As String = NumberFormat2(c.GetString("monto"), 1, 0, 0, True)
|
|
' Private cuantos As String = c.GetString("cuantos")
|
|
' Private nom() As String = Regex.Split("\$", elNombre)
|
|
' If nom.Length > 1 Then elNombre = nom(0)
|
|
' If elNombre.Length > 45 Then elNombre = elNombre.SubString2(0, 45)
|
|
' Log($"${elNombre} - ${c.GetString("cuantos")} .. $${monto}"$) '${c.Position} - ${elNombre.Length} -
|
|
' cs.Color(Colors.DarkGray).Append($"${elNombre} - ${c.GetString("cuantos")} .. $${monto} ${CRLF}"$).pop
|
|
'' Log(cs.Length)
|
|
' Private primerEspacioLargo As Int = 45 - elNombre.Length - c.GetString("cuantos").Length - (monto.Length + 1) - 6
|
|
' Private primerEspacio As String = ""
|
|
' For n = 1 To primerEspacioLargo
|
|
' primerEspacio = primerEspacio & "."
|
|
' Next
|
|
'' If imprimirAqui Then Printer1.WriteString($"${elNombre}${Subs.alineaDerecha(c.GetString("cuantos"), (31 - elNombre.Length), ".")} ${CRLF}"$)
|
|
' If imprimirAqui Then Printer1.WriteString($"${elNombre}${primerEspacio}${c.GetString("cuantos")}..$${monto} ${CRLF}"$)
|
|
' catTotal = catTotal + c.GetString("cuantos")
|
|
' catMontoTotal = catMontoTotal + c.GetString("monto")
|
|
'' Log($">>>> ${catAnt} - ${c.GetString("CAT_GP_TIPO2")}"$)
|
|
' If i = c.RowCount - 1 Then
|
|
' Private primerEspacioLargo As Int = 45 - "Total ".Length - c.GetString("CAT_GP_TIPO2").Length - 5 - catTotal.Length - NumberFormat2(catMontoTotal,1,0,0,True).Length
|
|
' Private primerEspacio As String = ""
|
|
' For n = 1 To primerEspacioLargo
|
|
' primerEspacio = primerEspacio & "."
|
|
' Next
|
|
'' Log("PRIMER ESPACIO:" & primerEspacio.Length)
|
|
' Log($"Total ${c.GetString("CAT_GP_TIPO2")}: ${catTotal} ${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}"$)
|
|
' cs.Color(Colors.Green).Append($"Total ${c.GetString("CAT_GP_TIPO2")}: ${catTotal} ${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}"$).pop
|
|
' If imprimirAqui Then
|
|
' Printer1.WriteString(Printer1.BOLD)
|
|
' Printer1.WriteString($"Total ${c.GetString("CAT_GP_TIPO2")}: ${catTotal} ${primerEspacio}$${NumberFormat2(catMontoTotal,1,0,0,True)}${CRLF}"$)
|
|
' Printer1.WriteString(Printer1.NOBOLD)
|
|
' End If
|
|
' End If
|
|
' Private tipoAnt As String = ""
|
|
' catAnt = c.GetString("CAT_GP_TIPO2")
|
|
'' Log(i)
|
|
' Next
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
|
|
' l_resumen.Text = cs
|
|
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
|
|
sv_resumen.Panel.Height = l_resumen.Height
|
|
End If
|
|
|
|
'RESUMEN
|
|
LogColor("sleeping ....", Colors.Magenta)
|
|
If imprimirAqui Then Sleep(4000)
|
|
Private rsm As Cursor = Starter.skmt.ExecQuery($"select distinct CAT_GP_TIPO2, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' group by CAT_GP_TIPO2 order by CAT_GP_ORDEN_GRUPOS, CAT_GP_TIPO2"$) 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
|
|
' Log(rsm.RowCount)
|
|
If rsm.RowCount > 0 Then
|
|
|
|
|
|
' Printer1.WriteString(Printer1.BOLD)
|
|
' If imprimirAqui Then Printer1.WriteString($"*** GRUPOS *** ${CRLF}"$)
|
|
' Log($"*** GRUPOS ***${CRLF}"$)
|
|
' cs.Color(Colors.red).Append($"*** GRUPOS ***${CRLF}"$).pop
|
|
' Printer1.WriteString(Printer1.NOBOLD)
|
|
|
|
|
|
|
|
' For i = 0 To rsm.RowCount - 1
|
|
' rsm.Position = i
|
|
' Private laCat As String = rsm.GetString("CAT_GP_TIPO2")
|
|
' If laCat.Length > 20 Then laCat = laCat.SubString2(0, 20)
|
|
'' Log($"${rsm.Position} - ${laCat.Length} - ${laCat}"$)
|
|
' Private monto As String = NumberFormat2(rsm.GetString("monto"), 1, 0, 0, True)
|
|
' Private cuantos As String = rsm.GetString("cuantos")
|
|
' Private primerEspacioLargo As Int = 30 - laCat.Length - (cuantos.Length + 1) - 6
|
|
' Private primerEspacio As String = ""
|
|
' For n = 1 To primerEspacioLargo
|
|
' primerEspacio = primerEspacio & "."
|
|
' Next
|
|
' If imprimirAqui Then Printer1.WriteString($"${laCat}${primerEspacio}${cuantos}..$${monto} ${CRLF}"$)
|
|
' cs.Color(Colors.DarkGray).Append($"${laCat}${primerEspacio}${cuantos}..$${monto} ${CRLF}"$).pop
|
|
' Log($"${laCat}${primerEspacio}${cuantos}..$${monto} ${CRLF}"$)
|
|
' Next
|
|
|
|
Private totAlimentos As String = "0"
|
|
Private totBebidas As String = "0"
|
|
Private cuantosAlimentos As String = "0"
|
|
Private cuantosBebidas As String = "0"
|
|
Private laCat, laCatAnt As String = ""
|
|
Private cuantos As String = 0
|
|
|
|
' Private grps As ResultSet = Starter.skmt.ExecQuery($"select distinct PE_MESA, PE_PRONOMBRE, PE_TIPO, ifnull(PE_DESC,0) as PE_DESC,PE_COSTO_TOT, PE_CANT, CAT_GP_TIPO, CAT_GP_TIPO2, CAT_GP_ORDEN_GRUPOS from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_TIPO <> 'MULTI-TICKET' and pe_ticket <> 'null' and PE_PROID not like 'CDA%' and PE_PROID not like 'DESC%' order by CAT_GP_ORDEN_GRUPOS, PE_PRONOMBRE"$)
|
|
Private grps As ResultSet = Starter.skmt.ExecQuery($"Select PE_MESA, PE_TICKET, PE_TIPO, PE_TIPO2, ifnull(PE_DESC,0) as PE_DESC, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, CAT_GP_TIPO, CAT_GP_TIPO2, PE_ORIGEN, CAT_GP_ORDEN_GRUPOS from PEDIDO join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_ORIGEN Is Null order by CAT_GP_ORDEN_GRUPOS, PE_PRONOMBRE"$)
|
|
|
|
Private elProd, prodAnt As String
|
|
Private grpsCant As String = "0"
|
|
Private grpsProdCant As String = "0"
|
|
Private grpsCantAnt As String = "0"
|
|
Private grpsMonto As String = "0"
|
|
Private grpsProdMonto As String = "0"
|
|
Private grpsMontoAnt As String = "0"
|
|
Private mProds As Map '= CreateMap("prod":"", "info":"")
|
|
Private mGrupos As Map
|
|
mProds.Initialize
|
|
mGrupos.Initialize
|
|
Private desc As String = "0"
|
|
Private st As String = "0"
|
|
Do While grps.NextRow
|
|
Private laCat As String = grps.GetString("CAT_GP_TIPO2")
|
|
' If laCat <> laCatAnt Then
|
|
' Log("** " & laCat & " **")
|
|
' End If
|
|
Private n2() As String = Regex.Split("\$", grps.GetString("PE_PRONOMBRE"))
|
|
' Private m As Map = CreateMap("prod":"", "grupo":"", "cant":"","monto":"")
|
|
If grps.GetString("PE_PRONOMBRE") <> prodAnt Then
|
|
grpsProdCant = 0
|
|
grpsProdMonto = 0
|
|
End If
|
|
' Log(">>>>> " & n2(0))
|
|
elProd = grps.GetString("PE_PRONOMBRE")
|
|
grpsProdCant = grpsProdCant + grps.GetString("PE_CANT")
|
|
' Private elMonto2 As String = grps.GetString("PE_COSTO_TOT")
|
|
' Log("################ |" & grps.GetString("CAT_GP_TIPO2") & "| - " & grps.GetString("PE_DESC"))
|
|
' If elProd.StartsWith("MED") Then Log("MEDIAS - " & elProd)
|
|
desc = "0"
|
|
If grps.GetString("CAT_GP_TIPO2") = "ALIMENTOS" And grps.GetString("PE_DESC") > 0 Then
|
|
' elMonto2 = elMonto2 - ((grps.GetString("PE_DESC")/100) * elMonto2)
|
|
desc = grps.GetString("PE_DESC") / 100
|
|
' Log("Hacemos descuento: " & elMonto2)
|
|
End If
|
|
Private elSubTIndividual As String = grps.GetString("PE_COSTOU") - (grps.GetString("PE_COSTOU") * desc)
|
|
Private st2 As String = Ceil(elSubTIndividual) * grps.GetString("PE_CANT")
|
|
' st = st + st2
|
|
' Log($"${elProd}|${elMonto2}|${st}|${st2}"$)
|
|
grpsProdMonto = grpsProdMonto + st2 'Ceil(elMonto2)
|
|
Private m As Map = CreateMap("prod":elProd, "grupo":laCat, "cant":grpsProdCant,"monto":grpsProdMonto)
|
|
mProds.Put(elProd, m)
|
|
prodAnt = grps.GetString("PE_PRONOMBRE")
|
|
laCatAnt = laCat
|
|
Loop
|
|
|
|
' Log(mProds.Size)
|
|
laCat = ""
|
|
Private grpsMontoTotal As String
|
|
Private grpsCantTotal As String
|
|
Private totMontoAlimentos As String = "0"
|
|
Private totCantAlimentos As String = "0"
|
|
Private totMontoBebidas As String = "0"
|
|
Private totCantBebidas As String = "0"
|
|
For Each elProd2 As String In mProds.keys
|
|
' Log(elProd2)
|
|
Private tm As Map = mProds.Get(elProd2)
|
|
' Log(tm)
|
|
Private elNom As String = tm.Get("prod")
|
|
Private n3() As String = Regex.Split("\$", tm.Get("prod"))
|
|
If n3.Length > 1 Then elNom = n3(0)
|
|
' Log($"${tm.Get("grupo")}, ${elNom}, ${tm.Get("cant")}, ${tm.Get("monto")}"$)
|
|
|
|
|
|
If tm.Get("grupo") <> laCatAnt Then
|
|
|
|
If grpsCant > 0 Or grpsMonto > 0 Then 'Imprimimos el total de cantidad y monto del grupo.
|
|
Private primerEspacioLargo As Int = 30 - laCatAnt.Length - (grpsCant.Length + 1) - 6
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
' Log($"${grpsCant}, ${grpsMonto}, |${tm.Get("grupo")}|"$)
|
|
If laCatAnt = "ALIMENTOS" Then
|
|
totMontoAlimentos = totMontoAlimentos + Ceil(grpsMonto)
|
|
totCantAlimentos = totCantAlimentos + grpsCant
|
|
Else
|
|
totMontoBebidas = totMontoBebidas + Ceil(grpsMonto)
|
|
totCantBebidas = totCantBebidas + grpsCant
|
|
End If
|
|
|
|
If Subs.revisaEfectivoBorrado And laCatAnt = "ALIMENTOS" Then ' Agregamos el efectivo descontado al monto de los alimentos.
|
|
Log("=========== TERMINA ALIMENTOS")
|
|
Private descs As ResultSet = Starter.skmt.ExecQuery($"select distinct pe_mesa, pe_costo_tot, pe_cant from pedido where pe_proid = 'DESC01'"$)
|
|
Private descsMonto As String = "0"
|
|
Private descsCant As String = "0"
|
|
Do While descs.NextRow
|
|
descsMonto = descsMonto + descs.GetString("PE_COSTO_TOT")
|
|
descsCant = descsCant + descs.GetString("PE_CANT")
|
|
Loop
|
|
|
|
grpsMonto = grpsMonto + descsMonto
|
|
grpsCant = grpsCant + descsCant
|
|
cs.Color(Colors.DarkGray).Append($"ALIMENTOS VARIOS ${primerEspacio.SubString(primerEspacio.Length/3)}${descsCant} ... ${descsMonto} ${CRLF}"$).pop
|
|
Log($" ALIMENTOS VARIOS${primerEspacio}${descsCant} ... ${descsMonto} ${CRLF}"$)
|
|
End If
|
|
|
|
|
|
|
|
|
|
If imprimirAqui Then Printer1.WriteString($"Total ${laCatAnt}${primerEspacio}${grpsCant} .. $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$)
|
|
Log($" Total ${laCatAnt}: .......... "$ & grpsCant & " ..... " & NumberFormat2(grpsMonto, 1, 0, 0, True))
|
|
cs.Color(Colors.DarkGray).Append($"Total ${laCatAnt}${primerEspacio.SubString(primerEspacio.Length/3)}${grpsCant} ... $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$).pop
|
|
End If
|
|
grpsCant = 0
|
|
grpsMonto = 0
|
|
' Log($"** ${tm.Get("grupo")} **"$)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString("** " & tm.Get("grupo") & " **" & CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Color(Colors.DarkGray).Bold.Append("** " & tm.Get("grupo") & " **" & CRLF).pop
|
|
Log("** " & tm.Get("grupo") & " **")
|
|
End If
|
|
Private primerEspacioLargo As Int = 45 - elNom.Length - (tm.Get("cant").As(String).Length + 1) - 8
|
|
' Private primerEspacioLargo As Int = 30 - elNom.Length - (tm.Get("cant").As(String).Length + 1) - 8 'Para impresora vieja.
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
' Log($"${primerEspacioLargo} - ${primerEspacio.Length}"$)
|
|
If imprimirAqui Then Printer1.WriteString($"${elNom}${primerEspacio}${tm.Get("cant")} ... $${NumberFormat2(tm.Get("monto"),1,0,0,True)} ${CRLF}"$)
|
|
|
|
' Private cuantos As String = rsm.GetString("cuantos")
|
|
' Private primerEspacioLargo As Int = 30 - laCat.Length - (cuantos.Length + 1) - 6
|
|
' Private primerEspacio As String = ""
|
|
' For n = 1 To primerEspacioLargo
|
|
' primerEspacio = primerEspacio & "."
|
|
' Next
|
|
' If imprimirAqui Then Printer1.WriteString($"${laCat}${primerEspacio}${cuantos}..$${monto} ${CRLF}"$)
|
|
|
|
cs.Color(Colors.DarkGray).Append($"${elNom}${primerEspacio.SubString(primerEspacio.Length/3)}${tm.Get("cant")} ... ${tm.Get("monto")} ${CRLF}"$).pop
|
|
Log($" ${elNom}${primerEspacio}${tm.Get("cant")} ... ${tm.Get("monto")} ${CRLF}"$)
|
|
|
|
|
|
|
|
' Log($" ${tm.Get("prod")}, ${tm.Get("cant")}, ${tm.Get("monto")}"$)
|
|
grpsCant = grpsCant + tm.Get("cant")
|
|
grpsMonto = grpsMonto + Ceil(tm.Get("monto"))
|
|
laCatAnt = tm.Get("grupo")
|
|
Next
|
|
totMontoBebidas = totMontoBebidas + grpsMonto
|
|
totCantBebidas = totCantBebidas + grpsCant
|
|
If imprimirAqui Then Printer1.WriteString($"${laCatAnt}${primerEspacio}${grpsCant} .. $${grpsMonto} ${CRLF}"$)
|
|
Log($"${laCatAnt}: .......... "$ & grpsCant & " ..... " & NumberFormat2(grpsMonto, 1, 0, 0, True))
|
|
cs.Color(Colors.DarkGray).Append($"${laCatAnt}${primerEspacio}${grpsCant}.. $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$).pop
|
|
' Log(grpsCant & "|" & grpsMonto)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'COMENSALES
|
|
LogColor("sleeping ....", Colors.Magenta)
|
|
If imprimirAqui Then Sleep(3000)
|
|
Private coms As Cursor = Starter.skmt.ExecQuery($"select sum(PT_COMENSALES) as totComensales from PEDIDO_TICKET where ifnull(PT_ALMACEN,0) <> 'MULTI-TICKET'"$)
|
|
Private totalComensales As Int = 0
|
|
If coms.RowCount > 0 Then
|
|
coms.Position = 0
|
|
totalComensales = coms.GetInt("totComensales")
|
|
End If
|
|
If imprimirAqui Then Printer1.WriteString($"Comensales ...........${totalComensales} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"Comensales ..........${totalComensales} ${CRLF}"$).pop
|
|
Log($"Comensales ...........${totalComensales} ${CRLF}"$)
|
|
|
|
'PAGOS
|
|
LogColor("sleeping ....", Colors.Magenta)
|
|
If imprimirAqui Then Sleep(1000)
|
|
Private pgs As Cursor = Starter.skmt.ExecQuery($"Select PT_PAGO2, sum(PT_NOART) As arts, sum(PT_MONTO) As monto from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' and pt_pago <> 'VENTA' group by PT_PAGO2"$)
|
|
Private totalComensales As Int = 0
|
|
If imprimirAqui Then Printer1.WriteString($"${CRLF}"$)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** PAGOS SIN PROPINAS *** ${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Color(Colors.red).Append($"** PAGOS SIN PROPINAS **${CRLF}"$).pop
|
|
Log("*** PAGOS SIN PROPINAS ***")
|
|
Private totalPagos As String = 0
|
|
For i = 0 To pgs.RowCount - 1
|
|
pgs.Position = i
|
|
Private elPago As String = pgs.GetString("PT_PAGO2")
|
|
If elPago.Length > 20 Then elPago = elPago.SubString2(0, 20)
|
|
' Log($"${pgs.Position} - ${elPago.Length} - ${elPago}"$)
|
|
Private monto As String = pgs.GetString("monto")
|
|
Private cuantos As String = pgs.GetString("arts")
|
|
Private primerEspacioLargo As Int = 30 - elPago.Length - (cuantos.Length + 1) - 6
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
' monto = NumberFormat2(monto.As(Double), 1, 0, 0, True)
|
|
' Log(monto)
|
|
|
|
' Aqui se sacan las PROPINAS para sumarselas a los subtotals de cada pago.
|
|
' Private propAmex = "0", propMifel = "0", propMifelDebito = "0", propEfectivo = "0" As String
|
|
' Private rt As ResultSet = Starter.skmt.ExecQuery($"Select sum(pt_monto) as ptMonto, sum(pt_propina) as ptPropina, * from pedido_ticket where pt_pago <> 'VENTA' and PT_PAGO <> 'MULTI-TICKET' group by pt_pago2"$)
|
|
' Private rtpa As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Amex' group by pt_pago_propina"$)
|
|
' Do While rtpa.NextRow
|
|
' propAmex = rtpa.GetString("ptPropina")
|
|
' Loop
|
|
' Private rtpmc As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Visa/Mastercard Credito' group by pt_pago_propina"$)
|
|
' Do While rtpmc.NextRow
|
|
' propMifel = rtpmc.GetString("ptPropina")
|
|
' Loop
|
|
' Private rtpmd As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Visa/Mastercard Debito' group by pt_pago_propina"$)
|
|
' Do While rtpmd.NextRow
|
|
' propMifelDebito = rtpmd.GetString("ptPropina")
|
|
' Loop
|
|
' Private rtpe As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Efectivo' group by pt_pago_propina"$)
|
|
' Do While rtpe.NextRow
|
|
' propEfectivo = rtpe.GetString("ptPropina")
|
|
' Loop
|
|
' If elPago = "Amex" Then
|
|
' Log("ES AMEX")
|
|
' monto = monto + propAmex
|
|
' else If elPago = "Visa/Masercard Cedito" Then
|
|
' monto = monto + propMifel
|
|
' Log("ES MIFEL")
|
|
' End If
|
|
|
|
' Log($"########## ${elPago}, ${monto}, ${propAmex}, ${propMifel} "$)
|
|
Log(elPago)
|
|
If elPago = "Amex" Then elPago = "Amex"
|
|
If imprimirAqui Then Printer1.WriteString($"${elPago}${primerEspacio}.. $${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"${elPago}${primerEspacio}.. $${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$).pop
|
|
Log($"${elPago}${primerEspacio}.. $${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$)
|
|
totalPagos = totalPagos + monto
|
|
Next
|
|
totalPagos = NumberFormat2(totalPagos, 1, 0, 0, True)
|
|
If imprimirAqui Then Printer1.WriteString($"TOTAL PAGOS ........... $${totalPagos} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"TOTAL PAGOS: ........... ${totalPagos} ${CRLF}"$).pop
|
|
Log($"TOTAL PAGOS: .........${i}.. ${totalPagos} ${CRLF}"$)
|
|
|
|
'PROPINAS
|
|
LogColor("sleeping ....", Colors.Magenta)
|
|
If imprimirAqui Then Sleep(1000)
|
|
Private prop As ResultSet = Starter.skmt.ExecQuery($"Select PT_PAGO_PROPINA, sum(PT_PROPINA) As PROPINA from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' group by PT_PAGO_PROPINA"$)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** PROPINAS *** ${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Append(CRLF)
|
|
cs.Color(Colors.red).Append($"** PROPINAS **${CRLF}"$).pop
|
|
Log("*** PROPINAS ***")
|
|
Do While prop.NextRow
|
|
If prop.GetString("PT_PAGO_PROPINA") <> Null Then
|
|
Private laPropina As String = prop.GetString("PROPINA")
|
|
If imprimirAqui Then Printer1.WriteString($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$)
|
|
' Log(prop.GetString("PT_PAGO_PROPINA"))
|
|
cs.Color(Colors.DarkGray).Append($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$).pop
|
|
Log($" ${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} "$)
|
|
End If
|
|
Loop
|
|
' LogColor($">>>>>>> ${Ceil(25.2)}"$, Colors.red)
|
|
' LogColor($">>>>>>> ${Ceil(25.5)}"$, Colors.red)
|
|
' Efectivo...............$300.00
|
|
' Tarjeta................$910.00
|
|
' If imprimirAqui Then Printer1.WriteString($"${CRLF}${CRLF}${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
End If
|
|
l_resumen.Text = cs
|
|
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
|
|
sv_resumen.Panel.Height = l_resumen.Height
|
|
Subs.panelVisible(p_transparenteResumen, 0, 0)
|
|
' Else
|
|
' ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
|
|
' End If
|
|
If imprimirAqui Then Sleep(1000)
|
|
Printer1.DisConnect
|
|
Catch
|
|
ToastMessageShow("Error en la impresion 2.", True)
|
|
Printer1.Disconnect
|
|
' B4XPages.ShowPage("Principal")
|
|
Activity_Resume
|
|
End Try
|
|
If imprimirAqui Then Sleep(1000)
|
|
b_imp2.Enabled = True
|
|
ProgressDialogHide
|
|
End Sub
|
|
|
|
Sub b_imp3_Click
|
|
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_imp2.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
|
|
' If imprimirAqui Then Printer1.WriteString(Printer1.UNREVERSE)
|
|
Try
|
|
DateTime.DateFormat = "yyyymmdd"
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
DateTime.DateFormat = "dd/MM/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'"$)
|
|
'RESUMEN
|
|
Private rsm As Cursor = Starter.skmt.ExecQuery($"select distinct CAT_GP_CLASIF, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by CAT_GP_CLASIF order by CAT_GP_CLASIF"$) 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
|
|
' Log(rsm.RowCount)
|
|
If rsm.RowCount > 0 Then
|
|
'PROPINAS
|
|
Private prop As ResultSet = Starter.skmt.ExecQuery($"Select PT_PAGO_PROPINA, sum(PT_PROPINA) As PROPINA from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' group by PT_PAGO_PROPINA"$)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** PROPINAS *** ${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Append(CRLF)
|
|
cs.Color(Colors.red).Append($"** PROPINAS **${CRLF}"$).pop
|
|
Log("*** PROPINAS ***")
|
|
Private tot As String = 0
|
|
Do While prop.NextRow
|
|
If prop.GetString("PT_PAGO_PROPINA") <> Null Then
|
|
Private laPropina As String = prop.GetString("PROPINA")
|
|
If imprimirAqui Then Printer1.WriteString($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$)
|
|
' Log(prop.GetString("PT_PAGO_PROPINA"))
|
|
cs.Color(Colors.DarkGray).Append($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$).pop
|
|
Log($" ${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 2, 2, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} "$)
|
|
tot = tot + laPropina
|
|
End If
|
|
Loop
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString($"Total:${Subs.alineaDerecha("$"&NumberFormat2(tot, 1, 2, 2, True), (30 - 6), ".")} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"Total:${Subs.alineaDerecha("$"&NumberFormat2(tot, 1, 2, 2, True), (30 - 6), ".")} ${CRLF}"$).pop
|
|
Log($"Total: ${tot}"$)
|
|
' LogColor($">>>>>>> ${Ceil(25.2)}"$, Colors.red)
|
|
' LogColor($">>>>>>> ${Ceil(25.5)}"$, Colors.red)
|
|
' Efectivo...............$300.00
|
|
' Tarjeta................$910.00
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
End If
|
|
l_resumen.Text = cs
|
|
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
|
|
sv_resumen.Panel.Height = l_resumen.Height
|
|
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
|
|
ToastMessageShow("Error en la impresion 3.", True)
|
|
Printer1.Disconnect
|
|
' B4XPages.ShowPage("Principal")
|
|
Activity_Resume
|
|
End Try
|
|
Sleep(1000)
|
|
b_imp2.Enabled = True
|
|
ProgressDialogHide
|
|
End Sub
|
|
|
|
Sub b_impAB_Click
|
|
Private imprimirAqui As Boolean = Starter.imprimirTicket
|
|
Private sDate, sTime As String
|
|
Private montoAmex = "0", montoMifel = "0", montoEfectivo = "0" 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
|
|
|
|
' 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
|
|
DateTime.DateFormat = "yyyymmdd"
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
sTime = DateTime.Time(DateTime.Now)
|
|
Private tf As Cursor = Starter.skmt.ExecQuery($"select pe_fecha from pedido limit 1"$) ' Traemos la fecha del pedido.
|
|
If tf.RowCount > 0 Then
|
|
tf.Position = 0
|
|
Private laFecha() As String = Regex.Split(" ", tf.GetString("PE_FECHA")) 'Traemos la fecha del PEDIDO.
|
|
If imprimirAqui Then Printer1.WriteString($"Fecha: ${laFecha(0)} ${sTime} ${CRLF}${CRLF}"$)
|
|
cs.Color(Colors.red).Append($"Fecha: ${laFecha(0)} ${sTime}${CRLF}"$).pop
|
|
Log($"Fecha: ${laFecha(0)} ${sTime} ${CRLF}${CRLF}"$)
|
|
End If
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
|
|
' Log(c.RowCount)
|
|
|
|
Try
|
|
'RESUMEN
|
|
' LogColor("sleeping ....", Colors.Magenta)
|
|
' If imprimirAqui Then Sleep(4000)
|
|
Private rsm As Cursor = Starter.skmt.ExecQuery($"select distinct CAT_GP_TIPO2, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_TIPO <> 'MULTI-TICKET' and pe_ticket <> 'null' and PE_PROID not like 'CDA%' and PE_PROID not like 'DESC%' group by CAT_GP_TIPO2 order by CAT_GP_ORDEN_GRUPOS, CAT_GP_TIPO2"$) 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
|
|
' Log(rsm.RowCount)
|
|
If rsm.RowCount > 0 Then
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** RESUMEN *** ${CRLF}"$)
|
|
Log($"*** RESUMEN ***${CRLF}"$)
|
|
cs.Color(Colors.red).Append($"** RESUMEN **${CRLF}"$).pop
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
Private totAlimentos As String = "0"
|
|
Private totBebidas As String = "0"
|
|
Private cuantosAlimentos As String = "0"
|
|
Private cuantosBebidas As String = "0"
|
|
Private laCat, laCatAnt As String = ""
|
|
Private cuantos As String = 0
|
|
|
|
|
|
' Private grps As ResultSet = Starter.skmt.ExecQuery($"select distinct PE_MESA, PE_PRONOMBRE, PE_TIPO, ifnull(PE_DESC,0) as PE_DESC,PE_COSTO_TOT, PE_CANT, CAT_GP_TIPO, CAT_GP_TIPO2, CAT_GP_ORDEN_GRUPOS from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_TIPO <> 'MULTI-TICKET' and pe_ticket <> 'null' and PE_PROID not like 'CDA%' and PE_PROID not like 'DESC%' order by CAT_GP_ORDEN_GRUPOS, PE_PRONOMBRE"$)
|
|
|
|
Private grps As ResultSet = Starter.skmt.ExecQuery($"Select PE_MESA, PE_TICKET, PE_TIPO, PE_TIPO2, ifnull(PE_DESC,0) as PE_DESC, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, CAT_GP_TIPO, CAT_GP_TIPO2, PE_ORIGEN, CAT_GP_ORDEN_GRUPOS from PEDIDO join CAT_GUNAPROD on cat_gp_id = PE_PROID where PE_TIPO <> 'VENTA' and PE_ORIGEN Is Null order by CAT_GP_ORDEN_GRUPOS, PE_PRONOMBRE"$)
|
|
Private elProd, prodAnt As String
|
|
Private grpsCant As String = "0"
|
|
Private grpsProdCant As String = "0"
|
|
Private grpsCantAnt As String = "0"
|
|
Private grpsMonto As String = "0"
|
|
Private grpsProdMonto As String = "0"
|
|
Private grpsMontoAnt As String = "0"
|
|
Private mProds As Map '= CreateMap("prod":"", "info":"")
|
|
Private mGrupos As Map
|
|
mProds.Initialize
|
|
mGrupos.Initialize
|
|
Private desc As String = "0"
|
|
Private st As String = "0"
|
|
Do While grps.NextRow
|
|
Private laCat As String = grps.GetString("CAT_GP_TIPO2")
|
|
' If laCat <> laCatAnt Then
|
|
' Log(laCat)
|
|
' End If
|
|
Private n2() As String = Regex.Split("\$", grps.GetString("PE_PRONOMBRE"))
|
|
' Private m As Map = CreateMap("prod":"", "grupo":"", "cant":"","monto":"")
|
|
If grps.GetString("PE_PRONOMBRE") <> prodAnt Then
|
|
grpsProdCant = 0
|
|
grpsProdMonto = 0
|
|
End If
|
|
' Log(">>>>> " & n2(0))
|
|
elProd = grps.GetString("PE_PRONOMBRE")
|
|
grpsProdCant = grpsProdCant + grps.GetString("PE_CANT")
|
|
' Private elMonto2 As String = grps.GetString("PE_COSTO_TOT")
|
|
desc = "0"
|
|
If grps.GetString("CAT_GP_TIPO2") = "ALIMENTOS" And grps.GetString("PE_DESC") > 0 Then
|
|
' elMonto2 = elMonto2 - ((grps.GetString("PE_DESC")/100) * elMonto2)
|
|
desc = grps.GetString("PE_DESC") / 100
|
|
' Log("Hacemos descuento: " & desc)
|
|
End If
|
|
Private elSubTIndividual As String = grps.GetString("PE_COSTOU") - (grps.GetString("PE_COSTOU") * desc)
|
|
Private st2 As String = Ceil(elSubTIndividual) * grps.GetString("PE_CANT")
|
|
' st = st + st2
|
|
' Log($"${elProd}|${elMonto2}|${st}|${st2}"$)
|
|
grpsProdMonto = grpsProdMonto + st2 'Ceil(elMonto2)
|
|
|
|
' Log($"laCat: ${laCat}, laCatAnt: ${laCatAnt}"$)
|
|
If Subs.revisaEfectivoBorrado And laCatAnt = "ALIMENTOS" And laCat <> "ALIMENTOS" Then ' Agregamos el efectivo descontado al monto de los alimentos.
|
|
' Log("=========== TERMINA ALIMENTOS")
|
|
Private descs As ResultSet = Starter.skmt.ExecQuery($"select distinct pe_mesa, pe_costo_tot, pe_cant from pedido where pe_proid = 'DESC01'"$)
|
|
Private descsMonto As String = "0"
|
|
Private descsCant As String = "0"
|
|
Do While descs.NextRow
|
|
descsMonto = descsMonto + descs.GetString("PE_COSTO_TOT")
|
|
descsCant = descsCant + descs.GetString("PE_CANT")
|
|
Loop
|
|
|
|
Private m As Map = CreateMap("prod":"ALIMENTOS VARIOS", "grupo":laCatAnt, "cant":descsCant,"monto":descsMonto)
|
|
mProds.Put("ALIMENTOS VARIOS", m)
|
|
' Log(m)
|
|
' grpsMonto = grpsMonto + descsMonto
|
|
' grpsCant = grpsCant + descsCant
|
|
' cs.Color(Colors.DarkGray).Append($"ALIMENTOS VARIOS ${primerEspacio.SubString(primerEspacio.Length/3)}${descsCant} ... ${descsMonto} ${CRLF}"$).pop
|
|
' Log($" ALIMENTOS VARIOS${primerEspacio}${descsCant} ... ${descsMonto} ${CRLF}"$)
|
|
End If
|
|
|
|
Private m As Map = CreateMap("prod":elProd, "grupo":laCat, "cant":grpsProdCant,"monto":grpsProdMonto)
|
|
mProds.Put(elProd, m)
|
|
' Log(m)
|
|
prodAnt = grps.GetString("PE_PRONOMBRE")
|
|
laCatAnt = laCat
|
|
Loop
|
|
' Log(mProds.Size)
|
|
laCat = ""
|
|
Private grpsMontoTotal As String
|
|
Private grpsCantTotal As String
|
|
Private totMontoAlimentos As String = "0"
|
|
Private totCantAlimentos As String = "0"
|
|
Private totMontoBebidas As String = "0"
|
|
Private totCantBebidas As String = "0"
|
|
For Each elProd2 As String In mProds.keys
|
|
' Log(elProd2)
|
|
Private tm As Map = mProds.Get(elProd2)
|
|
' Log(tm)
|
|
' Log($"${tm.Get("grupo")}, ${tm.Get("prod")}, ${tm.Get("cant")}, ${tm.Get("monto")}, ${totMontoAlimentos}, ${grpsMontoTotal}"$)
|
|
If tm.Get("grupo") <> laCatAnt Then
|
|
If grpsCant > 0 Or grpsMonto > 0 Then
|
|
Private primerEspacioLargo As Int = 30 - laCatAnt.Length - (grpsCant.Length + 1) - 6
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
' Log($">>>>>> ${grpsCant}, ${grpsMonto}, ${totMontoAlimentos}, |${tm.Get("grupo")}|"$)
|
|
If laCatAnt = "ALIMENTOS" Then
|
|
totMontoAlimentos = totMontoAlimentos + Ceil(grpsMonto)
|
|
totCantAlimentos = totCantAlimentos + grpsCant
|
|
Else
|
|
totMontoBebidas = totMontoBebidas + Ceil(grpsMonto)
|
|
totCantBebidas = totCantBebidas + grpsCant
|
|
End If
|
|
If imprimirAqui Then Printer1.WriteString($"${laCatAnt}${primerEspacio}${grpsCant} .. $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$)
|
|
Log($"${laCatAnt}: .......... "$ & grpsCant & " ..... $" & NumberFormat2(grpsMonto, 1, 0, 0, True))
|
|
' cs.Color(Colors.DarkGray).Append($"${laCatAnt}: .......... "$ & grpsCant & " ..... " & NumberFormat2(grpsMonto, 1, 0, 0, True) & CRLF).pop
|
|
cs.Color(Colors.DarkGray).Append($"${laCatAnt}${primerEspacio}${grpsCant} .. $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$).pop
|
|
|
|
End If
|
|
grpsCant = 0
|
|
grpsMonto = 0
|
|
' Log($"** ${tm.Get("grupo")} **"$)
|
|
End If
|
|
' Log($" ${tm.Get("prod")}, ${tm.Get("cant")}, ${tm.Get("monto")}"$)
|
|
grpsCant = grpsCant + tm.Get("cant")
|
|
grpsMonto = grpsMonto + Ceil(tm.Get("monto"))
|
|
laCatAnt = tm.Get("grupo")
|
|
Next
|
|
totMontoBebidas = totMontoBebidas + grpsMonto
|
|
totCantBebidas = totCantBebidas + grpsCant
|
|
If imprimirAqui Then Printer1.WriteString($"${laCatAnt}${primerEspacio}${grpsCant} .. $${grpsMonto} ${CRLF}"$)
|
|
Log($"${laCatAnt}: .......... "$ & grpsCant & " ..... $" & NumberFormat2(grpsMonto, 1, 0, 0, True))
|
|
cs.Color(Colors.DarkGray).Append($"${laCatAnt}${primerEspacio}${grpsCant} .. $${NumberFormat2(grpsMonto, 1, 0, 0, True)} ${CRLF}"$).pop
|
|
' Log(grpsCant & "|" & grpsMonto)
|
|
'COMENSALES
|
|
' If imprimirAqui Then Sleep(3000)
|
|
Private coms As Cursor = Starter.skmt.ExecQuery($"select sum(PT_COMENSALES) as totComensales from PEDIDO_TICKET where ifnull(PT_ALMACEN,0) <> 'MULTI-TICKET'"$)
|
|
Private totalComensales As Int = 0
|
|
If coms.RowCount > 0 Then
|
|
coms.Position = 0
|
|
totalComensales = coms.GetInt("totComensales")
|
|
End If
|
|
If imprimirAqui Then Printer1.WriteString($"Comensales ...........${totalComensales} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"Comensales ..........${totalComensales} ${CRLF}"$).pop
|
|
Log($"Comensales ..........${totalComensales} ${CRLF}"$)
|
|
|
|
'TOTAL ALIMENTOS Y BEBIDAS
|
|
Log("*** TOTAL CONSUMO ***")
|
|
Log($"TOTAL ALIMENTOS: $${NumberFormat2(totMontoAlimentos, 1, 0, 0, True)}"$)
|
|
Log($"TOTAL BEBIDAS: $${NumberFormat2(totMontoBebidas,1,0,0,True)}"$)
|
|
If imprimirAqui Then Printer1.WriteString($"${CRLF}"$)
|
|
Private primerEspacioLargo As Int = 30 - laCat.Length - (cuantos.Length + 1) - 6
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** TOTAL CONSUMO *** ${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"TOTAL ALIMENTOS ....... ${totCantAlimentos} ${Subs.alineaDerecha("$"&NumberFormat2(totMontoAlimentos,1,0,0,True), 35 - $"TOTAL ALIMENTOS ....... ${totCantAlimentos}"$.Length, ".")} ${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString($"TOTAL BEBIDAS ......... ${totCantBebidas} ${Subs.alineaDerecha("$"&NumberFormat2(totMontoBebidas,1,0,0,True), 35 - $"TOTAL BEBIDAS ......... ${totCantBebidas}"$.Length, ".")} ${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString($"TOTAL ${Subs.alineaDerecha("$"&NumberFormat2((totMontoAlimentos+totMontoBebidas),1,0,0,True), 35 - "TOTAL ".Length, ".")} ${CRLF}"$)
|
|
' If imprimirAqui Then Printer1.WriteString($"${CRLF}"$)
|
|
cs.Append($"${CRLF}"$)
|
|
cs.Color(Colors.red).Append($"*** TOTAL DE CONSUMOS ***${CRLF}"$).pop
|
|
cs.Color(Colors.DarkGray).Append($"TOTAL ALIMENTOS $${Subs.alineaDerecha("$"&NumberFormat2(totMontoAlimentos, 1, 0, 0, True), 45 - "TOTAL ALIMENTOS".Length, ".")} ${CRLF}"$).pop
|
|
cs.Color(Colors.DarkGray).Append($"TOTAL BEBIDAS $${Subs.alineaDerecha("$"&NumberFormat2(totMontoBebidas, 1, 0, 0, True), 45 - "TOTAL BEBIDAS".Length, ".")} ${CRLF}"$).pop
|
|
cs.Color(Colors.DarkGray).Append($"TOTAL: $${Subs.alineaDerecha("$"&NumberFormat2(totMontoAlimentos+totMontoBebidas,1,0,0,True), 45 - "TOTAL BEBIDAS".Length, ".")} ${CRLF}"$).pop
|
|
' cs.Append($"${CRLF}"$)
|
|
Log($"TOTAL ALIMENTOS ........... $${NumberFormat2(totMontoAlimentos, 1, 0, 0, True)} ${CRLF}"$)
|
|
Log($"TOTAL BEBIDAS ........... $${NumberFormat2(totMontoBebidas, 1, 0, 0, True)} ${CRLF}"$)
|
|
Log($"TOTAL: $${Subs.alineaDerecha("$"&NumberFormat2(totMontoAlimentos+totMontoBebidas,1,0,0,True), 45 - "TOTAL BEBIDAS".Length, ".")} ${CRLF}"$)
|
|
|
|
'PROPINAS
|
|
' If imprimirAqui Then Sleep(1000)
|
|
Private prop As ResultSet = Starter.skmt.ExecQuery($"Select PT_PAGO_PROPINA, sum(PT_PROPINA) As PROPINA from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' group by PT_PAGO_PROPINA
|
|
order by CASE PT_PAGO_PROPINA
|
|
WHEN 'Amex' THEN 0
|
|
WHEN 'Mifel' THEN 1
|
|
WHEN 'Efectivo' THEN 2
|
|
END"$)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** PROPINAS *** ${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Append(CRLF)
|
|
cs.Color(Colors.red).Append($"** PROPINAS **${CRLF}"$).pop
|
|
Log("*** PROPINAS ***")
|
|
Private totPropinas As String = "0"
|
|
Do While prop.NextRow
|
|
If prop.GetString("PT_PAGO_PROPINA") <> Null Then
|
|
Private laPropina As String = prop.GetString("PROPINA")
|
|
If imprimirAqui Then Printer1.WriteString($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 0, 0, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$)
|
|
' Log(prop.GetString("PT_PAGO_PROPINA"))
|
|
cs.Color(Colors.DarkGray).Append($"${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 0, 0, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} ${CRLF}"$).pop
|
|
Log($" ${prop.GetString("PT_PAGO_PROPINA")}${Subs.alineaDerecha("$"&NumberFormat2(laPropina, 1, 0, 0, True), (30 - prop.GetString("PT_PAGO_PROPINA").Length), ".")} "$)
|
|
totPropinas = totPropinas + laPropina
|
|
End If
|
|
Loop
|
|
|
|
'TOTAL PROPINAS
|
|
If imprimirAqui Then
|
|
Printer1.WriteString(Printer1.BOLD)
|
|
Printer1.WriteString($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(totPropinas, 1, 2, 2, True), (30 - "Total: ".Length), ".")} ${CRLF}"$)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
End If
|
|
cs.Color(Colors.DarkGray).Append($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(totPropinas, 1, 0, 0, True), (30 - "Total: ".Length), ".")} ${CRLF}"$).pop
|
|
Log($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(totPropinas, 1, 0, 0, True), (30 - totPropinas.Length), ".")}${CRLF}"$)
|
|
|
|
'PAGOS
|
|
' If imprimirAqui Then Sleep(1000)
|
|
Private pgs As Cursor = Starter.skmt.ExecQuery($"Select PT_PAGO2, sum(PT_NOART) As arts, sum(PT_MONTO) As monto from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' and pt_pago <> 'VENTA'
|
|
group by PT_PAGO2
|
|
order by CASE PT_PAGO_PROPINA
|
|
WHEN 'Amex' THEN 0
|
|
WHEN 'Mifel' THEN 1
|
|
WHEN 'Efectivo' THEN 2
|
|
END"$) ' and (CASE WHEN PT_PAGO = 'EFECTIVO' and PT_ALMACEN = 'MULTI-TICKET' THEN false ELSE true END) - El primer "case" es para que en el efectivo NO cuente los tickets multi-tickets, porque esos son "Consumo de alimentos".
|
|
Private totalComensales As Int = 0
|
|
If imprimirAqui Then Printer1.WriteString($"${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** PAGOS CON PROPINAS *** ${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Append(CRLF)
|
|
cs.Color(Colors.red).Append($"** PAGOS CON PROPINAS **${CRLF}"$).pop
|
|
Log("*** PAGOS CON PROPINAS ***")
|
|
Private totalPagos As String = 0
|
|
For i = 0 To pgs.RowCount - 1
|
|
pgs.Position = i
|
|
Private elPago As String = pgs.GetString("PT_PAGO2")
|
|
' Log($"|${elPago}|"$)
|
|
If elPago.Length > 20 Then elPago = elPago.SubString2(0, 20)
|
|
' Log($"${pgs.Position} - ${elPago.Length} - ${elPago}"$)
|
|
Private monto As String = pgs.GetString("monto")
|
|
Private cuantos As String = pgs.GetString("arts")
|
|
Private primerEspacioLargo As Int = 30 - elPago.Length - (cuantos.Length + 1) - 6
|
|
Private primerEspacio As String = ""
|
|
For n = 1 To primerEspacioLargo
|
|
primerEspacio = primerEspacio & "."
|
|
Next
|
|
' monto = NumberFormat2(monto.As(Double), 1, 0, 0, True)
|
|
' Log(">>> MONTO: " & monto)
|
|
' Aqui se sacan las PROPINAS para sumarselas a los subtotals de cada pago.
|
|
Private propAmex = "0", propMifel = "0", propMifelDebito = "0", propEfectivo = "0" As String
|
|
Private rt As ResultSet = Starter.skmt.ExecQuery($"Select sum(pt_monto) as ptMonto, sum(pt_propina) as ptPropina, * from pedido_ticket where pt_pago <> 'VENTA' and PT_PAGO <> 'MULTI-TICKET' group by pt_pago2"$)
|
|
Private rtpa As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Amex' group by pt_pago_propina"$)
|
|
Do While rtpa.NextRow
|
|
propAmex = rtpa.GetString("ptPropina")
|
|
Loop
|
|
Private rtpmc As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Mifel' group by pt_pago_propina"$)
|
|
Do While rtpmc.NextRow
|
|
propMifel = rtpmc.GetString("ptPropina")
|
|
Loop
|
|
' Private rtpmd As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Visa/Mastercard Debito' group by pt_pago_propina"$)
|
|
' Do While rtpmd.NextRow
|
|
' propMifelDebito = rtpmd.GetString("ptPropina")
|
|
' Loop
|
|
Private rtpe As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Efectivo' group by pt_pago_propina"$)
|
|
Do While rtpe.NextRow
|
|
propEfectivo = rtpe.GetString("ptPropina")
|
|
Loop
|
|
' Log($"PROPINA EFECTIVO: ${propEfectivo}"$)
|
|
If elPago = "Amex" Then
|
|
' Log("ES AMEX")
|
|
montoAmex = monto
|
|
monto = monto + propAmex
|
|
else If elPago = "Mifel" Then
|
|
' Log("ES MIFEL")
|
|
montoMifel = monto
|
|
monto = monto + propMifel
|
|
else If elPago = "Efectivo" Then
|
|
montoEfectivo = monto
|
|
monto = monto + propEfectivo
|
|
End If
|
|
' Log($"########## ${elPago}, ${monto}, ${propAmex}, ${propMifel} "$)
|
|
' Log($"${elPago} - ${monto}"$)
|
|
If elPago = "Amex" Then elPago = "Amex"
|
|
If imprimirAqui Then Printer1.WriteString($"${elPago}${primerEspacio}.. $${NumberFormat2(monto, 1, 0, 0, True)} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"${elPago}${primerEspacio}.. $${NumberFormat2(monto, 1, 0, 0, True)} ${CRLF}"$).pop
|
|
Log($"${elPago}${primerEspacio}.. $${NumberFormat2(monto, 1, 0, 0, True)} ${CRLF}"$)
|
|
totalPagos = totalPagos + monto
|
|
Next
|
|
totalPagos = NumberFormat2(totalPagos, 1, 0, 0, True)
|
|
If imprimirAqui Then Printer1.WriteString($"TOTAL PAGOS ........... $${totalPagos} ${CRLF}"$)
|
|
cs.Color(Colors.DarkGray).Append($"TOTAL PAGOS: ........... $${totalPagos} ${CRLF}"$).pop
|
|
Log($"TOTAL PAGOS: .........${i}.. $${totalPagos} ${CRLF}"$)
|
|
|
|
If Not(Subs.revisaEfectivoBorrado) Then ' Si es corte Z entonces no ponemos el Total sin propinas.
|
|
'TOTAL SIN PROPINAS
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirAqui Then Printer1.WriteString($"*** TOTAL SIN PROPINAS *** ${CRLF}"$)
|
|
If imprimirAqui Then Printer1.WriteString(Printer1.NOBOLD)
|
|
cs.Append(CRLF)
|
|
cs.Color(Colors.red).Append($"** TOTAL SIN PROPINAS **${CRLF}"$).pop
|
|
Log("*** TOTAL SIN PROPINAS ***")
|
|
If imprimirAqui Then
|
|
Printer1.WriteString($"Tarjetas: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel, 1, 0, 0, True), (30 - "Tarjetas: ".Length), ".")} ${CRLF}"$)
|
|
Printer1.WriteString($"Efectivo: ${Subs.alineaDerecha("$"&NumberFormat2(montoEfectivo, 1, 0, 0, True), (30 - "Efectivo: ".Length), ".")} ${CRLF}"$)
|
|
Printer1.WriteString($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel+montoEfectivo, 1, 0, 0, True), (30 - "Total: ".Length), ".")} ${CRLF}"$)
|
|
End If
|
|
cs.Color(Colors.DarkGray).Append($"Total Tarjetas: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel, 1, 0, 0, True), (30 - "Total Tarjetas: ".Length), ".")} ${CRLF}"$).pop
|
|
cs.Color(Colors.DarkGray).Append($"Total Efectivo: ${Subs.alineaDerecha("$"&NumberFormat2(montoEfectivo, 1, 0, 0, True), (30 - "Total Efectivo: ".Length), ".")} ${CRLF}"$).pop
|
|
cs.Color(Colors.DarkGray).Append($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel+montoEfectivo, 1, 0, 0, True), (30 - "Total: ".Length), ".")} ${CRLF}"$).pop
|
|
Log($"Tarjetas: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel, 1, 0, 0, True), (30 - "Tarjetas: ".Length), ".")} "$)
|
|
Log($"Efectivo: ${Subs.alineaDerecha("$"&NumberFormat2(montoEfectivo, 1, 0, 0, True), (30 - "Efectivo: ".Length), ".")} "$)
|
|
Log($"Total: ${Subs.alineaDerecha("$"&NumberFormat2(montoAmex+montoMifel+montoEfectivo, 1, 0, 0, True), (30 - "Total: ".Length), ".")} "$)
|
|
End If
|
|
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
If imprimirAqui Then Printer1.WriteString(CRLF)
|
|
End If
|
|
l_resumen.Text = cs
|
|
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
|
|
sv_resumen.Panel.Height = l_resumen.Height
|
|
Subs.panelVisible(p_transparenteResumen, 0, 0)
|
|
' Else
|
|
' ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
|
|
' End If
|
|
' If imprimirAqui Then Sleep(1000)
|
|
If imprimirAqui Then Printer1.DisConnect
|
|
Catch
|
|
ToastMessageShow("Error en la impresion 2.", True)
|
|
Printer1.Disconnect
|
|
' B4XPages.ShowPage("Principal")
|
|
Activity_Resume
|
|
End Try
|
|
' If imprimirAqui Then Sleep(1000)
|
|
b_imp.Enabled = True
|
|
ProgressDialogHide
|
|
End Sub
|
|
|
|
Sub b_imp_VIEJO_Click
|
|
' Log("inicia B_IMP2_Click")
|
|
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 ...")
|
|
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
|
|
' If Logger Then Log($"Impresora Conectada: ${Printer1.IsConnected}"$)
|
|
' If la_cuenta.Text <> "0" And la_cuenta.Text <> "null" Then
|
|
' Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_TIPO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ", Array As Object("VENTA"))
|
|
' Starter.skmt.ExecNonQuery("UPDATE kmt_info set IMPRESION = 1 where CAT_CL_CODIGO In (select cuenta from cuentaa)")''
|
|
' End If
|
|
' Guardar.Visible = True
|
|
' Starter.skmt.ExecNonQuery("delete from pedido3")
|
|
' Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
|
|
' c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
|
|
|
' If c.RowCount > 0 Then
|
|
' For i = 0 To c.RowCount -1
|
|
' c.Position = i
|
|
' Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? AND PE_FOLIO = ?", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"), c.GetString("PE_FOLIO")))
|
|
' Next
|
|
' End If
|
|
' Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
|
|
' Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
|
|
|
|
' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
|
|
' c.Position =0
|
|
' perfil = c.GetString("CUANTOS")
|
|
' c.Close
|
|
' If perfil > 0 Then
|
|
' c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
|
|
' c.Position =0
|
|
' perfil = c.GetString("CAT_VA_VALOR")
|
|
' c.Close
|
|
' End If
|
|
' c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
|
' c.Position=0
|
|
Private usuario As String = "USUARIO"
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
Private sDate,sTime As String
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
sTime = DateTime.Time(DateTime.Now)
|
|
' c.Close
|
|
' c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
|
|
' c.Position = 0
|
|
Private sucursal As String = "SUCURSAL"
|
|
' c.Close
|
|
TAMANO = 0
|
|
ESPACIO = 14
|
|
BLANCO = " " 'esto para las impresoras nuevas
|
|
'printer.Initialize(cmp20.OutputStream)
|
|
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)
|
|
|
|
Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
|
|
Printer1.WriteString(Printer1.REVERSE)
|
|
Printer1.PrintImage(myimage)
|
|
Printer1.WriteString(Printer1.UNREVERSE)
|
|
Try
|
|
DateTime.DateFormat = "yyyymmdd"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
|
|
Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF)
|
|
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
|
|
Printer1.WriteString(sDate &" " & sTime & CRLF)
|
|
Printer1.WriteString("Mesero:" & usuario & CRLF)
|
|
' Printer1.WriteString("Ruta:" & ruta_tienda & CRLF)
|
|
' Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF)
|
|
Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
|
|
' Printer1.WriteString("Calle: " & la_Calle.Text & CRLF)
|
|
' Printer1.WriteString("Colonia: " & la_col.Text & CRLF)
|
|
' Printer1.WriteString("C.P.: " & la_cp.Text & CRLF)
|
|
' Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF)
|
|
' Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF)
|
|
Printer1.WriteString(" " & CRLF)
|
|
|
|
s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DOE"))
|
|
s.Position = 0
|
|
Private sTotal2 As Double
|
|
Log(sTotal2)
|
|
LogColor(s.GetString("TOTAL"),Colors.Magenta)
|
|
If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then
|
|
sTotal2 = s.GetString("TOTAL")
|
|
' sTotal2 = Subs.sumaPedido(Subs.traeCliente)
|
|
Printer1.WriteString( $"Sub Total : $${NumberFormat2(sTotal2, 1, 2, 2, False)}"$ & CRLF)
|
|
Else
|
|
sTotal2 = 0
|
|
End If
|
|
Log(sTotal2)
|
|
Private cantidad1 As String = "0"
|
|
s.Close
|
|
''''SE MODIFCA EL QUERY POR LOS PEDIDOS DOE
|
|
S=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA","CAMBIO","DOE"))
|
|
|
|
Printer1.WriteString("------------------------------" & CRLF)
|
|
Printer1.WriteString("VENTA" & CRLF)
|
|
Printer1.WriteString("------------------------------" & CRLF)
|
|
''s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and pe_codpromo <> ? and substr(pe_pronombre,1,6) <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA", "DOE", "CAMBIO"))
|
|
If S.RowCount>0 Then
|
|
For i=0 To S.RowCount -1
|
|
S.Position=i
|
|
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
|
|
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
|
|
Else
|
|
Private strT As String = ""
|
|
Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
|
|
Private strT As String = ""
|
|
strT = s.GetString("L_CANT")&s.GetString("L_COSTOU")&s.GetString("L_COSTO_TOT")
|
|
TAMANO = strT.Length
|
|
ESPACIO = ESPACIO - TAMANO
|
|
For E=0 To ESPACIO -1
|
|
BLANCO = " " & BLANCO
|
|
Next
|
|
Private pecostou As String = 0
|
|
If s.GETSTRING("PE_COSTOU") <> Null And IsNumber(s.GETSTRING("PE_COSTOU")) Then pecostou = s.GETSTRING("PE_COSTOU")
|
|
Private pecostotot As String = 0
|
|
If s.GETSTRING("PE_COSTO_TOT") <> Null And IsNumber(s.GETSTRING("PE_COSTO_TOT")) Then pecostotot = s.GETSTRING("PE_COSTO_TOT")
|
|
Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & NumberFormat2(pecostou, 1, 2, 2, False) & " $" & NumberFormat2(pecostotot, 1, 2, 2, False) & CRLF)
|
|
TAMANO = 0
|
|
ESPACIO = 14
|
|
BLANCO = " "
|
|
End If
|
|
Next
|
|
End If
|
|
s.Close
|
|
s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO","DOE"))
|
|
s.Position = 0
|
|
Private sTotal2 As Double
|
|
' If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then
|
|
' sTotal2 = s.GetString("TOTAL")
|
|
' Else
|
|
' sTotal2 = 0
|
|
' End If
|
|
' sTotal2 = kh.traeTotalCliente
|
|
s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO"))
|
|
s.Position = 0
|
|
Private cant5 As String = s.GetString("CANTIDAD")
|
|
Private sTotal3 As Double
|
|
If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then
|
|
sTotal3 = s.GetString("TOTAL")
|
|
Else
|
|
sTotal3 = 0
|
|
End If
|
|
Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
|
|
Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & $"Sub Total Venta: $${NumberFormat2((sTotal2+(sTotal3 * -1)), 1, 2, 2, False)}"$ & CRLF)
|
|
Private cantidad1 As String = "0"
|
|
If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad1 = s.GetString("CANTIDAD")
|
|
Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad1 & CRLF)
|
|
Printer1.WriteString(CRLF)
|
|
s.Close
|
|
|
|
' s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO"))
|
|
' s.Position = 0
|
|
' Private sTotal3 As Double
|
|
' If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then
|
|
' sTotal3 = s.GetString("TOTAL")
|
|
' Else
|
|
' sTotal3 = 0
|
|
' End If
|
|
' Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
|
|
' Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Sub Total CAMBIOS: $" & NumberFormat2(sTotal3, 1, 2, 2, False) & CRLF)
|
|
' Private cantidad2 As String = "0"
|
|
' If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad2 = s.GetString("CANTIDAD")
|
|
' Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad2 & CRLF)
|
|
' Printer1.WriteString(CRLF)
|
|
' s.Close
|
|
' Printer1.WriteString(CRLF)
|
|
s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA"))
|
|
s.Position =0
|
|
Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
|
|
Private total2 As String = 0
|
|
' If s.GETSTRING("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then total2 = s.GETSTRING("TOTAL")
|
|
' total2 = kh.traeTotalCliente
|
|
Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & NumberFormat2(total2, 1, 2, 2, False) & CRLF)
|
|
' Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & s.GetString("TOTAL") & CRLF)
|
|
' Printer1.WriteString("===============================" & CRLF)
|
|
'
|
|
' Printer1.WriteString( "Total venta: $" & s.GetString("TOTAL") & CRLF)
|
|
s.Close
|
|
s=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA"))
|
|
s.Position =0
|
|
Private total5 As String = "0"
|
|
If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then total5 = s.GetString("TOTAL")
|
|
Printer1.WriteString(Printer1.BOLD & "No. platillos vendidos: " & (total5) & CRLF)
|
|
' Printer1.WriteString(Printer1.BOLD & "Productos devueltos : " & cantidad2 & CRLF)
|
|
Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
|
|
' Printer1.WriteString( "No. Productos: " & s.GetString("TOTAL") & CRLF)
|
|
' Printer1.WriteString( "===============================" & CRLF)
|
|
s.Close
|
|
Printer1.WriteString(Printer1.UNREVERSE)
|
|
Printer1.WriteString(Printer1.NOBOLD)
|
|
' printer.WriteLine("------------VENTA-------------")
|
|
' printer.WriteLine("TOTAL COMPRA: $:" & total_cliente)
|
|
' Printer1.WriteString(Printer1.DEFAULTS & CRLF)
|
|
Printer1.WriteString(CRLF)
|
|
' Printer1.WriteString(Printer1.SINGLE)
|
|
'Printer1.WriteString("------------------------------")
|
|
' Printer1.WriteString(Printer1.HIGH)
|
|
' Printer1.Justify = 1
|
|
Printer1.WriteString( "Nombre y Firma del cliente" & CRLF)
|
|
Printer1.WriteString(CRLF)
|
|
Printer1.WriteString(CRLF)
|
|
Printer1.WriteString(CRLF)
|
|
' Printer1.WriteString(Printer1.DEFAULTS)
|
|
' Printer1.WriteString(Printer1.SINGLE)
|
|
Printer1.WriteString("__________" & CRLF)
|
|
Printer1.WriteString("------------------------------" & CRLF)
|
|
Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
|
|
Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF)
|
|
Printer1.WriteString("--------INFORMATIVO-----------" & 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")
|
|
Activity_Resume
|
|
End Try
|
|
Sleep(1000)
|
|
b_imp.Enabled = True
|
|
ProgressDialogHide
|
|
' If Logger Then Log("Habilitamos boton")
|
|
End Sub
|
|
|
|
Private Sub b_envioInfo_Click
|
|
Private cmd As DBCommand
|
|
Log(Starter.DBReqServer)
|
|
' sql.insertPedido_Lanter=insert into Lanter.pedido (PE_CODPROMO, PE_FECHA_SINC, PE_IDALMACEN, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_DESCUENTO, PE_CANT_TOTAL, PE_VENTA_TOTAL, PE_FOLIO, PE_TIPO, PE_PERFIL)
|
|
' VALUES ((?),SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?))
|
|
' sql.insertPedidos_Lanter=insert into LANTER.pedido_cliente(PC_FECHA_SINC, PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_IDALMACEN, PC_RUTA, PC_COSTO_SIN, PC_DESCUENTO, PC_FACTURA)
|
|
' VALUES (SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?))
|
|
Private cantTotal As Int
|
|
Private ventaTotal As Double
|
|
Private pt As Cursor = Starter.skmt.ExecQuery("select * from pedido_ticket")
|
|
If pt.RowCount > 0 Then
|
|
ProgressDialogShow("Enviando la información del día")
|
|
reqManager.trackInit
|
|
For j = 0 To pt.RowCount - 1
|
|
pt.Position = j
|
|
cmd.Initialize
|
|
cmd.Name = "insertPedidos3_Lanter" 'Inserta en tabla PEDIDO_CLIENTE
|
|
cmd.Parameters = Array As Object(pt.GetString("PT_TICKET"), pt.GetString("PT_FECHA"), 0, pt.GetString("PT_NOART"), pt.GetString("PT_MONTO"), 0, 0, pt.GetString("PT_MESA"), pt.GetString("PT_MESERO"), pt.GetString("PT_COSTO_SIN"), 0, pt.GetString("PT_FACTURA"), pt.GetString("PT_PAGO"), pt.GetString("PT_TARJETA"), pt.GetString("PT_PROPINA"), pt.GetString("PT_PAGO_PROPINA"), pt.GetString("PT_ORIGEN"))
|
|
' Log($"${pt.GetString("PT_TICKET")}, ${pt.GetString("PT_FECHA")}, 0, ${pt.GetString("PT_NOART")}, ${pt.GetString("PT_MONTO")}, 0, 0, ${pt.GetString("PT_MESA")}, ${pt.GetString("PT_MESERO")}, ${pt.GetString("PT_COSTO_SIN")}, 0, ${pt.GetString("PT_PROPINA")}, ${pt.GetString("PT_PAGO_PROPINA")}"$)
|
|
reqManager.ExecuteCommand(cmd , $"insertPedidos_${pt.GetString("PT_TICKET")}"$)
|
|
' LogColor($"insertPedidos_${pt.GetString("PT_TICKET")}"$, Colors.Red)
|
|
cantTotal = pt.GetString("PT_NOART")
|
|
ventaTotal = pt.GetString("PT_MONTO")
|
|
'De cada ticket, mandamos los productos
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select * from pedido where PE_MESA = '${pt.GetString("PT_MESA")}' and PE_TIPO = '${pt.GetString("PT_PAGO")}' and PE_TICKET = '${pt.GetString("PT_TICKET")}'"$)
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount - 1
|
|
c.position = i
|
|
cmd.Initialize
|
|
cmd.Name = "insertPedido3_Lanter" 'Inserta en tabla PEDIDO
|
|
cmd.Parameters = Array As Object("", c.getstring("PE_MESA"), c.getstring("PE_COSTO_TOT"), c.getstring("PE_COSTOU"), c.getstring("PE_CANT"), c.getstring("PE_PRONOMBRE"), c.getstring("PE_PROID"), c.getstring("PE_TICKET"), c.getstring("PE_FECHA"), "", c.getstring("PE_MESERO"), c.getstring("PE_COSTO_SIN"), 0, cantTotal, ventaTotal, c.getstring("PE_FOLIO"), c.getstring("PE_TIPO"), "", c.getstring("PE_TIPO2"), c.GetString("PE_ORIGEN")) '
|
|
reqManager.ExecuteCommand(cmd , $"insertPedido_${c.GetString("PE_MESA")}_${c.GetString("PE_TIPO")}_${c.GetString("PE_TICKET")}_${c.GetString("PE_PROID")}"$)
|
|
' LogColor($"insertPedido_${c.GetString("PE_MESA")}_${c.GetString("PE_TIPO")}_${c.GetString("PE_TICKET")}_${c.GetString("PE_PROID")}"$, Colors.Blue)
|
|
|
|
|
|
' insert into LANTER.HIST_VENTAS_DETALLE (HVD_FOLIO_TICKET, HVD_CLIENTE, HVD_MESERO, HVD_PROID, HVD_PRONOMBRE, HVD_CANT, HVD_COSTOU, HVD_COSTO_TOT, HVD_FECHA, HVD_MESA, HVD_TIPO_PAGO, HVD_FECHA_CARGA) values ((?), (?), (?), (?), (?), (?), (?), (?), to_date((?),'MM/DD/YYYY HH24:MI:ss'), (?), sysdate, (?))
|
|
cmd.Initialize
|
|
cmd.Name = "insertHVD_Lanter" 'Inserta en tabla HVD
|
|
cmd.Parameters = Array As Object(c.getstring("PE_TICKET"), "", c.getstring("PE_MESERO"), c.getstring("PE_PROID"), c.getstring("PE_PRONOMBRE"), c.getstring("PE_CANT"), c.getstring("PE_COSTOU"), c.getstring("PE_COSTO_TOT"), c.getstring("PE_FECHA"), c.getstring("PE_MESA"), c.getstring("PE_TIPO2")) '
|
|
reqManager.ExecuteCommand(cmd , $"insertPedido_${c.GetString("PE_MESA")}_${c.GetString("PE_TIPO")}_${c.GetString("PE_TICKET")}_${c.GetString("PE_PROID")}"$)
|
|
'
|
|
Next
|
|
End If
|
|
' Log("##########################################")
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Sub JobDone(Job As HttpJob)
|
|
Log("JOBDONE PRINCIPAL")
|
|
reqManager.trackNext(Job)
|
|
If Not(Job.Success) Then
|
|
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
|
|
reqManager.errorList.Add(Job.Tag)
|
|
Else
|
|
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
|
|
If Job.JobName = "DBRequest" Then
|
|
Dim result As DBResult = reqManager.HandleJob(Job)
|
|
' If result.Tag = "traeGeoPass" Then 'query tag
|
|
' If result.Rows.Size = 0 Then MsgboxAsync("Contraseña equivocada, por favor intente de nuevo.", "ATENCION")
|
|
For Each records() As Object In result.Rows
|
|
For Each k As String In result.Columns.Keys
|
|
Log(k & ": " & records(result.Columns.Get(k)))
|
|
Next
|
|
Next
|
|
' End If
|
|
End If
|
|
End If
|
|
If reqManager.reqsList.Size = 0 Then ' Si ya se completo el envio, etonces borramos el efectivo!
|
|
ProgressDialogHide
|
|
p_transparenteResumen.Visible = False
|
|
Log("Llamamos BorrarEfectivo")
|
|
borrarEfectivo
|
|
llenaHistorial
|
|
Log(">>>>> ENVIO TERMINADO")
|
|
ToastMessageShow("¡Envío terminado!", False)
|
|
End If
|
|
If reqManager.errorList.Size > 0 Then Log(">>>>> ERRORES - " & reqManager.errorList)
|
|
Job.Release
|
|
End Sub
|
|
|
|
Sub borrarEfectivo
|
|
Log("Borramos el efectivo")
|
|
Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_TIPO = 'EFECTIVO'"$)
|
|
' Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = 'DESC01'"$)
|
|
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$)
|
|
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_PAGO2 = 'Efectivo'"$)
|
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("EFECTIVO BORRADO"))
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("EFECTIVO BORRADO","1"))
|
|
End Sub
|
|
|
|
Private Sub b_regresarProds_Click
|
|
WobbleMenu1_Tab1Click
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
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
|
|
p_transparenteDescuento.Visible = True
|
|
' p_leyendaDescuento.Visible = True
|
|
' p_leyendaDescuento.BringToFront
|
|
cb_leyendaDescuento.Checked = False
|
|
' If Not(Starter.ticketFactura) Then cb_leyendaDescuento.Checked = True
|
|
End Sub
|
|
|
|
Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int)
|
|
pagoPropina = cb_pagoPropina.SelectedItem
|
|
Log($"####### Cambiamos el pago de la propina a ${pagoPropina}"$)
|
|
End Sub
|
|
|
|
Private Sub p_transparenteCambioMesa_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
p_transparenteCambioMesa.Visible = False
|
|
End Sub
|
|
|
|
Private Sub p_transparenteDescuento_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
p_transparenteDescuento.Visible = False
|
|
End Sub
|
|
|
|
Private Sub l_prodX_LongClick
|
|
Log(Sender.As(Label).tag)
|
|
Private m As Map = Sender.As(Label).tag.As(Map)
|
|
Log(Sender.As(View).Parent.As(Panel).GetView(2).As(Panel).GetView(4).As(EditText).text)
|
|
'Sender.As(View).Parent.As(Panel) = p_prods
|
|
'Sender.As(View).Parent.As(Panel).GetView(2) = p_botMasMen
|
|
'Sender.As(View).Parent.As(Panel).GetView(2).As(Panel).GetView(4)
|
|
'Sender.As(View).Parent.As(Panel).GetView(2).As(Panel).GetView(4).As(EditText) = et_pCant
|
|
Private laCant As Int = Sender.As(View).Parent.As(Panel).GetView(2).As(Panel).GetView(4).As(EditText).text '
|
|
If m.Get("prod").As(String).Contains("Alimentos Varios") Or m.Get("prod").As(String).Contains("Bebidas Varias") 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
|
|
LlenaOrden
|
|
LlenaProdsLL(Null, Null)
|
|
End Sub
|
|
|
|
Private Sub p_transparentePago_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
p_transparentePago.Visible = False
|
|
End Sub
|
|
|
|
Private Sub b_agregarPago_Click
|
|
Starter.formasDePago = Starter.formasDePago + 1
|
|
' Log(Starter.formasDePago)
|
|
agregaFormaDePago(l_tipoPago.Left, (60 * (Starter.formasDePago - 1)), Starter.formasDePago, 60)
|
|
cb_pagoPropina.SelectedIndex = 0
|
|
pagoPropina = "Amex"
|
|
' cb_pago2.SelectedIndex = 0
|
|
End Sub
|
|
|
|
'Agrega una froma de pago al cerrar una mesa
|
|
Sub agregaFormaDePago(left0 As Int, top0 As Int, tag0 As Int, brinco As Int)
|
|
' Log("agregaFormaDePago |" & top0 & "|" & tag0)
|
|
p_opcionEfectivo.Visible = False
|
|
Private p_num As Panel
|
|
p_num.Initialize("")
|
|
p_num.LoadLayout("formaPago")
|
|
' Private x As B4XView = p_num
|
|
' x.SetColorAndBorder(Colors.gray, 3dip, Colors.Magenta, 0)
|
|
' x.Width = 800dip
|
|
' p_num = x
|
|
' p_num.Width = 700dip
|
|
' Log(p_formasDePago.Width & "|" & p_num.Width)
|
|
' If brinco < l_tipoPago2.Height Then
|
|
' Log($"${brinco}|${l_tipoPago2.Height}"$)
|
|
' top0 = (top0/brinco) * l_tipoPago2.Height
|
|
' brinco = l_tipoPago2.Height
|
|
' End If
|
|
' Log($"${brinco}|${l_tipoPago2.Height}"$)
|
|
If Starter.formasDePago > 1 Then
|
|
p_propina.Top = p_propina.Top + brinco
|
|
p_formasDePago.Height = p_formasDePago.Height + brinco
|
|
p_pago.Height = p_pago.Height + brinco
|
|
' p_botonesCerrar.Top = p_botonesCerrar.Top + brinco
|
|
b_pagoCerrar.Top = b_pagoCerrar.Top + brinco
|
|
End If
|
|
l_tipoPago2.Text = $"${Starter.formasDePago}:"$
|
|
cb_pago2.Tag = tag0
|
|
' cb_pago2.mBase.SetTextSizeAnimated(0, 14dip)
|
|
et_montoPago2.Tag = tag0
|
|
cb_pago2.SetItems(Array As String("Amex", "Mifel", "Efectivo"))
|
|
If Starter.ticketFactura Then cb_pago2.SetItems(Array As String("Amex", "Mifel"))
|
|
p_num.Tag = tag0
|
|
listaFormasDePagoCB.Add(cb_pago2)
|
|
listaFormaDePago.Add(cb_pago2.SelectedItem)
|
|
listaMontoDePago.Add(et_montoPago2)
|
|
p_formasDePago.AddView(p_num, left0, top0, p_formasDePago.Width, 40dip)
|
|
b_pagoCerrar.Enabled = False
|
|
If listaFormaDePago.Size > 1 Then l_faltaMonto.Visible = True
|
|
Try
|
|
et_montoPago2_TextChanged("","1")
|
|
' Log("PONEMOS LO QUE FALTA " & l_faltaMonto.Text)
|
|
Private f() As String = Regex.Split(" ", l_faltaMonto.Text)
|
|
If f.Length > 0 And f(0) = "FALTAN" Then
|
|
et_montoPago2.Text = f(1)
|
|
End If
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
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)
|
|
If Sender.As(B4XComboBox).SelectedItem = "Amex" Then
|
|
cb_pagoPropina.SelectedIndex = 0
|
|
Else If Sender.As(B4XComboBox).SelectedItem = "Mifel" Then
|
|
cb_pagoPropina.SelectedIndex = 1
|
|
else If Sender.As(B4XComboBox).SelectedItem = "Efectivo" Then
|
|
cb_pagoPropina.SelectedIndex = 2
|
|
End If
|
|
If Sender.As(B4XComboBox).SelectedItem = "Efectivo" And listaFormaDePago.Size = 1 Then
|
|
Private c As Cursor = Starter.skmt.ExecQuery("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'")
|
|
c.Position = 0
|
|
l_opcionEfectivo.Text = $"${c.GetString("CAT_VA_VALOR")}% desc."$
|
|
p_opcionEfectivo.Visible = True
|
|
' cb_opcionEfectivo.Checked = False
|
|
Else
|
|
' Log(listaFormaDePago.Size)
|
|
p_opcionEfectivo.Visible = False
|
|
cb_opcionEfectivo.Checked = False
|
|
End If
|
|
pagoPropina = cb_pagoPropina.SelectedItem
|
|
' Log(listaFormaDePago)
|
|
Log($"****** Cambiamos el pago de la propina a ${pagoPropina}"$)
|
|
End Sub
|
|
|
|
Private Sub et_montoPago2_TextChanged (Old As String, New As String)
|
|
' Log("TEXT CHANGED")
|
|
' Log(Starter.totalActual)
|
|
subtotal = 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
|
|
' Log($"${Starter.totalActual} - ${subtotal} = ${Starter.totalActual - subtotal}"$)
|
|
' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue)
|
|
If listaMontoDePago.Size > 1 Then
|
|
l_faltaMonto.Visible = True
|
|
If subtotal < Starter.totalActual Then
|
|
' LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red)
|
|
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
|
|
subtotal2 = subtotal
|
|
If et_propina.Text <> "" And IsNumber(et_propina.Text) Then
|
|
subtotal2 = subtotal + et_propina.text
|
|
End If
|
|
l_total2.text = subtotal2
|
|
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_propina_TextChanged (Old As String, New As String)
|
|
subtotal2 = subtotal
|
|
If New <> "" And IsNumber(New) Then subtotal2 = subtotal + New
|
|
l_total2.text = subtotal2
|
|
End Sub
|
|
|
|
Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean)
|
|
' Log("FOCUS CHANGED")
|
|
' Log(Starter.totalActual)
|
|
If HasFocus Then
|
|
' Log("PONEMOS EN BLANCO")
|
|
et_montoPago2.Text = ""
|
|
Sleep(200)
|
|
End If
|
|
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 cb_opcionEfectivo_CheckedChange(Checked As Boolean)
|
|
' Log(">> OPCION EFECTIVO CAMBIO - ACTUALIZAMOS PEDIDO")
|
|
Private desc As String = 1 / Subs.traeDescXefectivo
|
|
' Private tot As String = Subs.traeTotalTicketActual_P("VENTA")
|
|
If Checked Then
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_DESC = '${Subs.traeDescXefectivo}' where PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' et_montoPago2.Text = NumberFormat2(tot - (tot * desc), 1, 0, 0, False)
|
|
' et_montoPago2.Text = Subs.traeTotalTicketActual_P
|
|
Else
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_DESC = '0' where PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' et_montoPago2.Text = tot
|
|
End If
|
|
'Recualculamos el total para ponerlo en PEDIDO_TICKET
|
|
|
|
' Private c As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
Private c As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' Log($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' Private elSubTotal As String = "0"
|
|
' Do While c.NextRow
|
|
' If c.GetString("CAT_GP_TIPO") = "ALIMENTOS" Then
|
|
' elSubTotal = elSubTotal + c.GetString("PE_COSTO_TOT") - (c.GetString("PE_COSTO_TOT") * (c.GetString("DESC") / 100))
|
|
' Else
|
|
' elSubTotal = elSubTotal + c.GetString("PE_COSTO_TOT")
|
|
' End If
|
|
' Loop
|
|
' LogColor($">>>>> ${elSubTotal} "$, Colors.Blue)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MONTO = '${NumberFormat2(Subs.traeTotalTicketActual_P("VENTA"), 1, 0, 0, False)}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
|
|
If et_montoPago2.IsInitialized Then
|
|
et_montoPago2.Text = Subs.traeTotalTicketActual_P("VENTA")
|
|
l_total2.Text = Subs.traeTotalTicketActual_P("VENTA")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub lv_historial_ItemClick (Position As Int, Value As Object)
|
|
Log(Value)
|
|
'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar).
|
|
If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then
|
|
lv_verOrden.Height = Activity.Height * 0.42
|
|
b_reabrirMesa.Height = 40dip
|
|
b_reimprimirTicket.Height = 40dip
|
|
b_reabrirMesa.Top = lv_verOrden.top + lv_verOrden.Height + 10dip
|
|
b_reimprimirTicket.Top = lv_verOrden.top + lv_verOrden.Height + 10dip
|
|
End If
|
|
Private d() As String = Regex.Split("\|", Value)
|
|
l_verOrden.Text = $"Orden ${d(1)}"$
|
|
Starter.mesaActual = d(0)
|
|
Starter.ticketActual = d(1)
|
|
Starter.tipov = d(2)
|
|
Starter.meseroActual = d(3)
|
|
Starter.comensalesActuales = d(4)
|
|
lv_verOrden.Clear
|
|
Private c As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${d(0)}' and PE_TICKET = '${d(1)}' and PE_TIPO = '${d(2)}'"$)
|
|
' Log($"select * from PEDIDO where PE_MESA = '${d(0)}' and PE_TICKET = '${d(1)}' and PE_TIPO = '${d(2)}'"$)
|
|
' Log(c.RowCount)
|
|
Private Label1 As Label = lv_verOrden.TwoLinesLayout.Label
|
|
Private Label2 As Label = lv_verOrden.TwoLinesLayout.SecondLabel
|
|
Label1.TextColor = Colors.RGB(1,127,1)
|
|
Label1.TextSize = 14
|
|
Label2.TextColor = Colors.Red
|
|
Label2.TextSize = 14
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
Private n1 As String = c.GetString("PE_PRONOMBRE")
|
|
' Log(n.Length & " - " & n)
|
|
If n1.Length > 25 Then n1 = n1.SubString2(0, 25)
|
|
lv_verOrden.AddTwoLines($"${c.GetString("PE_CANT")} - ${n1}"$, $"Precio: $${c.GetString("PE_COSTOU")}"$)
|
|
Next
|
|
End If
|
|
p_verOrden.Visible = True
|
|
b_reabrirMesa.Tag = Value
|
|
End Sub
|
|
|
|
Private Sub lv_historial_ItemLongClick (Position As Int, Value As Object)
|
|
' Log(Value)
|
|
' Private d() As String = Regex.Split("\|", Value)
|
|
' lv_verOrden.Clear
|
|
' Private c As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${d(0)}' and PE_TICKET = '${d(1)}' and PE_TIPO = '${d(2)}'"$)
|
|
'' Log($"select * from PEDIDO where PE_MESA = '${d(0)}' and PE_TICKET = '${d(1)}' and PE_TIPO = '${d(2)}'"$)
|
|
'' Log(c.RowCount)
|
|
' Private Label1 As Label = lv_verOrden.TwoLinesLayout.Label
|
|
' Private Label2 As Label = lv_verOrden.TwoLinesLayout.SecondLabel
|
|
' Label1.TextColor = Colors.RGB(1,127,1)
|
|
' Label1.TextSize = 16
|
|
' Label2.TextColor = Colors.Red
|
|
' Label2.TextSize = 14
|
|
' If c.RowCount > 0 Then
|
|
' For i = 0 To c.RowCount - 1
|
|
' c.Position = i
|
|
' Private n1 As String = c.GetString("PE_PRONOMBRE")
|
|
'' Log(n.Length & " - " & n)
|
|
' If n1.Length > 25 Then n1 = n1.SubString2(0, 25)
|
|
' lv_verOrden.AddTwoLines($"${c.GetString("PE_CANT")} - ${n1}"$, $"Precio: $${c.GetString("PE_COSTOU")}"$)
|
|
' Next
|
|
' End If
|
|
' p_transparenteVerOrden.Visible = True
|
|
' b_reabrirMesa.Tag = Value
|
|
End Sub
|
|
|
|
Private Sub p_transparenteVerOrden_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
' p_transparenteVerOrden.Visible = False
|
|
End Sub
|
|
|
|
Private Sub b_reabrirMesa_Click
|
|
Private t As String = Sender.As(Button).tag
|
|
' Log(t)
|
|
Private d() As String = Regex.Split("\|", t)
|
|
Private hayMesaAbierta As Boolean = False
|
|
'Revisamos si la mesa a REABRIR no esta ACTUALMENTE abierta.
|
|
Private ma As ResultSet = Starter.skmt.ExecQuery($"select M_ID from CAT_MESAS where M_ID = '${d(0)}' and M_ESTATUS = 'ABIERTA'"$)
|
|
Do While ma.NextRow
|
|
hayMesaAbierta = True
|
|
' Log(ma.GetString("M_ID"))
|
|
Loop
|
|
If hayMesaAbierta Then
|
|
ToastMessageShow($"La mesa ${d(0)} esta ABIERTA, por favor cierrela antes intentar reabir este ticket"$, True)
|
|
Else
|
|
If d(6) <> "null" Then
|
|
Log("MULTI-TICKET") 'multi-ticket
|
|
b_reabrirMesaMulti.Tag = t
|
|
p_reabrirMesaMulti.BringToFront
|
|
p_reabrirMesaMulti.Visible = True
|
|
Else
|
|
Log("UN TICKET") 'multi-ticket
|
|
Starter.skmt.BeginTransaction
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_ESTATUS = 'ABIERTA', M_TICKET = '${d(1)}', M_MESERO = '${d(3)}', M_COMENSALES = '${d(4)}' where M_ID = '${d(0)}'"$)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = 'VENTA', PE_TIPO2 = Null where PE_TIPO = '${d(2)}' and PE_MESA = '${d(0)}' and PE_TICKET = '${d(1)}'"$)
|
|
Log(3)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'VENTA', PT_TARJETA = Null, PT_PAGO_PROPINA = Null, PT_PROPINA = Null, PT_PAGO2 = Null where PT_PAGO = '${d(2)}' and PT_MESA = '${d(0)}' and PT_TICKET = '${d(1)}'"$)
|
|
Starter.skmt.TransactionSuccessful
|
|
Starter.skmt.EndTransaction
|
|
p_reabrirMesaMulti.Visible = False
|
|
' p_transparenteVerOrden.Visible = False
|
|
Log("Vamos a Tab1")
|
|
WobbleMenu1_Tab1Click
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub b_reabrirMesaMulti_Click
|
|
Private t As String = Sender.As(Button).tag
|
|
Log(t)
|
|
Private d() As String = Regex.Split("\|", t)
|
|
Starter.skmt.BeginTransaction
|
|
Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_ORIGEN = '${d(6)}|${d(7)}' and PE_TIPO <> 'MULTI-TICKET'"$)
|
|
' Log($"delete from PEDIDO where PE_ORIGEN = '${d(6)}|${d(7)}' and PE_TIPO <> 'MULTI-TICKET'"$)
|
|
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_ORIGEN = '${d(6)}|${d(7)}' and PT_ALMACEN = 'MULTI-TICKET'"$)
|
|
' Log($"delete from PEDIDO_TICKET where PT_ORIGEN = '${d(6)}|${d(7)}' and PT_ALMACEN = 'MULTI-TICKET'"$)
|
|
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_ESTATUS = 'ABIERTA', M_TICKET = '${d(7)}', M_MESERO = '${d(3)}', M_COMENSALES = '${d(4)}' where M_ID = '${d(6)}'"$)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = 'VENTA', PE_TIPO2 = Null where PE_TIPO = 'MULTI-TICKET' and PE_MESA = '${d(6)}' and PE_TICKET = '${d(7)}'"$)
|
|
Log(4)
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'VENTA', PT_TARJETA = Null, PT_PAGO_PROPINA = Null, PT_PROPINA = Null, PT_PAGO2 = Null where PT_PAGO = 'MULTI-TICKET' and PT_MESA = '${d(6)}' and PT_TICKET = '${d(7)}'"$)
|
|
Starter.skmt.TransactionSuccessful
|
|
Starter.skmt.EndTransaction
|
|
p_reabrirMesaMulti.Visible = False
|
|
' p_transparenteVerOrden.Visible = False
|
|
WobbleMenu1_Tab1Click
|
|
WobbleMenu1.SetCurrentTab(1)
|
|
End Sub
|
|
|
|
Private Sub p_reabrirMesaMulti_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub b_imprimirCerrar_Click
|
|
' b_imprimirTicket_Click
|
|
End Sub
|
|
|
|
Private Sub b_leyendaDescuento_Click
|
|
Private imprimirEste As Boolean = Starter.imprimirTicket
|
|
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_imprimirTicket.Enabled = False
|
|
' If l_total.Text <> Null And l_total.Text <> "null" Then Subs.ponImpreso(la_cuenta.Text) 'Solo lo marcamos como impreso si tiene venta (total > 0).
|
|
ProgressDialogShow("Imprimiendo, un momento ...")
|
|
Private cont As Int = 0
|
|
For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticket.
|
|
' LogColor($">>>> Forma de pago : ${listaTickets.Get(k).As(Map).Get("pago")}"$, Colors.Blue)
|
|
Log("#### IMPRIMIR EFECTIVO: " & imprimirEfectivo)
|
|
If listaTickets.Size>= k And listaTickets.Get(k).As(Map).Get("pago") = "EFECTIVO" Or cont > 0 Then 'Solo imprimimos si es el PRIMER ticket de TARJETA.
|
|
If Not(imprimirEfectivo) Then Continue
|
|
End If
|
|
imprimirEfectivo = False
|
|
cont = cont + 1
|
|
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 = "dd/MM/yyyy"
|
|
Private sDate,sTime As String
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
sTime = DateTime.Time(DateTime.Now)
|
|
' c.Close
|
|
' c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
|
|
' c.Position = 0
|
|
Private sucursal As String = "SUCURSAL"
|
|
' c.Close
|
|
TAMANO = 0
|
|
ESPACIO = 14
|
|
BLANCO = " " 'esto para las impresoras nuevas
|
|
'printer.Initialize(cmp20.OutputStream)
|
|
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)
|
|
' LogColor(listaTickets, Colors.red)
|
|
If logger Then 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 tipoPago <> "VENTA" Then 'Solo imprimimos los datos fiscales si es para b_pagoCerrar.
|
|
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 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" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" 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)
|
|
End If
|
|
If imprimirEste Then Printer1.WriteString(" CDMX " & sDate &" " & sTime & CRLF)
|
|
If logger Then Log("CDMX " & sDate &" " & sTime & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(Printer1.BOLD)
|
|
If imprimirEste Then Printer1.WriteString(" No. Ticket: " & Starter.ticketActual & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
|
|
If logger Then Log("No. Ticket: " & Starter.ticketActual & 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(" " & CRLF)
|
|
c = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' Log($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO join cat_gunaprod on PE_PROID = CAT_GP_ID where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
' Private elTotalSumado As String = "0"
|
|
' LogColor($">>>>> DESCUENTO: ${c.RowCount}"$, Colors.red)
|
|
If c.RowCount > 0 Then
|
|
Private elSubTotal As String = 0
|
|
Private elPU As String = 0
|
|
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")
|
|
elPU = c.GetString("PE_COSTOU")
|
|
If elNombre.Length > 45 Then elNombre.SubString2(0, 45)
|
|
If c.GetString("CAT_GP_TIPO") = "ALIMENTOS" Or c.GetString("CAT_GP_TIPO") = "MEDIA" Then
|
|
' Log($">> APLICAMOS DESC POR ALIMENTOS"$)
|
|
Private elSubTIndividual As String = c.GetString("PE_COSTOU") - (c.GetString("PE_COSTOU") * (c.GetString("DESC") / 100))
|
|
elSubTotal = Ceil(elSubTIndividual) * c.GetString("PE_CANT")
|
|
' elSubTotal = c.GetString("PE_COSTO_TOT") - (c.GetString("PE_COSTO_TOT") * (c.GetString("DESC") / 100))
|
|
' Log(c.GetString("PE_COSTOU"))
|
|
elSubTotal = Ceil(elSubTotal)
|
|
' Log(elSubTotal)
|
|
elPU = Ceil(c.GetString("PE_COSTOU") - (c.GetString("PE_COSTOU") * (c.GetString("DESC") / 100)))
|
|
Else
|
|
elSubTotal = c.GetString("PE_COSTO_TOT")
|
|
End If
|
|
|
|
Private nom() As String = Regex.Split("\$", elNombre)
|
|
If nom.Length > 1 Then
|
|
elNombre = nom(0)
|
|
End If
|
|
|
|
' Log($"${c.GetString("PE_PRONOMBRE")}, ${c.GetString("DESC")}${elSubTotal}"$)
|
|
Private cantXpu As String = $" ${c.GetString("PE_CANT")} X ${elPU}"$
|
|
If imprimirEste Then Printer1.WriteString($" ${elNombre}${CRLF}${cantXpu}${Subs.alineaDerecha("$"&NumberFormat2(elSubTotal, 1, 2, 2, True), (45 - cantXpu.Length), ".")}${CRLF}"$)
|
|
Log($"${elNombre}${CRLF}${cantXpu}${Subs.alineaDerecha("$"&NumberFormat2(elSubTotal, 1, 2, 2, True), (30 - cantXpu.Length), ".")}${CRLF}"$)
|
|
' elTotalSumado = elTotalSumado + elSubTotal
|
|
If i = c.RowCount - 1 Then
|
|
Log(">>>>>>>>>>>>>>>>>>>>>>>>>< ")
|
|
Private desc As ResultSet = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_PRONOMBRE = 'DESCUENTO' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
Log($"select * from PEDIDO where PE_PRONOMBRE = 'DESCUENTO' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
|
|
Log(">>>>> DESC: " & desc.RowCount)
|
|
Do While desc.NextRow
|
|
If imprimirEste Then Printer1.WriteString($" Subtotal: ${Subs.alineaDerecha("$"&NumberFormat2( (Subs.traeTotalTicketActual_P(tipoPago)), 1, 2, 2, True), (45 - 12), ".")}${CRLF}"$)
|
|
Log($"Subtotal: ${Subs.alineaDerecha("$"&NumberFormat2((Subs.traeTotalTicketActual_P(tipoPago)), 1, 2, 2, True), (45 - 12), ".")}${CRLF}"$)
|
|
|
|
cantXpu = $"1 x ${desc.GetString("PE_COSTOU")}"$
|
|
If imprimirEste Then Printer1.WriteString($" 1 DESCUENTO${CRLF}${cantXpu}${Subs.alineaDerecha("$"&NumberFormat2(desc.GetString("PE_COSTO_TOT"), 1, 2, 2, True), (45 - cantXpu.Length), ".")}${CRLF}"$)
|
|
Log($"1 DESCUENTO${CRLF}${cantXpu}${Subs.alineaDerecha("$"&NumberFormat2(desc.GetString("PE_COSTO_TOT"), 1, 2, 2, True), (45 - cantXpu.Length), ".")}${CRLF}"$)
|
|
Loop
|
|
End If
|
|
Next
|
|
End If
|
|
c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina, ifnull(PT_ALMACEN, "") as ALM 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($"TIPO PAGO: ${tipoPago}"$)
|
|
|
|
Private elTotal As String = Subs.traeTotalTicketActual_P(tipoPago)
|
|
' LogColor("<<<<<<<<<<<<<<<< elTotal: " & elTotal, Colors.red)
|
|
If c.GetString("ALM") = "MULTI-TICKET" Then
|
|
' Log("ORIGEN: " & c.GetString("PT_ORIGEN"))
|
|
Private m0() As String = Regex.Split("\|", c.GetString("PT_ORIGEN"))
|
|
Private mesaX As String = m0(0)
|
|
Private ticketX As String = m0(1)
|
|
Private x As Cursor = Starter.skmt.ExecQuery($"select * from PEDIDO_TICKET where PT_MESA = '${mesaX}' and PT_TICKET = '${ticketX}' and PT_PAGO = 'MULTI-TICKET'"$)
|
|
Private y As Cursor = Starter.skmt.ExecQuery($"select ifnull(PT_MONTO, 0) as desc from PEDIDO_TICKET where PT_MESA = '${mesaX}' and PT_PAGO = 'EFECTIVO' and PT_ORIGEN = '${c.GetString("PT_ORIGEN")}'"$)
|
|
' Log($"select * from PEDIDO_TICKET where PT_MESA = '${mesaX}' and PT_TICKET = '${ticketX}'"$)
|
|
Private elDesc As String = "0"
|
|
If y.RowCount > 0 Then
|
|
y.Position = 0
|
|
elDesc = y.GetString("desc")
|
|
End If
|
|
If x.RowCount > 0 Then
|
|
x.Position = 0
|
|
' Log(x.GetString("PT_TICKET"))
|
|
' LogColor(">>>>>> PT_MONTO= " & x.GetString("PT_MONTO"), Colors.red)
|
|
elTotal = x.GetString("PT_MONTO") - elDesc
|
|
End If
|
|
End If
|
|
|
|
' elTotal = elTotalSumado
|
|
|
|
' If c.GetString("ALM") = "MULTI-TICKET" Then elTotal = c.GetString("PT_MONTO")
|
|
|
|
' Log(">>>>>>>> " & Subs.traeTotalTicketActual_P(tipoPago))
|
|
' 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 tipoPago <> "VENTA" Then
|
|
If imprimirEste Then Printer1.WriteString($"${CRLF} IVA: $${NumberFormat2(((elTotal * 0.16)), 1, 2, 2, True)}"$)
|
|
If logger Then Log($"${CRLF}IVA: $${NumberFormat2(((elTotal * 0.16)), 1, 2, 2, True)}"$)
|
|
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)}"$)
|
|
|
|
Private elTextoTotal As String = n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))
|
|
If elTextoTotal.Length > 40 Then
|
|
Private tot1 As String = elTextoTotal.SubString2(0, 40)
|
|
Private tot2 As String = elTextoTotal.SubString(40)
|
|
' Log("xxxxxxxxxxxxxxxxx")
|
|
If imprimirEste Then Printer1.WriteString($"${CRLF} ${tot1}"$)
|
|
If imprimirEste Then Printer1.WriteString($"${CRLF} ${tot2}"$)
|
|
Else
|
|
If imprimirEste Then Printer1.WriteString($"${CRLF} ${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
|
|
End If
|
|
|
|
|
|
|
|
If logger Then Log($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
|
|
If tipoPago <> "VENTA" Then
|
|
Private fPago As String = c.GetString("PT_PAGO")
|
|
If fPago = "EFECTIVO" Then fPago = "EFEPUNTOS"
|
|
If imprimirEste Then Printer1.WriteString($"${CRLF} Forma de pago: ${fPago}"$)
|
|
If logger Then Log($"${CRLF}Forma de pago: ${fPago}"$)
|
|
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 tipoPago = "VENTA" And cb_leyendaDescuento.Checked Then
|
|
If imprimirEste Then Printer1.WriteString(Printer1.REVERSE)
|
|
If imprimirEste Then Printer1.WriteString(" ---------- 10% DE DESCUENTO ----------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" --------- PAGANDO EN EFECTIVO --------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" ------ >> SOLO EN ALIMENTOS << -------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If logger Then Log("------ 10% DE DESCUENTO ------" & CRLF)
|
|
If logger Then Log("----- PAGANDO EN EFECTIVO ----" & CRLF)
|
|
If logger Then Log("-- >> SOLO EN ALIMENTOS << ---" & CRLF)
|
|
End If
|
|
If cb_factura.Checked Then
|
|
' If imprimirEste Then Printer1.WriteString(Printer1.REVERSE)
|
|
If imprimirEste Then Printer1.WriteString(" ----------- PARA FACTURAR -----------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" -------- INGRESAR A ESTA LIGA --------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" ------- TIENE 3 DIAS DESDE EL --------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" ------ MOMENTO DE LA IMPRESION ------" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(" http://facturacionkmts.com.mx" & CRLF)
|
|
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If logger Then Log("------ PARA FACTURAR ------" & CRLF)
|
|
If logger Then Log("----- INGRESAR A ESTA LIGA ----" & CRLF)
|
|
If logger Then Log("http://facturacionkmts.com.mx" & CRLF)
|
|
End If
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
If imprimirEste Then Printer1.WriteString(CRLF)
|
|
Sleep(1000)
|
|
Printer1.DisConnect
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
Sleep(1000)
|
|
Next
|
|
Sleep(1000)
|
|
b_imprimirTicket.Enabled = True
|
|
ProgressDialogHide
|
|
' p_leyendaDescuento.Visible = False
|
|
p_transparenteDescuento.Visible = False
|
|
' B4XPage_CloseRequest
|
|
cb_mostrarDescuento.Checked = False
|
|
' cb_opcionEfectivo_CheckedChange(False)
|
|
End Sub
|
|
|
|
Private Sub et_buscar_TextChanged (Old As String, New As String)
|
|
Private c As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_NOMBRE like '%${New}%' order by CAT_GP_NOMBRE"$) ' and CAT_GP_TIPO = '${Starter.catActual}'
|
|
LlenaProdsLL(c, Null)
|
|
lv_categorias.Visible = False
|
|
clv_prods_ll.AsView.Visible = True
|
|
Log(c.RowCount)
|
|
End Sub
|
|
|
|
Private Sub cb_mostrarDescuento_CheckedChange(Checked As Boolean)
|
|
cb_opcionEfectivo_CheckedChange(Checked)
|
|
End Sub
|
|
|
|
Private Sub p_verOrden_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_leyendaDescuento_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_cambioMesa_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_resumen_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub l_prodX_Click
|
|
Log("clicked")
|
|
Log(Sender.As(Label).tag)
|
|
Private m As Map = Sender.As(Label).tag
|
|
Log(listaProdsOrden.IndexOf(m.Get("id")))
|
|
Private indice As String = listaProdsOrden.IndexOf(m.Get("id"))
|
|
|
|
' Log(clv_orden.GetPanel(indice).GetView(0).GetView(2).GetView(4).As(EditText).text) 'getview(0) = p_prods, getview(2) = p_botMasMen, getview(4) = et_pCant
|
|
|
|
If indice = -1 Then
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip)
|
|
clv_orden.Add(Pnl, CreateMap("prod":m.Get("prod"), "precio":m.Get("precio"), "almacen":m.Get("almacen"), "id":m.Get("id"), "cant":1, "img":Null))
|
|
Subs.actualizaProducto(m.Get("precio"), 1, m.Get("prod"), m.Get("id"), Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
Else
|
|
Log(clv_orden.GetValue(indice).As(Map).Get("cant"))
|
|
Private newCant As Int = clv_orden.GetValue(indice).As(Map).Get("cant") + 1
|
|
clv_orden.GetValue(indice).As(Map).put("cant", newCant)
|
|
clv_orden.GetPanel(indice).GetView(0).GetView(2).GetView(4).As(EditText).text = newCant 'getview(0) = p_prods, getview(2) = p_botMasMen, getview(4) = et_pCant
|
|
Subs.actualizaProducto(m.Get("precio"), newCant, m.Get("prod"), m.Get("id"), Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub clv_orden_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
|
|
Dim ExtraSize As Int = 30 'List size
|
|
For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_orden.Size - 1)
|
|
Dim Pnl As B4XView = clv_orden.GetPanel(i)
|
|
If i > FirstIndex - ExtraSize And i < LastIndex + ExtraSize Then
|
|
If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
|
|
' Log(i)
|
|
' If listaProdsOrden.IndexOf(clv_orden.GetValue(i).As(Map).Get("id")) > -1 Then
|
|
' Log("Ya existe")
|
|
' Else
|
|
Pnl.LoadLayout("proditem")
|
|
listaProdsOrden.InsertAt(i, clv_orden.GetValue(i).As(Map).Get("id"))
|
|
' Log($"insertamos ${clv_orden.GetValue(i).As(Map).Get("id")} en ${i}"$)
|
|
' Log(listaProdsOrden)
|
|
p_prods.Width = clv_orden.GetBase.Width ' Activity.Width * 0.99
|
|
p_prods.Height = 42dip
|
|
p_botMasMen.Left = (clv_orden.GetBase.Width - p_botMasMen.Width - 8)
|
|
b_prodMas.Height = 47dip : b_prodMas.top = 3dip
|
|
b_prodMenos.Height = 47dip : b_prodMenos.top = 3dip
|
|
et_pCant.Height = 49dip : et_pCant.top = 3dip
|
|
l_pCant.Height = 37dip : l_pCant.top = 9dip
|
|
p_botMasMen.Top = -6
|
|
Private cs As CSBuilder
|
|
cs.Initialize
|
|
l_prodX.SetTextSizeAnimated(0, 13)
|
|
If clv_orden.GetValue(i).As(Map).Get("cant") <> Null And clv_orden.GetValue(i).As(Map).Get("cant") > 0 Then
|
|
p_prods.Color=0xFFE2EEFF
|
|
et_pCant.TextColor=Colors.Red
|
|
b_prodMenos.Tag = "vendido"
|
|
b_prodMas.Tag = "vendido"
|
|
End If
|
|
Private precio As String=NumberFormat2(clv_orden.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False)
|
|
If clv_orden.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_orden.GetValue(i).As(Map).Get("cant")
|
|
l_prodX.Text = cs.Color(Colors.red).append(clv_orden.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(precio, 1, 2, 2, True)}"$).Popall
|
|
l_prodX.Tag = clv_orden.GetValue(i).As(Map)
|
|
l_pCant.Tag = clv_orden.GetValue(i).As(Map).Get("id")
|
|
' Log(clv_orden.GetValue(i).As(Map).Get("id"))
|
|
i_prod.Bitmap = clv_orden.GetValue(i).As(Map).Get("img")
|
|
' End If
|
|
|
|
|
|
End If
|
|
End If
|
|
' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$)
|
|
Next
|
|
End Sub
|
|
|
|
Sub LlenaOrden
|
|
' Log("LlenaOrden - " & Subs.hayPedido)
|
|
clv_orden.Clear
|
|
If Subs.hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
|
|
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_ORDENAMIENTO, CAT_GP_NOMBRE
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount - 1
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_orden.AsView.Width, 40dip)
|
|
c.Position = i
|
|
clv_orden.Add(Pnl, 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))
|
|
Next
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub actualizaProductos(categoria As String)
|
|
Private labelTmp As Label
|
|
Private left0 As Int = 0
|
|
Private top0 As Int = 0
|
|
Private w As Int = 0
|
|
Private letra As String = ""
|
|
If selBuscar = "%" Then
|
|
Private c As ResultSet = Starter.skmt.ExecQuery($"select * from cat_gunaprod where cat_gp_tipo like '%${categoria}%' and CAT_GP_NOMBRE not like '%Varios%' and CAT_GP_NOMBRE not like '%Varias%' order by CAT_GP_ORDENAMIENTO, cat_gp_nombre"$)
|
|
Else
|
|
Private c As ResultSet = Starter.skmt.ExecQuery($"select * from cat_gunaprod where cat_gp_tipo like '%${categoria}%' and CAT_GP_NOMBRE like '%${selBuscar}%' order by CAT_GP_ORDENAMIENTO, cat_gp_nombre"$)
|
|
End If
|
|
panelEnUso = 1
|
|
p_productos1.BringToFront
|
|
p_productos1.RemoveAllViews
|
|
p_productos2.RemoveAllViews
|
|
p_productos3.RemoveAllViews
|
|
p_productos4.RemoveAllViews
|
|
p_productos5.RemoveAllViews
|
|
Dim clasifAnt As String = ""
|
|
Do While c.NextRow
|
|
Private nombre As String = c.getstring("CAT_GP_NOMBRE")
|
|
labelTmp.Initialize("l_prods")
|
|
Dim l_prods As B4XView = labelTmp ' We cast it to B4XView so we can set the border.
|
|
l_prods.Width = 149dip
|
|
l_prods.Height = 46dip
|
|
l_prods.TextSize = 12
|
|
|
|
If w Mod 2 == 0 Then
|
|
l_prods.SetColorAndBorder(Colors.White, 1dip, Colors.Black, 0)
|
|
Else
|
|
l_prods.SetColorAndBorder(Colors.RGB(220,255,220), 1dip, Colors.Black, 0)
|
|
End If
|
|
|
|
'If 1 = 0 And selBuscar = "%" And letra <> c.getstring("CAT_GP_NOMBRE").As(String).SubString2(0,1) Then ' Cambiamos el color cuando cambia la letra inicial
|
|
letra = c.getstring("CAT_GP_NOMBRE").As(String).SubString2(0,1)
|
|
' l_prods.SetColorAndBorder(Colors.White, 1dip, Colors.Black, 0)
|
|
l_prods.SetTextAlignment("CENTER", "CENTER")
|
|
' Log(nombre)
|
|
l_prods.Tag = CreateMap("prod":nombre, "precio":c.GetString("CAT_GP_PRECIO"), "almacen":"9999", "id":c.GetString("CAT_GP_ID"), "cant":1, "img":Null)
|
|
If nombre.Length > 20 Then nombre = nombre.SubString2(0, 20)
|
|
nombre = nombre & " $" & c.getstring("CAT_GP_PRECIO")
|
|
|
|
l_prods.Text = nombre
|
|
|
|
' {prod=ALCACHOFAS CRUDAS 250g , precio=190, almacen=9997, id=LA92, cant=7, img=Null}
|
|
|
|
' l_prods.TextColor = Colors.White
|
|
Private t As Int = w
|
|
If w > 0 Then top0 = top0 + (l_prods.Height + 1)
|
|
' Log("T:"&top0)
|
|
If top0 > p_productos1.Height - l_prods.Height Then
|
|
left0 = left0 + (l_prods.Width + 1)
|
|
top0 = 0
|
|
' Log("CAMBIO - L:" & left0 & "|LW:" & l_prods.Width & "|W:" & w)
|
|
End If
|
|
If (left0 + l_prods.Width) > p_productos1.Width Then
|
|
left0 = 0
|
|
If panelEnUso = 1 Then
|
|
panelEnUso = 2
|
|
else if panelEnUso = 2 Then
|
|
panelEnUso = 3
|
|
else if panelEnUso = 3 Then
|
|
panelEnUso = 4
|
|
else if panelEnUso = 4 Then
|
|
panelEnUso = 5
|
|
End If
|
|
' Log("NO CABEN - " & w & " USAMOS " & panelEnUso)
|
|
End If
|
|
If c.GetString("CAT_GP_CLASIF") <> clasifAnt Then
|
|
' Log(">>> " & c.GetString("CAT_GP_CLASIF"))
|
|
' Dim labelHead As Label
|
|
' labelHead.Initialize("l_head")
|
|
' labelHead.Width = 119dip
|
|
' labelHead.Height = 36dip
|
|
' labelHead.Text = "ENCABEZADO" 'c.GetString("CAT_GP_CLASIF")
|
|
' p_productos1.AddView(labelHead, left0, top0, labelHead.Width, labelHead.Height)
|
|
l_prods.TextColor = Colors.RGB(220,0,0)
|
|
Else
|
|
l_prods.TextColor = Colors.black
|
|
End If
|
|
clasifAnt = c.GetString("CAT_GP_CLASIF")
|
|
' Log(l_prods.text)
|
|
' Log($"L:${left0}, T:${top0}, PH:${p_productos.Height}"$)
|
|
' Log($"Panel: ${panelEnUso}, W: ${w}"$)
|
|
If panelEnUso = 1 Then
|
|
p_productos1.AddView(l_prods, left0, top0, l_prods.Width, l_prods.Height)
|
|
else if panelEnUso = 2 Then
|
|
p_productos2.AddView(l_prods, left0, top0, l_prods.Width, l_prods.Height)
|
|
else if panelEnUso = 3 Then
|
|
p_productos3.AddView(l_prods, left0, top0, l_prods.Width, l_prods.Height)
|
|
Else if panelEnUso = 4 Then
|
|
p_productos4.AddView(l_prods, left0, top0, l_prods.Width, l_prods.Height)
|
|
Else if panelEnUso = 5 Then
|
|
p_productos5.AddView(l_prods, left0, top0, l_prods.Width, l_prods.Height)
|
|
End If
|
|
w = w + 1
|
|
Loop
|
|
panelEnUso = 1
|
|
l_panelEnUso.Text = panelEnUso
|
|
End Sub
|
|
|
|
Private Sub l_selVinos_Click
|
|
' Log("Vinos")
|
|
selBuscar = "%"
|
|
et_selBuscar.Text = ""
|
|
actualizaProductos("Vinos")
|
|
End Sub
|
|
|
|
Private Sub l_selAlimentos_Click
|
|
' Log("Alimentos")
|
|
selBuscar = "%"
|
|
et_selBuscar.Text = ""
|
|
actualizaProductos("Alimentos")
|
|
End Sub
|
|
|
|
Private Sub l_selMedios_Click
|
|
' Log("Medios")
|
|
selBuscar = "%"
|
|
et_selBuscar.Text = ""
|
|
actualizaProductos("MEDIA")
|
|
End Sub
|
|
|
|
Private Sub et_selBuscar_TextChanged (Old As String, New As String)
|
|
If New.Length > 1 Then
|
|
p_prevBusqueda.Visible = False
|
|
selBuscar = New
|
|
actualizaProductos("%")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub et_selBuscar_FocusChanged (HasFocus As Boolean)
|
|
Log("HAS FOCUS: " & HasFocus)
|
|
' p_prevBusqueda.BringToFront
|
|
' p_prevBusqueda.Visible = True
|
|
End Sub
|
|
|
|
Private Sub b_sigPagina_Click
|
|
If panelEnUso = 1 Then
|
|
p_productos2.BringToFront
|
|
panelEnUso = 2
|
|
else if panelEnUso = 2 Then
|
|
p_productos3.BringToFront
|
|
panelEnUso = 3
|
|
else if panelEnUso = 3 Then
|
|
p_productos4.BringToFront
|
|
panelEnUso = 4
|
|
else if panelEnUso = 4 Then
|
|
p_productos5.BringToFront
|
|
panelEnUso = 5
|
|
Else
|
|
p_productos1.BringToFront
|
|
panelEnUso = 1
|
|
End If
|
|
' b_sigPagina.Text = panelEnUso & " >"
|
|
l_panelEnUso.Text = panelEnUso
|
|
' Log(panelEnUso)
|
|
End Sub
|
|
|
|
Private Sub b_prevPagina_Click
|
|
If panelEnUso = 1 Then
|
|
p_productos5.BringToFront
|
|
panelEnUso = 5
|
|
else if panelEnUso = 2 Then
|
|
p_productos1.BringToFront
|
|
panelEnUso = 1
|
|
else if panelEnUso = 3 Then
|
|
p_productos2.BringToFront
|
|
panelEnUso = 2
|
|
Else if panelEnUso = 4 Then
|
|
p_productos3.BringToFront
|
|
panelEnUso = 3
|
|
Else if panelEnUso = 5 Then
|
|
p_productos4.BringToFront
|
|
panelEnUso = 4
|
|
End If
|
|
' b_sigPagina.Text = panelEnUso & " >"
|
|
l_panelEnUso.Text = panelEnUso
|
|
Log(panelEnUso)
|
|
End Sub
|
|
|
|
Sub p_productos1_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Sub p_productos2_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Sub p_productos3_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Sub p_productos4_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Sub p_productos5_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub p_mesas_Click
|
|
'Para evitar que el clic en pantalla no se siga hacia atras
|
|
End Sub
|
|
|
|
Private Sub b_resumen_Click
|
|
Log("CLIC RESUMEN")
|
|
' clv_resumenDia.AsView.left = 10dip : clv_resumenDia.AsView.top = 70dip
|
|
clv_resumenDia.AsView.top = 1dip
|
|
clv_resumenDia.AsView.width = p_resumenDia.Width - 20dip : clv_resumenDia.AsView.height = (p_resumenDia.height / 2.3) ' - 90dip
|
|
p_contScrollView.Width = clv_resumenDia.AsView.width + 2dip : p_contScrollView.height = clv_resumenDia.AsView.height + 2dip
|
|
p_contScrollView.left = 10dip : p_contScrollView.top = 70dip
|
|
clv_resumenDia.Base_Resize(clv_resumenDia.GetBase.Width, clv_resumenDia.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que se ajuste al nuevo tamaño.
|
|
'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar).
|
|
If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then
|
|
p_resumenDiaTotales.Top = p_contScrollView.Height + p_contScrollView.Top - 35dip : p_resumenDiaTotales.left = p_contScrollView.left
|
|
p_resumenDiaTotales.Height = p_resumenDia.Height - p_resumenDiaTotales.top + 20dip
|
|
Else
|
|
p_resumenDiaTotales.Top = p_contScrollView.Height + p_contScrollView.Top + 10dip : p_resumenDiaTotales.left = p_contScrollView.left
|
|
p_resumenDiaTotales.Height = p_resumenDia.Height - p_resumenDiaTotales.top - 10dip
|
|
End If
|
|
Private n As Int = 0
|
|
p_resumenDia.Visible = True
|
|
clv_resumenDia.Clear
|
|
Private o As ResultSet = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, 0) as PT_PROPINA, ifnull(PT_PAGO_PROPINA, "") as PT_PAGO_PROPINA, ifnull(PT_FACTURAR, 'false') as PT_FACTURAR, ifnull(PT_PAGO2, 'PENDIENTE') as PT_PAGO2 from PEDIDO_TICKET where PT_PAGO <> 'MULTI-TICKET' and PT_PAGO <> 'VENTA' order by PT_FECHA"$)
|
|
Do While o.NextRow
|
|
' Log($"xx - |${o.GetString("PT_PAGO")}|"$)
|
|
Private Pnl As B4XView = xui.CreatePanel("")
|
|
Pnl.SetLayoutAnimated(0, 0, 0, clv_resumenDia.AsView.Width, 52dip)
|
|
clv_resumenDia.Add(Pnl, 1)
|
|
Dim Pnl1 As B4XView = clv_resumenDia.GetPanel(n)
|
|
Pnl1.LoadLayout("resumenItem")
|
|
acomodaResItems
|
|
p_resItem.Tag = CreateMap("mesa":o.GetString("PT_MESA"), "ticket":o.GetString("PT_TICKET"), "formaPago":o.GetString("PT_PAGO2"), "propinaPago":o.GetString("PT_PAGO_PROPINA"), "almacen":o.GetString("PT_ALMACEN"), "pago":o.GetString("PT_MONTO"), "propina":o.GetString("PT_PROPINA"))
|
|
p_resItem.Width = clv_resumenDia.AsView.Width
|
|
p_resItem.Height = Pnl1.Height
|
|
l_mesa.Text = o.GetString("PT_MESA")
|
|
l_consumo.Text = "$" & NumberFormat2(o.GetString("PT_MONTO"), 1, 2, 2, True)
|
|
l_propina.Text = "$" & NumberFormat2(o.GetString("PT_PROPINA"), 1, 2, 2, True)
|
|
l_total.Text = "$" & NumberFormat2((o.GetString("PT_MONTO") + o.GetString("PT_PROPINA")), 1, 2, 2, True)
|
|
l_comprobante.Text = "NOTA"
|
|
If o.GetString("PT_FACTURAR") = "true" Then l_comprobante.Text = "FACTURA"
|
|
l_formaPago.Text = o.GetString("PT_PAGO2")
|
|
Select o.GetString("PT_PAGO_PROPINA")
|
|
Case "Mifel"
|
|
l_propinaPago.Text = "Mifel"
|
|
Case "Visa/Mastercard Debito"
|
|
l_propinaPago.Text = "Mifel Debito"
|
|
Case "Amex"
|
|
l_propinaPago.Text = "Amex"
|
|
Case "Efectivo"
|
|
l_propinaPago.Text = "Efectivo"
|
|
End Select
|
|
Log($"|${o.GetString("PT_PAGO_PROPINA")}|${l_propinaPago.Text}|"$)
|
|
' l_propinaPago.Text = o.GetString("PT_PAGO_PROPINA")
|
|
' If o.GetString("PT_PAGO2") = "null" Then l_formaPago.Text = "PENDIENTE"
|
|
n = n + 1
|
|
Loop
|
|
Private propAmex = "0", propMifel = "0", propMifelDebito = "0", propEfectivo = "0" As String
|
|
Private rt As ResultSet = Starter.skmt.ExecQuery($"Select sum(pt_monto) as ptMonto, sum(pt_propina) as ptPropina, * from pedido_ticket where pt_pago <> 'VENTA' and PT_PAGO <> 'MULTI-TICKET' group by pt_pago2"$) ' and (CASE WHEN PT_PAGO = 'EFECTIVO' and PT_ALMACEN = 'MULTI-TICKET' THEN false ELSE true END) - El "case" es para que en el efectivo NO cuente los tickets multi-tickets, porque esos son "Consumo de alimentos".
|
|
Private rtpa As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Amex' group by pt_pago_propina"$)
|
|
Do While rtpa.NextRow
|
|
propAmex = rtpa.GetString("ptPropina")
|
|
Loop
|
|
Private rtpmc As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Mifel' group by pt_pago_propina"$)
|
|
Do While rtpmc.NextRow
|
|
propMifel = rtpmc.GetString("ptPropina")
|
|
Loop
|
|
Log(propMifel)
|
|
' Private rtpmd As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Visa/Mastercard Debito XXX' group by pt_pago_propina"$)
|
|
' Do While rtpmd.NextRow
|
|
' propMifelDebito = rtpmd.GetString("ptPropina")
|
|
' Loop
|
|
Private rtpe As ResultSet = Starter.skmt.ExecQuery($"Select ifnull(sum(pt_propina),0) as ptPropina, * from pedido_ticket where pt_pago_propina = 'Efectivo' group by pt_pago_propina"$)
|
|
Do While rtpe.NextRow
|
|
propEfectivo = rtpe.GetString("ptPropina")
|
|
Loop
|
|
Log(rtpa.RowCount)
|
|
Private consumoTotales As String = 0
|
|
Private propinaTotales As String = 0
|
|
Private totalTotales As String = 0
|
|
Do While rt.NextRow
|
|
consumoTotales = consumoTotales + rt.GetString("ptMonto")
|
|
' propinaTotales = propinaTotales + rt.GetString("ptPropina")
|
|
totalTotales = totalTotales + rt.GetString("ptMonto") + rt.GetString("ptPropina")
|
|
If rt.GetString("PT_PAGO") = "EFECTIVO" Then
|
|
l_consumoEfectivo.Text = $"$${NumberFormat2(rt.GetString("ptMonto"), 1, 2, 2, True)}"$
|
|
' l_propinaEfectivo.Text = $"$${NumberFormat2(rt.GetString("ptPropina"), 1, 2, 2, True)}"$
|
|
l_totalEfectivo.Text = $"$${NumberFormat2((rt.GetString("ptMonto") + propEfectivo), 1, 2, 2, True)}"$
|
|
else if rt.GetString("PT_PAGO2") = "Amex" Then
|
|
l_consumoAmex.Text = $"$${NumberFormat2(rt.GetString("ptMonto"), 1, 2, 2, True)}"$
|
|
' l_propinaAmex.Text = $"$${NumberFormat2(rt.GetString("ptPropina"), 1, 2, 2, True)}"$
|
|
l_totalAmex.Text = $"$${NumberFormat2((rt.GetString("ptMonto") + propAmex), 1, 2, 2, True)}"$
|
|
else if rt.GetString("PT_PAGO2") = "Mifel" Then
|
|
l_consumoTDC.Text = $"$${NumberFormat2(rt.GetString("ptMonto"), 1, 2, 2, True)}"$
|
|
' l_propinaTDC.Text = $"$${NumberFormat2(rt.GetString("ptPropina"), 1, 2, 2, True)}"$
|
|
l_totalTDC.Text = $"$${NumberFormat2((rt.GetString("ptMonto") + propMifel), 1, 2, 2, True)}"$
|
|
else if rt.GetString("PT_PAGO2") = "Visa/Mastercard Debito" Then
|
|
l_consumoTDD.Text = $"$${NumberFormat2(rt.GetString("ptMonto"), 1, 2, 2, True)}"$
|
|
' l_propinaTDD.Text = $"$${NumberFormat2(rt.GetString("ptPropina"), 1, 2, 2, True)}"$
|
|
l_totalTDD.Text = $"$${NumberFormat2((rt.GetString("ptMonto") + propMifelDebito), 1, 2, 2, True)}"$
|
|
End If
|
|
Loop
|
|
l_propinaAmex.Text = $"$${NumberFormat2(propAmex, 1, 2, 2, True)}"$
|
|
l_propinaTDC.Text = $"$${NumberFormat2(propMifel, 1, 2, 2, True)}"$
|
|
l_propinaEfectivo.Text = $"$${NumberFormat2(propEfectivo, 1, 2, 2, True)}"$
|
|
propinaTotales = propAmex + propMifel + propMifelDebito + propEfectivo
|
|
l_consumoTotal.Text = "$" & NumberFormat2(consumoTotales, 1, 2, 2, True)
|
|
l_propinaTotal.Text = "$" & NumberFormat2(propinaTotales, 1, 2, 2, True)
|
|
l_totalTotal.Text = "$" & NumberFormat2(totalTotales, 1, 2, 2, True)
|
|
End Sub
|
|
|
|
Sub acomodaResItems
|
|
l_mesa.Width = clv_resumenDia.AsView.Width * 0.1
|
|
l_titResMesa.Left = l_mesa.left + 10dip : l_titResMesa.width = l_mesa.Width
|
|
l_consumo.Width = clv_resumenDia.AsView.Width * 0.15
|
|
l_consumo.Left = l_mesa.Left + l_mesa.Width + 1
|
|
l_titResConsumo.Left = l_consumo.left + 10dip : l_titResConsumo.width = l_consumo.Width
|
|
l_propina.Width = clv_resumenDia.AsView.Width * 0.15
|
|
l_propina.Left = l_consumo.Left + l_consumo.Width + 1
|
|
l_propinaPago.Left = l_propina.Left + l_propina.Width + 1
|
|
l_titResPropina.Left = l_propina.left + 10dip : l_titResPropina.width = l_propina.Width
|
|
l_titResPropinaPago.Left = l_propinaPago.left + 10dip : l_titResPropinaPago.width = l_propinaPago.Width
|
|
l_total.Width = clv_resumenDia.AsView.Width * 0.15
|
|
l_total.Left = l_propinaPago.Left + l_propinaPago.Width + 1
|
|
l_titResPagoTot.Left = l_total.left + 10dip : l_titResPagoTot.width = l_total.Width
|
|
l_comprobante.Width = clv_resumenDia.AsView.Width * 0.15
|
|
l_comprobante.Left = l_total.Left + l_total.Width + 1
|
|
l_titResComprobante.Left = l_comprobante.left + 10dip : l_titResComprobante.width = l_comprobante.Width
|
|
l_formaPago.Width = clv_resumenDia.AsView.Width * 0.17
|
|
l_formaPago.Left = l_comprobante.Left + l_comprobante.Width + 1
|
|
l_titResFormaPago.Left = l_formaPago.left + 10dip : l_titResFormaPago.width = l_formaPago.Width
|
|
End Sub
|
|
|
|
Private Sub cb_factura_CheckedChange(Checked As Boolean)
|
|
Starter.ticketFactura = Checked
|
|
If Checked Then
|
|
Log(222)
|
|
cb_leyendaDescuento.Checked = False
|
|
cb_mostrarDescuento.Checked = False
|
|
cb_leyendaDescuento.Enabled = False
|
|
cb_mostrarDescuento.Enabled = False
|
|
Else
|
|
Log(333)
|
|
cb_leyendaDescuento.Enabled = True
|
|
cb_mostrarDescuento.Enabled = True
|
|
End If
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_FACTURAR = '${Checked}' where PT_TICKET = '${Starter.ticketActual}' and PT_MESA = '${Starter.mesaActual}' and PT_PAGO = 'VENTA'"$)
|
|
End Sub
|
|
|
|
Private Sub p_resumenDia_Click
|
|
|
|
End Sub
|
|
|
|
Private Sub p_resItem_Click
|
|
Log(Sender.As(Panel).tag)
|
|
p_contScrollView.BringToFront
|
|
End Sub
|
|
|
|
Private Sub p_resItem_LongClick
|
|
Log(Sender.As(Panel).tag)
|
|
cambioPago = Sender.As(Panel).tag.As(Map).Get("formaPago")
|
|
cambioPagoPropina = Sender.As(Panel).tag.As(Map).Get("propinaPago")
|
|
If cambioPagoPropina = "" Then cambioPagoPropina = "Efectivo"
|
|
cb_nuevoPago.SelectedIndex = cb_nuevoPago.IndexOf(cambioPago)
|
|
cb_nuevoPagoPropina.SelectedIndex = cb_nuevoPagoPropina.IndexOf(cambioPagoPropina)
|
|
et_nuevoPago.Text = Sender.As(Panel).tag.As(Map).Get("pago")
|
|
et_nuevoPagoPropina.Text = Sender.As(Panel).tag.As(Map).Get("propina")
|
|
Log($"${cb_nuevoPago.IndexOf(cambioPago)}, ${cb_nuevoPagoPropina.IndexOf(cambioPagoPropina)}"$)
|
|
b_cambioPagos.Tag = Sender.As(Panel).tag
|
|
p_transparenteCambioPagos.Top = 0 : p_transparenteCambioPagos.left = 0
|
|
p_transparenteCambioPagos.Width = Activity.Width : p_transparenteCambioPagos.Height = Activity.height
|
|
Subs.centraBoton(b_cambioPagos, p_cambioPagos.Width)
|
|
Subs.centraPanel(p_cambioPagos, Activity.Width)
|
|
p_transparenteCambioPagos.Visible = True
|
|
End Sub
|
|
|
|
Private Sub b_cambioPagos_Click
|
|
p_transparenteCambioPagos.Visible = False
|
|
Log(Sender.As(Button).tag)
|
|
Private m As Map = Sender.As(Button).tag
|
|
Private alm As String = m.Get("almacen")
|
|
If alm = "null" Then alm = ""
|
|
Log("|" & alm & "|")
|
|
If alm = "MULTI-TICKET" Then
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_MONTO = '${et_nuevoPago.text}', PT_PROPINA = '${et_nuevoPagoPropina.text}', PT_PAGO_PROPINA = '${cambioPagoPropina}', PT_PAGO2 = '${cambioPago}' where PT_MESA = '${m.Get("mesa")}' and PT_TICKET = '${m.Get("ticket")}'"$)
|
|
Log($"update PEDIDO_TICKET set PT_PAGO_PROPINA = '${cambioPagoPropina}', PT_PAGO2 = '${cambioPago}' where PT_MESA = '${m.Get("mesa")}' and PT_TICKET = '${m.Get("ticket")}''"$)
|
|
Else
|
|
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO_PROPINA = '${cambioPagoPropina}', PT_PAGO2 = '${cambioPago}', PT_TARJETA = '${cambioPago}' where PT_MESA = '${m.Get("mesa")}' and PT_TICKET = '${m.Get("ticket")}'"$)
|
|
Log($"update PEDIDO_TICKET set PT_PAGO_PROPINA = '${cambioPagoPropina}', PT_PAGO2 = '${cambioPago}', PT_TARJETA = '${cambioPago}' where PT_MESA = '${m.Get("mesa")}' and PT_TICKET = '${m.Get("ticket")}'"$)
|
|
End If
|
|
b_resumen_Click
|
|
End Sub
|
|
|
|
Private Sub b_reimprimirTicket_Click
|
|
Log(Starter.mesaActual)
|
|
' b_leyendaDescuento_Click
|
|
Private tm As Map = CreateMap("ticket":Starter.ticketActual, "pago":Starter.tipov)
|
|
listaTickets.Initialize
|
|
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
|
|
imprimirEfectivo = True
|
|
b_leyendaDescuento_Click
|
|
End Sub
|
|
|
|
Private Sub cb_nuevoPagoPropina_SelectedIndexChanged (Index As Int)
|
|
cambioPagoPropina = cb_nuevoPagoPropina.SelectedItem
|
|
End Sub
|
|
|
|
Private Sub cb_nuevoPago_SelectedIndexChanged (Index As Int)
|
|
cambioPago = cb_nuevoPago.SelectedItem
|
|
End Sub
|
|
|
|
Private Sub p_transparenteCambioPagos_Click
|
|
p_transparenteCambioPagos.Visible = False
|
|
End Sub
|
|
|
|
Sub p_contScrollView_Click
|
|
p_contScrollView.BringToFront
|
|
Log("p_contScrollView TO FRONT")
|
|
End Sub
|
|
|
|
Sub p_resumenDiaTotales_Click
|
|
p_resumenDiaTotales.BringToFront
|
|
Log("p_resumenDiaTotales TO FRONT")
|
|
End Sub
|
|
|
|
Sub sftp1_PromptYesNo (Message As String)
|
|
'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
sftp1.SetPromptResult(True)
|
|
End Sub
|
|
|
|
Sub sftp1_ShowMessage (Message As String)
|
|
'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
Msgbox(Message, "")
|
|
End Sub
|
|
|
|
Sub sftp1_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
|
|
'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
Dim s As String
|
|
s = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
|
|
If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
|
|
Log(s)
|
|
End Sub
|
|
|
|
Sub sftp1_UploadCompleted (ServerPath As String, Success As Boolean)
|
|
'Requiere la libreria "JSch" (https://www.b4x.com/android/forum/threads/android-sftp-based-on-jsch-tutorial.26994/) para SFTP.
|
|
Log(ServerPath & ", Success=" & Success)
|
|
If Success = False Then Log(LastException.Message)
|
|
End Sub
|
|
|