Files
Lanterna/B4XMainPage.bas

682 lines
26 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=9.85
@EndOfDesignText@
#Region Shared Files
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
'###########################################################################################################
'###################### PULL #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
'###########################################################################################################
'###################### PUSH #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
'###########################################################################################################
'###################### PUSH TORTOISE GIT #########################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2
'###########################################################################################################
#End Region
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Public login As B4XMainPage
Public principal As C_Principal
Private i_logo As ImageView
Private p_configuracion As Pane
Private p_login As Pane
Private b_regresar As Button
Private b_entrar As Button
Private b_envioBD As Button
Private b_server As Button
Private ImageView4 As ImageView
Private ImageView2 As ImageView
Private Panel3 As Pane
Private Label1 As Label
Private i_conf As B4XView
' Private i_conf As ImageView
Private b_cargaProductos As Button
Private ListView1 As ListView
Private E_SERVER As TextField
Dim reqManager As DBRequestManager
Private l_version As Label
Private p_botones As Pane
Private Label3 As Label
Private p_server As Pane
Dim atrasPresionado As Boolean = False
Dim skmt As SQL
Dim DBReqServer As String = "http://keymon.lat:1782"
Dim logger As Boolean = True
Dim ticketActual, mesaActual, meseroActual, comensalesActuales, totalActual As String
Private i_password As ImageView
Private pass As TextField
Private user As TextField
Private i_usuario As ImageView
Private Panel1 As Pane
Private Panel2 As Pane
Private lv_server As ListView
Private p_conf2 As Pane
Private WobbleMenu1 As WobbleMenu
Private p_mesas As Pane
Private clv_mesas As CustomListView
Private l_mesas As Label
Private p_mesas2 As Pane
Dim listaProds, listaHints, listaHintsM, list_prodsPedido As List
Dim listaFormasDePagoCB, listaFormaDePago, listaMontoDePago, listaTickets As List
Dim fx As JFX
Dim reiniciarlistaProds As Boolean = False 'ignore
Private p_mesasItem As Pane
Private l_estatus As Label
Private l_mesaX As Label
Dim formasDePago As Int = 1
Dim tipoPago As String = "VENTA"
Dim nivelActual As String = "VENTA"
Private lv_categorias As ListView
Private p_mesa As Pane
Private p_renombraVarios As Pane
Private l_mesa As Label
Private b_abrirMesa As Button
Private p_mesaCampos As Pane
Private p_mesaAbierta As Pane
Private l_comensalesAbierta As Label
Private l_meseroAbierta As Label
Private l_comensalesAbierta2 As Label
Private l_meseroAbierta2 As Label
Private b_mesaEditar As Button
Private clv_prods_ll As CustomListView
Private p_botonesProds As Pane
Private b_mesaCerrar As Button
Private b_imprimirTicket As Button
Private b_regresarProds As Button
Private cb_comensales As ComboBox
Private cb_mesero As ComboBox
Private b_back As Button
Private p_mesa2 As Pane
Private p_cerrarApp As Pane
Private b_cerrarApp As Button
Private l_cerrarApp As Label
Private p_cerrarApp As Pane
Private b_cerrarApp As Button
Private b_cerrarCerrar As Button
End Sub
Public Sub Initialize
' B4XPages.GetManager.LogEvents = True
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
B4XPages.GetManager.LogEvents = True
If Not(File.Exists(File.DirApp, "kmt.db")) Then
File.Copy(File.DirAssets, "kmt.db", File.DirApp, "kmt.db")
Log("copiamos kmt.db de "&File.DirAssets & " a " & File.DirApp)
End If
If Not(skmt.IsInitialized) Then
skmt.InitializeSQLite(File.DirApp, "kmt.db", True)
End If
Subs.revisaBD
Root = Root1
Root.LoadLayout("login")
login.Initialize
B4XPages.AddPage("Login", login)
principal.Initialize
B4XPages.AddPage("Principal", principal)
Subs.agregaColumna("cat_gunaprod", "CAT_PT_DESC", "TEXT")
Subs.agregaColumna("cat_gunaprod", "CAT_PS_DESC", "TEXT")
Subs.agregaColumna("cat_gunaprod", "CAT_PS_DESC", "TEXT")
Subs.agregaColumna("cat_gunaprod", "CAT_GP_FECHA", "TEXT")
Subs.agregaColumna("cat_gunaprod", "CAT_GP_FECHA_MOD", "TEXT")
skmt.ExecNonQuery("delete from cuentaa")
skmt.ExecNonQuery("insert into cuentaa (cuenta) values ('123456')")
skmt.ExecNonQuery("delete from cat_almacen")
skmt.ExecNonQuery("insert into cat_almacen (id_almacen) values ('1')")
l_version.Text = "3.03.13" 'Application.VersionName
' p_configuracion.Height = Root.Height : p_configuracion.width = Root.width
cb_comensales.Items.AddAll(Array As String(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20))
cb_mesero.Items.AddAll(Subs.traeMeserosLista)
reqManager.Initialize(Me, DBReqServer)
' Subs.centraEtiqueta(Label3, p_configuracion.Width)
' Subs.centraPanel(p_server, p_configuracion.Width)
' Subs.centraPanel(p_botones, p_configuracion.Width)
i_logo.Left = (Root.Width / 2) - (i_logo.Width / 2)
' Subs.centraPanel(Panel3, p_configuracion.Width)
Private x As ResultSet = skmt.ExecQuery($"select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'"$)
' Log(x.IsInitialized)
If Not(x.IsInitialized) Then 'Insertamos el descuento para efectivo por default.
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DESCUENTO X EFECTIVO","10"))
End If
Subs.centraImagen(i_logo, Root.Width)
Subs.centraPanel(Panel3, Root.Width)
i_conf.Left = Root.Width - 100dip
p_login.SetSize(Root.Width, Root.Height)
Subs.centraPanel(p_conf2, Root.Width)
p_mesas.Top = 0 : p_mesas.left = 0 : p_mesas.SetSize(Root.Width, Root.Height)
WobbleMenu1.SetVisible(False, False)
b_back.Visible = False
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
'Return True to close, False to cancel
Log("BACK")
' If p_mesa.Visible Then
' p_mesa.Visible = False
' p_mesas.Visible = True
' Else If p_mesas.Visible Then
' p_mesas.Visible = False
' b_back.Visible = False
' else if p_configuracion.Visible Then
' p_configuracion.Visible = False
' Return False
' Else
Subs.centraPanel(p_cerrarApp, Root.Width)
p_cerrarApp.Visible = True
' If atrasPresionado Then ExitApplication 'Solo salimos de la aplicación si se presiona 'Atras' 2 veces seguidas.
atrasPresionado = True
' End If
Return False
End Sub
Sub B4XPage_Resize (Width As Double, Height As Double)
' Log($"${Width}|${Height}"$)
p_configuracion.Top = 0 : p_configuracion.left = 0
p_login.Top = 0 : p_login.left = 0
p_login.SetSize(Width, Height)
p_configuracion.SetSize(Width, Height)
p_mesas.SetSize(Width, Height)
Subs.centraPanel(Panel3, Root.Width)
Subs.muestraPane(p_mesa, Root)
Subs.muestraPane(p_mesas, Root)
Subs.centraPanel(p_mesas2, Root.Width)
Subs.centraPanel(p_mesa2, Width)
Subs.centraImagen(i_logo, Root.Width)
i_conf.Left = Root.Width - 100dip
Subs.centraPanel(p_conf2, Root.Width)
' p_login.PrefWidth = Root.Width
' p_login.SetSize(Width, Height)
' p_login.prefHeight = Root.Height
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub i_logo_Click
End Sub
Private Sub b_regresar_Click
p_configuracion.Visible = False
' Subs.panelVisible(p_login, 0, 0)
p_login.Visible = True
End Sub
Private Sub b_entrar_Click
' B4XPages.ShowPage("principal")
' Log(3)
b_back.Visible = True
Subs.centraPanel(p_mesas2, Root.Width)
p_mesas.Visible = True
Subs.muestraPane(p_mesas, Root)
LlenaMesas(Null, Null)
End Sub
Private Sub b_server_Click
If E_SERVER.Text <> "" Then
DBReqServer = E_SERVER.text
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER"))
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", DBReqServer))
p_configuracion.Visible = False
reqManager.Initialize(Me, DBReqServer)
reqManager.Initialize(Me, DBReqServer)
p_configuracion.Visible = False
p_login.Visible = True
Else
' ToastMessageShow("Por favor ingrese la direccion del servidor", True)
End If
End Sub
Private Sub b_envioBD_Click
End Sub
Private Sub i_conf_Click
' ListView1.clear
Dim Label1 As Label
' Label1 = ListView1.SingleLineLayout.Label
' Label1 = ListView1.
' Label1.TextSize = 20
' Label1.TextColor = Colors.Black
' ListView1.AddSingleLine("http://keymon.lat:1782")
' p_configuracion.Width = Root.Width
' p_configuracion.Height = Root.Height
' p_configuracion.BringToFront
' Subs.panelVisible(p_configuracion, 0, 0)
End Sub
Private Sub b_cargaProductos_Click
Log(DBReqServer)
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "selectProds_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectProds", 0)
cmd.Initialize
cmd.Name = "selectMesas_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectMesas", 0)
cmd.Initialize
cmd.Name = "selectMeseros_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectMeseros", 0)
End Sub
Private Sub ListView1_ItemClick (Position As Int, Value As Object)
DBReqServer = Value
E_SERVER.Text = Value
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE MAINPAGE")
If Job.Tag.As(String).StartsWith("_KMS_") Then Job.tag = Job.Tag.As(String).SubString(16)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
If logger Then Log("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size) 'Mod por CHV - 211110
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "selectProds" Then 'query tag
skmt.ExecNonQuery("delete from cat_gunaprod")
skmt.BeginTransaction
For Each records() As Object In result.Rows
Dim CAT_GP_ID As String = records(result.Columns.Get("CAT_GP_ID"))
Dim CAT_GP_NOMBRE As String = records(result.Columns.Get("CAT_GP_NOMBRE"))
Dim CAT_GP_PRECIO As String = records(result.Columns.Get("CAT_GP_PRECIO"))
Dim CAT_GP_ALMACEN As String = 10000 'records(result.Columns.Get("CAT_GP_ALMACEN"))
Dim CAT_GP_IMG() As Byte = records(result.Columns.Get("CAT_GP_IMG"))
Dim CAT_GP_FECHA As String = records(result.Columns.Get("CAT_GP_FECHA"))
Dim CAT_GP_FECHA_MOD As String = records(result.Columns.Get("CAT_GP_FECHA_MOD"))
Dim CAT_GP_CLASIF As String = records(result.Columns.Get("CAT_GP_CLASIF"))
skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF) VALUES (?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD,CAT_GP_CLASIF))
Next
For v = 1 To 20 'Agregamos productos varios (editables)
skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF) VALUES (?,?,?,?,?,?,?,?)", Array As Object ($"VAR${NumberFormat2(v, 2, 0, 0, False)}"$,$"Alimentos Varios ${NumberFormat2(v, 2, 0, 0, False)}"$,"1","10000",Null,"2024-02-04 17:00:00","2024-02-04 17:00:00","Varios"))
Next
skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
End If
If result.Tag = "selectMesas" Then 'query tag
skmt.ExecNonQuery("delete from CAT_MESAS")
skmt.BeginTransaction
For Each records() As Object In result.Rows
Dim M_ID As String = records(result.Columns.Get("M_ID"))
Dim M_NOMBRE As String = records(result.Columns.Get("M_NOMBRE"))
Dim M_NUMERO As String = records(result.Columns.Get("M_NUMERO"))
Dim M_ZONA As String = records(result.Columns.Get("M_ZONA"))
skmt.ExecNonQuery2("INSERT INTO CAT_MESAS(M_ID, M_NUMERO, M_NOMBRE, M_ZONA) VALUES (?,?,?,?)", Array As Object (M_ID, M_NUMERO, M_NOMBRE, M_ZONA))
Next
skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
End If
If result.Tag = "selectMeseros" Then 'query tag
skmt.ExecNonQuery("delete from CAT_MESEROS")
skmt.BeginTransaction
For Each records() As Object In result.Rows
Dim MS_ID As String = records(result.Columns.Get("MS_ID"))
Dim MS_NOMBRE As String = records(result.Columns.Get("MS_NOMBRE"))
Dim MS_MESAS_ASIGNADAS As String = records(result.Columns.Get("MS_MESAS_ASIGNADAS"))
skmt.ExecNonQuery2("INSERT INTO CAT_MESEROS(MS_ID, MS_NOMBRE, MS_MESAS_ASIGNADAS) VALUES (?,?,?)", Array As Object (MS_ID, MS_NOMBRE, MS_MESAS_ASIGNADAS))
Next
skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
' If B4XPages.MainPage.principal.cb_mesero.IsInitialized Then B4XPages.MainPage.principal.cb_mesero.SetItems(Subs.traeMeserosLista)
End If
End If
End If
' ToastMessageShow("¡Información cargada!", False)
Job.Release
End Sub
Private Sub b_entrar_LongClick
End Sub
Private Sub user_TextChanged (Old As String, New As String)
If New = "KMTS1" Then i_conf.Visible = True Else i_conf.Visible = False
End Sub
Private Sub i_password_MouseClicked (EventData As MouseEvent)
End Sub
Private Sub i_conf_MouseClicked (EventData As MouseEvent)
p_configuracion.Top = 0 : p_configuracion.left = 0
p_configuracion.Visible = True
lv_server.Items.Clear
lv_server.Items.Add("http://keymon.lat:1782")
Private c As ResultSet = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
Do While c.NextRow
E_SERVER.Text = c.GetString("CAT_VA_VALOR")
Loop
End Sub
Private Sub lv_server_SelectedIndexChanged(Index As Int)
' Log($"LV clicked ${Index}"$)
' Log(lv_server.SelectedItem)
End Sub
Private Sub lv_server_MouseClicked (EventData As MouseEvent)
' Log($"LV mouse clicked ${EventData}"$)
Dim jo As JavaObject = EventData
Dim target As JavaObject = jo.RunMethod("getTarget", Null)
' Log(GetType(target))
If GetType(target) = "com.sun.javafx.scene.control.LabeledText" Then 'Traemos el valor de la opcion seleccionada.
Dim text As String = target.RunMethod("getText", Null)
' Log($"LV mouse clicked |${text}|"$)
E_SERVER.Text = text
End If
End Sub
Private Sub WobbleMenu1_Tab1Click
End Sub
Private Sub clv_mesas_ItemClick (Index As Int, Value As Object)
Log(Index)
End Sub
Sub LlenaMesas(p As ResultSet, extra As String) 'ignore
Private o As ResultSet = skmt.ExecQuery("select count(PT_TICKET) as ordenes from PEDIDO_TICKET where PT_PAGO <> 'VENTA'")
' o.Position = 0
Private cuantasOrdenes As Int = 0
Do While o.NextRow
cuantasOrdenes = o.GetInt("ordenes")
Loop
' Log(cuantasOrdenes)
If cuantasOrdenes > 0 Then WobbleMenu1.SetBadge(3, cuantasOrdenes, fx.Colors.From32Bit(0xFFFFFFFF), fx.Colors.From32Bit(0xFFFF0000)) Else WobbleMenu1.RemoveBadge(3)
Dim p As ResultSet = 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
' clv_mesas.GetBase.SetLayoutAnimated(0,0,0,
Do While p.NextRow
' Log($"${p.GetString("M_ID")} - ${p.GetString("M_NOMBRE")} - ${p.GetString("ESTATUS2")}"$)
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 ResultSet = 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'"$)
Do While pt.NextRow
SUBTOTAL2 = pt.GetString("SUBTOTAL")
NO_ARTS2 = pt.GetString("NO_ARTS")
Loop
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, 80dip)
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
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
' l_mesaX.SetTextSizeAnimated(0, 13)
l_estatus.text = "DISPONIBLE"
l_mesaX.TextSize = 16
l_estatus.Left = clv_mesas.AsView.Width - 111dip
If m.Get("estatus") = "ABIERTA" Then l_estatus.Text = "ABIERTA"
' Log(m)
p_mesasItem.PrefHeight = 80dip
If l_estatus.text = "ABIERTA" Then
l_mesaX.Text = $"Mesa ${m.Get("id")}${CRLF}Comensales ${m.Get("comensales")} - Mesero ${m.Get("mesero")}${CRLF}Subtotal. $${NumberFormat2(m.Get("subtotal"), 1,2,2,True)} - Articulos: ${m.Get("articulos")}"$
Else
l_mesaX.Text = $"Mesa ${m.Get("id")}"$
End If
' Log(p_mesasItem.As(B4XView).GetView(0).As(Label).text)
l_mesaX.Tag = m
p_mesasItem.Tag = m
p_mesasItem.PrefHeight = 130dip
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 muestraCats
Private lasCats As List = Subs.traeCategorias
nivelActual = "Cats"
lv_categorias.items.Clear
For cat = 0 To lasCats.Size - 1
lv_categorias.Items.add(lasCats.get(cat))
Next
End Sub
'Entramos a la mesa seleccionada.
Private Sub p_mesasItem_MouseClicked(EventData As MouseEvent)
Subs.muestraPane(p_mesa, Root)
p_mesa.Visible = True
' Subs.centraEtiqueta(l_mesa, Root.Width)
' Subs.centraPanel(p_mesaCampos, Root.Width)
' Subs.centraBoton(b_abrirMesa, Root.Width)
Subs.centraPanel(p_mesa2, Root.Width)
listaFormasDePagoCB.Initialize
listaFormaDePago.Initialize
listaMontoDePago.Initialize
listaTickets.Initialize
formasDePago = 1
tipoPago = "VENTA"
muestraCats
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(Pane).tag
mesaActual = m.Get("id")
meseroActual = m.Get("mesero")
ticketActual = m.Get("ticket")
comensalesActuales = m.Get("comensales")
totalActual = m.Get("subtotal")
l_mesa.Text = $"MESA NO. ${m.Get("id")}"$
' Log(m)
b_mesaCerrar.Tag = m
skmt.ExecNonQuery("delete from cuentaa")
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.Items.IndexOf(m.Get("mesero"))
If m.Get("comensales") <> "0" Then cb_comensales.SelectedIndex = cb_comensales.Items.IndexOf(m.Get("comensales"))
' Log(Subs.traeMesaEstatus(m.Get("id")))
If Subs.traeMesaEstatus(m.Get("id")) = "CERRADA" Then
p_mesaCampos.Visible = True
b_abrirMesa.Visible = True
p_mesaAbierta.Visible = False
Else
p_mesaCampos.Visible = False
b_abrirMesa.Visible = False
p_mesaAbierta.Visible = True
' p_mesaAbierta.BringToFront
l_meseroAbierta2.Text = m.Get("mesero")
l_comensalesAbierta2.Text = m.Get("comensales")
End If
Private tm As Map = CreateMap("ticket":m.Get("ticket"), "pago":tipoPago)
listaTickets.Initialize
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
End Sub
Sub llenaProdsLL(p As ResultSet, extra As String)
End Sub
Private Sub b_regresarProds_Click
End Sub
Private Sub b_imprimirTicket_Click
End Sub
Private Sub b_mesaCerrar_Click
End Sub
Private Sub clv_prods_ll_ItemClick (Index As Int, Value As Object)
End Sub
Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
End Sub
Private Sub b_mesaEditar_Click
End Sub
Private Sub b_abrirMesa_Click
If cb_mesero.SelectedIndex <> 0 Then
Private c As ResultSet = skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ID = '${mesaActual}' and M_ESTATUS = 'ABIERTA'"$)
Private cont As Int = 0
Do While c.NextRow
cont = cont + 1
skmt.ExecNonQuery($"update CAT_MESAS set M_MESERO = '${cb_mesero.Value}', M_COMENSALES = '${cb_comensales.value}' where M_ID = '${mesaActual}'"$)
Log($"update CAT_MESAS set M_MESERO = '${cb_mesero.value}', M_COMENSALES = '${cb_comensales.value}' where M_ID = '${mesaActual}'"$)
Loop
If cont = 0 Then
ticketActual = Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")
skmt.ExecNonQuery($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.value}', M_COMENSALES = '${cb_comensales.value}' where M_ID = '${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
meseroActual = cb_mesero.value
comensalesActuales = cb_comensales.value
skmt.ExecNonQuery($"delete from usuarioa"$)
skmt.ExecNonQuery($"insert into usuarioa (usuario) values ('${cb_mesero.value}')"$)
llenaProdsLL(Null, Null)
l_comensalesAbierta2.Text = cb_comensales.value
l_meseroAbierta2.Text = cb_mesero.value
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 lv_categorias_SelectedIndexChanged(Index As Int)
Private selected As String = lv_categorias.SelectedItem
Log(selected)
If selected <> "null" Then
If nivelActual = "Cats" Then
Private lasCats As List = Subs.traeSubCategorias(selected)
Log(lasCats)
nivelActual = "SubCats"
lv_categorias.Items.Clear
For cat = 0 To lasCats.Size - 1
Log(lasCats.get(cat))
lv_categorias.items.Add(lasCats.get(cat))
Next
Else
Log(99)
lv_categorias.Visible = False
clv_prods_ll.AsView.Visible = True
Private c As ResultSet = 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 = '${selected}' order by CAT_GP_NOMBRE"$)
llenaProdsLL(c, Null)
End If
End If
End Sub
Private Sub lv_categorias_MouseClicked (EventData As MouseEvent)
' Log("ITEM CLICKED")
' Dim jo As JavaObject = EventData
' Dim target As JavaObject = jo.RunMethod("getTarget", Null)
'' Log(GetType(target))
' If GetType(target) = "com.sun.javafx.scene.control.LabeledText" Then 'Traemos el valor de la opcion seleccionada.
' Dim text As String = target.RunMethod("getText", Null)
' Log($"LV mouse clicked |${text}|"$)
'' E_SERVER.Text = text
' End If
' If nivelActual = "Cats" Then
' Private lasCats As List = Subs.traeSubCategorias(Value)
' nivelActual = "SubCats"
' lv_categorias.Clear
' For cat = 0 To lasCats.Size - 1
' lv_categorias.AddSingleLine(lasCats.get(cat))
' Next
' Else
' lv_categorias.Visible = False
' clv_prods_ll.AsView.Visible = True
' Private c As ResultSet = 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 If
End Sub
Private Sub cb_comensales_SelectedIndexChanged(Index As Int, Value As Object)
End Sub
Private Sub cb_mesero_SelectedIndexChanged(Index As Int, Value As Object)
Log(cb_mesero.SelectedIndex)
Log(cb_mesero.Value)
End Sub
Private Sub b_back_Click
' B4XPage_CloseRequest
Log("BACK")
' Log(atrasPresionado
If p_mesa.Visible Then
p_mesa.Visible = False
p_mesas.Visible = True
Else If p_mesas.Visible Then
p_mesas.Visible = False
b_back.Visible = False
else if p_configuracion.Visible Then
p_configuracion.Visible = False
Return False
Else
If atrasPresionado Then ExitApplication 'Solo salimos de la aplicación si se presiona 'Atras' 2 veces seguidas.
' ToastMessageShow("Presiona 'Atras' nuevamente para salir de la aplicación.", False)
atrasPresionado = True
End If
End Sub
Private Sub b_cerrarApp_Click
ExitApplication
End Sub
Private Sub b_cerrarCerrar_Click
p_cerrarApp.Visible = False
End Sub