diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 7ee2745..15a9569 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -23,6 +23,7 @@ Version=9.85 Sub Class_Globals Private Root As B4XView Private xui As XUI + Public login As B4XMainPage Public principal As C_Principal Private i_logo As ImageView Private p_configuracion As Panel @@ -35,6 +36,8 @@ Sub Class_Globals Private ImageView2 As ImageView Private Panel3 As Panel Private Label1 As Label + Private i_conf As ImageView + Private b_cargaProductos As Button End Sub Public Sub Initialize @@ -45,6 +48,8 @@ End Sub Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 Root.LoadLayout("login") + login.Initialize + B4XPages.AddPage("Login", login) principal.Initialize B4XPages.AddPage("Principal", principal) p_login.Width = Root.Width @@ -82,4 +87,12 @@ End Sub Private Sub b_envioBD_Click +End Sub + +Private Sub i_conf_Click + +End Sub + +Private Sub b_cargaProductos_Click + End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 600a077..aebbd1e 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -192,7 +192,9 @@ Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel Log(1) - If p_mesa.Visible Then + If p_pago.visible Then + p_pago.Visible = False + else If p_mesa.Visible Then p_mesa.Visible = False p_mesas.Visible = True LlenaMesas(Null, Null) @@ -201,8 +203,8 @@ Sub B4XPage_CloseRequest As ResumableSub ' p_mesas.Visible = True WobbleMenu1_Tab1Click WobbleMenu1.SetCurrentTab(1) -' Else -' Subs.iniciaActividad("Login") + Else + B4XPages.ShowPage("Login") End If Return False End Sub @@ -280,9 +282,9 @@ Sub b_prodMenos_Click If laCant.Text = 0 Then prodsMap.Remove(id) ' LogColor("prodsMap="&prodsMap, Colors.blue) ' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, ticketId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) - Private almacenX As String = Subs.traeAlmacen +' Private almacenX As String = Subs.traeAlmacen Private nombreX As String = Subs.traeProdNombre(id) - Subs.actualizaProducto(almacenX, precio, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Subs.traeUsuarioDeBD, Starter.mesaActual, 0, Starter.tipov) + Subs.actualizaProducto(precio, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales) cuentaProds Dim cs As CSBuilder cs.Initialize @@ -326,10 +328,10 @@ Sub b_prodMas_Click Log(Subs.totalPedido) End If 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 precioX As String = precio - Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Subs.traeUsuarioDeBD, Starter.mesaActual, 0, Starter.tipov) + Subs.actualizaProducto(precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales) cuentaProds Dim cs As CSBuilder cs.Initialize @@ -373,9 +375,9 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV. Dim cantsMap As Map cantsMap.Initialize - Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_CEDIS = '${Subs.traeAlmacen}'"$) + Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$) 'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes. - If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_CEDIS = 'DUR'"$) + If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = 'DUR'"$) ' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red) Do While pe.NextRow Private cant As Int = 0 @@ -797,10 +799,10 @@ Private Sub b_borrar_Click Log(laCant.text) laCant.Text = "0" 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 precioX As String = precio - Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Subs.traeUsuarioDeBD, Starter.mesaActual, 0, Starter.tipov) + Subs.actualizaProducto(precioX, laCant.text, nombreX, id, Starter.ticketActual, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, 0, Starter.tipov, Starter.comensalesActuales) ' Log($"${almacenX}, ${precioX}, ${laCant.text}, ${nombreX}, ${id}, ${Starter.ticketActual}, ${Subs.traeFecha}, ${Subs.traeUsuarioDeBD}, ${rutaUsuario}, 0, ${Starter.tipov}"$) cuentaProds llenaCarrito @@ -828,6 +830,7 @@ Private Sub clv_mesas_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int) l_estatus.text = "DISPONIBLE" ' Log(m) If m.Get("estatus") = "ABIERTA" Then l_estatus.Text = "ABIERTA" +' Log(m) If l_estatus.text = "ABIERTA" Then l_mesaX.Text = cs.Color(Colors.red).Size(16).Append($"Mesa ${m.Get("id")}"$).pop.append(CRLF).Color(0xFF017F01).Append($"Comensales ${m.Get("comensales")}"$).Append(" - Mesero ").pop.Color(Colors.red).append(m.Get("mesero")).pop.append(CRLF).Color(Colors.black).Append($"Subtotal. $${NumberFormat2(m.Get("subtotal"), 1,2,2,True)} - Articulos: ${m.Get("articulos")}"$).Popall Else @@ -845,9 +848,8 @@ Private Sub clv_mesas_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int) End Sub Sub LlenaMesas(p As ResultSet, extra As String) 'ignore -' Dim p As ResultSet = Starter.skmt.ExecQuery($"select *, IFNULL(M_ESTATUS, 'DISPONIBLE') 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, 'DISPONIBLE') as ESTATUS2, IFNULL(M_MESERO, 'NINGUNO') as MESERO, IFNULL(M_COMENSALES, 0) as COMENSALES, M_TICKET, IFNULL(PC_MONTO, 0) as SUBTOTAL, IFNULL(PC_NOART, 0) as NO_ARTS from CAT_MESAS left join pedido_ticket on M_TICKET = pc_ticket"$) + 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"$) ' Log(p.RowCount) PCLVM.Commit @@ -855,7 +857,20 @@ Sub LlenaMesas(p As ResultSet, extra As String) 'ignore Private m_mesas As Map m_mesas.Initialize Do While p.NextRow - Dim tempMap As Map = CreateMap("id":p.GetString("M_ID"), "numero":p.GetString("M_NUMERO"), "nombre":p.GetString("M_NOMBRE"), "zona":p.GetString("M_ZONA"), "ticket":p.GetString("M_TICKET"), "estatus":p.GetString("ESTATUS2"), "mesero":p.GetString("MESERO"), "comensales":p.GetString("COMENSALES"), "subtotal":p.GetString("SUBTOTAL"), "articulos":p.GetString("NO_ARTS")) + Private SUBTOTAL2 As String = "0" + Private NO_ARTS2 As String = "0" +' Log(p.GetString("ESTATUS2")) + If p.GetString("ESTATUS2") = "ABIERTA" Then +' Log($"PT_TICKET = '${p.GetString("M_TICKET")}' and PT_MESA = '${p.GetString("M_ID")}"$) + Private pt As Cursor = Starter.skmt.ExecQuery($"select ifnull(sum(PT_MONTO),0) as SUBTOTAL, ifnull(sum(PT_NOART), 0) as NO_ARTS from PEDIDO_TICKET where PT_TICKET = '${p.GetString("M_TICKET")}' and PT_MESA = '${p.GetString("M_ID")}'"$) + If pt.RowCount > 0 Then + pt.Position = 0 + SUBTOTAL2 = pt.GetString("SUBTOTAL") + NO_ARTS2 = pt.GetString("NO_ARTS") + End If + End If +' Log($"${SUBTOTAL2}, ${NO_ARTS2}"$) + Dim tempMap As Map = CreateMap("id":p.GetString("M_ID"), "numero":p.GetString("M_NUMERO"), "nombre":p.GetString("M_NOMBRE"), "zona":p.GetString("M_ZONA"), "ticket":p.GetString("M_TICKET"), "estatus":p.GetString("ESTATUS2"), "mesero":p.GetString("MESERO"), "comensales":p.GetString("COMENSALES"), "subtotal":SUBTOTAL2, "articulos":NO_ARTS2) ' m_mesas.Put(p.GetString("M_ID"), tempMap) Private Pnl As B4XView = xui.CreatePanel("") Pnl.SetLayoutAnimated(0, 0, 0, clv_mesas.AsView.Width, 70dip) @@ -877,7 +892,9 @@ Private Sub p_mesasItem_Click Subs.panelVisible(p_mesa, 0, 0) Private m As Map = Sender.As(Panel).tag Starter.mesaActual = m.Get("id") + Starter.meseroActual = m.Get("mesero") Starter.ticketActual = m.Get("ticket") + Starter.comensalesActuales = m.Get("comensales") l_mesa.Text = $"MESA NO. ${m.Get("id")}"$ Log(m) b_mesaCerrar.Tag = m @@ -908,8 +925,19 @@ End Sub Private Sub b_abrirMesa_Click If cb_mesero.SelectedIndex <> 0 Then - Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) - Log($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) + Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ID = '${Starter.mesaActual}' and M_ESTATUS = 'ABIERTA'"$) + If c.RowCount > 0 Then + Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) + Log($"update CAT_MESAS set M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) + Else + Starter.ticketActual = Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE") + Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) + Log($"update CAT_MESAS set M_TICKET = '${Starter.ticketActual}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) + End If + Starter.meseroActual = cb_mesero.SelectedItem + Starter.comensalesActuales = cb_comensales.SelectedItem + Starter.skmt.ExecNonQuery($"insert into usuarioa (usuario) values ('${cb_mesero.SelectedItem}')"$) + LlenaProdsLL(Null, Null) l_comensalesAbierta2.Text = cb_comensales.SelectedItem l_meseroAbierta2.Text = cb_mesero.SelectedItem p_mesaCampos.Visible = False @@ -959,6 +987,18 @@ End Sub Private Sub b_pagoCerrar_Click p_pago.Visible = False + If cb_pago.SelectedItem = "Efectivo" Then + Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", "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 + + End If + B4XPage_CloseRequest End Sub Private Sub cb_pago_SelectedIndexChanged (Index As Int) diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 2067db8..75c301e 100644 Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ diff --git a/B4A/MarketPlace.b4a.meta b/B4A/MarketPlace.b4a.meta index 542f99c..5cce45c 100644 --- a/B4A/MarketPlace.b4a.meta +++ b/B4A/MarketPlace.b4a.meta @@ -19,6 +19,6 @@ ModuleClosedNodes3=14 ModuleClosedNodes4= ModuleClosedNodes5=6 ModuleClosedNodes6=68 -NavigationStack=C_Principal,b_prodMas_Click,287,0,C_Principal,Class_Globals,64,0,C_Principal,p_pago_Click,950,0,Visual Designer,principal.bal,-100,6,C_Principal,B4XPage_Created,111,4,C_Principal,cb_mesero_SelectedIndexChanged,927,0,C_Principal,cb_pago_SelectedIndexChanged,959,3,C_Principal,b_pagoCerrar_Click,956,1,C_Principal,lv_categorias_ItemClick,948,0,C_Principal,p_mesaAbierta_Click,944,0,C_Principal,b_mesaEditar_Click,940,0 +NavigationStack=C_Principal,LlenaMesas,857,6,Subs,guardaProductoSinGestion,1293,6,Subs,actualizaProducto,1248,6,C_Principal,b_pagoCerrar_Click,990,6,C_Principal,B4XPage_CloseRequest,200,6,Visual Designer,principal.bal,-100,4,B4XMainPage,B4XPage_Created,42,0,Visual Designer,login.bal,-100,2,B4XMainPage,Class_Globals,34,0,B4XMainPage,i_conf_Click,91,0,B4XMainPage,b_cargaProductos_Click,91,0 SelectedBuild=0 -VisibleModules=1,5,6,2 +VisibleModules=1,5,6,2,4 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 9ade8f3..3d100fb 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -22,8 +22,7 @@ Sub Process_Globals Dim Logger As Boolean Dim rutav As String = "" Dim tipov As String = "VENTA" - Dim mesaActual As String - Dim ticketActual As String + Dim ticketActual, mesaActual, meseroActual, comensalesActuales As String End Sub Sub Service_Create diff --git a/B4A/Subs.bas b/B4A/Subs.bas index d54bfe4..d732d97 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -203,7 +203,7 @@ Sub revisaBD 'ignore 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 DEFAULT 'PENDIENTE' NOT NULL, 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 bitacora(fecha INTEGER, texto TEXT)") 'Bitacora ' kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS MESAA(MESA STRING)") @@ -211,7 +211,7 @@ Sub revisaBD 'ignore 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_TICKET (PC_FACT TEXT, PC_COSTO_SIN TEXT, PC_MESA TEXT, PC_ALMACEN TEXT, PC_LON TEXT, PC_LAT TEXT, PC_TICKET TEXT, PC_FECHA TEXT, PC_USER TEXT, PC_NOART NUMERIC, PC_MONTO NUMERIC, PC_ENVIO_OK INTEGER, PC_TIEMPO_TIENDA FLOAT, PC_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)") 'Tabla para la bitacora de errores @@ -1240,37 +1240,42 @@ Sub totalPedido As String Return pTotal End Sub -Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, ticketId As String, fecha As String, usuario As String, mesa As String, precioSin As String, tipoVenta As String) +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) If nombre.Length < 6 Then ToastMessageShow("(actualizaProducto) El nombre del producto no es valido " & nombre, True) - LogColor($"actualizaProducto, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}, mesa=${mesa}, ticket=${ticketId}"$, Colors.Magenta) + LogColor($"actualizaProducto, p=${prodId}, nombre=${nombre}, cant=${cant}, tipo=${tipoVenta}, mesa=${mesa}, mesero=${mesero}, comensales=${comensales}, ticket=${ticketId}"$, Colors.Magenta) ' Private tablaProds As String = "cat_gunaprod2" ' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod" - Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and PE_TICKET = '${ticketId}'"$) + Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where PE_PROID = '${prodId}' and PE_TICKET = '${ticketId}' and PE_MESA = '${mesa}' and PE_TIPO = '${tipoVenta}'"$) If c.RowCount > 0 Then LogColor("ACTUALIZAMOS PROD", Colors.Blue) - c.Position=0 + c.Position = 0 Private antCant As Int = 0 If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") 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_cedis = '${cedis}' and pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' "$) + 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}' "$) 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}'"$) 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 - Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PC_TICKET = '${ticketId}'"$) - Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PC_TICKET, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_ALMACEN, PC_MESA, PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?)", Array As Object(ticketId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), cedis, mesa, c.GetString("TOTAL_CLIE_SIN"))) + 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}'"$) + 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)) If cant = 0 Then LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) - Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and PE_TICKET = '${ticketId}' "$) - Log($"Borramos pe_cedis='${cedis}' and 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}'") - pe.Position=0 - If pe.GetString("cuantosPedidos") = 0 Then Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PC_TICKET = '${ticketId}'"$) + Starter.skmt.ExecNonQuery($"delete from pedido where 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}'"$) + pe.Position = 0 + If pe.GetString("cuantosPedidos") = 0 Then + Log("Borramos PEDIDO_TICKET") + 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}'"$) + End If End If Else 'INSERTAMOS LogColor("INSERTAMOS PROD", Colors.red) - If cant > 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, ticketId, fecha, usuario, mesa, precioSin, tipoVenta) + If cant > 0 Then guardaProductoSinGestion(costoU, cant, nombre, prodId, ticketId, fecha, mesero, mesa, precioSin, tipoVenta, comensales) End If c.Close End Sub @@ -1278,20 +1283,21 @@ End Sub 'Inserta un producto en la tabla "pedido" y "PEDIDO_TICKET" y actualiza "cat_gunaprod". 'NO ACTUALIZA LA BANDERA DE GESTION EN LA TABLA "kmt_info". 'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar. -Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, ticketId As String, fecha As String, usuario As String, mesa As String, precioSin As String, tipoVenta As String) +Sub guardaProductoSinGestion(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) If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True) - LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta&" , ticket="&ticketId&", mesa="&mesa, Colors.Magenta) + LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta&" , ticket="&ticketId&", mesa="&mesa&", comensales="&comensales, Colors.Magenta) Private c As Cursor ' Private tablaProds As String = "cat_gunaprod2" ' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod" - Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, 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 (cedis, (cant * costoU), costoU, cant, nombre, prodId, ticketId, fecha, usuario, 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 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}'"$) 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 - Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PC_TICKET = '${ticketId}'"$) - Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PC_TICKET, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_ALMACEN, PC_MESA, PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?)", Array As Object(ticketId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), cedis, mesa, c.GetString("TOTAL_CLIE_SIN"))) + 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}'"$) + 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)) End Sub Sub agrupador() @@ -1382,14 +1388,19 @@ End Sub 'Regresa el siguente consecutivo para el ticket. Sub traeConsecutivoTicket(estatus As String, pago As String) As String - Private m As String = "00001" + Private m As String = "00000" Private sqlPago As String = $"M_PAGO = '${pago}'"$ If pago = "PENDIENTE" Then sqlPago = $"M_PAGO is NULL"$ - Private c As Cursor = Starter.skmt.ExecQuery($"select max(M_TICKET) as ultimo from CAT_MESAS where M_ESTATUS = '${estatus}' and ${sqlPago}"$) - Log($"select max(M_TICKET) as ultimo from CAT_MESAS where M_ESTATUS = '${estatus}' and M_PAGO = '${pago}'"$) + If pago = "EFECTIVO" Then + Private c As Cursor = Starter.skmt.ExecQuery($"select max(PE_TICKET) as ultimo from PEDIDO where PE_TIPO = 'EFECTIVO'"$) + 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}"$) + End If + + Log($"select max(M_TICKET) as ultimo from CAT_MESAS where ifnull(M_ESTATUS, 'CERRADA') = '${estatus}' and ${sqlPago}"$) If c.RowCount > 0 Then 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) End If Log(m + 1) @@ -1405,4 +1416,12 @@ Sub traeMesaEstatus(id As String) As String e = c.GetString("estatus") End If Return e -End Sub \ No newline at end of file +End Sub + + +'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS +'1782 +'10.0.0.106 +'DBKMT +'LANTER +'LANTERD2023M