From 35da4c6e23dc968481a76504d9696ea4da8f9a92 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sun, 10 Mar 2024 06:07:50 -0600 Subject: [PATCH] - Se agrega codigo para descuento con pago en efectivo --- B4A/B4XMainPage.bas | 5 + B4A/C_Principal.bas | 808 +++++++++++++++++++++------------------- B4A/Files/principal.bal | Bin 38406 -> 39751 bytes B4A/Lanterna.b4a.meta | 8 +- B4A/Subs.bas | 47 ++- 5 files changed, 476 insertions(+), 392 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index e159625..7629fe3 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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 diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 631e843..7821ac7 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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) @@ -227,7 +231,7 @@ Sub B4XPage_Appear ' PCLV.B4XSeekBar1.Radius2 = 20 PCLV.B4XSeekBar1.mBase.Left = Root.Width * 1.5 '0.92 ' PCLV.B4XSeekBar1.mBase.Width = 40dip -'' PCLV.B4XSeekBar1.mBase.Top=-50 + '' PCLV.B4XSeekBar1.mBase.Top=-50 ' PCLV.B4XSeekBar1.mBase.Height = clv_prods_ll.AsView.Height ' PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height ' PCLV.pnlOverlay.Width = clv_prods_ll.AsView.Width @@ -277,7 +281,7 @@ Sub B4XPage_CloseRequest As ResumableSub Else If p_transparentePago.visible Then 'Si se esta mostrando el popup de pago, lo cerramos. ' p_pago.Visible = False p_transparentePago.Visible = False - Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los + Else If clv_prods_ll.AsView.Visible Then 'SI se muestran los clv_prods_ll.AsView.Visible = False lv_categorias.Visible = True else If p_mesa.Visible Then @@ -337,7 +341,7 @@ Sub b_prodMenos_Click If WobbleMenu1.GetCurrentTab = 3 Then Private elTexto As String = clv.GetValue(index).As(Map).Get("prod") Private elPrecioU As String = clv.GetValue(index).As(Map).Get("precio") - Private elTotal As String = elPrecioU * laCant.text + Private elTotal As String = elPrecioU * laCant.text elNombre.Text = cs.Color(Colors.red).append(elTexto).pop.append(CRLF).Color(0xFF017F01).Append($"Precio $${NumberFormat2(elTotal, 1, 2, 2, True)}"$).Popall End If ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) @@ -388,13 +392,11 @@ Sub b_prodMas_Click End Sub Sub cuentaProds - 'LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red) +' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red) ' Log("===========================") 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,32 +536,31 @@ 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 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 ' forzarBusqueda = False ' If lfila.text = "PROMOCIONES" Then -'' 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)"$) -'' Log($"res:${cPromo.RowCount}"$) -'' If cPromo.RowCount > 0 Then -'' lv_promos.Clear -'' For i=0 To cPromo.RowCount -1 -'' cPromo.Position=i -'' Private tm As Map = Subs.procesaPromocion(cPromo.GetString("CAT_GP_ID"), ticketId) -'' 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")) -'' End If -'' Next -'' Else -'' ToastMessageShow("No hay promociones disponibles.", False) -'' End If -'' cPromo.Close + '' 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)"$) + '' Log($"res:${cPromo.RowCount}"$) + '' If cPromo.RowCount > 0 Then + '' lv_promos.Clear + '' For i=0 To cPromo.RowCount -1 + '' cPromo.Position=i + '' Private tm As Map = Subs.procesaPromocion(cPromo.GetString("CAT_GP_ID"), ticketId) + '' 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")) + '' End If + '' Next + '' Else + '' ToastMessageShow("No hay promociones disponibles.", False) + '' End If + '' cPromo.Close ' Else ' If Not(clv_prods_ll.AsView.Visible) Then clv_prods_ll.AsView.Visible = True ' clv_prods_ll.Clear @@ -634,42 +578,42 @@ Sub llenaCarrito 'ignore ' Private totalPedido As String = 0 ' Private cantPedido As String = 0 ' p_mesas.Visible = False -'' Subs.agrupador -'' lv_carrito.Clear + '' Subs.agrupador + '' lv_carrito.Clear ' clv_carrito.Clear ' 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") -'' Log(c_prods.RowCount) + '' Log(c_prods.RowCount) ' If c_prods.RowCount > 0 Then ' c_prods.Position = 0 -'' lv_carrito.BringToFront + '' lv_carrito.BringToFront ' clv_carrito.AsView.BringToFront ' Private cs As CSBuilder ' For i = 0 To c_prods.RowCount -1 ' cs.Initialize ' c_prods.Position = i -'' Dim label1 As Label -'' lv_carrito.TwoLinesLayout.ItemHeight = 50dip -'' label1 = lv_carrito.TwoLinesLayout.Label -'' label1.TextSize = 15 -'' label1.TextColor = Colors.Black -'' label1.color = Colors.White -'' label1.Height = 30dip + '' Dim label1 As Label + '' lv_carrito.TwoLinesLayout.ItemHeight = 50dip + '' label1 = lv_carrito.TwoLinesLayout.Label + '' label1.TextSize = 15 + '' label1.TextColor = Colors.Black + '' label1.color = Colors.White + '' label1.Height = 30dip ' 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 c_prods.GetString("PE_CEDIS") = "DUR" Then textColor = Colors.red 'Si es promo, cambiamos el color del texto. -'' Dim label2 As Label -'' label2 = lv_carrito.TwoLinesLayout.SecondLabel -'' label2.TextSize = 10 -'' label2.TextColor = Colors.Blue -'' label2.Tag = i -'' 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")) + '' Dim label2 As Label + '' label2 = lv_carrito.TwoLinesLayout.SecondLabel + '' label2.TextSize = 10 + '' label2.TextColor = Colors.Blue + '' label2.Tag = i + '' 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")) ' 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) -'' 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 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 ' 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 ' totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT")) @@ -680,16 +624,16 @@ Sub llenaCarrito 'ignore ' l_carritoVacio.Visible = True ' l_carritoVacio.Text = "No hay productos en tu carrito." ' End If -'' Log(list_prodsPedido) + '' Log(list_prodsPedido) ' c_prods.Close -'' l_total2.Text = $"$1.2{totalPedido}"$ -'' l_cant.Text = cantPedido -'' If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True -'' p_vistaPreviaTrans.Width = Root.Width -'' p_vistaPreviaTrans.Height = Root.Height -'' Subs.centraPanel(p_vistaPrevia, Root.Width) -'' p_vistaPrevia.Visible=True -'' p_vistaPreviaTrans.Visible=True + '' l_total2.Text = $"$1.2{totalPedido}"$ + '' l_cant.Text = cantPedido + '' If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True + '' p_vistaPreviaTrans.Width = Root.Width + '' p_vistaPreviaTrans.Height = Root.Height + '' Subs.centraPanel(p_vistaPrevia, Root.Width) + '' p_vistaPrevia.Visible=True + '' p_vistaPreviaTrans.Visible=True End Sub 'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder. @@ -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 @@ -835,11 +759,11 @@ Sub CreateListItem(Text As String, cant As Int, precioU As String, inv As Int, W ' cs.Initialize ' p.SetLayoutAnimated(0, 0, 0, Width, Height) ' p.LoadLayout("prodItemCarrito") -'' i_prod.Bitmap = img + '' i_prod.Bitmap = img ' l_prodX.TextSize = 15 ' p_prods.Height = Height ' 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) ' l_prodX.Height = Height ' l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU @@ -854,14 +778,14 @@ End Sub Private Sub b_borrar_Click ' 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) ' Msgbox2Async("¿Seguro que deseas borrar este producto?", "Borrar Producto", "Si", "", "No", Null, False) ' Wait For Msgbox_Result (Result As Int) ' If Result = DialogResponse.POSITIVE Then ' LogColor("b_borrar_Click", Colors.Magenta) ' 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 pnl As B4XView = pnl0.GetView(0) ' Dim laCant As B4XView = pnl.GetView(2).GetView(2) @@ -869,11 +793,11 @@ 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(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 ' llenaCarrito ' End If @@ -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) @@ -1261,7 +1193,7 @@ Private Sub b_cierreTotal_LongClick End If End Sub -Private Sub b_cierreTotal_Click +Private Sub b_cierreTotal_Click Log("click") sv_resumen.Panel.Height = p_resumen.Height cs.Initialize @@ -1392,7 +1324,7 @@ Sub b_imp_Click DateTime.DateFormat = "MM/dd/yyyy" sDate = DateTime.Date(DateTime.Now) sTime = DateTime.Time(DateTime.Now) - + 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 ... @@ -1442,7 +1374,7 @@ Sub b_imp_Click 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.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text) sv_resumen.Panel.Height = l_resumen.Height @@ -1529,27 +1461,19 @@ Sub b_imp_LongClick DateTime.DateFormat = "MM/dd/yyyy" sDate = DateTime.Date(DateTime.Now) sTime = DateTime.Time(DateTime.Now) - + 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'"$) @@ -1570,49 +1494,104 @@ Sub b_imp_LongClick Private tipoAnt As String = "" 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) @@ -1725,101 +1704,101 @@ Sub b_imp_VIEJO_Click Printer1.WriteString(Printer1.REVERSE) Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) - Try - DateTime.DateFormat = "yyyymmdd" - sDate=DateTime.Date(DateTime.Now) - Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) - Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) + Try + DateTime.DateFormat = "yyyymmdd" + sDate=DateTime.Date(DateTime.Now) + Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) + Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) - DateTime.DateFormat = "MM/dd/yyyy" - sDate=DateTime.Date(DateTime.Now) + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) - Printer1.WriteString(sDate &" " & sTime & CRLF) - Printer1.WriteString("Mesero:" & usuario & CRLF) + Printer1.WriteString(sDate &" " & sTime & CRLF) + Printer1.WriteString("Mesero:" & usuario & CRLF) ' Printer1.WriteString("Ruta:" & ruta_tienda & CRLF) ' Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF) - Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) + Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF) ' Printer1.WriteString("Calle: " & la_Calle.Text & CRLF) ' Printer1.WriteString("Colonia: " & la_col.Text & CRLF) ' Printer1.WriteString("C.P.: " & la_cp.Text & CRLF) ' Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) ' Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) - Printer1.WriteString(" " & CRLF) + Printer1.WriteString(" " & CRLF) - s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DOE")) - s.Position = 0 - Private sTotal2 As Double - Log(sTotal2) - LogColor(s.GetString("TOTAL"),Colors.Magenta) - If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then - sTotal2 = s.GetString("TOTAL") + s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DOE")) + s.Position = 0 + Private sTotal2 As Double + Log(sTotal2) + LogColor(s.GetString("TOTAL"),Colors.Magenta) + If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then + sTotal2 = s.GetString("TOTAL") ' sTotal2 = Subs.sumaPedido(Subs.traeCliente) - Printer1.WriteString( $"Sub Total : $${NumberFormat2(sTotal2, 1, 2, 2, False)}"$ & CRLF) - Else - sTotal2 = 0 - End If - Log(sTotal2) - Private cantidad1 As String = "0" - s.Close - ''''SE MODIFCA EL QUERY POR LOS PEDIDOS DOE - S=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA","CAMBIO","DOE")) + Printer1.WriteString( $"Sub Total : $${NumberFormat2(sTotal2, 1, 2, 2, False)}"$ & CRLF) + Else + sTotal2 = 0 + End If + Log(sTotal2) + Private cantidad1 As String = "0" + s.Close + ''''SE MODIFCA EL QUERY POR LOS PEDIDOS DOE + S=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA","CAMBIO","DOE")) - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString("VENTA" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - ''s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and pe_codpromo <> ? and substr(pe_pronombre,1,6) <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA", "DOE", "CAMBIO")) - If S.RowCount>0 Then - For i=0 To S.RowCount -1 - S.Position=i - If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then - Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) - Else - Private strT As String = "" - Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) - Private strT As String = "" - strT = s.GetString("L_CANT")&s.GetString("L_COSTOU")&s.GetString("L_COSTO_TOT") - TAMANO = strT.Length - ESPACIO = ESPACIO - TAMANO - For E=0 To ESPACIO -1 - BLANCO = " " & BLANCO - Next - Private pecostou As String = 0 - If s.GETSTRING("PE_COSTOU") <> Null And IsNumber(s.GETSTRING("PE_COSTOU")) Then pecostou = s.GETSTRING("PE_COSTOU") - Private pecostotot As String = 0 - If s.GETSTRING("PE_COSTO_TOT") <> Null And IsNumber(s.GETSTRING("PE_COSTO_TOT")) Then pecostotot = s.GETSTRING("PE_COSTO_TOT") - Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & NumberFormat2(pecostou, 1, 2, 2, False) & " $" & NumberFormat2(pecostotot, 1, 2, 2, False) & CRLF) - TAMANO = 0 - ESPACIO = 14 - BLANCO = " " - End If - Next - End If - s.Close - s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO","DOE")) - s.Position = 0 - Private sTotal2 As Double + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("VENTA" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + ''s=Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT, PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_TIPO = ? and pe_codpromo <> ? and substr(pe_pronombre,1,6) <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("VENTA", "DOE", "CAMBIO")) + If S.RowCount>0 Then + For i=0 To S.RowCount -1 + S.Position=i + If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then + Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) + Else + Private strT As String = "" + Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF) + Private strT As String = "" + strT = s.GetString("L_CANT")&s.GetString("L_COSTOU")&s.GetString("L_COSTO_TOT") + TAMANO = strT.Length + ESPACIO = ESPACIO - TAMANO + For E=0 To ESPACIO -1 + BLANCO = " " & BLANCO + Next + Private pecostou As String = 0 + If s.GETSTRING("PE_COSTOU") <> Null And IsNumber(s.GETSTRING("PE_COSTOU")) Then pecostou = s.GETSTRING("PE_COSTOU") + Private pecostotot As String = 0 + If s.GETSTRING("PE_COSTO_TOT") <> Null And IsNumber(s.GETSTRING("PE_COSTO_TOT")) Then pecostotot = s.GETSTRING("PE_COSTO_TOT") + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & NumberFormat2(pecostou, 1, 2, 2, False) & " $" & NumberFormat2(pecostotot, 1, 2, 2, False) & CRLF) + TAMANO = 0 + ESPACIO = 14 + BLANCO = " " + End If + Next + End If + s.Close + s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) <> ? AND PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO","DOE")) + s.Position = 0 + Private sTotal2 As Double ' If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then ' sTotal2 = s.GetString("TOTAL") ' Else ' sTotal2 = 0 ' End If ' sTotal2 = kh.traeTotalCliente - s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) - s.Position = 0 - Private cant5 As String = s.GetString("CANTIDAD") - Private sTotal3 As Double - If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then - sTotal3 = s.GetString("TOTAL") - Else - sTotal3 = 0 - End If - Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) - Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & $"Sub Total Venta: $${NumberFormat2((sTotal2+(sTotal3 * -1)), 1, 2, 2, False)}"$ & CRLF) - Private cantidad1 As String = "0" - If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad1 = s.GetString("CANTIDAD") - Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad1 & CRLF) - Printer1.WriteString(CRLF) - s.Close + s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) + s.Position = 0 + Private cant5 As String = s.GetString("CANTIDAD") + Private sTotal3 As Double + If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then + sTotal3 = s.GetString("TOTAL") + Else + sTotal3 = 0 + End If + Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) + Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & $"Sub Total Venta: $${NumberFormat2((sTotal2+(sTotal3 * -1)), 1, 2, 2, False)}"$ & CRLF) + Private cantidad1 As String = "0" + If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad1 = s.GetString("CANTIDAD") + Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad1 & CRLF) + Printer1.WriteString(CRLF) + s.Close ' s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) ' s.Position = 0 @@ -1837,60 +1816,60 @@ Sub b_imp_VIEJO_Click ' Printer1.WriteString(CRLF) ' s.Close ' Printer1.WriteString(CRLF) - s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA")) - s.Position =0 - Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) - Private total2 As String = 0 + s=Starter.skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA")) + s.Position =0 + Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) + Private total2 As String = 0 ' If s.GETSTRING("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then total2 = s.GETSTRING("TOTAL") ' total2 = kh.traeTotalCliente - Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & NumberFormat2(total2, 1, 2, 2, False) & CRLF) + Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & NumberFormat2(total2, 1, 2, 2, False) & CRLF) ' Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & s.GetString("TOTAL") & CRLF) ' Printer1.WriteString("===============================" & CRLF) ' ' Printer1.WriteString( "Total venta: $" & s.GetString("TOTAL") & CRLF) - s.Close - s=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA")) - s.Position =0 - Private total5 As String = "0" - If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then total5 = s.GetString("TOTAL") - Printer1.WriteString(Printer1.BOLD & "No. platillos vendidos: " & (total5) & CRLF) + s.Close + s=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA")) + s.Position =0 + Private total5 As String = "0" + If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then total5 = s.GetString("TOTAL") + Printer1.WriteString(Printer1.BOLD & "No. platillos vendidos: " & (total5) & CRLF) ' Printer1.WriteString(Printer1.BOLD & "Productos devueltos : " & cantidad2 & CRLF) - Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) + Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) ' Printer1.WriteString( "No. Productos: " & s.GetString("TOTAL") & CRLF) ' Printer1.WriteString( "===============================" & CRLF) - s.Close - Printer1.WriteString(Printer1.UNREVERSE) - Printer1.WriteString(Printer1.NOBOLD) + s.Close + Printer1.WriteString(Printer1.UNREVERSE) + Printer1.WriteString(Printer1.NOBOLD) ' printer.WriteLine("------------VENTA-------------") ' printer.WriteLine("TOTAL COMPRA: $:" & total_cliente) ' Printer1.WriteString(Printer1.DEFAULTS & CRLF) - Printer1.WriteString(CRLF) - ' Printer1.WriteString(Printer1.SINGLE) - 'Printer1.WriteString("------------------------------") - ' Printer1.WriteString(Printer1.HIGH) - ' Printer1.Justify = 1 - Printer1.WriteString( "Nombre y Firma del cliente" & CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - ' Printer1.WriteString(Printer1.DEFAULTS) - ' Printer1.WriteString(Printer1.SINGLE) - Printer1.WriteString("__________" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) - Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) - Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - Sleep(1000) - Printer1.DisConnect - Catch - ToastMessageShow("Error en la impresion 2.", True) - Printer1.Disconnect - B4XPages.ShowPage("Principal") - End Try + Printer1.WriteString(CRLF) + ' Printer1.WriteString(Printer1.SINGLE) + 'Printer1.WriteString("------------------------------") + ' Printer1.WriteString(Printer1.HIGH) + ' Printer1.Justify = 1 + Printer1.WriteString( "Nombre y Firma del cliente" & CRLF) + Printer1.WriteString(CRLF) + Printer1.WriteString(CRLF) + Printer1.WriteString(CRLF) + ' Printer1.WriteString(Printer1.DEFAULTS) + ' Printer1.WriteString(Printer1.SINGLE) + Printer1.WriteString("__________" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) + Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) + Printer1.WriteString("------------------------------" & CRLF) + Printer1.WriteString(CRLF) + Printer1.WriteString(CRLF) + Printer1.WriteString(CRLF) + Sleep(1000) + Printer1.DisConnect + Catch + ToastMessageShow("Error en la impresion 2.", True) + Printer1.Disconnect + B4XPages.ShowPage("Principal") + End Try Sleep(1000) b_imp.Enabled = True ProgressDialogHide @@ -1950,11 +1929,11 @@ Sub JobDone(Job As HttpJob) Dim result As DBResult = reqManager.HandleJob(Job) ' If result.Tag = "traeGeoPass" Then 'query tag ' If result.Rows.Size = 0 Then MsgboxAsync("Contraseña equivocada, por favor intente de nuevo.", "ATENCION") - For Each records() As Object In result.Rows - For Each k As String In result.Columns.Keys - Log(k & ": " & records(result.Columns.Get(k))) - Next + For Each records() As Object In result.Rows + For Each k As String In result.Columns.Keys + Log(k & ": " & records(result.Columns.Get(k))) Next + Next ' End If End If End If @@ -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,56 +1973,56 @@ 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 ...") - If imprimirEste Then - Printer1.DisConnect - If Not(Printer1.IsConnected) Then - If Starter.logger Then Log("conectando 1") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) - Sleep(1000) - cont = cont + 1 - If cont = 7 Then Printer1.Connect 'Tratamos de reconectar - If cont > 15 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False - Else - If Starter.logger Then Log("conectando 2") - Printer1.Connect - Private cont As Int = 0 - Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) - Sleep(1000) - cont = cont + 1 - If cont = 2 Then Printer1.Connect - If cont > 4 Then impresoraConectada = True - Loop - Sleep(500) - impresoraConectada = False + 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 + If Starter.logger Then Log("conectando 1") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) + Sleep(1000) + cont = cont + 1 + If cont = 7 Then Printer1.Connect 'Tratamos de reconectar + If cont > 15 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + Else + If Starter.logger Then Log("conectando 2") + Printer1.Connect + Private cont As Int = 0 + Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) + Sleep(1000) + cont = cont + 1 + If cont = 2 Then Printer1.Connect + If cont > 4 Then impresoraConectada = True + Loop + Sleep(500) + impresoraConectada = False + End If End If - End If - DateTime.DateFormat = "MM/dd/yyyy" - Private sDate,sTime As String - sDate = DateTime.Date(DateTime.Now) - sTime = DateTime.Time(DateTime.Now) + DateTime.DateFormat = "MM/dd/yyyy" + Private sDate,sTime As String + sDate = DateTime.Date(DateTime.Now) + sTime = DateTime.Time(DateTime.Now) ' c.Close ' c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL")) ' c.Position = 0 - Private sucursal As String = "SUCURSAL" + Private sucursal As String = "SUCURSAL" ' c.Close - TAMANO = 0 - ESPACIO = 14 - BLANCO = " " 'esto para las impresoras nuevas - 'printer.Initialize(cmp20.OutputStream) - If imprimirEste Then Printer1.Reset - Dim bmp As Bitmap - bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore - Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) - myimage = Printer1.DitherImage2D(myimage, 128) - myimage= Printer1.PackImage(myimage) + TAMANO = 0 + ESPACIO = 14 + BLANCO = " " 'esto para las impresoras nuevas + 'printer.Initialize(cmp20.OutputStream) + If imprimirEste Then Printer1.Reset + Dim bmp As Bitmap + bmp.InitializeResize(File.DirAssets, "logoLanter2.bmp", 376, 129, True) 'ignore + Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) + 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 @@ -2183,9 +2183,9 @@ Private Sub b_renombraVarios_Click ' Starter.skmt.ExecNonQuery($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${m.Get("id")}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$) ' Log($"update PEDIDO set PE_PRONOMBRE = '${et_nombreVariable.text}', PE_COSTOU = '${et_precioVariable.text}' where PE_PROID = '${et_nombreVariable.tag}' and PE_TIPO = 'VENTA' and PE_MESA = '${Starter.mesaActual}' and PE_TICKET = '${Starter.ticketActual}'"$) ' Else - Private cant As Int = m.Get("cant") - If cant = 0 Then cant = 1 - Subs.actualizaProducto(et_precioVariable.text, cant, et_nombreVariable.Text, m.Get("id"), Starter.ticketActual, DateTime.Now, Starter.meseroActual, Starter.mesaActual, et_precioVariable.Text, "VENTA", Starter.comensalesActuales) + Private cant As Int = m.Get("cant") + If cant = 0 Then cant = 1 + Subs.actualizaProducto(et_precioVariable.text, cant, et_nombreVariable.Text, m.Get("id"), Starter.ticketActual, DateTime.Now, Starter.meseroActual, Starter.mesaActual, et_precioVariable.Text, "VENTA", Starter.comensalesActuales) ' End If LlenaProdsLL(Null, Null) @@ -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,15 +2258,19 @@ 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 subtotal < Starter.totalActual Then - LogColor($"FALTAN ${Starter.totalActual - subtotal}"$, Colors.red) - l_faltaMonto.Text = $"FALTAN ${NumberFormat2((Starter.totalActual - subtotal), 1, 0, 0, False)}"$ - else if subtotal > Starter.totalActual Then - LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) - l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ - Else - l_faltaMonto.Text = "" + 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)}"$ + else if subtotal > Starter.totalActual Then + LogColor($"SOBRAN ${subtotal - Starter.totalActual}"$, Colors.red) + l_faltaMonto.Text = $"SOBRAN ${NumberFormat2((subtotal - Starter.totalActual), 1, 0, 0, False)}"$ + Else + l_faltaMonto.Text = "" + End If End If If listaMontoDePago.Size > 1 And (l_faltaMonto.Text <> "" Or enBlanco) Then b_pagoCerrar.Enabled = False @@ -2289,4 +2307,24 @@ Private Sub et_montoPago2_FocusChanged (HasFocus As Boolean) Else 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 \ No newline at end of file diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index dd395b404e04f5ea8dbe93f1370c52775275cdcb..26ec93c9367c8c7a9d0902290d361c314ac6bd9e 100644 GIT binary patch delta 1446 zcma*n%}*0S7zXf}#S&Rvv?(A-NXC_{0@84)vix9%t zAcW4pgRiY)vU3wF+8;Jk(IGS0mWW43hwhqtxaba;cT(n9GUgu}9W|4ow2?~1(=~y? zcy!or-e2sm=OdR&xyMq|DoeR?d)0i!g<8rOFzJiEEcd);_kZYrwT^_2_$r$cVa?j@Sp@4?X~Pfe(V+ z;6q>!*bA;NI8(R_(EtO7!Hr-axCwj&d=z{Pd>niN+|1Ws`YXgqa0|Ew*d;xqBdS@^~B+Y4_P?xwvvdp1cp8 z@&~ymJM6_gvQ3>Lxlucb3{qsOj+}m7|H)mAQ!+<}FC^!AI#;RsB!6)%!n!!r;IPdz zasIAHeN~fO+rlZ@%8gVX+`reUq>tHpiX<$BOb3VMZ;CX#$eFESy(72$L*MATTv)Cy MsH!F;g`d9s3k&h(+yDRo delta 920 zcmYk*yDx)L7{~E*UP@F-q7qc9s&%K-{nAo(t-GqCXsM~`BE(!0@dr4TN{Bze(!7b$ zN+g&}27^T`(xs}CN2~fv&Num-JSXSP8Q$A#>G(=gDHvn-O2%lh?TBih%MVJ2ZU=XOJChEjUeg7GZg3B{7u*N#2V1~a@BnxaY@_e9A<9k- zgGa!lC8S409rzS-F|2-}fT zJbQvXCZcYQxU>|B1G`b&ofZgHSkJ#i)a(!!fjn^-KId^f!{aAm6aP*gct7*~0KJT9 AOaK4? diff --git a/B4A/Lanterna.b4a.meta b/B4A/Lanterna.b4a.meta index 5ea4a10..750c3c0 100644 --- a/B4A/Lanterna.b4a.meta +++ b/B4A/Lanterna.b4a.meta @@ -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 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index a1ecd40..d606862 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -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"))