- Se agrega codigo para descuento con pago en efectivo

This commit is contained in:
2024-03-10 06:07:50 -06:00
parent a6e77b99a4
commit 35da4c6e23
5 changed files with 476 additions and 392 deletions

View File

@@ -81,6 +81,11 @@ Private Sub B4XPage_Created (Root1 As B4XView)
i_logo.Left = (Root.Width / 2) - (i_logo.Width / 2)
Subs.centraPanel(Panel3, p_configuracion.Width)
' subs.panelVisible(p_configuracion, 0, 0)
Private x As Cursor = Starter.skmt.ExecQuery($"select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'"$)
If x.RowCount = 0 Then 'Insertamos el descuento para efectivo por default.
' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DESCUENTO X EFECTIVO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DESCUENTO X EFECTIVO","10"))
End If
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub

View File

@@ -118,6 +118,10 @@ Sub Class_Globals
Private l_tipoPago As Label
Private formaPago As String
Private l_faltaMonto As Label
Private p_opcionEfectivo As Panel
Private l_opcionEfectivo As Label
Private CheckBox1 As CheckBox
Private cb_opcionEfectivo As CheckBox
End Sub
'You can add more parameters here.
@@ -211,7 +215,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
Starter.imprimirTicket = False
Starter.imprimirTicket = false
reqManager.Initialize(Me, Starter.DBReqServer)
B4XPages.MainPage.atrasPresionado = False
' Log(Starter.DBReqServer)
@@ -393,8 +397,6 @@ 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)"$)
' LogColor("TIEMPO cuentaProds =" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
' LogColor(prodsMap, Colors.Magenta)
' p_botonesVenta.Visible = True
' p_botonesVenta.BringToFront
c.Position=0
' Log(Subs.totalPedido)
Private cant0 As String = "0"
@@ -423,27 +425,14 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
listaProdsConCant2.Initialize
listaProdsConCantIndex2.Initialize
If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
' Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' 'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes.
' If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = 'DUR'"$)
' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
' Do While pe.NextRow
' Private cant As Int = 0
' cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANT"))
' Loop
' pe.Close
Private c As Cursor = Starter.skmt.ExecQuery($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG, PE_PROID, PE_CANT, PE_PRONOMBRE, PE_COSTOU from cat_gunaprod join pedido on cat_gp_id = Pe_proid where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
' If hayPedido And cantsMap.ContainsKey(c.GetString("CAT_GP_ID")) Then cant = cantsMap.Get(p.GetString("CAT_GP_ID")) 'Agregamos la cantidad ya comprada al producto
Dim tempMap As Map = CreateMap("prod":c.GetString("PE_PRONOMBRE"), "precio":c.GetString("PE_COSTOU"), "almacen":c.GetString("CAT_GP_ALMACEN"), "id":c.GetString("CAT_GP_ID"), "cant":c.GetString("PE_CANT"), "img":Null)
listaProdsConCant2.Add(tempMap)
listaProdsConCantIndex2.Add(c.GetString("CAT_GP_ID"))
' listaProdsConCant2.Add(tempMap)
' listaProdsConCantIndex2.Add(i)
Next
End If
@@ -462,23 +451,11 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$)
' Log(p.RowCount)
Private cont As Int = 0
' Private listaProdsConCant2, listaProdsConCantIndex2 As List
' listaProdsConCant2.Initialize
' listaProdsConCantIndex2.Initialize
Do While p.NextRow
Private cant As Int = 0
' Dim ins As InputStream
' Dim bmp As Bitmap
' Dim jpeg() As Byte
' jpeg = p.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
' If hayPedido And cantsMap.ContainsKey(p.GetString("CAT_GP_ID")) Then cant = cantsMap.Get(p.GetString("CAT_GP_ID")) 'Agregamos la cantidad ya comprada al producto
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "img":Null)
listaProds.Add(tempMap)
' listaProdsConCant2.Add(tempMap)
' listaProdsConCantIndex2.Add(cont)
' cont = cont + 1
' Log($"${p.GetString("CAT_GP_ID")}, ${p.GetString("CAT_GP_NOMBRE")}, ${cant}"$)
Loop
' Log($"listaProdsConCant2=${listaProdsConCant2}"$)
@@ -487,20 +464,6 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
' Log("LISTAPRODS: " & listaProds)
PCLV.Commit
clv_prods_ll.Clear
' Private listaProdsConCant, listaProdsConCantIndex As List
' listaProdsConCant.Initialize
' listaProdsConCantIndex.Initialize
' listaHints.Initialize
' Log(listaProds)
' For q = 0 To listaProds.Size - 1' Sacamos los productos con cantidad previa.
' If listaProds.Get(q).As(Map).Get("cant").As(Int) <> 0 Then
'' Log(listaProds.Get(q).As(Map).Get("prod"))
' listaProdsConCant.Add(listaProds.Get(q))
' listaProdsConCantIndex.Add(q)
' End If
' Next
' Log("PRODCONCANT: " & listaProdsConCant)
' Log(listaProdsConCantIndex)
Private cont As Int = 0
For pr0=0 To listaProdsConCant2.Size - 1 'Agregamos los productos con cantidad previa.
Private Pnl As B4XView = xui.CreatePanel("")
@@ -510,15 +473,12 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
cont = cont + 1
Next
' LogColor(clv_prods_ll.Size, Colors.red)
'' Log("LISTAPRODS.SIZE=" & listaProds.Size)
For pr = 0 To listaProds.Size - 1
' If listaProdsConCantIndex.IndexOf(pr) = -1 Then
Private Pnl As B4XView = xui.CreatePanel("")
If listaProds.Get(pr).As(Map).Get("almacen") < 1 Then
' Log("EN CERO" & listaProds.Get(pr).As(Map).Get("prod") & "|" & listaProds.Get(pr).As(Map).Get("almacen"))
Else
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 70dip)
' Log(listaProds.Get(pr))
' Log($"Existe ${listaProds.get(pr).As(Map).Get("id")} -> ${listaProdsConCantIndex2.IndexOf(listaProds.get(pr).As(Map).Get("id"))}"$)
If listaProdsConCantIndex2.IndexOf(listaProds.get(pr).As(Map).Get("id")) = - 1 Then
clv_prods_ll.Add(Pnl, listaProds.Get(pr))
@@ -526,7 +486,6 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
End If
cont = cont + 1
End If
' End If
Next
If clv_prods_ll.Size > 0 Then
clv_prods_ll.JumpToItem(0) 'Vamos al primer artículo de la lista.
@@ -541,7 +500,6 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
End Sub
Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
' Private inicioContador As String = DateTime.Now
' Log($"clv_prods_ll_VisibleRangeChanged : ${FirstIndex}, ${LastIndex} "$)
Dim ExtraSize As Int = 30 'List size
For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_prods_ll.Size - 1)
@@ -551,19 +509,7 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
' Log(clv_prods_ll.GetValue(i))
If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
Pnl.LoadLayout("proditem")
' p_botMasMen.Left = (p_prods.Width * 0.66) - (p_botMasMen.Width / 2)
p_prods.Width = clv_prods_ll.GetBase.Width ' Root.Width * 0.99
' p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5)
'Las siguientes lineas son para que en altas resoluciones (520dp) los botones no se salgan de la pantalla.
' Private botsLeft As Int
' If GetDeviceLayoutValues.Scale > 1.7 Then '411 = 1.75
' botsLeft = p_botMasMen.Width * 0.25
' Else if GetDeviceLayoutValues.Scale > 1.3 Then '520 = 1.38
' botsLeft = p_botMasMen.Width * 0.6
' Else if GetDeviceLayoutValues.Scale > 1.15 Then '620 = 1.156
' botsLeft = p_botMasMen.Width
' End If
p_botMasMen.Left = (clv_prods_ll.GetBase.Width - p_botMasMen.Width - 32)
' Log(p_botMasMen.left)
Private cs As CSBuilder
@@ -582,7 +528,6 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map)
l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
' Log(clv_prods_ll.GetValue(i).As(Map).Get("id"))
' Private rs_img As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_IMG from cat_gunaprod where CAT_GP_ID = '${clv_prods_ll.GetValue(i).As(Map).Get("id")}'"$)
i_prod.Bitmap = clv_prods_ll.GetValue(i).As(Map).Get("img")
End If
' Log($"${i}, ${FirstIndex}, ${LastIndex}, ${Pnl.NumberOfViews}. ${clv_prods_ll.Size}"$)
@@ -591,7 +536,6 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
' Pnl.RemoveAllViews 'Remove none visable item/layouts from the list/main layout
' End If
End If
' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - FirstIndex
' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$)
Next
End Sub
@@ -750,30 +694,10 @@ Private Sub WobbleMenu1_Tab3Click
llenaHistorial
End Sub
'Private Sub WobbleMenu1_Tab4Click
' PCLVM.B4XSeekBar1.mBase.Visible = False
' PCLV.B4XSeekBar1.mBase.Visible = False
' Subs.panelVisible(p_carrito, 0, 0)
' p_carrito.BringToFront
'' p_carrito.BringToFront
' p_meseros.Visible = False
' p_mesas.Visible = False
' p_historial.Visible = False
' l_carritoVacio.Visible = False
' l_compraTerminada.Visible = False
' p_mesa.Visible = False
' llenaCarrito
' If clv_carrito.Size > 0 Then p_botonesCarrito.Visible = True Else p_botonesCarrito.Visible = False
'End Sub
Private Sub b_continuar_Click
WobbleMenu1.SetCurrentTab(2)
End Sub
'Private Sub p_botonesVenta_Click
'
'End Sub
Private Sub lv_promos_ItemClick (Position As Int, Value As Object)
End Sub
@@ -819,7 +743,7 @@ Sub llenaHistorial
label2.TextColor = Colors.RGB(1,127,1)
Private fecha As String = rs_hist.GetString("PT_FECHA")
fecha = fecha.SubString2(1,10)
lv_historial.AddTwoLines(cs.Color(elColor).Append("Orden: " & rs_hist.GetString("PT_TICKET") & " - Mesa: " & rs_hist.GetString("PT_MESA")).PopAll, $"Fecha: ${fecha}, Productos: ${rs_hist.GetString("PT_NOART")}, Total: $${NumberFormat2(rs_hist.GetString("PT_MONTO"), 1, 2, 2, True)}"$)
lv_historial.AddTwoLines2(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)}"$, $"${rs_hist.GetString("PT_MESA")}|${rs_hist.GetString("PT_TICKET")}|${rs_hist.GetString("PT_PAGO")}"$)
Loop
Else
lv_historial.Visible = False
@@ -1007,6 +931,10 @@ Private Sub p_mesasItem_Click
l_meseroAbierta2.Text = m.Get("mesero")
l_comensalesAbierta2.Text = m.Get("comensales")
End If
Private tm As Map = CreateMap("ticket":m.Get("ticket"), "pago":tipoPago)
listaTickets.Initialize
listaTickets.Add(tm) 'Agregamos el ticket y pago a la lista para imprimir el ticket con estos datos al llamar b_imprimirTicket_Click
End Sub
Private Sub p_mesasItem_LongClick
@@ -1094,6 +1022,8 @@ Private Sub b_mesaCerrar_Click
listaMontoDePago.Initialize
listaTickets.Initialize
Starter.formasDePago = 1
l_faltaMonto.Text = ""
cb_opcionEfectivo.Checked = False
p_formasDePago.Height = 40dip
p_propina.Top = 133dip
b_pagoCerrar.Top = 263dip
@@ -1101,16 +1031,18 @@ Private Sub b_mesaCerrar_Click
p_formasDePago.RemoveAllViews
Private c As Cursor = Starter.skmt.ExecQuery($"select PE_MESA from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
If c.RowCount > 0 Then
Log(Sender.As(Button).tag)
' Log(Sender.As(Button).tag)
p_transparentePago.Visible = True
p_transparentePago.BringToFront
agregaFormaDePago(l_tipoPago.Left, 0, Starter.formasDePago)
et_montoPago2.Text = Starter.totalActual
et_montoPago2.Text = Subs.traeTotalTicketActual_PT
Starter.totalActual = Subs.traeTotalTicketActual_PT
et_propina.Text = ""
et_montoPago2.Text = Starter.totalActual
' et_montoPago2.Text = Starter.totalActual
' p_pago.Elevation = 100dip
' p_pago.BringToFront
' p_pago.Visible = True
l_faltaMonto.Visible = False
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
@@ -1160,12 +1092,12 @@ Private Sub b_pagoCerrar_Click
tipoPago = "TARJETA"
End If
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago)
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_TICKET, PE_FECHA, PE_MESERO, PE_MESA, PE_COSTO_SIN, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago))
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, PE_TIPO2, PE_ORIGEN) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (listaMontoDePago.Get(fdp).As(EditText).text, listaMontoDePago.Get(fdp).As(EditText).text, 1, "Consumo de alimentos", "CDA01", sigTicket, Subs.traeFecha, Starter.meseroActual, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, tipoPago, formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
Private laPropina As String = "0"
If et_propina.Text <> "" Then
laPropina = et_propina.Text
End If
Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales))
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, PT_ALMACEN, PT_PAGO2, PT_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object(sigTicket, tipoPago, Subs.traeFecha, Starter.meseroActual, 1, listaMontoDePago.Get(fdp).As(EditText).text, Starter.mesaActual, listaMontoDePago.Get(fdp).As(EditText).text, Starter.comensalesActuales, "MULTI-TICKET", formaPago, $"${Starter.mesaActual}|${sigTicketMT}"$))
' Log(tipoPago)
Starter.ticketActual = sigTicket
Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago)
@@ -1182,12 +1114,12 @@ Private Sub b_pagoCerrar_Click
End If
Private sigTicket As String = Subs.traeConsecutivoTicket("CERRADA", tipoPago)
Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}', PE_TIPO2 = '${formaPago}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$)
Private laPropina As String = "0"
If et_propina.Text <> "" Then
laPropina = et_propina.Text
End If
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${formaPago}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${formaPago}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}', PT_PAGO2 = '${formaPago}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$)
' Log(tipoPago)
Starter.ticketActual = sigTicket
Private tm As Map = CreateMap("ticket":sigTicket, "pago":tipoPago)
@@ -1533,23 +1465,15 @@ Sub b_imp_LongClick
Private c As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$)
Log(c.RowCount)
If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ...
Private c As Cursor = Starter.skmt.ExecQuery("select distinct CAT_GP_CLASIF, PE_PRONOMBRE, sum(pe_cant) as cuantos from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by PE_PRONOMBRE order by CAT_GP_CLASIF, PE_PRONOMBRE")
Private c As Cursor = Starter.skmt.ExecQuery("select distinct CAT_GP_CLASIF, PE_PRONOMBRE, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by PE_PRONOMBRE order by CAT_GP_CLASIF, PE_PRONOMBRE") 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
Private catAnt As String = ""
Private catTotal As String = 0
' Private tipoAnt As String = ""
' Private tipo As String
' Private ticket As String
If imprimirAqui Then Printer1.WriteString($"Fecha: ${sDate} ${sTime} ${CRLF}${CRLF}"$)
For i = 0 To 30 ' c.RowCount - 1
For i = 0 To c.RowCount - 1
c.Position = i
' ticket = c.GetString("PE_TICKET")
' If c.GetString("PE_TIPO") = "TARJETA" Then
' tipo = "Pago Tarjeta "
' Else If c.GetString("PE_TIPO") = "EFECTIVO" Then
' tipo = "Pago Efectivo "
' End If
' Log($"${catAnt} - ${c.GetString("CAT_GP_CLASIF")}"$)
If catAnt <> c.GetString("CAT_GP_CLASIF") Then
' Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO <> 'MULTI-TICKET'"$)
@@ -1571,48 +1495,103 @@ Sub b_imp_LongClick
catTotal = 0
End If
Private elNombre As String = c.GetString("PE_PRONOMBRE")
If elNombre.Length > 28 Then elNombre = elNombre.SubString2(0, 28)
Log($"${elNombre.Length} - ${elNombre}"$)
' If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
' Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
If elNombre.Length > 20 Then elNombre = elNombre.SubString2(0, 20)
Log($"${c.Position} - ${elNombre.Length} - ${elNombre}"$)
cs.Color(Colors.DarkGray).Append($"${elNombre} - ${c.GetString("cuantos")} ${CRLF}"$).pop
If imprimirAqui Then Printer1.WriteString($"${elNombre}${Subs.alineaDerecha(c.GetString("cuantos"), (31 - elNombre.Length), ".")} ${CRLF}"$)
Private monto As String = NumberFormat2(c.GetString("monto"), 1, 0, 0, True)
Private cuantos As String = c.GetString("cuantos")
Private primerEspacioLargo As Int = 30 - elNombre.Length - (cuantos.Length + 1) - 6
Private primerEspacio As String = ""
For n = 1 To primerEspacioLargo
primerEspacio = primerEspacio & "."
Next
' If imprimirAqui Then Printer1.WriteString($"${elNombre}${Subs.alineaDerecha(c.GetString("cuantos"), (31 - elNombre.Length), ".")} ${CRLF}"$)
If imprimirAqui Then Printer1.WriteString($"${elNombre}${primerEspacio}${cuantos}..${monto} ${CRLF}"$)
catTotal = catTotal + c.GetString("cuantos")
Private tipoAnt As String = ""
' If tipoAnt <> c.GetString("PE_TIPO") And c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
' Private tpt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalTipo from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}' and PT_PAGO = '${c.GetString("PE_TIPO")}'"$)
' tpt.Position = 0
' cs.Color(Colors.red).Append($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$).pop
' If imprimirAqui Then Printer1.WriteString($" * ${tipo} - $${NumberFormat2(tpt.GetString("totalTipo"), 1, 2, 2, True)} ${CRLF}"$)
' End If
' If c.GetString("PE_TIPO") <> "MULTI-TICKET" Then
' cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall
' If imprimirAqui Then Printer1.WriteString($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$)
' End If
catAnt = c.GetString("CAT_GP_CLASIF")
' tipoAnt = c.GetString("PE_TIPO")
' Log(i)
Next
If imprimirAqui Then Printer1.WriteString(CRLF)
' Private tt As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'TARJETA'"$)
' Private te As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as total from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$)
' tt.Position = 0 : te.Position = 0
' Private totalEfectivo As String = 0
' If te.GetString("total") <> Null Then totalEfectivo = te.GetString("total")
' cs.color(Colors.green).Append($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$).popall
' If imprimirAqui Then Printer1.WriteString($"${CRLF}Total Tarjeta: ${NumberFormat2(tt.GetString("total"), 1,2,2,True)}${CRLF}"$)
' cs.color(Colors.green).Append($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$).popall
' If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(totalEfectivo, 1,2,2,True)}${CRLF}"$)
l_resumen.Text = cs
' l_resumen.Text = cs
l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text)
sv_resumen.Panel.Height = l_resumen.Height
End If
'RESUMEN
Private rsm As Cursor = Starter.skmt.ExecQuery($"select distinct CAT_GP_CLASIF, sum(pe_cant) as cuantos, sum(pe_costo_tot) as monto from pedido join CAT_GUNAPROD on cat_gp_id = PE_PROID group by CAT_GP_CLASIF order by CAT_GP_CLASIF"$) 'Este query quita los "Consumo de alimentos", que son los tickets que se generan con el multi-ticket, porque en CAT_GUNAPROD no existe el ID CDA01.
Log(rsm.RowCount)
If rsm.RowCount > 0 Then
Printer1.WriteString(Printer1.BOLD)
If imprimirAqui Then Printer1.WriteString($"*** RESUMEN *** ${CRLF}"$)
cs.Color(Colors.red).Append($"** RESUMEN **${CRLF}"$).pop
Printer1.WriteString(Printer1.NOBOLD)
For i = 0 To rsm.RowCount - 1
rsm.Position = i
Private laCat As String = rsm.GetString("CAT_GP_CLASIF")
If laCat.Length > 20 Then laCat = laCat.SubString2(0, 20)
' Log($"${rsm.Position} - ${laCat.Length} - ${laCat}"$)
Private monto As String = NumberFormat2(rsm.GetString("monto"), 1, 0, 0, True)
Private cuantos As String = rsm.GetString("cuantos")
Private primerEspacioLargo As Int = 30 - laCat.Length - (cuantos.Length + 1) - 6
Private primerEspacio As String = ""
For n = 1 To primerEspacioLargo
primerEspacio = primerEspacio & "."
Next
If imprimirAqui Then Printer1.WriteString($"${laCat}${primerEspacio}${cuantos}..${monto} ${CRLF}"$)
cs.Color(Colors.DarkGray).Append($"${laCat}${primerEspacio}${cuantos}..${monto} ${CRLF}"$).pop
Log($"${laCat}${primerEspacio}${cuantos}..${monto} ${CRLF}"$)
Next
'COMENSALES
Private coms As Cursor = Starter.skmt.ExecQuery($"select sum(PT_COMENSALES) as totComensales from PEDIDO_TICKET where ifnull(PT_ALMACEN,0) <> 'MULTI-TICKET'"$)
Private totalComensales As Int = 0
If coms.RowCount > 0 Then
coms.Position = 0
totalComensales = coms.GetInt("totComensales")
End If
If imprimirAqui Then Printer1.WriteString($"Comensales ...........${totalComensales} ${CRLF}"$)
cs.Color(Colors.DarkGray).Append($"Comensales ..........${totalComensales} ${CRLF}"$).pop
Log($"Comensales ...........${totalComensales} ${CRLF}"$)
'PAGOS
Private pgs As Cursor = Starter.skmt.ExecQuery($"Select PT_PAGO2, sum(PT_NOART) As arts, sum(PT_MONTO) As monto from PEDIDO_TICKET where pt_pago <> 'MULTI-TICKET' group by PT_PAGO2"$)
Private totalComensales As Int = 0
If imprimirAqui Then Printer1.WriteString($"${CRLF}"$)
Printer1.WriteString(Printer1.BOLD)
If imprimirAqui Then Printer1.WriteString($"*** PAGOS *** ${CRLF}"$)
Printer1.WriteString(Printer1.NOBOLD)
cs.Color(Colors.red).Append($"** PAGOS **${CRLF}"$).pop
Log("*** PAGOS ***")
Private totalPagos As String = 0
For i = 0 To pgs.RowCount - 1
pgs.Position = i
Private elPago As String = pgs.GetString("PT_PAGO2")
If elPago.Length > 20 Then elPago = elPago.SubString2(0, 20)
Log($"${pgs.Position} - ${elPago.Length} - ${elPago}"$)
Private monto As String = pgs.GetString("monto")
Private cuantos As String = pgs.GetString("arts")
Private primerEspacioLargo As Int = 30 - elPago.Length - (cuantos.Length + 1) - 6
Private primerEspacio As String = ""
For n = 1 To primerEspacioLargo
primerEspacio = primerEspacio & "."
Next
' monto = NumberFormat2(monto.As(Double), 1, 0, 0, True)
Log(monto)
If imprimirAqui Then Printer1.WriteString($"${elPago}${primerEspacio}${cuantos}..${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$)
cs.Color(Colors.DarkGray).Append($"${elPago}${primerEspacio}${cuantos}..${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$).pop
Log($"${elPago}${primerEspacio}${cuantos}..${NumberFormat2(pgs.GetString("monto"), 1, 0, 0, True)} ${CRLF}"$)
totalPagos = totalPagos + monto
Next
totalPagos = NumberFormat2(totalPagos, 1, 0, 0, True)
If imprimirAqui Then Printer1.WriteString($"TOTAL PAGOS ..... ${i} .. ${totalPagos} ${CRLF}"$)
If imprimirAqui Then Printer1.WriteString($"${CRLF}${CRLF}"$)
cs.Color(Colors.DarkGray).Append($"TOTAL PAGOS: .........${i}.. ${totalPagos} ${CRLF}"$).pop
Log($"TOTAL PAGOS: .........${i}.. ${totalPagos} ${CRLF}"$)
End If
l_resumen.Text = cs
Subs.panelVisible(p_transparenteResumen, 0, 0)
Else
ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True)
@@ -1983,7 +1962,6 @@ End Sub
Private Sub b_imprimirTicket_Click
Private imprimirEste As Boolean = Starter.imprimirTicket
' Log(imprimirEste)
Private logger As Boolean = True
Private TAMANO As Int
Private ESPACIO As Int
@@ -1995,6 +1973,7 @@ Private Sub b_imprimirTicket_Click
b_imp.Enabled = False
' If l_total.Text <> Null And l_total.Text <> "null" Then Subs.ponImpreso(la_cuenta.Text) 'Solo lo marcamos como impreso si tiene venta (total > 0).
ProgressDialogShow("Imprimiendo, un momento ...")
For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticket.
If imprimirEste Then
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
@@ -2043,8 +2022,7 @@ Private Sub b_imprimirTicket_Click
myimage = Printer1.DitherImage2D(myimage, 128)
myimage= Printer1.PackImage(myimage)
' LogColor(listaTickets, Colors.red)
For k = 0 To listaTickets.Size - 1 'Por cada ticket y pago de la lista imprimimos un ticlet.
LogColor($">>>>>> INICIA IMPRESION DE TICKET ${listaTickets.Get(k).As(Map).Get("ticket")} <<<<<<<<<<<<"$, Colors.Red)
If logger Then LogColor($">>>>>> INICIA IMPRESION DE TICKET ${listaTickets.Get(k).As(Map).Get("ticket")} <<<<<<<<<<<<"$, Colors.Red)
Starter.ticketActual = listaTickets.Get(k).As(Map).Get("ticket")
tipoPago = listaTickets.Get(k).As(Map).Get("pago")
Try
@@ -2064,7 +2042,9 @@ Private Sub b_imprimirTicket_Click
If logger Then Log("EXPEDIDO EN: PASEO DE LAS PALMAS NO. 275, LOCAL B" & CRLF)
If imprimirEste Then Printer1.WriteString("TEL: 55 5207 9969" & CRLF)
If logger Then Log("TEL: 55 5207 9969" & CRLF)
If imprimirEste Then Printer1.WriteString(Printer1.BOLD)
If imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF)
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF)
If imprimirEste Then Printer1.WriteString("CDMX " & sDate &" " & sTime & CRLF)
If logger Then Log("CDMX " & sDate &" " & sTime & CRLF)
@@ -2078,26 +2058,37 @@ Private Sub b_imprimirTicket_Click
' If imprimirEste Then Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
' If logger Then Log("ID.Cliente: " & la_cuenta.Text & CRLF)
If imprimirEste Then Printer1.WriteString(" " & CRLF)
c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
c = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
Private elSubTotal As String = 0
If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD)
For i = 0 To c.RowCount - 1
c.Position = i
Private elNombre As String = c.GetString("PE_PRONOMBRE")
If elNombre.Length > 30 Then elNombre.SubString2(0, 30)
If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(c.GetString("PE_COSTO_TOT"), 1, 2, 2, True), 30, ".")}${CRLF}"$)
elSubTotal = c.GetString("PE_COSTO_TOT") - (c.GetString("PE_COSTO_TOT") * (c.GetString("DESC") / 100))
If imprimirEste Then Printer1.WriteString($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(elSubTotal, 1, 2, 2, True), 30, ".")}${CRLF}"$)
Log($"${c.GetString("PE_CANT")} ${elNombre}${CRLF}${Subs.alineaDerecha("$"&NumberFormat2(elSubTotal, 1, 2, 2, True), 30, ".")}${CRLF}"$)
Next
End If
c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = '${tipoPago}' and PT_TICKET = '${Starter.ticketActual}'"$)
c = Starter.skmt.ExecQuery($"select *, ifnull(PT_PROPINA, "0") as propina, ifnull(PT_ALMACEN, "") as ALM from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = '${tipoPago}' and PT_TICKET = '${Starter.ticketActual}'"$)
' Log($"Rowcount: ${c.RowCount}"$)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("propina"))
Private elTotal As String = c.GetString("PT_MONTO")
' Private z As Cursor = Starter.skmt.ExecQuery($"select *, ifnull(PE_DESC, 0) as DESC from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}' and PE_TICKET = '${Starter.ticketActual}'"$)
' Log(z.RowCount)
' Private y As Cursor = Starter.skmt.ExecQuery($"select PE_COSTO_TOT, ifnull(PE_DESC, 0) as DESC from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' Log(y.RowCount)
' Private x As Cursor = Starter.skmt.ExecQuery($"select PE_COSTO_TOT, ifnull(PE_DESC, 0) as DESC, CAT_GP_TIPO from PEDIDO join CAT_GUNAPROD on CAT_GP_ID = PE_PROID where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA'"$)
' Log(x.RowCount)
Private elTotal As String = Subs.traeTotalTicketActual_P(tipoPago)
If c.GetString("ALM") = "MULTI-TICKET" Then elTotal = c.GetString("PT_MONTO")
' Log(">>>>>>>> " & Subs.traeTotalTicketActual_P(tipoPago))
' If c.GetString("propina") <> 0 And c.GetString("PT_PAGO_PROPINA") = "Tarjeta" Then 'Se comento porque lo propina no se debe de sumar al ticket.
' If imprimirEste Then Printer1.WriteString($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$)
' If logger Then Log($"${CRLF}Propina: $${NumberFormat2(c.GetString("PT_PROPINA"), 1, 2, 2, True)}"$)
@@ -2108,8 +2099,10 @@ Private Sub b_imprimirTicket_Click
If imprimirEste Then Printer1.WriteString($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
If logger Then Log($"${CRLF}${n2t.NumberToWords(NumberFormat2(elTotal, 1, 2, 2, False))}"$)
If tipoPago <> "VENTA" Then
If imprimirEste Then Printer1.WriteString($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$)
If logger Then Log($"${CRLF}Forma de pago: ${c.GetString("PT_PAGO")}"$)
Private fPago As String = c.GetString("PT_PAGO")
If fPago = "EFECTIVO" Then fPago = "EFEPUNTOS"
If imprimirEste Then Printer1.WriteString($"${CRLF}Forma de pago: ${fPago}"$)
If logger Then Log($"${CRLF}Forma de pago: ${fPago}"$)
End If
End If
If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE)
@@ -2117,7 +2110,6 @@ Private Sub b_imprimirTicket_Click
If imprimirEste Then Printer1.WriteString(CRLF)
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If tipoPago <> "VENTA" Then
If imprimirEste Then Printer1.WriteString("----------- PAGADO -----------" & CRLF)
If logger Then Log("------------ PAGADO ----------" & CRLF)
@@ -2125,7 +2117,6 @@ Private Sub b_imprimirTicket_Click
If imprimirEste Then Printer1.WriteString("---------- NO PAGADO ---------" & CRLF)
If logger Then Log("---------- NO PAGADO ---------" & CRLF)
End If
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
@@ -2137,14 +2128,23 @@ Private Sub b_imprimirTicket_Click
If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF)
If logger Then Log("------------------------------" & CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
If tipoPago = "VENTA" Then
If imprimirEste Then Printer1.WriteString("------ 10% DE DESCUENTO ------" & CRLF)
If imprimirEste Then Printer1.WriteString("----- PAGANDO EN EFECTIVO ----" & CRLF)
If imprimirEste Then Printer1.WriteString("-- >> SOLO EN ALIMENTOS << ---" & CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
If logger Then Log("------ 10% DE DESCUENTO ------" & CRLF)
If logger Then Log("----- PAGANDO EN EFECTIVO ----" & CRLF)
If logger Then Log("-- >> SOLO EN ALIMENTOS << ---" & CRLF)
End If
If imprimirEste Then Printer1.WriteString(CRLF)
If imprimirEste Then Printer1.WriteString(CRLF)
Sleep(1000)
Printer1.DisConnect
Catch
Log(LastException)
End Try
Sleep(1000)
Next
Sleep(1000)
b_imp.Enabled = True
@@ -2203,6 +2203,7 @@ End Sub
Sub agregaFormaDePago(left0 As Int, top0 As Int, tag0 As Int)
Log("agregaFormaDePago |" & top0 & "|" & tag0)
p_opcionEfectivo.Visible = False
Private p_num As Panel
p_num.Initialize("")
p_num.LoadLayout("formaPago")
@@ -2222,18 +2223,31 @@ Sub agregaFormaDePago(left0 As Int, top0 As Int, tag0 As Int)
listaMontoDePago.Add(et_montoPago2)
p_formasDePago.AddView(p_num, left0, top0, 340dip, 38dip)
b_pagoCerrar.Enabled = False
If listaFormaDePago.Size > 1 Then l_faltaMonto.Visible = True
End Sub
Private Sub cb_pago2_SelectedIndexChanged (Index As Int)
Log(Sender.As(B4XComboBox).tag)
Log(Sender.As(B4XComboBox).SelectedItem)
listaFormaDePago.Set(Sender.As(B4XComboBox).tag - 1, Sender.As(B4XComboBox).SelectedItem)
If Sender.As(B4XComboBox).SelectedItem = "Efectivo" And listaFormaDePago.Size = 1 Then
Private c As Cursor = Starter.skmt.ExecQuery("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'")
c.Position = 0
l_opcionEfectivo.Text = $"${c.GetString("CAT_VA_VALOR")}% desc."$
p_opcionEfectivo.Visible = True
cb_opcionEfectivo.Checked = True
Else
Log(listaFormaDePago.Size)
p_opcionEfectivo.Visible = False
cb_opcionEfectivo.Checked = False
End If
Log(listaFormaDePago)
End Sub
Private Sub et_montoPago2_TextChanged (Old As String, New As String)
Log("TEXT CHANGED")
Log(Starter.totalActual)
' Log(Starter.totalActual)
Private subtotal As String = 0
Private enBlanco As Boolean = False
For i = 0 To listaMontoDePago.Size - 1
@@ -2244,7 +2258,10 @@ Private Sub et_montoPago2_TextChanged (Old As String, New As String)
enBlanco = True
End If
Next
Log($"${Starter.totalActual} - ${subtotal} = ${Starter.totalActual - subtotal}"$)
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.blue)
If listaMontoDePago.Size > 1 Then
l_faltaMonto.Visible = True
If subtotal < Starter.totalActual Then
LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red)
l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$
@@ -2254,6 +2271,7 @@ Private Sub et_montoPago2_TextChanged (Old As String, New As String)
Else
l_faltaMonto.Text = ""
End If
End If
If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then
b_pagoCerrar.Enabled = False
Else
@@ -2290,3 +2308,23 @@ Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean)
b_pagoCerrar.Enabled = True
End If
End Sub
Private Sub cb_opcionEfectivo_CheckedChange(Checked As Boolean)
Private desc As String = 1 / Subs.traeDescXefectivo
Private tot As String = Subs.traeTotalTicketActual_P("VENTA")
If Checked Then
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_DESC = '${Subs.traeDescXefectivo}' where PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
' et_montoPago2.Text = NumberFormat2(tot - (tot * desc), 1, 0, 0, False)
' et_montoPago2.Text = Subs.traeTotalTicketActual_P
Else
Starter.skmt.ExecNonQuery($"update PEDIDO set PE_DESC = '0' where PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$)
' et_montoPago2.Text = tot
End If
et_montoPago2.Text = Subs.traeTotalTicketActual_P("VENTA")
End Sub
Private Sub lv_historial_ItemLongClick (Position As Int, Value As Object)
Log(Sender.As(ListView).Tag)
Log(Value)
' Log(Sender.As(ListView).)
End Sub

Binary file not shown.

View File

@@ -18,13 +18,13 @@ ModuleBreakpoints7=
ModuleBreakpoints8=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes2=
ModuleClosedNodes2=12,24,25
ModuleClosedNodes3=
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=47,48,68
NavigationStack=C_Principal,agregaFormaDePago,2198,6,Visual Designer,principal.bal,-100,6,C_Principal,b_mesaCerrar_Click,1103,0,C_Principal,Printer1_Connected,1318,0,C_Principal,Printer1_Error,1330,0,C_Principal,b_imp_Click,1390,6,C_Principal,b_imprimirTicket_Click,2057,0,C_Principal,cb_pago2_SelectedIndexChanged,2221,0,C_Principal,b_imp_LongClick,1561,6,C_Principal,B4XPage_Appear,206,6
ModuleClosedNodes8=47,48
NavigationStack=C_Principal,cb_pago2_SelectedIndexChanged,2222,0,C_Principal,b_mesaCerrar_Click,1031,0,C_Principal,cb_opcionEfectivo_CheckedChange,2315,6,C_Principal,b_imprimirTicket_Click,2069,6,C_Principal,et_montoPago2_TextChanged,2247,0,Subs,revisaBD,205,0,C_Principal,b_pagoCerrar_Click,1093,6,Visual Designer,principal.bal,-100,2,C_Principal,llenaHistorial,739,6,C_Principal,lv_historial_ItemLongClick,2322,6
SelectedBuild=0
VisibleModules=1,7,8,2,3,6,4
VisibleModules=1,7,8,2,3,6,4,5

View File

@@ -198,8 +198,8 @@ Sub revisaBD 'ignore
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS bitacora(fecha INTEGER, texto TEXT)") 'Bitacora
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 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 (PE_PRECIO2 TEXT,PE_TIPO TEXT, PE_TIPO2 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_PAGO2 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 PROPINAS (PR_MESA TEXT, PR_TICKET TEXT, PR_PAGO TEXT, PR_PROPINA TEXT, PT_MESERO TEXT, PR_FECHA TEXT)")
agregaColumna("PEDIDO_TICKET", "PT_TICKET", "TEXT")
agregaColumna("PEDIDO_TICKET", "PT_TARJETA", "TEXT")
@@ -208,6 +208,10 @@ Sub revisaBD 'ignore
agregaColumna("PEDIDO", "PE_TICKET", "TEXT")
agregaColumna("PEDIDO", "PE_MESA", "TEXT")
agregaColumna("PEDIDO", "PE_MESERO", "TEXT")
agregaColumna("PEDIDO", "PE_TIPO2", "TEXT")
agregaColumna("PEDIDO_TICKET", "PT_PAGO2", "TEXT")
agregaColumna("PEDIDO", "PE_ORIGEN", "TEXT")
agregaColumna("PEDIDO_TICKET", "PT_ORIGEN", "TEXT")
kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
'Tabla para la bitacora de errores
If Not(errorLog.IsInitialized) Then errorLog.Initialize(Starter.ruta, "errorLog.db", True)
@@ -1146,6 +1150,33 @@ Sub traeTotalesTicketActual As Map
Return m
End Sub
'Regresa el total del monto del ticket actual desde PEDIDO_TICKET.
Sub traeTotalTicketActual_PT As String
Private t As String = 0
Private pt As Cursor = Starter.skmt.ExecQuery($"select ifnull(sum(PT_MONTO),0) as subtotal from PEDIDO_TICKET where PT_TICKET = '${Starter.ticketActual}' and PT_MESA = '${Starter.mesaActual}' and PT_PAGO = 'VENTA'"$)
pt.Position=0
If pt.RowCount > 0 Then
t = pt.GetString("subtotal")
End If
Return t
End Sub
'Regresa el total del monto del ticket actual desde PEDIDO.
Sub traeTotalTicketActual_P(tipoPago As String) As String
Private st As String = 0
Private desc As String = 0
Private p As Cursor = Starter.skmt.ExecQuery($"select PE_COSTO_TOT, ifnull(PE_DESC, 0) as DESC, CAT_GP_TIPO from PEDIDO join CAT_GUNAPROD on CAT_GP_ID = PE_PROID where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}'"$)
' Log($"${p.RowCount} - select PE_COSTO_TOT, ifnull(PE_DESC, 0) as DESC, CAT_GP_TIPO from PEDIDO join CAT_GUNAPROD on CAT_GP_ID = PE_PROID where PE_TICKET = '${Starter.ticketActual}' and PE_MESA = '${Starter.mesaActual}' and PE_TIPO = '${tipoPago}'"$)
If p.RowCount > 0 Then
For j = 0 To p.RowCount - 1
p.Position = j
desc = p.GetString("DESC") / 100
st = st + (p.GetString("PE_COSTO_TOT") - (p.GetString("PE_COSTO_TOT") * desc))
Next
End If
Return st
End Sub
'Borra el pedido del cliente actual.
'Borra los registros de la tabla "pedido" y "PEDIDO_TICKET"
'Actualiza las tablas "cat_gunaprod" y "kmt_info".
@@ -1368,7 +1399,7 @@ Sub traeCategorias As List
For i = 0 To c.RowCount - 1
c.Position = i
l.Add(c.GetString("CAT_GP_CLASIF"))
Log(c.GetString("CAT_GP_CLASIF"))
' Log(c.GetString("CAT_GP_CLASIF"))
Next
End If
Return l
@@ -1434,6 +1465,16 @@ Sub traeMesaEstatus(id As String) As String
Return e
End Sub
Sub traeDescXefectivo As Int
Private c As Cursor = Starter.skmt.ExecQuery("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'")
Private d As Int = 0
If c.RowCount > 0 Then
c.Position = 0
d = c.GetInt("CAT_VA_VALOR")
End If
Return d
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"))