Cierre administativo, cierre de mesa sin venta y envio de errores a push_info

This commit is contained in:
2024-02-09 04:03:52 -06:00
parent 97881301df
commit 120742c301
12 changed files with 709 additions and 374 deletions

View File

@@ -38,6 +38,13 @@ Sub Class_Globals
Private Label1 As Label Private Label1 As Label
Private i_conf As ImageView Private i_conf As ImageView
Private b_cargaProductos As Button Private b_cargaProductos As Button
Private ListView1 As ListView
Private E_SERVER As EditText
Dim reqManager As DBRequestManager
Private l_version As Label
Private p_botones As Panel
Private Label3 As Label
Private p_server As Panel
End Sub End Sub
Public Sub Initialize Public Sub Initialize
@@ -46,6 +53,7 @@ End Sub
'This event will be called once, before the page becomes visible. 'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView) Private Sub B4XPage_Created (Root1 As B4XView)
Subs.revisaBD
Root = Root1 Root = Root1
Root.LoadLayout("login") Root.LoadLayout("login")
login.Initialize login.Initialize
@@ -63,17 +71,39 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("insert into cuentaa (cuenta) values ('123456')") Starter.skmt.ExecNonQuery("insert into cuentaa (cuenta) values ('123456')")
Starter.skmt.ExecNonQuery("delete from cat_almacen") Starter.skmt.ExecNonQuery("delete from cat_almacen")
Starter.skmt.ExecNonQuery("insert into cat_almacen (id_almacen) values ('1')") Starter.skmt.ExecNonQuery("insert into cat_almacen (id_almacen) values ('1')")
l_version.Text = Application.VersionName
p_configuracion.Height = Root.Height : p_configuracion.width = Root.width
reqManager.Initialize(Me, Starter.DBReqServer)
Subs.centraEtiqueta(Label3, p_configuracion.Width)
Subs.centraPanel(p_server, p_configuracion.Width)
Subs.centraPanel(p_botones, p_configuracion.Width)
' subs.panelVisible(p_configuracion, 0, 0)
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
'Return True to close, False to cancel
Log("BACK")
If p_configuracion.Visible Then
p_configuracion.Visible = False
Return False
Else
' If logger Then Log("Saliendo")
' B4XPages.ClosePage(Me)
' Subs.cierraActividades
' Return True
End If
Return False
End Sub End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub i_logo_Click Private Sub i_logo_Click
p_configuracion.Width = Root.Width
p_configuracion.Height = Root.Height
Subs.panelVisible(p_configuracion, 0, 0)
End Sub End Sub
Private Sub b_regresar_Click Private Sub b_regresar_Click
p_configuracion.Visible = False
Subs.panelVisible(p_login, 0, 0) Subs.panelVisible(p_login, 0, 0)
End Sub End Sub
@@ -82,7 +112,8 @@ Private Sub b_entrar_Click
End Sub End Sub
Private Sub B_SERVER_Click Private Sub B_SERVER_Click
Starter.DBReqServer = E_SERVER.text
p_configuracion.Visible = False
End Sub End Sub
Private Sub b_envioBD_Click Private Sub b_envioBD_Click
@@ -90,9 +121,111 @@ Private Sub b_envioBD_Click
End Sub End Sub
Private Sub i_conf_Click Private Sub i_conf_Click
ListView1.Clear
Dim Label1 As Label
Label1 = ListView1.SingleLineLayout.Label
Label1.TextSize = 20
Label1.TextColor = Colors.Black
' If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://10.0.0.205:1781")
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 End Sub
Private Sub b_cargaProductos_Click Private Sub b_cargaProductos_Click
Log(Starter.DBReqServer)
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "select_cat_gunaprod_GV2"
' cmd.Parameters = Array As Object(1)
' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "selectProds_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectProds")
cmd.Initialize
cmd.Name = "selectMesas_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectMesas")
cmd.Initialize
cmd.Name = "selectMeseros_Lanter"
reqManager.ExecuteQuery(cmd , 0, "selectMeseros")
End Sub
Private Sub ListView1_ItemClick (Position As Int, Value As Object)
Starter.DBReqServer = Value
E_SERVER.Text = Value
Log(Starter.DBReqServer)
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 Starter.Logger Then LogColor("JobDone: '" & Starter.reqManager.HandleJob(Job).tag & "' - Registros: " & Starter.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
If Job.JobName = "DBRequest" Then
Dim result As DBResult = Starter.reqManager.HandleJob(Job)
If result.Tag = "selectProds" Then 'query tag
' If Starter.Logger Then Subs.logJobDoneResultados(result)
Starter.skmt.ExecNonQuery("delete from cat_gunaprod")
Starter.skmt.BeginTransaction
For Each records() As Object In result.Rows
Log($"ID: ${records(result.Columns.Get("CAT_GP_ID"))}, NOM: ${records(result.Columns.Get("CAT_GP_NOMBRE"))}"$)
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"))
Starter.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
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
End If
If result.Tag = "selectMesas" Then 'query tag
' If Starter.Logger Then Subs.logJobDoneResultados(result)
Starter.skmt.ExecNonQuery("delete from CAT_MESAS")
Starter.skmt.BeginTransaction
For Each records() As Object In result.Rows
Log($"ID: ${records(result.Columns.Get("M_ID"))}, NOM: ${records(result.Columns.Get("M_NOMBRE"))}"$)
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"))
Starter.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
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
End If
If result.Tag = "selectMeseros" Then 'query tag
' If Starter.Logger Then Subs.logJobDoneResultados(result)
Starter.skmt.ExecNonQuery("delete from CAT_MESEROS")
Starter.skmt.BeginTransaction
For Each records() As Object In result.Rows
Log($"ID: ${records(result.Columns.Get("MS_ID"))}, NOM: ${records(result.Columns.Get("MS_NOMBRE"))}"$)
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"))
Starter.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
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
B4XPages.MainPage.principal.cb_mesero.SetItems(Subs.traeMeserosLista)
End If
End If
End If
Job.Release
End Sub
Private Sub b_entrar_LongClick
Dim a As Int = "a"
End Sub End Sub

View File

@@ -10,14 +10,14 @@ Sub Class_Globals
Private p_principal As Panel Private p_principal As Panel
Private WobbleMenu1 As WobbleMenu Private WobbleMenu1 As WobbleMenu
Dim PCLV, PCLVM As PreoptimizedCLV Dim PCLV, PCLVM As PreoptimizedCLV
Private p_productos As Panel Private p_meseros As Panel
Private clv_prods_ll, clv_carrito, clv As CustomListView Private clv_prods_ll, clv As CustomListView
Dim prodsMap As Map Dim prodsMap As Map
Private p_botonesVenta As Panel ' Private p_botonesVenta As Panel
Private b_continuar As Button Private b_continuar As Button
Private lfila As Label Private lfila As Label
Private et_busca As EditText ' Private et_busca As EditText
Private b_buscar As Button ' Private b_buscar As Button
Dim etCantHasFocus, hayPedido As Boolean 'ignore Dim etCantHasFocus, hayPedido As Boolean 'ignore
Dim ticketId As String Dim ticketId As String
Dim rutaUsuario, folio As String 'ignore Dim rutaUsuario, folio As String 'ignore
@@ -35,26 +35,21 @@ Sub Class_Globals
Private i_prod As ImageView Private i_prod As ImageView
Private p_prods As Panel Private p_prods As Panel
Private p_mesas As Panel Private p_mesas As Panel
' Private lv_carrito As ListView
Private p_carrito As Panel
Private p_botonesCarrito As Panel
Private b_terminar As Button Private b_terminar As Button
Private p_historial As Panel Private p_historial As Panel
' Private p_botonesHist As Panel ' Private p_botonesHist As Panel
Private l_compraTerminada As Label Private l_compraTerminada As Label
Private l_carritoVacio As Label
Private b_borrar As Button Private b_borrar As Button
Private l_totalCarrito As Label
Private l_historialVacio As Label Private l_historialVacio As Label
Private lv_historial As ListView Private lv_historial As ListView
Private clv_mesas As CustomListView Dim clv_mesas As CustomListView
Private l_mesaX As Label Private l_mesaX As Label
Private l_estatus As Label Private l_estatus As Label
Private l_mesa As Label Private l_mesa As Label
Private p_mesa As Panel Private p_mesa As Panel
Private b_abrirMesa As Button Private b_abrirMesa As Button
Private cb_comensales As B4XComboBox Private cb_comensales As B4XComboBox
Private cb_mesero As B4XComboBox Dim cb_mesero As B4XComboBox
Private l_mesero As Label Private l_mesero As Label
Private l_comensales As Label Private l_comensales As Label
Private l_pago As Label Private l_pago As Label
@@ -70,6 +65,16 @@ Sub Class_Globals
Private p_pago As Panel Private p_pago As Panel
Private Label1 As Label Private Label1 As Label
Private b_pagoCerrar As Button 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
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -91,30 +96,26 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If End If
PCLV.Initialize(Me, "PCLV", clv_prods_ll) PCLV.Initialize(Me, "PCLV", clv_prods_ll)
PCLVM.Initialize(Me, "PCLVM", clv_mesas) PCLVM.Initialize(Me, "PCLVM", clv_mesas)
WobbleMenu1.SetTabTextIcon(1,"Mesas", Chr(0xF0C0), Typeface.FONTAWESOME) WobbleMenu1.SetTabTextIcon(1,"Mesas", Chr(0xF00A), Typeface.FONTAWESOME)
WobbleMenu1.SetTabTextIcon(2,"Productos", Chr(0xF007), Typeface.FONTAWESOME) WobbleMenu1.SetTabTextIcon(2,"Meseros", Chr(0xF0C0), Typeface.FONTAWESOME)
WobbleMenu1.SetTabTextIcon(3,"Carrito", Chr(0xF2BE), Typeface.FONTAWESOME) WobbleMenu1.SetTabTextIcon(3,"Ordenes", Chr(0xF155), Typeface.FONTAWESOME)
WobbleMenu1.SetTabTextIcon(4,"Historial", Chr(0xF21B), Typeface.FONTAWESOME)
' WobbleMenu1.SetTabTextIcon(5,"Cinco", Chr(0xF29D), Typeface.FONTAWESOME) ' WobbleMenu1.SetTabTextIcon(5,"Cinco", Chr(0xF29D), Typeface.FONTAWESOME)
p_principal.Width = Root.Width p_principal.Width = Root.Width
p_principal.Height = Root.Height p_principal.Height = Root.Height
clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width + 10, Root.Height * 0.55) 'Cambiamos el tamaño y posición de la lista de productos. clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width + 10, 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_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_carrito.GetBase.SetLayoutAnimated(0, 5dip, 80dip, Root.Width - 20, Root.Height * 0.65) 'Cambiamos el tamaño y posición de la lista del carrito.
clv_carrito.Base_Resize(clv_carrito.GetBase.Width, clv_carrito.GetBase.Height) 'Cambiamos el tamaño del panel interno del carrito 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.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. 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_productos.Width = Root.Width p_meseros.Width = Root.Width
p_productos.Height = Root.Height - WobbleMenu1.Height p_meseros.Height = Root.Height - WobbleMenu1.Height
p_carrito.Width = Root.Width
p_carrito.Height = Root.Height - WobbleMenu1.Height
p_mesas.Width = Root.Width p_mesas.Width = Root.Width
p_mesaAbierta.Height = Root.Height p_mesaAbierta.Height = Root.Height
p_mesas.Height = Root.Height - WobbleMenu1.Height p_mesas.Height = Root.Height - WobbleMenu1.Height
p_historial.Width = Root.Width p_historial.Width = Root.Width
p_historial.Height = Root.Height - WobbleMenu1.Height p_historial.Height = Root.Height - WobbleMenu1.Height
p_botonesVenta.Top = Root.Height - p_botonesVenta.Height - WobbleMenu1.Height + 10 p_transparenteCierreAdmin.Height = Root.Height : p_transparenteCierreAdmin.Width = Root.Width
p_botonesCarrito.Top = Root.Height - p_botonesCarrito.Height - WobbleMenu1.Height + 10 p_transparenteCierreAdmin.Top = 0 : p_transparenteCierreAdmin.left = 0
' p_botonesVenta.Top = Root.Height - p_botonesVenta.Height - WobbleMenu1.Height + 10
Subs.centraPanel(p_pago, p_mesaAbierta.Width) Subs.centraPanel(p_pago, p_mesaAbierta.Width)
Subs.centraBoton(b_abrirMesa, Root.Width) Subs.centraBoton(b_abrirMesa, Root.Width)
b_mesaCerrar.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height + 15 ' - b_mesaCerrar.Height b_mesaCerrar.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height + 15 ' - b_mesaCerrar.Height
@@ -123,31 +124,37 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' Subs.centraEtiqueta(l_mesero, Root.Width) ' Subs.centraEtiqueta(l_mesero, Root.Width)
Subs.centraPanel(p_mesaCampos, Root.Width) Subs.centraPanel(p_mesaCampos, Root.Width)
Subs.centraPanel(p_mesaAbierta, Root.Width) Subs.centraPanel(p_mesaAbierta, Root.Width)
Dim ri As Cursor = Starter.skmt.ExecQuery($"select count(*) as cuantos from cat_gunaprod"$) lv_historial.Height = Root.Height * 0.7
ri.Position = 0 p_botonesCierre.Top = lv_historial.Top + lv_historial.Height + 20dip
If ri.GetString("cuantos") = "0" Then 'Si no hay productos, los descargamos Subs.centraPanel(p_botonesCierre, p_historial.Width)
Starter.reqManager.Initialize(Me, Starter.server) ' Dim ri As Cursor = Starter.skmt.ExecQuery($"select count(*) as cuantos from cat_gunaprod"$)
Dim cmd As DBCommand ' ri.Position = 0
cmd.Initialize ' If ri.GetString("cuantos") = "0" Then 'Si no hay productos, los descargamos
cmd.Name = "selectPedigree" ' Starter.reqManager.Initialize(Me, Starter.server)
cmd.Parameters = Array As Object(DateTime.Date(DateTime.Now)) ' Dim cmd As DBCommand
Log($"Traemos productos, ${DateTime.Date(DateTime.Now)}"$) ' cmd.Initialize
Starter.reqManager.ExecuteQuery(cmd , 0, "descargaProds") ' cmd.Name = "selectPedigree"
End If ' cmd.Parameters = Array As Object(DateTime.Date(DateTime.Now))
query = "cat_gunaprod" ' Log($"Traemos productos, ${DateTime.Date(DateTime.Now)}"$)
' Starter.reqManager.ExecuteQuery(cmd , 0, "descargaProds")
' End If
' query = "cat_gunaprod"
prodsMap.Initialize prodsMap.Initialize
listaProds.Initialize listaProds.Initialize
listaHints.Initialize listaHints.Initialize
listaHintsM.Initialize listaHintsM.Initialize
p_mesas.Width = Root.Width p_mesas.Width = Root.Width
' Log(p_productos.Width) ' Log(p_meseros.Width)
Subs.panelVisible(p_mesas, 0, 0) 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_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("Efectivo", "Tarjeta")) cb_pago.SetItems(Array As String("Tarjeta","Efectivo"))
cb_mesero.SetItems(Subs.traeMeserosLista) cb_mesero.SetItems(Subs.traeMeserosLista)
End Sub End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
reqManager.Initialize(Me, Starter.DBReqServer)
' ticketId = Subs.traeTicket ' ticketId = Subs.traeTicket
' rutaUsuario = Subs.traeMesa ' rutaUsuario = Subs.traeMesa
' Log($"${clv_carrito.AsView.Width}, ${Root.Width}"$) ' Log($"${clv_carrito.AsView.Width}, ${Root.Width}"$)
@@ -184,69 +191,36 @@ Sub B4XPage_Appear
PCLVM.pnlOverlay.Height = clv_mesas.AsView.Height PCLVM.pnlOverlay.Height = clv_mesas.AsView.Height
PCLVM.pnlOverlay.Width = clv_mesas.AsView.Width PCLVM.pnlOverlay.Width = clv_mesas.AsView.Width
PCLVM.B4XSeekBar1.Update PCLVM.B4XSeekBar1.Update
p_productos.Height = Root.Height - WobbleMenu1.Height p_meseros.Height = Root.Height - WobbleMenu1.Height
If et_busca.Text <> "" Then et_busca.Text ="" ' If et_busca.Text <> "" Then et_busca.Text =""
If p_mesas.Visible And Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
End Sub End Sub
Sub B4XPage_CloseRequest As ResumableSub Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed ' BACK key pressed
'Return True to close, False to cancel 'Return True to close, False to cancel
Log(1)
If p_pago.visible Then If p_pago.visible Then
p_pago.Visible = False p_pago.Visible = False
else If p_mesa.Visible Then else If p_mesa.Visible Then
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
p_mesa.Visible = False p_mesa.Visible = False
p_mesas.Visible = True p_mesas.Visible = True
LlenaMesas(Null, Null) LlenaMesas(Null, Null)
Else if p_carrito.Visible Then ' Else if p_carrito.Visible Then
' p_carrito.Visible = False '' p_carrito.Visible = False
' p_mesas.Visible = True '' p_mesas.Visible = True
WobbleMenu1_Tab1Click ' WobbleMenu1_Tab1Click
WobbleMenu1.SetCurrentTab(1) ' WobbleMenu1.SetCurrentTab(1)
Else Else
B4XPages.ShowPage("Login") B4XPages.ShowPage("Login")
End If End If
Return False Return False
End Sub End Sub
Sub JobDone(Job As HttpJob)
If Starter.Logger Then LogColor("Principal - JobDone", Colors.Magenta)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
If Starter.Logger Then LogColor("JobDone: '" & Starter.reqManager.HandleJob(Job).tag & "' - Registros: " & Starter.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
If Job.JobName = "DBRequest" Then
Dim result As DBResult = Starter.reqManager.HandleJob(Job)
If result.Tag = "descargaProds" Then 'query tag
' If Starter.Logger Then Subs.logJobDoneResultados(result)
Starter.skmt.BeginTransaction
For Each records() As Object In result.Rows
Log($"ID: ${records(result.Columns.Get("CAT_GP_ID"))}, NOM: ${records(result.Columns.Get("CAT_GP_NOMBRE"))}"$)
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 = records(result.Columns.Get("CAT_GP_ALMACEN"))
Dim CAT_PT_DESC As String = records(result.Columns.Get("CAT_PT_DESC"))
Dim CAT_PS_DESC As String = records(result.Columns.Get("CAT_PS_DESC"))
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"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_PT_DESC,CAT_PS_DESC,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_PT_DESC,CAT_PS_DESC,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD,CAT_GP_CLASIF))
Next
' Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","null","NULL","null","null","NULL","NULL"))
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
' LlenaProdsLL(Null, Null)
End If
End If
End If
Job.Release
End Sub
Sub b_prodMenos_Click Sub b_prodMenos_Click
etCantHasFocus = False etCantHasFocus = False
If WobbleMenu1.GetCurrentTab = 3 Then clv = clv_carrito Else clv = clv_prods_ll ' If WobbleMenu1.GetCurrentTab = 3 Then clv = clv_carrito Else clv = clv_prods_ll
clv = clv_prods_ll
' Log(Sender.As(Button).text & "|" & Sender.As(Button).tag) ' Log(Sender.As(Button).text & "|" & Sender.As(Button).tag)
Private buttonTag As String = Sender.As(Button).tag Private buttonTag As String = Sender.As(Button).tag
LogColor("b_prodMenos_Click", Colors.Magenta) LogColor("b_prodMenos_Click", Colors.Magenta)
@@ -256,7 +230,7 @@ Sub b_prodMenos_Click
Dim pnl0 As B4XView = clv.GetPanel(index) Dim pnl0 As B4XView = clv.GetPanel(index)
Log(pnl0.As(Panel)) Log(pnl0.As(Panel))
Dim pnl As B4XView = pnl0.GetView(0) Dim pnl As B4XView = pnl0.GetView(0)
Dim laCant As B4XView = pnl.GetView(2).GetView(2) Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant
' Log(pnl.GetView(0).NumberOfViews) ' Log(pnl.GetView(0).NumberOfViews)
Dim elNombre As B4XView = pnl.GetView(1) Dim elNombre As B4XView = pnl.GetView(1)
If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4) If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4)
@@ -299,13 +273,14 @@ End Sub
Sub b_prodMas_Click Sub b_prodMas_Click
etCantHasFocus = False etCantHasFocus = False
If WobbleMenu1.GetCurrentTab = 3 Then clv = clv_carrito Else clv = clv_prods_ll ' If WobbleMenu1.GetCurrentTab = 3 Then clv = clv_carrito Else clv = clv_prods_ll
clv = clv_prods_ll
Private buttonTag As String = Sender.As(Button).tag Private buttonTag As String = Sender.As(Button).tag
Dim index As Int = clv.GetItemFromView(Sender) Dim index As Int = clv.GetItemFromView(Sender)
LogColor("b_prodMas_Click", Colors.Magenta) LogColor("b_prodMas_Click", Colors.Magenta)
Dim pnl0 As B4XView = clv.GetPanel(index) Dim pnl0 As B4XView = clv.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0) Dim pnl As B4XView = pnl0.GetView(0)
Dim laCant As B4XView = pnl.GetView(2).GetView(2) Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant
Dim elNombre As B4XView = pnl.GetView(1) Dim elNombre As B4XView = pnl.GetView(1)
If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4) 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)}"$) Log($"${pnl.GetView(2).GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$)
@@ -322,7 +297,7 @@ Sub b_prodMas_Click
laCant.Text = $"$1.0{laCant.Text+1}"$ laCant.Text = $"$1.0{laCant.Text+1}"$
' Log(clv.GetValue(index).As(Map)) ' Log(clv.GetValue(index).As(Map))
End If End If
else If laCant.Text + 1 <= inv And lfila.Text = "PRODUCTOS" Then else If laCant.Text + 1 <= inv Then
' LogColor(inv, Colors.blue) ' LogColor(inv, Colors.blue)
laCant.Text = $"$1.0{laCant.Text + 1}"$ laCant.Text = $"$1.0{laCant.Text + 1}"$
Log(Subs.totalPedido) Log(Subs.totalPedido)
@@ -350,8 +325,8 @@ Sub cuentaProds
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)"$) 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("TIEMPO cuentaProds =" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
' LogColor(prodsMap, Colors.Magenta) ' LogColor(prodsMap, Colors.Magenta)
p_botonesVenta.Visible = True ' p_botonesVenta.Visible = True
p_botonesVenta.BringToFront ' p_botonesVenta.BringToFront
c.Position=0 c.Position=0
' Log(Subs.totalPedido) ' Log(Subs.totalPedido)
Private cant0 As String = "0" Private cant0 As String = "0"
@@ -360,11 +335,13 @@ Sub cuentaProds
If c.GetString("cant") <> Null And c.GetString("cant") <> "null" Then cant0 = c.GetString("cant") 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") 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}"$) ' Log($"Total Prods: ${cant0}, Total Compra: $$1.2{total0}"$)
l_totalCarrito.text = $"Total: $${NumberFormat2(total0,1,2,2,True)}"$ ' l_totalCarrito.text = $"Total: $${NumberFormat2(total0,1,2,2,True)}"$
c.Close c.Close
If WobbleMenu1.GetCurrentTab = 3 Then LlenaProdsLL(Null, Null) If WobbleMenu1.GetCurrentTab = 3 Then LlenaProdsLL(Null, Null)
If Subs.hayPedido Then WobbleMenu1.SetBadge(3, 1, Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(3) If Subs.hayPedido Then WobbleMenu1.SetBadge(3, p.GetString("ordenes"), Colors.white, Colors.red) Else WobbleMenu1.RemoveBadge(3)
End Sub End Sub
Sub LlenaProdsLL(p As ResultSet, extra As String) Sub LlenaProdsLL(p As ResultSet, extra As String)
@@ -516,99 +493,99 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
End Sub End Sub
Sub et_busca_TextChanged (Old As String, New As String) Sub et_busca_TextChanged (Old As String, New As String)
' Private inicioContador As String = DateTime.Now '' Private inicioContador As String = DateTime.Now
If New.Length = 1 And Not(forzarBusqueda) Then Return ' If New.Length = 1 And Not(forzarBusqueda) Then Return
forzarBusqueda = False ' forzarBusqueda = False
If lfila.text = "PROMOCIONES" Then ' If lfila.text = "PROMOCIONES" Then
' If Not(lv_promos.Visible) Then lv_promos.Visible = True '' 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)"$) '' 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}"$) '' Log($"res:${cPromo.RowCount}"$)
' If cPromo.RowCount > 0 Then '' If cPromo.RowCount > 0 Then
' lv_promos.Clear '' lv_promos.Clear
' For i=0 To cPromo.RowCount -1 '' For i=0 To cPromo.RowCount -1
' cPromo.Position=i '' cPromo.Position=i
' Private tm As Map = Subs.procesaPromocion(cPromo.GetString("CAT_GP_ID"), ticketId) '' Private tm As Map = Subs.procesaPromocion(cPromo.GetString("CAT_GP_ID"), ticketId)
' If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto. '' 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")) '' 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 '' End If
' Next '' Next
'' Else
'' ToastMessageShow("No hay promociones disponibles.", False)
'' End If
'' cPromo.Close
' Else ' Else
' ToastMessageShow("No hay promociones disponibles.", False) ' 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 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 End Sub
Sub llenaCarrito 'ignore Sub llenaCarrito 'ignore
Private totalPedido As String = 0 ' Private totalPedido As String = 0
Private cantPedido As String = 0 ' Private cantPedido As String = 0
p_mesas.Visible = False ' p_mesas.Visible = False
' Subs.agrupador '' Subs.agrupador
' lv_carrito.Clear '' lv_carrito.Clear
clv_carrito.Clear ' clv_carrito.Clear
list_prodsPedido.Initialize ' 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") ' 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) '' Log(c_prods.RowCount)
If c_prods.RowCount > 0 Then ' If c_prods.RowCount > 0 Then
c_prods.Position = 0 ' c_prods.Position = 0
' lv_carrito.BringToFront '' lv_carrito.BringToFront
clv_carrito.AsView.BringToFront ' clv_carrito.AsView.BringToFront
Private cs As CSBuilder ' Private cs As CSBuilder
For i = 0 To c_prods.RowCount -1 ' For i = 0 To c_prods.RowCount -1
cs.Initialize ' cs.Initialize
c_prods.Position = i ' c_prods.Position = i
' Dim label1 As Label '' Dim label1 As Label
' lv_carrito.TwoLinesLayout.ItemHeight = 50dip '' lv_carrito.TwoLinesLayout.ItemHeight = 50dip
' label1 = lv_carrito.TwoLinesLayout.Label '' label1 = lv_carrito.TwoLinesLayout.Label
' label1.TextSize = 15 '' label1.TextSize = 15
' label1.TextColor = Colors.Black '' label1.TextColor = Colors.Black
' label1.color = Colors.White '' label1.color = Colors.White
' label1.Height = 30dip '' label1.Height = 30dip
Private textColor As Int = Colors.black 'ignore ' Private textColor As Int = Colors.black 'ignore
' Log(c_prods.GetString("PE_CEDIS")) '' 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 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. ' If c_prods.GetString("PE_CEDIS") = "DUR" Then textColor = Colors.red 'Si es promo, cambiamos el color del texto.
' Dim label2 As Label '' Dim label2 As Label
' label2 = lv_carrito.TwoLinesLayout.SecondLabel '' label2 = lv_carrito.TwoLinesLayout.SecondLabel
' label2.TextSize = 10 '' label2.TextSize = 10
' label2.TextColor = Colors.Blue '' label2.TextColor = Colors.Blue
' label2.Tag = i '' label2.Tag = i
' Log(c_prods.GetString("PE_PRONOMBRE")) '' 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")) '' 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")) ' 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) ' list_prodsPedido.Add(tempMap)
' Private bmp As Bitmap = Subs.traeImgDeDB(c_prods.GetString("PE_PROID")) '' 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 '' 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) ' 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 ' folio = 0
totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT")) ' totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT"))
cantPedido = cantPedido + 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") ' If c_prods.GetString("PE_FOLIO") <> Null Then folio = c_prods.GetString("PE_FOLIO")
Next ' Next
Else ' Else
l_carritoVacio.Visible = True ' l_carritoVacio.Visible = True
l_carritoVacio.Text = "No hay productos en tu carrito." ' l_carritoVacio.Text = "No hay productos en tu carrito."
End If ' End If
' Log(list_prodsPedido) '' Log(list_prodsPedido)
c_prods.Close ' c_prods.Close
' l_total2.Text = $"$1.2{totalPedido}"$ '' l_total2.Text = $"$1.2{totalPedido}"$
' l_cant.Text = cantPedido '' l_cant.Text = cantPedido
' If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True '' If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True
' p_vistaPreviaTrans.Width = Root.Width '' p_vistaPreviaTrans.Width = Root.Width
' p_vistaPreviaTrans.Height = Root.Height '' p_vistaPreviaTrans.Height = Root.Height
' Subs.centraPanel(p_vistaPrevia, Root.Width) '' Subs.centraPanel(p_vistaPrevia, Root.Width)
' p_vistaPrevia.Visible=True '' p_vistaPrevia.Visible=True
' p_vistaPreviaTrans.Visible=True '' p_vistaPreviaTrans.Visible=True
End Sub End Sub
'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder. 'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
@@ -625,13 +602,14 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub WobbleMenu1_Tab1Click Private Sub WobbleMenu1_Tab1Click
If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False
LlenaMesas(Null, Null) LlenaMesas(Null, Null)
' LlenaProdsLL(Null, Null) ' LlenaProdsLL(Null, Null)
Subs.panelVisible(p_mesas, 0, 0) Subs.panelVisible(p_mesas, 0, 0)
PCLVM.B4XSeekBar1.mBase.Visible = True PCLVM.B4XSeekBar1.mBase.Visible = True
PCLV.B4XSeekBar1.mBase.Visible = False PCLV.B4XSeekBar1.mBase.Visible = False
p_productos.Visible = False p_meseros.Visible = False
p_carrito.Visible = False ' p_carrito.Visible = False
p_historial.Visible = False p_historial.Visible = False
p_mesa.Visible = False p_mesa.Visible = False
End Sub End Sub
@@ -641,45 +619,54 @@ Private Sub WobbleMenu1_Tab2Click
PCLVM.B4XSeekBar1.mBase.Visible = False PCLVM.B4XSeekBar1.mBase.Visible = False
PCLV.B4XSeekBar1.mBase.BringToFront PCLV.B4XSeekBar1.mBase.BringToFront
PCLV.B4XSeekBar1.mBase.Visible = True PCLV.B4XSeekBar1.mBase.Visible = True
Subs.panelVisible(p_productos, 0, 0) Subs.panelVisible(p_meseros, 0, 0)
p_mesas.Visible = False p_mesas.Visible = False
p_carrito.Visible = False ' p_carrito.Visible = False
p_transparenteCierreAdmin.Visible = False
p_historial.Visible = False p_historial.Visible = False
p_mesa.Visible = False p_mesa.Visible = False
End Sub End Sub
Private Sub WobbleMenu1_Tab3Click Private Sub WobbleMenu1_Tab3Click
PCLVM.B4XSeekBar1.mBase.Visible = False
PCLV.B4XSeekBar1.mBase.Visible = False
Subs.panelVisible(p_carrito, 0, 0)
p_carrito.BringToFront
' p_carrito.BringToFront
p_productos.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 WobbleMenu1_Tab4Click
Subs.panelVisible(p_historial, 0, 0) Subs.panelVisible(p_historial, 0, 0)
p_productos.Visible = False p_meseros.Visible = False
p_carrito.Visible = False ' p_carrito.Visible = False
p_mesas.Visible = False p_mesas.Visible = False
p_mesa.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 llenaHistorial
End Sub 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 Private Sub b_continuar_Click
WobbleMenu1.SetCurrentTab(2) WobbleMenu1.SetCurrentTab(2)
End Sub End Sub
Private Sub p_botonesVenta_Click 'Private Sub p_botonesVenta_Click
'
End Sub 'End Sub
Private Sub lv_promos_ItemClick (Position As Int, Value As Object) Private Sub lv_promos_ItemClick (Position As Int, Value As Object)
@@ -697,10 +684,10 @@ Private Sub p_carrito_Click
'Para evitar que el clic en pantalla no se siga hacia atras 'Para evitar que el clic en pantalla no se siga hacia atras
End Sub End Sub
Private Sub b_buscar_Click 'Private Sub b_buscar_Click
forzarBusqueda = True ' forzarBusqueda = True
et_busca_TextChanged("",et_busca.Text) ' et_busca_TextChanged("",et_busca.Text)
End Sub 'End Sub
Private Sub b_terminar_Click Private Sub b_terminar_Click
DateTime.DateFormat= $"yyMMdd-HHmmss-${Starter.ticketActual}"$ DateTime.DateFormat= $"yyMMdd-HHmmss-${Starter.ticketActual}"$
@@ -708,22 +695,25 @@ Private Sub b_terminar_Click
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($"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}'"$) Starter.skmt.ExecNonQuery($"delete from pedido where PE_TICKET = '${Starter.ticketActual}'"$)
' lv_carrito.Clear ' lv_carrito.Clear
clv_carrito.Clear ' clv_carrito.Clear
' et_busca_TextChanged("", et_busca.Text) ' et_busca_TextChanged("", et_busca.Text)
LlenaProdsLL(Null, Null) 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.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.Visible = True
l_compraTerminada.BringToFront l_compraTerminada.BringToFront
l_totalCarrito.Text = "" ' l_totalCarrito.Text = ""
End Sub End Sub
Sub llenaHistorial Sub llenaHistorial
Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select h_idcompra, sum(h_costo_tot) as total, sum(h_cant) as cantidad, h_fecha from cat_hist_compras group by h_idcompra"$) Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select * from pedido_ticket where PT_PAGO <> 'VENTA' order by PT_PAGO, PT_TICKET"$)
If rs_hist.RowCount > 0 Then If rs_hist.RowCount > 0 Then
' c_prods.Position = 0 ' c_prods.Position = 0
' l_total2.Text = c_prods.GetString("PE_COSTO_TOT") ' l_total2.Text = c_prods.GetString("PE_COSTO_TOT")
' lv_historial.BringToFront ' lv_historial.BringToFront
l_historialVacio.Visible = False
Private cs As CSBuilder Private cs As CSBuilder
lv_historial.Clear
lv_historial.Visible = True
Do While rs_hist.NextRow Do While rs_hist.NextRow
' Private rs_do As ResultSet = Starter.skmt.ExecQuery($"select * from CAT_HIST_COMPRAS where H_IDCOMPRA = '${rs_hist.GetString("H_IDCOMPRA")}'"$) ' Private rs_do As ResultSet = Starter.skmt.ExecQuery($"select * from CAT_HIST_COMPRAS where H_IDCOMPRA = '${rs_hist.GetString("H_IDCOMPRA")}'"$)
cs.Initialize cs.Initialize
@@ -731,7 +721,9 @@ Sub llenaHistorial
' lv_historial.TwoLinesLayout.ItemHeight = 50dip ' lv_historial.TwoLinesLayout.ItemHeight = 50dip
Label1 = lv_historial.TwoLinesLayout.Label Label1 = lv_historial.TwoLinesLayout.Label
Label1.TextSize = 16 Label1.TextSize = 16
Label1.TextColor = Colors.red ' Label1.TextColor = Colors.red
Private elColor As Int = Colors.Red
If rs_hist.GetString("PT_PAGO") = "TARJETA" Then elColor = Colors.RGB(0,0,122)
Label1.color = Colors.White Label1.color = Colors.White
Label1.Height = 30dip Label1.Height = 30dip
' Private textColor As Int = Colors.black ' Private textColor As Int = Colors.black
@@ -742,9 +734,9 @@ Sub llenaHistorial
' Do While rs_do.NextRow ' Do While rs_do.NextRow
' Log($"${rs_do.GetString("H_IDCOMPRA")}, ${rs_do.GetString("H_PRONOMBRE")}, ${rs_do.GetString("H_CANT")}"$) ' Log($"${rs_do.GetString("H_IDCOMPRA")}, ${rs_do.GetString("H_PRONOMBRE")}, ${rs_do.GetString("H_CANT")}"$)
' Loop ' Loop
Private fecha As String = rs_hist.GetString("H_FECHA") Private fecha As String = rs_hist.GetString("PT_FECHA")
fecha = fecha.SubString2(1,10) fecha = fecha.SubString2(1,10)
lv_historial.AddTwoLines("Orden: " & rs_hist.GetString("H_IDCOMPRA"), $"Fecha: ${fecha}, Productos: ${rs_hist.GetString("cantidad")}, Total: $${NumberFormat2(rs_hist.GetString("total"), 1, 2, 2, True)}"$) 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)}"$)
' totalPedido = totalPedido + (rs_hist.GetString("PE_COSTOU") * rs_hist.GetString("PE_CANT")) ' totalPedido = totalPedido + (rs_hist.GetString("PE_COSTOU") * rs_hist.GetString("PE_CANT"))
' cantPedido = cantPedido + rs_hist.GetString("PE_CANT") ' cantPedido = cantPedido + rs_hist.GetString("PE_CANT")
Loop Loop
@@ -753,60 +745,103 @@ Sub llenaHistorial
'' l_cant.Text = c.GetString("PC_NOART") '' l_cant.Text = c.GetString("PC_NOART")
' c.Close ' c.Close
Else Else
lv_historial.Visible = False
l_historialVacio.Visible = True l_historialVacio.Visible = True
l_historialVacio.Text = "No hay ordenes en tu historial." l_historialVacio.Text = "No hay ordenes en tu historial."
End If End If
rs_hist.Close rs_hist.Close
End Sub End Sub
Sub llenaHistorial_old
' Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select h_idcompra, sum(h_costo_tot) as total, sum(h_cant) as cantidad, h_fecha from cat_hist_compras group by h_idcompra"$)
' If rs_hist.RowCount > 0 Then
'' c_prods.Position = 0
'' l_total2.Text = c_prods.GetString("PE_COSTO_TOT")
'' lv_historial.BringToFront
' Private cs As CSBuilder
' Do While rs_hist.NextRow
'' Private rs_do As ResultSet = Starter.skmt.ExecQuery($"select * from CAT_HIST_COMPRAS where H_IDCOMPRA = '${rs_hist.GetString("H_IDCOMPRA")}'"$)
' cs.Initialize
' Dim Label1 As Label
'' lv_historial.TwoLinesLayout.ItemHeight = 50dip
' Label1 = lv_historial.TwoLinesLayout.Label
' Label1.TextSize = 16
' Label1.TextColor = Colors.red
' Label1.color = Colors.White
' Label1.Height = 30dip
'' Private textColor As Int = Colors.black
' Dim label2 As Label
' label2 = lv_historial.TwoLinesLayout.SecondLabel
' label2.TextSize = 14
' label2.TextColor = Colors.RGB(1,127,1)
'' Do While rs_do.NextRow
'' Log($"${rs_do.GetString("H_IDCOMPRA")}, ${rs_do.GetString("H_PRONOMBRE")}, ${rs_do.GetString("H_CANT")}"$)
'' Loop
' Private fecha As String = rs_hist.GetString("H_FECHA")
' fecha = fecha.SubString2(1,10)
' lv_historial.AddTwoLines("Orden: " & rs_hist.GetString("H_IDCOMPRA"), $"Fecha: ${fecha}, Productos: ${rs_hist.GetString("cantidad")}, Total: $${NumberFormat2(rs_hist.GetString("total"), 1, 2, 2, True)}"$)
'' totalPedido = totalPedido + (rs_hist.GetString("PE_COSTOU") * rs_hist.GetString("PE_CANT"))
'' cantPedido = cantPedido + rs_hist.GetString("PE_CANT")
' Loop
'' Private c As Cursor = Starter.skmt.ExecQuery("select pc_noart, pc_monto from PEDIDO_TICKET where pc_cliente in (Select CUENTA from cuentaa)")
'' c.Position=0
' '' l_cant.Text = c.GetString("PC_NOART")
'' c.Close
' Else
' 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 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 p As B4XView = xui.CreatePanel("")
Dim cs As CSBuilder ' Dim cs As CSBuilder
cs.Initialize ' cs.Initialize
p.SetLayoutAnimated(0, 0, 0, Width, Height) ' p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("prodItemCarrito") ' p.LoadLayout("prodItemCarrito")
' i_prod.Bitmap = img '' i_prod.Bitmap = img
l_prodX.TextSize = 15 ' l_prodX.TextSize = 15
p_prods.Height = Height ' p_prods.Height = Height
p_prods.Width = Width - 10 ' p_prods.Width = Width - 10
' Log($"${clv_carrito.AsView.Width}, ${Root.Width}, ${p_prods.Width}"$) '' Log($"${clv_carrito.AsView.Width}, ${Root.Width}, ${p_prods.Width}"$)
p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width - 75) ' p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width - 75)
l_prodX.Height = Height ' l_prodX.Height = Height
l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU ' 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.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_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$
l_pCant.Tag = precioU&"|"&inv&"|"&prodId ' l_pCant.Tag = precioU&"|"&inv&"|"&prodId
et_pCant.Tag = precioU&"|"&inv&"|"&prodId ' et_pCant.Tag = precioU&"|"&inv&"|"&prodId
et_pCant.Text = cant ' et_pCant.Text = cant
et_pCant.BringToFront ' et_pCant.BringToFront
Return p ' Return p
End Sub End Sub
Private Sub b_borrar_Click Private Sub b_borrar_Click
clv = clv_carrito ' clv = clv_carrito
' Private buttonTag As String = Sender.As(Button).tag '' Private buttonTag As String = Sender.As(Button).tag
Dim index As Int = clv.GetItemFromView(Sender) ' Dim index As Int = clv.GetItemFromView(Sender)
Msgbox2Async("¿Seguro que deseas borrar este producto?", "Borrar Producto", "Si", "", "No", Null, False) ' Msgbox2Async("¿Seguro que deseas borrar este producto?", "Borrar Producto", "Si", "", "No", Null, False)
Wait For Msgbox_Result (Result As Int) ' Wait For Msgbox_Result (Result As Int)
If Result = DialogResponse.POSITIVE Then ' If Result = DialogResponse.POSITIVE Then
LogColor("b_borrar_Click", Colors.Magenta) ' LogColor("b_borrar_Click", Colors.Magenta)
Private precio As String=clv.GetValue(index).As(Map).Get("precio") ' Private precio As String=clv.GetValue(index).As(Map).Get("precio")
' Private inv As Int = clv.GetValue(index).As(Map).Get("almacen") '' Private inv As Int = clv.GetValue(index).As(Map).Get("almacen")
Dim pnl0 As B4XView = clv.GetPanel(index) ' Dim pnl0 As B4XView = clv.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0) ' Dim pnl As B4XView = pnl0.GetView(0)
Dim laCant As B4XView = pnl.GetView(2).GetView(2) ' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4) ' If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4)
Log(laCant.text) ' Log(laCant.text)
laCant.Text = "0" ' laCant.Text = "0"
Private id As String=clv.GetValue(index).As(Map).Get("id") ' Private id As String=clv.GetValue(index).As(Map).Get("id")
' Private almacenX As String = Subs.traeAlmacen '' Private almacenX As String = Subs.traeAlmacen
Private nombreX As String = Subs.traeProdNombre(id) ' Private nombreX As String = Subs.traeProdNombre(id)
Private precioX As String = precio ' 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) ' 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}"$) '' Log($"${almacenX}, ${precioX}, ${laCant.text}, ${nombreX}, ${id}, ${Starter.ticketActual}, ${Subs.traeFecha}, ${Subs.traeUsuarioDeBD}, ${rutaUsuario}, 0, ${Starter.tipov}"$)
cuentaProds ' cuentaProds
llenaCarrito ' llenaCarrito
End If ' End If
End Sub End Sub
Private Sub lv_historial_ItemClick (Position As Int, Value As Object) Private Sub lv_historial_ItemClick (Position As Int, Value As Object)
@@ -848,6 +883,10 @@ Private Sub clv_mesas_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
End Sub End Sub
Sub LlenaMesas(p As ResultSet, extra As String) 'ignore 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"$) 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"$)
' 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, M_TICKET, IFNULL(PT_MONTO, 0) as SUBTOTAL, IFNULL(PT_NOART, 0) as NO_ARTS from CAT_MESAS left join pedido_ticket on M_TICKET = pt_ticket and M_ID = PT_MESA"$) ' 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, M_TICKET, IFNULL(PT_MONTO, 0) as SUBTOTAL, IFNULL(PT_NOART, 0) as NO_ARTS from CAT_MESAS left join pedido_ticket on M_TICKET = pt_ticket and M_ID = PT_MESA"$)
@@ -862,7 +901,7 @@ Sub LlenaMesas(p As ResultSet, extra As String) 'ignore
' Log(p.GetString("ESTATUS2")) ' Log(p.GetString("ESTATUS2"))
If p.GetString("ESTATUS2") = "ABIERTA" Then If p.GetString("ESTATUS2") = "ABIERTA" Then
' Log($"PT_TICKET = '${p.GetString("M_TICKET")}' and PT_MESA = '${p.GetString("M_ID")}"$) ' 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")}'"$) 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 If pt.RowCount > 0 Then
pt.Position = 0 pt.Position = 0
SUBTOTAL2 = pt.GetString("SUBTOTAL") SUBTOTAL2 = pt.GetString("SUBTOTAL")
@@ -886,9 +925,11 @@ Sub LlenaMesas(p As ResultSet, extra As String) 'ignore
reiniciarlistaProds = False reiniciarlistaProds = False
End Sub End Sub
'Entramos a la mesa seleccionada. 'Entramos a la mesa seleccionada.
Private Sub p_mesasItem_Click Private Sub p_mesasItem_Click
Log(Sender.As(Panel).tag) Log(Sender.As(Panel).tag)
b_abrirMesa.Text = "Abrir Mesa"
Subs.panelVisible(p_mesa, 0, 0) Subs.panelVisible(p_mesa, 0, 0)
Private m As Map = Sender.As(Panel).tag Private m As Map = Sender.As(Panel).tag
Starter.mesaActual = m.Get("id") Starter.mesaActual = m.Get("id")
@@ -961,13 +1002,20 @@ Private Sub cb_mesero_SelectedIndexChanged (Index As Int)
End Sub End Sub
Private Sub b_mesaCerrar_Click Private Sub b_mesaCerrar_Click
Log("Cerrar") ' Log("Cerrar")
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) Log(Sender.As(Button).tag)
p_pago.BringToFront p_pago.BringToFront
p_pago.Visible = True 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 End Sub
Private Sub b_mesaEditar_Click Private Sub b_mesaEditar_Click
b_abrirMesa.Text = "Guardar"
p_mesaCampos.Visible = True p_mesaCampos.Visible = True
b_abrirMesa.Visible = True b_abrirMesa.Visible = True
p_mesaAbierta.Visible = False p_mesaAbierta.Visible = False
@@ -988,19 +1036,60 @@ End Sub
Private Sub b_pagoCerrar_Click Private Sub b_pagoCerrar_Click
p_pago.Visible = False p_pago.Visible = False
If cb_pago.SelectedItem = "Efectivo" Then If cb_pago.SelectedItem = "Efectivo" Then
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", "EFECTIVO") Private tipoPago As String = "EFECTIVO"
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}'"$)
Log($"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 = 'EFECTIVO', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Log($"update PEDIDO set PE_TIPO = 'EFECTIVO', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = 'EFECTIVO', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
Log($"update PEDIDO_TICKET set PT_PAGO = 'EFECTIVO', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA"$)
Else Else
'Pago con tarjeta
Private tipoPago As String = "TARJETA"
End If 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}'"$)
' Log($"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}'"$)
' Log($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
' Log($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA"$)
B4XPage_CloseRequest B4XPage_CloseRequest
End Sub End Sub
Private Sub cb_pago_SelectedIndexChanged (Index As Int) Private Sub cb_pago_SelectedIndexChanged (Index As Int)
Log(cb_pago.SelectedItem) Log(cb_pago.SelectedItem)
End Sub 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
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_Click
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"))
End If
End Sub
Private Sub p_transparenteCierreAdmin_Click
'Para evitar que el clic en pantalla no se siga hacia atras
End Sub

