Cerrar mesa efectivo

This commit is contained in:
2024-02-05 05:22:08 -06:00
parent 7fdf31f02a
commit 3b764f5277
6 changed files with 117 additions and 46 deletions

View File

@@ -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
End Sub
'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS
'1782
'10.0.0.106
'DBKMT
'LANTER
'LANTERD2023M