Files
Lanterna/B4A/C_Principal.bas
Jose Alberto Guerra Ugalde a6e77b99a4 - Se agregó multi-ticket al cerrar la mesa
- Se agregó la impresion del resumen de platillos vendidos en click largo de impresion en Cierre Total
2024-03-06 05:52:05 -06:00

2292 lines
106 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.2
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Private p_principal As Panel
Private WobbleMenu1 As WobbleMenu
Dim PCLV, PCLVM As PreoptimizedCLV
Private p_meseros As Panel
Private clv_prods_ll, clv As CustomListView
Dim prodsMap As Map
' Private p_botonesVenta As Panel
Private b_continuar As Button
Private l_inventarios As Label
' Private et_busca As EditText
' Private b_buscar As Button
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
' 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
Dim reqManager As DBRequestManager
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
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 su As StringUtils
Dim cs As CSBuilder
Dim impresoraConectada As Boolean = False
Dim errorImpresora As Int = 0
Dim Printer1 As EscPosPrinter
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 tipoPago As String = "VENTA"
Dim n2t As numeroATexto
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
Dim listaFormasDePagoCB, listaFormaDePago, listaMontoDePago, listaTickets As List
Private l_tipoPago As Label
Private formaPago As String
Private l_faltaMonto As Label
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("principal")
' p_principal.Width = Root.Width
' p_principal.Height = Root.Height
Subs.panelWH(p_principal, Root.Width, Root.Height)
Subs.panelWH(p_mesa, Root.Width, Root.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,"Inventario", Chr(0xF16B), Typeface.FONTAWESOME)
WobbleMenu1.SetTabTextIcon(3,"Ordenes", Chr(0xF155), Typeface.FONTAWESOME)
' WobbleMenu1.SetTabTextIcon(5,"Cinco", Chr(0xF29D), Typeface.FONTAWESOME)
p_principal.Width = Root.Width
p_principal.Height = Root.Height
clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width - 20, Root.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, 5dip, 80dip, Root.Width - 20, Root.Height * 0.80) '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.
p_meseros.Width = Root.Width
p_meseros.Height = Root.Height - WobbleMenu1.Height
p_mesas.Width = Root.Width
p_mesaAbierta.Height = Root.Height : p_mesaAbierta.width = Root.width
p_mesas.Height = Root.Height - WobbleMenu1.Height
p_historial.Width = Root.Width
p_historial.Height = Root.Height - WobbleMenu1.Height
Subs.centraPanel(p_cambioMesa, p_transparenteCambioMesa.Width)
p_transparenteCambioMesa.Top = 0 : p_transparenteCambioMesa.Left = 0
p_transparenteCambioMesa.Height = Root.Height : p_transparenteCambioMesa.width = Root.width
Subs.panelWH(p_transparenteCierreAdmin, Root.Width, Root.Height)
p_transparenteCierreAdmin.Top = 0 : p_transparenteCierreAdmin.left = 0
Subs.panelWH(p_transparenteResumen, Root.Width, Root.Height)
Subs.panelWH(p_transparentePago, Root.Width, Root.Height)
p_transparentePago.Top = 0 : p_transparentePago.left = 0
sv_resumen.Panel.LoadLayout("resumenCont")
Subs.centraEtiqueta(l_pago, p_pago.Width)
Subs.centraPanel(p_propina, p_pago.Width)
Subs.centraBoton(b_pagoCerrar, p_pago.Width)
Dim cs As CSBuilder
cs.Initialize
l_inicioDia.Text = cs.append("Para iniciar día, ingrese el texto ").bold.Append("INICIO DIA").Pop.Append(" y la tecla ").Bold.Append("Retorno").Pop.Append(" del teclado.").Color(Colors.red).Append(" Los datos del día anterior se borraran.").Popall
' p_botonesVenta.Top = Root.Height - p_botonesVenta.Height - WobbleMenu1.Height + 10
Subs.centraPanel(p_pago, p_mesaAbierta.Width)
Subs.centraBoton(b_abrirMesa, Root.Width)
p_botonesProds.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height + 15dip ' - b_mesaCerrar.Height
Subs.centraPanel(p_botonesProds, p_mesaAbierta.Width)
Subs.centraPanel(p_mesaCampos, Root.Width)
Subs.centraPanel(p_mesaAbierta, Root.Width)
lv_historial.Height = Root.Height * 0.7
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
p_mesas.Width = Root.Width
Subs.panelVisible(p_mesas, 0, 0)
cb_comensales.SetItems(Array As String(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20))
' cb_pago.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo"))
cb_pagoPropina.SetItems(Array As String("Tarjeta", "Efectivo"))
cb_mesero.SetItems(Subs.traeMeserosLista)
Private lasCats As List = Subs.traeCategorias
lv_categorias.Color = Colors.White
lv_categorias.Top = l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5
lv_categorias.Height = Root.Height * 0.55
Private Label1 As Label = lv_categorias.SingleLineLayout.Label
Label1.TextSize = 9dip
Label1.TextColor = Colors.Black
For cat = 0 To lasCats.Size - 1
lv_categorias.AddSingleLine(lasCats.get(cat))
Next
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 B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then Log("Tenemos permisos de bluetooth.")
Log($"Resultado del CheckAndRequest: ${Result}"$)
End Sub
Sub B4XPage_Appear
Starter.imprimirTicket = False
reqManager.Initialize(Me, Starter.DBReqServer)
B4XPages.MainPage.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 = Root.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 = Root.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_meseros.Height = Root.Height - WobbleMenu1.Height
If p_mesas.Visible And Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
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
End Sub
Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
'Return True to close, False to cancel
If p_renombraVarios.Visible Then
p_renombraVarios.Visible = False
Else If p_transparenteCambioMesa.Visible Then
p_transparenteCambioMesa.Visible = False
Else If p_transparentePago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos.
' p_pago.Visible = False
p_transparentePago.Visible = False
Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los
clv_prods_ll.AsView.Visible = False
lv_categorias.Visible = True
else If p_mesa.Visible Then
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
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 = 3 Or WobbleMenu1.GetCurrentTab = 2 Then
WobbleMenu1.SetCurrentTab(1)
WobbleMenu1_Tab1Click
else if WobbleMenu1.GetCurrentTab = 1 Then
B4XPages.ShowPage("Login")
End If
Return False
End Sub
Sub b_prodMenos_Click
etCantHasFocus = False
clv = clv_prods_ll
' 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 = 3 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 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)
Subs.actualizaProducto(precio, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
cuentaProds
Dim cs As CSBuilder
cs.Initialize
If WobbleMenu1.GetCurrentTab = 3 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_prods_ll
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 = 3 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 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
Subs.actualizaProducto(precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales)
cuentaProds
Dim cs As CSBuilder
cs.Initialize
If WobbleMenu1.GetCurrentTab = 3 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)
' p_botonesVenta.Visible = True
' p_botonesVenta.BringToFront
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 <> '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 = 3 Then LlenaProdsLL(Null, Null)
If Subs.hayPedido Then WobbleMenu1.SetBadge(3, p.GetString("ordenes"), Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(3)
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.
' Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' 'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes.
' If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = 'DUR'"$)
' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
' Do While pe.NextRow
' Private cant As Int = 0
' cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANT"))
' Loop
' pe.Close
Private c As Cursor = Starter.skmt.ExecQuery($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG, PE_PROID, PE_CANT, PE_PRONOMBRE, PE_COSTOU from cat_gunaprod join pedido on cat_gp_id = Pe_proid where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
' If hayPedido And cantsMap.ContainsKey(c.GetString("CAT_GP_ID")) Then cant = cantsMap.Get(p.GetString("CAT_GP_ID")) 'Agregamos la cantidad ya comprada al producto
Dim tempMap As Map = CreateMap("prod":c.GetString("PE_PRONOMBRE"), "precio":c.GetString("PE_COSTOU"), "almacen":c.GetString("CAT_GP_ALMACEN"), "id":c.GetString("CAT_GP_ID"), "cant":c.GetString("PE_CANT"), "img":Null)
listaProdsConCant2.Add(tempMap)
listaProdsConCantIndex2.Add(c.GetString("CAT_GP_ID"))
' listaProdsConCant2.Add(tempMap)
' listaProdsConCantIndex2.Add(i)
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
' Private listaProdsConCant2, listaProdsConCantIndex2 As List
' listaProdsConCant2.Initialize
' listaProdsConCantIndex2.Initialize
Do While p.NextRow
Private cant As Int = 0
' Dim ins As InputStream
' Dim bmp As Bitmap
' Dim jpeg() As Byte
' jpeg = p.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
' 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)
' listaProdsConCant2.Add(tempMap)
' listaProdsConCantIndex2.Add(cont)
' cont = cont + 1
' 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 listaProdsConCant, listaProdsConCantIndex As List
' listaProdsConCant.Initialize
' listaProdsConCantIndex.Initialize
' listaHints.Initialize
' Log(listaProds)
' For q = 0 To listaProds.Size - 1' Sacamos los productos con cantidad previa.
' If listaProds.Get(q).As(Map).Get("cant").As(Int) <> 0 Then
'' Log(listaProds.Get(q).As(Map).Get("prod"))
' listaProdsConCant.Add(listaProds.Get(q))
' listaProdsConCantIndex.Add(q)
' End If
' Next
' Log("PRODCONCANT: " & listaProdsConCant)
' Log(listaProdsConCantIndex)
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, 70dip)
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)
'' Log("LISTAPRODS.SIZE=" & listaProds.Size)
For pr = 0 To listaProds.Size - 1
' If listaProdsConCantIndex.IndexOf(pr) = -1 Then
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, 70dip)
' Log(listaProds.Get(pr))
' 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
' 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)
' Private inicioContador As String = DateTime.Now
' 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_botMasMen.Left = (p_prods.Width * 0.66) - (p_botMasMen.Width / 2)
p_prods.Width = clv_prods_ll.GetBase.Width ' Root.Width * 0.99
' p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5)
'Las siguientes lineas son para que en altas resoluciones (520dp) los botones no se salgan de la pantalla.
' Private botsLeft As Int
' If GetDeviceLayoutValues.Scale > 1.7 Then '411 = 1.75
' botsLeft = p_botMasMen.Width * 0.25
' Else if GetDeviceLayoutValues.Scale > 1.3 Then '520 = 1.38
' botsLeft = p_botMasMen.Width * 0.6
' Else if GetDeviceLayoutValues.Scale > 1.15 Then '620 = 1.156
' botsLeft = p_botMasMen.Width
' End If
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"))
' Private rs_img As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_IMG from cat_gunaprod where CAT_GP_ID = '${clv_prods_ll.GetValue(i).As(Map).Get("id")}'"$)
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
' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - FirstIndex
' 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 = Root.Width
'' p_vistaPreviaTrans.Height = Root.Height
'' Subs.centraPanel(p_vistaPrevia, Root.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
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
LlenaMesas(Null, Null)
' LlenaProdsLL(Null, Null)
Subs.panelVisible(p_mesas, 0, 0)
PCLVM.B4XSeekBar1.mBase.Visible = True
' PCLV.B4XSeekBar1.mBase.Visible = False
p_meseros.Visible = False
' p_carrito.Visible = False
p_historial.Visible = False
p_mesa.Visible = False
p_transparenteResumen.Visible = False
End Sub
Private Sub WobbleMenu1_Tab2Click
LlenaProdsLL(Null, Null)
' PCLVM.B4XSeekBar1.mBase.Visible = False
' PCLV.B4XSeekBar1.mBase.BringToFront
' PCLV.B4XSeekBar1.mBase.Visible = True
Subs.panelVisible(p_meseros, 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
End Sub
Private Sub WobbleMenu1_Tab3Click
Subs.panelVisible(p_historial, 0, 0)
p_meseros.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_Tab4Click
' PCLVM.B4XSeekBar1.mBase.Visible = False
' PCLV.B4XSeekBar1.mBase.Visible = False
' Subs.panelVisible(p_carrito, 0, 0)
' p_carrito.BringToFront
'' p_carrito.BringToFront
' p_meseros.Visible = False
' p_mesas.Visible = False
' p_historial.Visible = False
' l_carritoVacio.Visible = False
' l_compraTerminada.Visible = False
' p_mesa.Visible = False
' llenaCarrito
' If clv_carrito.Size > 0 Then p_botonesCarrito.Visible = True Else p_botonesCarrito.Visible = False
'End Sub
Private Sub b_continuar_Click
WobbleMenu1.SetCurrentTab(2)
End Sub
'Private Sub p_botonesVenta_Click
'
'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 * 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)
lv_historial.AddTwoLines(cs.Color(elColor).Append("Orden: " & rs_hist.GetString("PT_TICKET") & " - Mesa: " & rs_hist.GetString("PT_MESA")).PopAll, $"Fecha: ${fecha}, Productos: ${rs_hist.GetString("PT_NOART")}, Total: $${NumberFormat2(rs_hist.GetString("PT_MONTO"), 1, 2, 2, True)}"$)
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}, ${Root.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 lv_historial_ItemClick (Position As Int, Value As Object)
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")
p_mesasItem.Width = Root.Width * 0.99
Private cs As CSBuilder
cs.Initialize
l_mesaX.SetTextSizeAnimated(0, 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("id")}"$).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("id")}"$).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 <> 'VENTA'")
o.Position = 0
If o.GetInt("ordenes") > 0 Then WobbleMenu1.SetBadge(3, o.GetInt("ordenes"), Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(3)
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"$)
' 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
' clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width, Root.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.
' Log(p_prods.Width)
' p_prods.Width = clv_prods_ll.GetBase.Width
' clv_prods_ll.Base_Resize(400,Root.Height)
listaFormasDePagoCB.Initialize
listaFormaDePago.Initialize
listaMontoDePago.Initialize
listaTickets.Initialize
Starter.formasDePago = 1
tipoPago = "VENTA"
clv_prods_ll.AsView.Visible = False
lv_categorias.Visible = True
' 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_mesa.Text = $"MESA NO. ${m.Get("id")}"$
' 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
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")
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
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}'"$)
Log($"update CAT_MESAS set M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$)
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
p_formasDePago.Height = 40dip
p_propina.Top = 133dip
b_pagoCerrar.Top = 263dip
p_pago.Height = 320dip
p_formasDePago.RemoveAllViews
Private c As Cursor = Starter.skmt.ExecQuery($"select PE_MESA from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
If c.RowCount > 0 Then
Log(Sender.As(Button).tag)
p_transparentePago.Visible = True
p_transparentePago.BringToFront
agregaFormaDePago(l_tipoPago.Left, 0, Starter.formasDePago)
et_montoPago2.Text = Starter.totalActual
et_propina.Text = ""
et_montoPago2.Text = Starter.totalActual
' p_pago.Elevation = 100dip
' p_pago.BringToFront
' p_pago.Visible = True
Else
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$)
B4XPage_CloseRequest
End If
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")
lv_categorias.Visible = False
clv_prods_ll.AsView.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}' order by CAT_GP_NOMBRE"$)
LlenaProdsLL(c, Null)
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
' p_pago.Visible = False
listaTickets.Initialize
p_transparentePago.Visible = False
Log("###################### " & listaFormasDePagoCB.Size)
If listaFormasDePagoCB.Size > 1 Then
Log(">>>>>>>> VARIOS PAGOS")
Private sigTicketMT As String = Subs.traeConsecutivoTicket("CERRADA", "MULTI-TICKET")
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = 'MULTI-TICKET', PE_TICKET = '${sigTicketMT}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'MULTI-TICKET', PT_TICKET = '${sigTicketMT}', PT_PROPINA = '0', PT_PAGO_PROPINA = '0' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$) 'Reseteamos la mesa a cerrada.
For fdp = 0 To listaFormasDePagoCB.Size - 1
formaPago = listaFormaDePago.Get(fdp)
If formaPago = "Efectivo" Then
tipoPago = "EFECTIVO"
Else
'Pago con tarjeta
tipoPago = "TARJETA"
End If
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago)
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago))
Private laPropina As String = "0"
If et_propina.Text <> "" Then
laPropina = et_propina.Text
End If
Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales))
' Log(tipoPago)
Starter.ticketActual = sigTicket
Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago)
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
Next
Else
Log(">>>>>>>> UN SOLO PAGO")
formaPago = listaFormaDePago.Get(0)
If formaPago = "Efectivo" Then
tipoPago = "EFECTIVO"
Else
'Pago con tarjeta
tipoPago = "TARJETA"
End If
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago)
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Private laPropina As String = "0"
If et_propina.Text <> "" Then
laPropina = et_propina.Text
End If
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${formaPago}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
' Log(tipoPago)
Starter.ticketActual = sigTicket
Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago)
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
End If
b_imprimirTicket_Click
Sleep(1000)
WobbleMenu1_Tab1Click
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'"$)
Log(c.RowCount)
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
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_LongClick
Log("click")
sv_resumen.Panel.Height = p_resumen.Height
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 tipo = "Pago Efectivo "
If mesaAnt <> c.GetString("PE_MESA") Then cs.Color(Colors.red).Append("Mesa " & c.GetString("PE_MESA") & CRLF).pop
If tipoAnt <> c.GetString("PE_TIPO") Then cs.Color(Colors.red).Append(" * " & tipo & CRLF).pop
cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
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_cierreTotal_Click
Log("click")
sv_resumen.Panel.Height = p_resumen.Height
cs.Initialize
' Log(l_resumen.text)
Private m As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
' Log(m.RowCount)
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.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
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
Private imprimirAqui As Boolean = Starter.imprimirTicket
Private sDate, sTime As String
Private c As Cursor
sv_resumen.Panel.Height = p_resumen.Height
cs.Initialize
Private l_total, la_cuenta As Label
l_total.Initialize("l")
la_cuenta.Initialize("2")
b_imp.Enabled = False
ProgressDialogShow("Imprimiendo, un momento ...")
If imprimirAqui Then
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
If Starter.logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
If Starter.logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
Printer1.Reset
End If
Dim bmp As Bitmap
bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
myimage = Printer1.DitherImage2D(myimage, 128)
myimage= Printer1.PackImage(myimage)
If imprimirAqui Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
If imprimirAqui Then Printer1.WriteString(Printer1.REVERSE)
If imprimirAqui Then Printer1.PrintImage(myimage)
If imprimirAqui Then Printer1.WriteString(Printer1.UNREVERSE)
Try
DateTime.DateFormat = "yyyymmdd"
sDate = DateTime.Date(DateTime.Now)
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
DateTime.DateFormat = "MM/dd/yyyy"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
Log(c.RowCount)
If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ...
Private c As Cursor = Starter.skmt.ExecQuery("select 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
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.red).Append($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$).pop
If imprimirAqui Then Printer1.WriteString($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$)
Private tipoAnt As String = ""
End If
If tipoAnt <> c.GetString("PE_TIPO") 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.green).Append($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall
If imprimirAqui Then Printer1.WriteString($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$)
cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall
If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$)
l_resumen.Text = cs
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
sv_resumen.Panel.Height = l_resumen.Height
End If
Subs.panelVisible(p_transparenteResumen, 0, 0)
Else
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
End If
' 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")
End Try
Sleep(1000)
b_imp.Enabled = True
ProgressDialogHide
End Sub
Sub b_imp_LongClick
Private imprimirAqui As Boolean = Starter.imprimirTicket
Private sDate, sTime As String
Private c As Cursor
sv_resumen.Panel.Height = p_resumen.Height
cs.Initialize
Private l_total, la_cuenta As Label
l_total.Initialize("l")
la_cuenta.Initialize("2")
b_imp.Enabled = False
ProgressDialogShow("Imprimiendo, un momento ...")
If imprimirAqui Then
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
If Starter.logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
If Starter.logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
Printer1.Reset
End If
' Dim bmp As Bitmap
' bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore
' Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
' myimage = Printer1.DitherImage2D(myimage, 128)
' myimage= Printer1.PackImage(myimage)
' If imprimirAqui Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
' If imprimirAqui Then Printer1.WriteString(Printer1.REVERSE)
' If imprimirAqui Then Printer1.PrintImage(myimage)
' If imprimirAqui Then Printer1.WriteString(Printer1.UNREVERSE)
Try
DateTime.DateFormat = "yyyymmdd"
sDate = DateTime.Date(DateTime.Now)
If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF)
DateTime.DateFormat = "MM/dd/yyyy"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
Log(c.RowCount)
If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ...
Private c As Cursor = Starter.skmt.ExecQuery("select distinct CAT_GP_CLASIF, PE_PRONOMBRE, sum(pe_cant) as cuantos from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by PE_PRONOMBRE order by CAT_GP_CLASIF, PE_PRONOMBRE")
If c.RowCount > 0 Then
c.Position = 0
Private catAnt As String = ""
Private catTotal As String = 0
' Private tipoAnt As String = ""
' Private tipo As String
' Private ticket As String
If imprimirAqui Then Printer1.WriteString($"Fecha: ${sDate} ${sTime} ${CRLF}${CRLF}"$)
For i = 0 To 30 ' c.RowCount - 1
c.Position = i
' ticket = c.GetString("PE_TICKET")
' If c.GetString("PE_TIPO") = "TARJETA" Then
' tipo = "Pago Tarjeta "
' Else If c.GetString("PE_TIPO") = "EFECTIVO" Then
' tipo = "Pago Efectivo "
' End If
' Log($"${catAnt} - ${c.GetString("CAT_GP_CLASIF")}"$)
If catAnt <> c.GetString("CAT_GP_CLASIF") Then
' Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO <> 'MULTI-TICKET'"$)
If catAnt <> "" Then
cs.Color(Colors.Green).Append($"Total ${catAnt}: ${catTotal}${CRLF}"$).pop
If imprimirAqui Then
Printer1.WriteString(Printer1.BOLD)
Printer1.WriteString($"Total ${catAnt}: ${catTotal}${CRLF}${CRLF}"$)
Printer1.WriteString(Printer1.NOBOLD)
End If
Log($">>>>>>> CAT TOTAL ${catAnt}: ${catTotal}"$ )
End If
' tm.Position = 0
cs.Color(Colors.red).Append($"** ${c.GetString("CAT_GP_CLASIF")} **${CRLF}"$).pop
Printer1.WriteString(Printer1.BOLD)
If imprimirAqui Then Printer1.WriteString($"** ${c.GetString("CAT_GP_CLASIF")} **${CRLF}"$)
Printer1.WriteString(Printer1.NOBOLD)
Private tipoAnt As String = ""
catTotal = 0
End If
Private elNombre As String = c.GetString("PE_PRONOMBRE")
If elNombre.Length > 28 Then elNombre = elNombre.SubString2(0, 28)
Log($"${elNombre.Length} - ${elNombre}"$)
' If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
' Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
cs.Color(Colors.DarkGray).Append($"${elNombre} - ${c.GetString("cuantos")} ${CRLF}"$).pop
If imprimirAqui Then Printer1.WriteString($"${elNombre}${Subs.alineaDerecha(c.GetString("cuantos"), (31 - elNombre.Length), ".")} ${CRLF}"$)
catTotal = catTotal + c.GetString("cuantos")
Private tipoAnt As String = ""
' If tipoAnt <> c.GetString("PE_TIPO") And c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
' Private tpt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalTipo from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO = '${c.GetString("PE_TIPO")}'"$)
' tpt.Position = 0
' cs.Color(Colors.red).Append($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$).pop
' If imprimirAqui Then Printer1.WriteString($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$)
' End If
' If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
' cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
' If imprimirAqui Then Printer1.WriteString($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$)
' End If
catAnt = c.GetString("CAT_GP_CLASIF")
' tipoAnt = c.GetString("PE_TIPO")
Next
If imprimirAqui Then Printer1.WriteString(CRLF)
' Private tt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'TARJETA'"$)
' Private te As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$)
' tt.Position = 0 : te.Position = 0
' Private totalEfectivo As String = 0
' If te.GetString("total") <> Null Then totalEfectivo = te.GetString("total")
' cs.color(Colors.green).Append($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall
' If imprimirAqui Then Printer1.WriteString($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$)
' cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall
' If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$)
l_resumen.Text = cs
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
sv_resumen.Panel.Height = l_resumen.Height
End If
Subs.panelVisible(p_transparenteResumen, 0, 0)
Else
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
End If
Sleep(1000)
Printer1.DisConnect
Catch
ToastMessageShow("Error en la impresion 2.", True)
Printer1.Disconnect
B4XPages.ShowPage("Principal")
End Try
Sleep(1000)
b_imp.Enabled = True
ProgressDialogHide
End Sub
Sub b_imp_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 = "MM/dd/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 = "MM/dd/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")
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 = "insertPedidos_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"))
' 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_FACTURA")}"$)
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 = "insertPedido_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"), "") '
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)
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
ProgressDialogHide
p_transparenteResumen.Visible = False
Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_TIPO = 'EFECTIVO'"$)
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$)
llenaHistorial
Log(">>>>> ENVIO TERMINADO")
ToastMessageShow("¡Envío terminado!", False)
End If
If reqManager.errorList.Size > 0 Then Log(">>>>> ERRORES - " & reqManager.errorList)
Job.Release
End Sub
Private Sub b_regresarProds_Click
WobbleMenu1_Tab1Click
End Sub
Sub imprimeTicket (ticket As String, pago As String) As ResumableSub
Starter.ticketActual = ticket
tipoPago = pago
b_imprimirTicket_Click
End Sub
Private Sub b_imprimirTicket_Click
Private imprimirEste As Boolean = Starter.imprimirTicket
' Log(imprimirEste)
Private logger As Boolean = True
Private TAMANO As Int
Private ESPACIO As Int
Private BLANCO As String
Private c, s As Cursor
Private l_total, la_cuenta As Label
l_total.Initialize("l")
la_cuenta.Initialize("2")
b_imp.Enabled = False
' If l_total.Text <> Null And l_total.Text <> "null" Then Subs.ponImpreso(la_cuenta.Text) 'Solo lo marcamos como impreso si tiene venta (total > 0).
ProgressDialogShow("Imprimiendo, un momento ...")
If imprimirEste Then
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
If Starter.logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
If Starter.logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
End If
DateTime.DateFormat = "MM/dd/yyyy"
Private sDate,sTime As String
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)
For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticlet.
LogColor($">>>>>> INICIA IMPRESION DE TICKET ${listaTickets.Get(k).As(Map).Get("ticket")} <<<<<<<<<<<<"$, Colors.Red)
Starter.ticketActual = listaTickets.Get(k).As(Map).Get("ticket")
tipoPago = listaTickets.Get(k).As(Map).Get("pago")
Try
If imprimirEste Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
If imprimirEste Then Printer1.WriteString(Printer1.REVERSE)
If imprimirEste Then Printer1.PrintImage(myimage)
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
If imprimirEste Then Printer1.WriteString("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF)
If logger Then Log("RESTAURANTE Y COCINA ITALIANA PEVEL" & CRLF)
If imprimirEste Then Printer1.WriteString("RFC: RCI230918DAA " & CRLF)
If logger Then Log("RFC: RCI230918DAA" & CRLF)
If imprimirEste Then Printer1.WriteString("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF)
If logger Then Log("REG FSC: GENERAL DE LEY DE PERSONAS MORALES" & CRLF)
If imprimirEste Then Printer1.WriteString("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF)
If logger Then Log("DOM FSC: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF)
If imprimirEste Then Printer1.WriteString("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF)
If logger Then Log("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF)
If imprimirEste Then Printer1.WriteString("TEL: 55 5207 9969" & CRLF)
If logger Then Log("TEL: 55 5207 9969" & CRLF)
If imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF)
If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF)
If imprimirEste Then Printer1.WriteString("CDMX " & sDate &" " & sTime & CRLF)
If logger Then Log("CDMX " & sDate &" " & sTime & CRLF)
If imprimirEste Then Printer1.WriteString($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)}${Printer1.BOLD} # Mesa${CRLF}"$)
If logger Then Log($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)} # Mesa${CRLF}"$)
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
If imprimirEste Then Printer1.WriteString($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Printer1.BOLD} ${Starter.mesaActual}${CRLF}"$)
If logger Then Log($"Comensales: ${Starter.comensalesActuales}${Subs.rellenaHasta(14 - Starter.mesaActual.Length)}${Starter.mesaActual}${CRLF}"$)
' If imprimirEste Then Printer1.WriteString($"${Printer1.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$)
' If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$)
' If imprimirEste Then Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF)
If imprimirEste Then Printer1.WriteString(" " & CRLF)
c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
For i = 0 To c.RowCount - 1
c.Position = i
Private elNombre As String = c.GetString("PE_PRONOMBRE")
If elNombre.Length > 30 Then elNombre.SubString2(0, 30)
If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
Next
End If
c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = '${tipoPago}' and PT_TICKET = '${Starter.ticketActual}'"$)
' Log($"Rowcount: ${c.RowCount}"$)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("propina"))
Private elTotal As String = c.GetString("PT_MONTO")
' If c.GetString("propina") <> 0 And c.GetString("PT_PAGO_PROPINA") = "Tarjeta" Then 'Se comento porque lo propina no se debe de sumar al ticket.
' If imprimirEste Then Printer1.WriteString($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$)
' If logger Then Log($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$)
' elTotal = elTotal + c.GetString("PT_PROPINA")
' End If
If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$)
If logger Then Log($"${CRLF}Total: $${NumberFormat2(elTotal, 1, 2, 2, True)}"$)
If imprimirEste Then Printer1.WriteString($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
If logger Then Log($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
If tipoPago <> "VENTA" Then
If imprimirEste Then Printer1.WriteString($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$)
If logger Then Log($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$)
End If
End If
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
If imprimirEste Then Printer1.WriteString(CRLF)
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If tipoPago <> "VENTA" Then
If imprimirEste Then Printer1.WriteString("----------- PAGADO -----------" & CRLF)
If logger Then Log("------------ PAGADO ----------" & CRLF)
Else
If imprimirEste Then Printer1.WriteString("---------- NO PAGADO ---------" & CRLF)
If logger Then Log("---------- NO PAGADO ---------" & CRLF)
End If
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
If logger Then Log("----ESTE TICKET NO ES UN -----" & CRLF)
If imprimirEste Then Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF)
If logger Then Log("--COMPROBANTE FISCAL, SOLO ES-" & CRLF)
If imprimirEste Then Printer1.WriteString("--------INFORMATIVO-----------" & CRLF)
If logger Then Log("--------INFORMATIVO-----------" & CRLF)
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
Sleep(1000)
Printer1.DisConnect
Catch
Log(LastException)
End Try
Next
Sleep(1000)
b_imp.Enabled = True
ProgressDialogHide
' B4XPage_CloseRequest
End Sub
Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int)
End Sub
Private Sub p_transparenteCambioMesa_Click
'Para evitar que el clic en pantalla no se siga hacia atras
End Sub
Private Sub l_prodX_LongClick
Log(Sender.As(Label).tag)
Private m As Map = Sender.As(Label).tag.As(Map)
If m.Get("prod").As(String).Contains("Alimentos Varios") Then
p_renombraVarios.BringToFront
et_nombreVariable.Text = m.Get("prod")
et_nombreVariable.tag = m
et_precioVariable.Text = m.Get("precio")
p_renombraVarios.Visible = True
Else
ToastMessageShow("Este artículo no es editable", False)
End If
End Sub
Private Sub b_renombraVarios_Click
p_renombraVarios.Visible = False
Private m As Map = et_nombreVariable.tag.As(Map)
' Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where PE_PROID = '${m.Get("id")}' and PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' Log($"select * from pedido where PE_PROID = '${m.Get("id")}' and PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' If c.RowCount > 0 Then
' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${m.Get("id")}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${et_nombreVariable.tag}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Else
Private cant As Int = m.Get("cant")
If cant = 0 Then cant = 1
Subs.actualizaProducto(et_precioVariable.text, cant, et_nombreVariable.Text, m.Get("id"), Starter.ticketActual, DateTime.Now, Starter.meseroActual, Starter.mesaActual, et_precioVariable.Text, "VENTA", Starter.comensalesActuales)
' End If
LlenaProdsLL(Null, Null)
End Sub
Private Sub p_transparentePago_Click
'Para evitar que el clic en pantalla no se siga hacia atras
End Sub
Private Sub b_agregarPago_Click
Starter.formasDePago = Starter.formasDePago + 1
' Log(Starter.formasDePago)
agregaFormaDePago(l_tipoPago.Left, (70 * (Starter.formasDePago - 1)), Starter.formasDePago)
End Sub
Sub agregaFormaDePago(left0 As Int, top0 As Int, tag0 As Int)
Log("agregaFormaDePago |" & top0 & "|" & tag0)
Private p_num As Panel
p_num.Initialize("")
p_num.LoadLayout("formaPago")
If Starter.formasDePago > 1 Then
p_propina.Top = p_propina.Top + 70
p_formasDePago.Height = p_formasDePago.Height + 70
p_pago.Height = p_pago.Height + 70
b_pagoCerrar.Top = b_pagoCerrar.Top + 70
End If
l_tipoPago2.Text = $"${Starter.formasDePago}:"$
cb_pago2.Tag = tag0
et_montoPago2.Tag = tag0
cb_pago2.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo"))
p_num.Tag = tag0
listaFormasDePagoCB.Add(cb_pago2)
listaFormaDePago.Add(cb_pago2.SelectedItem)
listaMontoDePago.Add(et_montoPago2)
p_formasDePago.AddView(p_num, left0, top0, 340dip, 38dip)
b_pagoCerrar.Enabled = False
End Sub
Private Sub cb_pago2_SelectedIndexChanged (Index As Int)
Log(Sender.As(B4XComboBox).tag)
Log(Sender.As(B4XComboBox).SelectedItem)
listaFormaDePago.Set(Sender.As(B4XComboBox).tag - 1, Sender.As(B4XComboBox).SelectedItem)
Log(listaFormaDePago)
End Sub
Private Sub et_montoPago2_TextChanged (Old As String, New As String)
Log("TEXT CHANGED")
Log(Starter.totalActual)
Private subtotal As String = 0
Private enBlanco As Boolean = False
For i = 0 To listaMontoDePago.Size - 1
Log(listaMontoDePago.Get(i).As(EditText).text)
If listaMontoDePago.Get(i).As(EditText).text <> "" Then
subtotal = subtotal + listaMontoDePago.Get(i).As(EditText).text
Else
enBlanco = True
End If
Next
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue)
If subtotal < Starter.totalActual Then
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red)
l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$
else if subtotal > Starter.totalActual Then
LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red)
l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$
Else
l_faltaMonto.Text = ""
End If
If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then
b_pagoCerrar.Enabled = False
Else
b_pagoCerrar.Enabled = True
End If
End Sub
Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean)
Log("FOCUS CHANGED")
Log(Starter.totalActual)
Private subtotal As String = 0
Private enBlanco As Boolean = False
For i = 0 To listaMontoDePago.Size - 1
Log(listaMontoDePago.Get(i).As(EditText).text)
If listaMontoDePago.Get(i).As(EditText).text <> "" Then
subtotal = subtotal + listaMontoDePago.Get(i).As(EditText).text
Else
enBlanco = True
End If
Next
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue)
If subtotal < Starter.totalActual Then
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red)
l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$
else if subtotal > Starter.totalActual Then
LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red)
l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$
Else
l_faltaMonto.Text = ""
End If
If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then
b_pagoCerrar.Enabled = False
Else
b_pagoCerrar.Enabled = True
End If
End Sub