View File

@@ -4,9 +4,7 @@ ModulesStructureVersion=1
Type=Class Type=Class
Version=6.8 Version=6.8
@EndOfDesignText@ @EndOfDesignText@
'Necesita la libreria RandomAccessFile ''Class module
'Class module
Sub Class_Globals Sub Class_Globals
Private mTarget As Object Private mTarget As Object
Type DBResult (Tag As Object, Columns As Map, Rows As List) Type DBResult (Tag As Object, Columns As Map, Rows As List)
@@ -17,8 +15,11 @@ Sub Class_Globals
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte ,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
Private VERSION As Float = 0.9 Private VERSION As Float = 0.9
Private tempArray(1) As Object Private tempArray(1) As Object
Dim jobTagAnterior As String = "" 'Mod por CHV - 211027 Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
Dim logger As Boolean = False Dim reqsList, timesList As List
Dim inicioRequest As Long 'ignore
Dim inicioJobDone As Long 'ignore
Dim inicioRequestMap, inicioJobDoneMap As Map
End Sub End Sub
'Target - The module that handles JobDone (usually Me). 'Target - The module that handles JobDone (usually Me).
@@ -35,7 +36,9 @@ End Sub
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
Dim j As HttpJob Dim j As HttpJob
Dim ms As OutputStream Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag) Dim out2 As OutputStream = StartJob(j, ms, Tag)
' If reqsList.IsInitialized Then reqsList.Add(Tag)
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
WriteObject(Command.Name, out2) WriteObject(Command.Name, out2)
WriteInt(Limit, out2) WriteInt(Limit, out2)
@@ -50,7 +53,7 @@ End Sub
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
Dim j As HttpJob Dim j As HttpJob
Dim ms As OutputStream Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag) Dim out2 As OutputStream = StartJob(j, ms, Tag)
WriteInt(ListOfCommands.Size, out2) WriteInt(ListOfCommands.Size, out2)
For Each Command As DBCommand In ListOfCommands For Each Command As DBCommand In ListOfCommands
WriteObject(Command.Name, out2) WriteObject(Command.Name, out2)
@@ -62,10 +65,15 @@ End Sub
'Similar to ExecuteBatch. Sends a single command. 'Similar to ExecuteBatch. Sends a single command.
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
' If reqsList.IsInitialized Then reqsList.Add(Tag)
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
ExecuteBatch(Array As DBCommand(Command), Tag) ExecuteBatch(Array As DBCommand(Command), Tag)
End Sub End Sub
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
' inicioRequest = DateTime.now
If reqsList.IsInitialized Then reqsList.Add(Tag)
If timesList.IsInitialized Then timesList.Add(DateTime.now)
j.Initialize("DBRequest", mTarget) j.Initialize("DBRequest", mTarget)
j.Tag = Tag j.Tag = Tag
MemoryStream.InitializeToBytesArray(0) MemoryStream.InitializeToBytesArray(0)
@@ -189,10 +197,15 @@ End Sub
'Handles the Job result and returns a DBResult. 'Handles the Job result and returns a DBResult.
Public Sub HandleJob(Job As HttpJob) As DBResult Public Sub HandleJob(Job As HttpJob) As DBResult
' Dim start As Long = DateTime.Now If jobTagAnterior <> Job.Tag Then
' inicioJobDone = DateTime.Now 'ignore
If inicioJobDoneMap.IsInitialized Then inicioJobDoneMap.Put(Job.Tag, DateTime.Now)
' tiempos.Put(Job.taskId, CreateMap("inicioJobDone":inicioJobDone))
' Log(tiempos)
' Log("############# " & Job.taskId)
End If
Dim In As InputStream = Job.GetInputStream Dim In As InputStream = Job.GetInputStream
Dim cs As CompressedStreams Dim cs As CompressedStreams
If Starter.Logger Then logger = Starter.Logger
In = cs.WrapInputStream(In, "gzip") In = cs.WrapInputStream(In, "gzip")
Dim serverVersion As Float = ReadObject(In) 'ignore Dim serverVersion As Float = ReadObject(In) 'ignore
Dim method As String = ReadObject(In) Dim method As String = ReadObject(In)
@@ -201,8 +214,6 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
table.Columns.Initialize table.Columns.Initialize
table.rows.Initialize table.rows.Initialize
table.Tag = Job.Tag table.Tag = Job.Tag
If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211023
jobTagAnterior = Job.Tag 'Mod por CHV - 211023
If method = "query" Then If method = "query" Then
Dim numberOfColumns As Int = ReadInt(In) Dim numberOfColumns As Int = ReadInt(In)
For i = 0 To numberOfColumns - 1 For i = 0 To numberOfColumns - 1
@@ -224,9 +235,14 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
Next Next
End If End If
In.Close In.Close
' Log("HandleJob: " & (DateTime.Now - start)) ' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
If jobTagAnterior <> table.Tag Then
LogColor("HandleJob: '"&table.Tag&"'" & " - Registros: " & table.Rows.Size, Colors.RGB(115, 0, 140)) 'Mod por CHV - 211109
End If
jobTagAnterior = table.Tag 'Mod por CHV - 211109
Return table Return table
End Sub End Sub
'Reads a file and returns the file as a bytes array. 'Reads a file and returns the file as a bytes array.
Public Sub FileToBytes(Dir As String, FileName As String) As Byte() Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
Dim out As OutputStream Dim out As OutputStream
@@ -270,8 +286,58 @@ Public Sub PrintTable(Table As DBResult)
For Each record As Object In row For Each record As Object In row
sb.Append(record).Append(TAB) sb.Append(record).Append(TAB)
Next Next
ToastMessageShow(sb.ToString, True) Log(sb.ToString)
Next Next
End Sub End Sub
Sub requestTimes(tag As String) As Map 'ignore
Private times As Map
times.Initialize
' Log("###### " & tag)
' Log(reqsList.IsInitialized)
If reqsList.IsInitialized Then
' Log(reqsList)
' Private pos As Int = reqsList.IndexOf(tag)
If inicioRequestMap.ContainsKey(tag) Then
inicioRequest = inicioRequestMap.Get(tag)
' Log(">>>>>>> From inicioRequestMap")
End If
If inicioJobDoneMap.ContainsKey(tag) Then
inicioJobDone = inicioJobDoneMap.Get(tag)
' Log(">>>>>>> From inicioJobDoneMap")
End If
End If
' Log($"${inicioJobDone} - ${inicioRequest}"$)
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
times.Put("requestTime", requestTime)
times.Put("jobDoneTime", JobDoneTime)
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
Return times
End Sub
'Initializes request tracking
Sub trackInit 'ignore
Log(">>>>>>>>> TRACKINIT ")
reqsList.Initialize
timesList.Initialize
inicioRequestMap.Initialize
inicioJobDoneMap.Initialize
End Sub
Sub trackNext(job As HttpJob)
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
Private quitamos As String = ""
If reqsList.IndexOf(job.tag) <> -1 Then
Private pos As Int = reqsList.IndexOf(job.tag)
If pos <> -1 Then
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
reqsList.RemoveAt(pos)
timesList.RemoveAt(pos)
End If
quitamos = $"Quitamos ${job.tag} - "$
End If
LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
End If
End Sub

BIN
B4A/Files/errormanager.bal Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,24 +1,28 @@
Build1=Default,mp.keymon.lat,HU2_PUBLIC Build1=Default,mp.keymon.lat,HU2_PUBLIC
File1=candado.png File1=candado.png
File10=principal.bal File10=MainPage.bal
File11=proditem.bal File11=mesasItem.bal
File12=proditemCarrito.bal File12=principal.bal
File13=usuario.png File13=proditem.bal
File14=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white_12833309-[Convertido].png File14=proditemCarrito.bal
File15=usuario.png
File16=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white_12833309-[Convertido].png
File2=durakelo.png File2=durakelo.png
File3=engrane.png File3=engrane.png
File4=engranes.png File4=engranes.png
File5=kmt.db File5=errormanager.bal
File6=login.bal File6=fondoblanco.png
File7=logo.png File7=kmt.db
File8=MainPage.bal File8=login.bal
File9=mesasItem.bal File9=logo.png
FileGroup1=Default Group FileGroup1=Default Group
FileGroup10=Default Group FileGroup10=Default Group
FileGroup11=Default Group FileGroup11=Default Group
FileGroup12=Default Group FileGroup12=Default Group
FileGroup13=Default Group FileGroup13=Default Group
FileGroup14=Default Group FileGroup14=Default Group
FileGroup15=Default Group
FileGroup16=Default Group
FileGroup2=Default Group FileGroup2=Default Group
FileGroup3=Default Group FileGroup3=Default Group
FileGroup4=Default Group FileGroup4=Default Group
@@ -29,32 +33,38 @@ FileGroup8=Default Group
FileGroup9=Default Group FileGroup9=Default Group
Group=Default Group Group=Default Group
Library1=appupdating Library1=appupdating
Library10=wobblemenu Library10=randomaccessfile
Library11=preoptimizedclv Library11=runtimepermissions
Library12=serial
Library13=sql
Library14=stringutils
Library15=wobblemenu
Library16=xui
Library17=javaobject
Library2=b4xpages Library2=b4xpages
Library3=byteconverter Library3=byteconverter
Library4=compressstrings Library4=compressstrings
Library5=core Library5=core
Library6=json Library6=json
Library7=okhttputils2 Library7=okhttputils2
Library8=randomaccessfile Library8=phone
Library9=sql Library9=preoptimizedclv
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="31"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true") ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="31"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")
Module1=B4XMainPage Module1=B4XMainPage
Module2=C_Principal Module2=C_Principal
Module3=DBRequestManager Module3=DBRequestManager
Module4=errorManager Module4=errorManager
Module5=Starter Module5=Starter
Module6=Subs Module6=Subs
NumberOfFiles=14 NumberOfFiles=16
NumberOfLibraries=11 NumberOfLibraries=17
NumberOfModules=6 NumberOfModules=6
Version=12.5 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: MarketPlace #ApplicationLabel: MarketPlace
#VersionCode: 1 #VersionCode: 1
#VersionName: 3.07.20 #VersionName: 4.07.20
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -14,11 +14,11 @@ ModuleBreakpoints5=
ModuleBreakpoints6= ModuleBreakpoints6=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1= ModuleClosedNodes1=
ModuleClosedNodes2=1 ModuleClosedNodes2=
ModuleClosedNodes3=14 ModuleClosedNodes3=
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5=6 ModuleClosedNodes5=
ModuleClosedNodes6=68 ModuleClosedNodes6=68
NavigationStack=B4XMainPage,b_cargaProductos_Click,91,0,C_Principal,b_prodMenos_Click,282,0,B4XMainPage,Class_Globals,20,0,C_Principal,B4XPage_CloseRequest,200,6,C_Principal,Initialize,72,0,C_Principal,b_pagoCerrar_Click,991,0,Starter,Process_Globals,5,0,B4XMainPage,Initialize,39,0,C_Principal,Class_Globals,67,0,Subs,Process_Globals,17,0 NavigationStack=C_Principal,b_mesaCerrar_Click,999,6,Main,Globals,21,0,Visual Designer,principal.bal,-100,6,B4XMainPage,Initialize,44,0,Visual Designer,login.bal,-100,6,B4XMainPage,Class_Globals,40,0,B4XMainPage,B4XPage_Created,63,6,Subs,traeTotalesTicketActual,1131,0,C_Principal,p_mesasItem_Click,936,0,Starter,Process_Globals,18,0,errorManager,Activity_Resume,117,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=1,5,6,2,4 VisibleModules=1,5,6,2,4,3

View File

@@ -14,7 +14,9 @@ Sub Process_Globals
'These variables can be accessed from all modules. 'These variables can be accessed from all modules.
Public rp As RuntimePermissions Public rp As RuntimePermissions
Dim reqManager As DBRequestManager Dim reqManager As DBRequestManager
Dim skmt, errorLog As SQL Dim skmt As SQL
Dim Logger As Boolean = False
Dim DBReqServer As String = "http://keymon.lat:1782"
Dim server, ruta As String Dim server, ruta As String
'Para los Logs 'Para los Logs
Dim logs As StringBuilder Dim logs As StringBuilder
@@ -41,7 +43,7 @@ Sub Service_Create
logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat") logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat")
#end if #end if
logs.Initialize logs.Initialize
server = "http://keymon.lat:1782" server = "http://keymon.lat:1781"
If Logger Then Log($"Starter reqManager server: ${server}"$) If Logger Then Log($"Starter reqManager server: ${server}"$)
Logger = False Logger = False
End Sub End Sub
@@ -64,12 +66,12 @@ End Sub
'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Para los Logs 'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Para los Logs
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
'wait for 500ms to allow the logs to be updated. 'wait for 500ms to allow the logs to be updated.
Log(">>>>>>>>> ERROR")
Dim jo As JavaObject Dim jo As JavaObject
Dim l As Long = 500: jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) 'Sleep 500ms Dim l As Long = 500: jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) 'Sleep 500ms
logcat.LogCatStop logcat.LogCatStop
logs.Initialize logs.Initialize
logs.Append("Ver " & Application.VersionName & CRLF) logs.Append(Application.LabelName & " Ver " & Application.VersionName & CRLF)
logs.Append("R:" & rutav & CRLF)
logs.Append(StackTrace) logs.Append(StackTrace)
Subs.revisaBD Subs.revisaBD
Subs.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (Subs.fechaKMT(DateTime.now), logs)) Subs.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (Subs.fechaKMT(DateTime.now), logs))
@@ -82,7 +84,7 @@ Sub Service_Destroy
If Logger Then LogColor("starter destroyed", Colors.red) If Logger Then LogColor("starter destroyed", Colors.red)
End Sub End Sub
Sub reinicializaReqManager Sub reinicializaReqManager 'ignore
reqManager.Initialize(Me, server) reqManager.Initialize(Me, server)
If Logger Then Log(server) If Logger Then Log(server)
End Sub End Sub

View File

@@ -188,32 +188,23 @@ End Sub
'Revisa que exista la BD y si es necesario crea algunans tablas dentro de ella 'Revisa que exista la BD y si es necesario crea algunans tablas dentro de ella
Sub revisaBD 'ignore Sub revisaBD 'ignore
' Main.ruta = File.DirInternal Log("REVISA BD")
' Log(Starter.ruta)
' Log(File.Exists(Starter.ruta, "kmt.db"))
If Not(File.Exists(Starter.ruta, "kmt.db")) Then If Not(File.Exists(Starter.ruta, "kmt.db")) Then
File.Copy(File.DirAssets, "kmt.db", Starter.ruta, "kmt.db") File.Copy(File.DirAssets, "kmt.db", Starter.ruta, "kmt.db")
LogColor("copiamos kmt.db de "&File.DirAssets & " a " & Starter.ruta,Colors.Green) LogColor("copiamos kmt.db de "&File.DirAssets & " a " & Starter.ruta,Colors.Green)
End If End If
If Not(kmt.IsInitialized) Then kmt.Initialize(Starter.ruta, "kmt.db", True) If Not(kmt.IsInitialized) Then kmt.Initialize(Starter.ruta, "kmt.db", True)
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_GPS(FECHA INTEGER, LAT TEXT, LON TEXT)")
' kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS UUC(fecha INTEGER, lat TEXT, lon TEXT)") 'LastKnownLocation
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS bitacora(fecha INTEGER, texto TEXT)") 'Bitacora kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS bitacora(fecha INTEGER, texto TEXT)") 'Bitacora
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_AVANCE(HA_MARCA TEXT, HA_AVANCE TEXT, HA_OBJETIVO TEXT, HA_PORCENTAJE TEXT)") 'Historico avance mes actual
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOSP(NOTA TEXT, CLIENTE TEXT, SALDO_PENDIENTE TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_NUEVO(CN_ID_CLIENTE TEXT, CN_NOMBRE TEXT, CN_enviado text)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_SUPLENCIA(RS_RUTA TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESAS(M_ID TEXT, M_NUMERO TEXT, M_NOMBRE TEXT, M_ZONA TEXT, M_ESTATUS TEXT, M_TICKET TEXT, M_MESERO TEXT, M_PAGO TEXT, M_COMENSALES INTEGER)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESAS(M_ID TEXT, M_NUMERO TEXT, M_NOMBRE TEXT, M_ZONA TEXT, M_ESTATUS TEXT, M_TICKET TEXT, M_MESERO TEXT, M_PAGO TEXT, M_COMENSALES INTEGER)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESEROS(MS_ID TEXT, MS_NOMBRE TEXT, MS_MESAS_ASIGNADAS TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_MESEROS(MS_ID TEXT, MS_NOMBRE TEXT, MS_MESAS_ASIGNADAS TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS bitacora(fecha INTEGER, texto TEXT)") 'Bitacora
' kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS MESAA(MESA STRING)")
' kmt.ExecNonQuery("drop table PEDIDO_INICIO_FINAL") 'Bitacora
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_INICIO_FINAL(PIF_CLIENTE TEXT, PIF_HORA_INICIO LONG, PIF_HORA_FINAL LONG)") 'Bitacora
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO3 (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_MESA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_TICKET TEXT,PE_FECHA TEXT,PE_MESERO TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_MESA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_TICKET TEXT,PE_FECHA TEXT,PE_MESERO TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_MESA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_TICKET TEXT,PE_FECHA TEXT,PE_MESERO TEXT)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_TICKET (PT_FACT TEXT, PT_COSTO_SIN TEXT, PT_MESA TEXT, PT_PAGO TEXT, PT_ALMACEN TEXT, PT_LON TEXT, PT_LAT TEXT, PT_TICKET TEXT, PT_FECHA TEXT, PT_MESERO TEXT, PT_COMENSALES INTEGER, PT_NOART NUMERIC, PT_MONTO TEXT, PT_ENVIO_OK INTEGER, PT_TIEMPO_TIENDA FLOAT, PT_FACTURA INTEGER)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_TICKET (PT_FACT TEXT, PT_COSTO_SIN TEXT, PT_MESA TEXT, PT_PAGO TEXT, PT_ALMACEN TEXT, PT_LON TEXT, PT_LAT TEXT, PT_TICKET TEXT, PT_FECHA TEXT, PT_MESERO TEXT, PT_COMENSALES INTEGER, PT_NOART NUMERIC, PT_MONTO TEXT, PT_ENVIO_OK INTEGER, PT_TIEMPO_TIENDA FLOAT, PT_FACTURA INTEGER)")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_HIST_COMPRAS (H_IDCOMPRA TEXT, H_FOLIO NUMERIC, H_MESA TEXT, H_CEDIS TEXT, H_COSTO_TOT NUMERIC, H_COSTOU NUMERIC, H_CANT NUMERIC, H_PRONOMBRE TEXT, H_PROID TEXT, H_TICKET TEXT, H_FECHA TEXT)") agregaColumna("PEDIDO_TICKET", "PT_TICKET", "TEXT")
agregaColumna("PEDIDO", "PE_TICKET", "TEXT")
agregaColumna("PEDIDO", "PE_MESA", "TEXT")
agregaColumna("PEDIDO", "PE_MESERO", "TEXT")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
'Tabla para la bitacora de errores 'Tabla para la bitacora de errores
If Not(errorLog.IsInitialized) Then errorLog.Initialize(Starter.ruta, "errorLog.db", True) If Not(errorLog.IsInitialized) Then errorLog.Initialize(Starter.ruta, "errorLog.db", True)
errorLog.ExecNonQuery("CREATE TABLE IF NOT EXISTS errores(fecha INTEGER, error TEXT)") errorLog.ExecNonQuery("CREATE TABLE IF NOT EXISTS errores(fecha INTEGER, error TEXT)")
@@ -650,6 +641,8 @@ Sub traeAlmacen As String 'ignore
Return a Return a
End Sub End Sub
'Regresa el nombre del producto desde CAT_GUNAPROD 'Regresa el nombre del producto desde CAT_GUNAPROD
Sub traeProdNombre(id As String) As String Sub traeProdNombre(id As String) As String
Private h As Cursor Private h As Cursor
@@ -680,10 +673,10 @@ Sub traeMesa As String 'ignore
Return m Return m
End Sub End Sub
Sub traeTicket(mesaId As String) As String 'ignore Sub traeTicket(mesaId As String, tipoPago As String) As String 'ignore
Private c As Cursor Private c As Cursor
Private cl As String = "PENDIENTE" Private cl As String = "PENDIENTE"
c=Starter.skmt.ExecQuery("Select M_TICKET from CAT_MESAS where M_ID = '${mesaId}'") c=Starter.skmt.ExecQuery($"Select M_TICKET from CAT_MESAS where M_ID = '${mesaId}' and PE_TIPO = '${tipoPago}'"$)
If c.RowCount > 0 Then If c.RowCount > 0 Then
c.Position=0 c.Position=0
cl = c.GetString("M_TICKET") cl = c.GetString("M_TICKET")
@@ -911,6 +904,7 @@ Sub traeMaxPromos(pm As Map) As Int
End Sub End Sub
'Regresa la cantidad de promos que se le han vendido al cliente. 'Regresa la cantidad de promos que se le han vendido al cliente.
'HAY QUE REVISAR QUE TRAIGA BIEN LOS DATOS, HAY QUE PONER MAS DATOS EN EL "WHERE" DEL QUERY.
Sub traePromosVendidas(promo As String, cliente As String) As Int Sub traePromosVendidas(promo As String, cliente As String) As Int
Private c As Cursor Private c As Cursor
Private pv As Int = 0 Private pv As Int = 0
@@ -1137,6 +1131,7 @@ Sub traeProdIdDeBD As Map 'ignore
End Sub End Sub
'Regresa el total de productos y monto del pedido del ticket actual. 'Regresa el total de productos y monto del pedido del ticket actual.
'HAY QUE REVISAR QYUE EL WHERE TENGA LOS PARAMETRSO NECESARIOS
Sub traeTotalesTicketActual As Map Sub traeTotalesTicketActual As Map
Private m As Map Private m As Map
m.Initialize m.Initialize
@@ -1180,9 +1175,10 @@ Sub pedidoGuardado As Boolean
End Sub End Sub
'Regresa verdadero si hay pedido en la tabla "PEDIDO" del cliente actual. 'Regresa verdadero si hay pedido en la tabla "PEDIDO" del cliente actual.
'HAY QUE REVSAR QUE REGERSE BIEN LOS DATOS; SEGURO HAY QUE PONER MAS DATOS EN EL WHERE DEL QUERY.
Sub hayPedido As Boolean Sub hayPedido As Boolean
' Log($"TraeTicket: ${traeTicket}"$) ' Log($"TraeTicket: ${traeTicket}"$)
Private thisC As Cursor=Starter.skmt.ExecQuery($"select count(PE_TICKET) as hayPedido from PEDIDO where PE_TICKET = '${Starter.ticketActual}'"$) Private thisC As Cursor=Starter.skmt.ExecQuery($"select count(PE_TICKET) as hayPedido from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' Log($"select count(PE_TICKET) as hayPedido from PEDIDO where PE_TICKET = '${Starter.ticketActual}'"$) ' Log($"select count(PE_TICKET) as hayPedido from PEDIDO where PE_TICKET = '${Starter.ticketActual}'"$)
thisC.Position = 0 thisC.Position = 0
Private hay As Boolean = False Private hay As Boolean = False
@@ -1224,20 +1220,20 @@ End Sub
'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual. 'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual.
Sub totalPedido As String Sub totalPedido As String
Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_TICKET = '${traeTicket(Starter.mesaActual)}'"$) ' Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_TICKET = '${traeTicket(Starter.mesaActual)}'"$)
Private pTotal As String = "0" ' Private pTotal As String = "0"
If cT.RowCount > 0 Then ' If cT.RowCount > 0 Then
cT.Position = 0 ' cT.Position = 0
' Log("|"&cT.GetLong("total")&"|"&pTotal) '' Log("|"&cT.GetLong("total")&"|"&pTotal)
Private tempT As String = cT.GetLong("total") ' Private tempT As String = cT.GetLong("total")
If tempT <> "null" And tempT <> Null Then ' If tempT <> "null" And tempT <> Null Then
' Log("|"&cT.GetLong("total")&"|") '' Log("|"&cT.GetLong("total")&"|")
pTotal = tempT ' pTotal = tempT
End If ' End If
' Log($"Cliente actual=${traeTicket}, hayPedido=${hay}"$) '' Log($"Cliente actual=${traeTicket}, hayPedido=${hay}"$)
End If ' End If
cT.Close ' cT.Close
Return pTotal ' Return pTotal
End Sub End Sub
Sub actualizaProducto(costoU As String, cant As String, nombre As String, prodId As String, ticketId As String, fecha As String, mesero As String, mesa As String, precioSin As String, tipoVenta As String, comensales As Int) Sub actualizaProducto(costoU As String, cant As String, nombre As String, prodId As String, ticketId As String, fecha As String, mesero As String, mesa As String, precioSin As String, tipoVenta As String, comensales As Int)
@@ -1254,22 +1250,23 @@ Sub actualizaProducto(costoU As String, cant As String, nombre As String, prodId
Private difCant As Int = cant - antCant Private difCant As Int = cant - antCant
Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))} where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))} where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$)
Starter.skmt.ExecNonQuery($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) Starter.skmt.ExecNonQuery($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$)
c=Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) c=Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$)
Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) ' Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$)
c.Position=0 c.Position=0
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) ' Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
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(ticketId, tipoVenta, fecha, mesero, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), mesa, c.GetString("TOTAL_CLIE_SIN"), comensales)) 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(ticketId, tipoVenta, fecha, mesero, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), mesa, c.GetString("TOTAL_CLIE_SIN"), comensales))
' Log($"insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (${ticketId}, ${tipoVenta}, fecha, mesero, ${c.GetString("CANT_CLIE")}, ${c.GetString("TOTAL_CLIE")}, ${mesa}, c.GetString("TOTAL_CLIE_SIN"), comensales)"$)
If cant = 0 Then If cant = 0 Then
LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red)
Starter.skmt.ExecNonQuery($"delete from pedido where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' "$) Starter.skmt.ExecNonQuery($"delete from pedido where pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$)
Log($"Borramos pe_proid='${prodId}' and PE_TICKET='${ticketId}'"$) Log($"Borramos pe_proid='${prodId}' and PE_TICKET='${ticketId}'"$)
Private pe As Cursor = Starter.skmt.ExecQuery($"select count(PE_TICKET) as cuantosPedidos from pedido where PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) Private pe As Cursor = Starter.skmt.ExecQuery($"select count(PE_TICKET) as cuantosPedidos from pedido where PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$)
pe.Position = 0 pe.Position = 0
If pe.GetString("cuantosPedidos") = 0 Then If pe.GetString("cuantosPedidos") = 0 Then
Log("Borramos PEDIDO_TICKET") Log("Borramos PEDIDO_TICKET")
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) ' Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
End If End If
End If End If
Else Else
@@ -1292,12 +1289,13 @@ Sub guardaProductoSinGestion(costoU As String, cant As String, nombre As String,
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 ((cant * costoU), costoU, cant, nombre, prodId, ticketId, fecha, mesero, mesa, precioSin, tipoVenta)) 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 ((cant * costoU), costoU, cant, nombre, prodId, ticketId, fecha, mesero, mesa, precioSin, tipoVenta))
'Actualizamos el inventario en cat_gunaprod solo si no es RMI 'Actualizamos el inventario en cat_gunaprod solo si no es RMI
Starter.skmt.ExecNonQuery2($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId)) Starter.skmt.ExecNonQuery2($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId))
c=Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) c = Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_TIPO = 'VENTA' and PE_MESA = '${mesa}'"$)
Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$)
c.Position=0 c.Position = 0
Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) ' Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$)
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(ticketId, tipoVenta, fecha, mesero, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), mesa, c.GetString("TOTAL_CLIE_SIN"), comensales)) 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(ticketId, tipoVenta, fecha, mesero, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), mesa, c.GetString("TOTAL_CLIE_SIN"), comensales))
Log($"insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (${ticketId}, ${tipoVenta}, ${mesero}, ${c.GetString("CANT_CLIE")}, ${c.GetString("TOTAL_CLIE")}, ${mesa}, ${c.GetString("TOTAL_CLIE_SIN")}, ${comensales})"$)
End Sub End Sub
Sub agrupador() Sub agrupador()
@@ -1391,19 +1389,18 @@ Sub traeConsecutivoTicket(estatus As String, pago As String) As String
Private m As String = "00000" Private m As String = "00000"
Private sqlPago As String = $"M_PAGO = '${pago}'"$ Private sqlPago As String = $"M_PAGO = '${pago}'"$
If pago = "PENDIENTE" Then sqlPago = $"M_PAGO is NULL"$ If pago = "PENDIENTE" Then sqlPago = $"M_PAGO is NULL"$
If pago = "EFECTIVO" Then If pago = "EFECTIVO" Or pago = "TARJETA" Then
Private c As Cursor = Starter.skmt.ExecQuery($"select max(PE_TICKET) as ultimo from PEDIDO where PE_TIPO = 'EFECTIVO'"$) Private c As Cursor = Starter.skmt.ExecQuery($"select max(PE_TICKET) as ultimo from PEDIDO where PE_TIPO = '${pago}'"$)
Else Else
Private c As Cursor = Starter.skmt.ExecQuery($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$) Private c As Cursor = Starter.skmt.ExecQuery($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$)
End If End If
' Log($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$)
Log($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$)
If c.RowCount > 0 Then If c.RowCount > 0 Then
c.Position = 0 c.Position = 0
Log("|" & c.GetString("ultimo") & "|") ' Log("|" & c.GetString("ultimo") & "|")
If c.GetString("ultimo") <> Null And c.GetString("ultimo") <> "null" Then m = NumberFormat2(c.GetString("ultimo"), 5, 0,0, False) If c.GetString("ultimo") <> Null And c.GetString("ultimo") <> "null" Then m = NumberFormat2(c.GetString("ultimo"), 5, 0,0, False)
End If End If
Log(m + 1) ' Log(m + 1)
Return NumberFormat2(m+1, 5, 0, 0, False) Return NumberFormat2(m+1, 5, 0, 0, False)
End Sub End Sub
@@ -1418,6 +1415,37 @@ Sub traeMesaEstatus(id As String) As String
Return e Return e
End Sub End Sub
'Regresa verdadero si el cierre adminstrativo esta en 1
Sub revisaCierreAdmin As Boolean
Private c As Cursor = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CIERRE ADMIN"))
Private cierre As Boolean = False
If c.RowCount > 0 Then
c.Position = 0
If c.GetString("CAT_VA_VALOR") = 1 Then
' B4XPages.MainPage.principal.p_transparenteCierreAdmin.BringToFront
' B4XPages.MainPage.principal.p_transparenteCierreAdmin.Visible = True
cierre = True
Else
' B4XPages.MainPage.principal.p_transparenteCierreAdmin.Visible = False
End If
End If
Return cierre
End Sub
'Change CheckBox colors
Sub SetButtonTintList(View As View, Disabled As Int, Enabled As Int)
Dim States(2,1) As Int
Dim sd As StateListDrawable 'ignore
States(0, 0) = sd.State_Enabled
States(1, 0) = sd.State_Disabled
Dim Color(2) As Int = Array As Int(Enabled, Disabled)
Dim CSL As JavaObject
CSL.InitializeNewInstance("android.content.res.ColorStateList",Array(States,Color))
Dim jo As JavaObject
jo.InitializeStatic("android.support.v4.widget.CompoundButtonCompat")
jo.RunMethod("setButtonTintList", Array(View, CSL))
End Sub
'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS 'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS
'1782 '1782
@@ -1425,3 +1453,10 @@ End Sub
'DBKMT 'DBKMT
'LANTER 'LANTER
'LANTERD2023M 'LANTERD2023M
'sql.selectProds_Lanter = Select * from cat_gunaprod
'sql.selectMesas_Lanter = Select * from cat_mesas
'sql.selectMeseros_Lanter = Select * from cat_meseros
'CREATE TABLE CAT_GUNAPROD (CAT_GP_CODPROMO TEXT, CAT_GP_INICIATIVA TEXT, CAT_GP_TIPOPROD TEXT, CAT_GP_DEV TEXT, CAT_GP_ALMACEN NUMERIC, CAT_GP_ID TEXT, CAT_GP_NOMBRE TEXT, CAT_GP_IMP1 TEXT, CAT_GP_IMP2 TEXT, CAT_GP_PRECIO TEXT, CAT_GP_CLASIF TEXT, CAT_GP_STS TEXT, CAT_GP_TIPO TEXT, CAT_GP_SUBTIPO TEXT, CAT_GP_IMG BLOB, CAT_PT_DESC TEXT, CAT_PS_DESC TEXT, CAT_GP_FECHA TEXT, CAT_GP_FECHA_MOD TEXT)
'CREATE TABLE "CAT_MESAS"(M_ID TEXT, M_NUMERO TEXT, M_NOMBRE TEXT, M_ZONA TEXT, M_ESTATUS TEXT, M_MESERO TEXT, M_PAGO TEXT, M_TICKET TEXT, M_COMENSALES INTEGER)
'CREATE TABLE CAT_MESEROS(MS_ID TEXT, MS_NOMBRE TEXT, MS_MESAS_ASIGNADAS TEXT)