diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index f7bdc7b..645ecee 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -45,6 +45,7 @@ Sub Class_Globals Private p_botones As Panel Private Label3 As Label Private p_server As Panel + dim atrasPresionado as Boolean = False End Sub Public Sub Initialize @@ -90,10 +91,9 @@ Private Sub B4XPage_CloseRequest As ResumableSub p_configuracion.Visible = False Return False Else -' If logger Then Log("Saliendo") -' B4XPages.ClosePage(Me) -' Subs.cierraActividades -' Return True + If atrasPresionado Then ExitApplication 'Solo salimos de la aplicación si se presiona 'Atras' 2 veces seguidas. + ToastMessageShow("Presiona 'Atras' nuevamente para salir de la aplicación.", False) + atrasPresionado = True End If Return False End Sub @@ -186,7 +186,7 @@ Sub JobDone(Job As HttpJob) Starter.skmt.ExecNonQuery("delete from cat_gunaprod") Starter.skmt.BeginTransaction For Each records() As Object In result.Rows - Log($"ID: ${records(result.Columns.Get("CAT_GP_ID"))}, NOM: ${records(result.Columns.Get("CAT_GP_NOMBRE"))}"$) +' Log($"ID: ${records(result.Columns.Get("CAT_GP_ID"))}, NOM: ${records(result.Columns.Get("CAT_GP_NOMBRE"))}"$) Dim CAT_GP_ID As String = records(result.Columns.Get("CAT_GP_ID")) Dim CAT_GP_NOMBRE As String = records(result.Columns.Get("CAT_GP_NOMBRE")) Dim CAT_GP_PRECIO As String = records(result.Columns.Get("CAT_GP_PRECIO")) @@ -206,7 +206,7 @@ Sub JobDone(Job As HttpJob) Starter.skmt.ExecNonQuery("delete from CAT_MESAS") Starter.skmt.BeginTransaction For Each records() As Object In result.Rows - Log($"ID: ${records(result.Columns.Get("M_ID"))}, NOM: ${records(result.Columns.Get("M_NOMBRE"))}"$) +' Log($"ID: ${records(result.Columns.Get("M_ID"))}, NOM: ${records(result.Columns.Get("M_NOMBRE"))}"$) Dim M_ID As String = records(result.Columns.Get("M_ID")) Dim M_NOMBRE As String = records(result.Columns.Get("M_NOMBRE")) Dim M_NUMERO As String = records(result.Columns.Get("M_NUMERO")) @@ -222,7 +222,7 @@ Sub JobDone(Job As HttpJob) Starter.skmt.ExecNonQuery("delete from CAT_MESEROS") Starter.skmt.BeginTransaction For Each records() As Object In result.Rows - Log($"ID: ${records(result.Columns.Get("MS_ID"))}, NOM: ${records(result.Columns.Get("MS_NOMBRE"))}"$) +' Log($"ID: ${records(result.Columns.Get("MS_ID"))}, NOM: ${records(result.Columns.Get("MS_NOMBRE"))}"$) Dim MS_ID As String = records(result.Columns.Get("MS_ID")) Dim MS_NOMBRE As String = records(result.Columns.Get("MS_NOMBRE")) Dim MS_MESAS_ASIGNADAS As String = records(result.Columns.Get("MS_MESAS_ASIGNADAS")) @@ -230,13 +230,19 @@ Sub JobDone(Job As HttpJob) Next Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction - B4XPages.MainPage.principal.cb_mesero.SetItems(Subs.traeMeserosLista) + If B4XPages.MainPage.principal.cb_mesero.IsInitialized Then B4XPages.MainPage.principal.cb_mesero.SetItems(Subs.traeMeserosLista) End If End If End If + ToastMessageShow("¡Información cargada!", False) Job.Release End Sub Private Sub b_entrar_LongClick ' Dim a As Int = "a" +' Subs.alineaDerecha(NumberFormat2(1450, 1, 2, 2, True), 30, ".") +End Sub + +Private Sub user_TextChanged (Old As String, New As String) + If New = "KMTS1" Then i_conf.Visible = True Else i_conf.Visible = False End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index ab7f6f6..e8acb20 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -15,7 +15,7 @@ Sub Class_Globals Dim prodsMap As Map ' Private p_botonesVenta As Panel Private b_continuar As Button - Private lfila As Label + Private l_inventarios As Label ' Private et_busca As EditText ' Private b_buscar As Button Dim etCantHasFocus, hayPedido As Boolean 'ignore @@ -84,8 +84,14 @@ Sub Class_Globals Dim impresoraConectada As Boolean = False Dim errorImpresora As Int = 0 Dim Printer1 As EscPosPrinter - dim b_imp as button + Dim b_imp As Button Private b_envioInfo As Button + Private b_imprimirTicket As Button + Private b_regresarProds As Button + Private p_botonesProds As Panel + Private et_propina As EditText + Private cb_pagoPropina As B4XComboBox +' Private p_test As Panel End Sub 'You can add more parameters here. @@ -108,19 +114,19 @@ Private Sub B4XPage_Created (Root1 As B4XView) PCLV.Initialize(Me, "PCLV", clv_prods_ll) PCLVM.Initialize(Me, "PCLVM", clv_mesas) WobbleMenu1.SetTabTextIcon(1,"Mesas", Chr(0xF00A), Typeface.FONTAWESOME) - WobbleMenu1.SetTabTextIcon(2,"Meseros", Chr(0xF0C0), Typeface.FONTAWESOME) + WobbleMenu1.SetTabTextIcon(2,"Inventario", Chr(0xF16B), Typeface.FONTAWESOME) WobbleMenu1.SetTabTextIcon(3,"Ordenes", Chr(0xF155), Typeface.FONTAWESOME) ' WobbleMenu1.SetTabTextIcon(5,"Cinco", Chr(0xF29D), Typeface.FONTAWESOME) p_principal.Width = Root.Width p_principal.Height = Root.Height - clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width + 10, Root.Height * 0.55) 'Cambiamos el tamaño y posición de la lista de productos. + clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width - 20, Root.Height * 0.55) 'Cambiamos el tamaño y posición de la lista de productos. clv_prods_ll.Base_Resize(clv_prods_ll.GetBase.Width, clv_prods_ll.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que se ajuste al nuevo tamaño. clv_mesas.GetBase.SetLayoutAnimated(0, 5dip, 80dip, Root.Width - 20, Root.Height * 0.80) 'Cambiamos el tamaño y posición de la lista de mesas. clv_mesas.Base_Resize(clv_mesas.GetBase.Width, clv_mesas.GetBase.Height) 'Cambiamos el tamaño del panel interno de las mesas para que se ajuste al nuevo tamaño. p_meseros.Width = Root.Width p_meseros.Height = Root.Height - WobbleMenu1.Height p_mesas.Width = Root.Width - p_mesaAbierta.Height = Root.Height + p_mesaAbierta.Height = Root.Height : p_mesaAbierta.width = Root.width p_mesas.Height = Root.Height - WobbleMenu1.Height p_historial.Width = Root.Width p_historial.Height = Root.Height - WobbleMenu1.Height @@ -134,7 +140,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' p_botonesVenta.Top = Root.Height - p_botonesVenta.Height - WobbleMenu1.Height + 10 Subs.centraPanel(p_pago, p_mesaAbierta.Width) Subs.centraBoton(b_abrirMesa, Root.Width) - b_mesaCerrar.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height + 15 ' - b_mesaCerrar.Height + p_botonesProds.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height + 15dip ' - b_mesaCerrar.Height + Subs.centraPanel(p_botonesProds, p_mesaAbierta.Width) Subs.centraPanel(p_mesaCampos, Root.Width) Subs.centraPanel(p_mesaAbierta, Root.Width) lv_historial.Height = Root.Height * 0.7 @@ -147,40 +154,60 @@ Private Sub B4XPage_Created (Root1 As B4XView) p_mesas.Width = Root.Width Subs.panelVisible(p_mesas, 0, 0) cb_comensales.SetItems(Array As String(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)) - cb_pago.SetItems(Array As String("Tarjeta","Efectivo")) + cb_pago.SetItems(Array As String("American Express", "Visa/Mastercard", "Efectivo")) + cb_pagoPropina.SetItems(Array As String("Tarjeta", "Efectivo")) cb_mesero.SetItems(Subs.traeMeserosLista) + Private lasCats As List = Subs.traeCategorias + lv_categorias.Color = Colors.White + lv_categorias.Top = l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5 + lv_categorias.Height = Root.Height * 0.55 + Private Label1 As Label = lv_categorias.SingleLineLayout.Label + Label1.TextSize = 9dip + Label1.TextColor = Colors.Black + For cat = 0 To lasCats.Size - 1 + lv_categorias.AddSingleLine(lasCats.get(cat)) + Next + Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("REVISAMOS PERMISOS DE BT") + Starter.rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then Log("Tenemos permisos de bluetooth.") + Log($"Resultado del CheckAndRequest: ${Result}"$) End Sub Sub B4XPage_Appear reqManager.Initialize(Me, Starter.DBReqServer) + B4XPages.MainPage.atrasPresionado = False ' Log(Starter.DBReqServer) clv = clv_prods_ll cuentaProds LlenaMesas(Null, Null) LlenaProdsLL(Null, Null) - PCLV.lblHint.SetTextSizeAnimated(0,13) - PCLV.B4XSeekBar1.Color1=Colors.DarkGray - PCLV.B4XSeekBar1.Color2=Colors.DarkGray - PCLV.B4XSeekBar1.ThumbColor=Colors.red - PCLV.B4XSeekBar1.Radius1 = 15 - PCLV.B4XSeekBar1.Radius2 = 20 - PCLV.B4XSeekBar1.mBase.Left=Root.Width * 0.85 - PCLV.B4XSeekBar1.mBase.Width=50dip -' 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 - PCLV.B4XSeekBar1.Update +' PCLV.lblHint.SetTextSizeAnimated(0,13) +' PCLV.B4XSeekBar1.Color1=Colors.DarkGray +' PCLV.B4XSeekBar1.Color2=Colors.DarkGray +' PCLV.B4XSeekBar1.ThumbColor=Colors.red +' PCLV.B4XSeekBar1.Radius1 = 15 +' 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.Height = clv_prods_ll.AsView.Height +' PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height +' PCLV.pnlOverlay.Width = clv_prods_ll.AsView.Width +' PCLV.B4XSeekBar1.Update +' PCLV.B4XSeekBar1.mBase.Visible = False If clv_mesas.Size > 0 Then clv_mesas.JumpToItem(0) 'Vamos al primer artículo de la lista. End If PCLVM.lblHint.SetTextSizeAnimated(0,13) - PCLVM.B4XSeekBar1.Color1=Colors.DarkGray - PCLVM.B4XSeekBar1.Color2=Colors.DarkGray - PCLVM.B4XSeekBar1.ThumbColor=Colors.red + PCLVM.B4XSeekBar1.Color1 = Colors.DarkGray + PCLVM.B4XSeekBar1.Color2 = Colors.DarkGray + PCLVM.B4XSeekBar1.ThumbColor = Colors.red PCLVM.B4XSeekBar1.Radius1 = 15 PCLVM.B4XSeekBar1.Radius2 = 20 - PCLVM.B4XSeekBar1.mBase.Left=Root.Width * 0.88 + PCLVM.B4XSeekBar1.mBase.Left = Root.Width * 0.88 ' PCLVM.B4XSeekBar1.mBase.Top=-50 PCLVM.B4XSeekBar1.mBase.Height=clv_mesas.AsView.Height PCLVM.pnlOverlay.Height = clv_mesas.AsView.Height @@ -197,20 +224,15 @@ Sub B4XPage_Appear Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0")) End If Printer1.Initialize(Me, "Printer1") - - Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) - Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) - Log("REVISAMOS PERMISOS DE BT") - Starter.rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") - Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) - If Result Then Log("Tenemos permisos de bluetooth.") - Log($"Resultado del CheckAndRequest: ${Result}"$) End Sub Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel - If p_pago.visible Then + If clv_prods_ll.AsView.Visible Then + clv_prods_ll.AsView.Visible = False + lv_categorias.Visible = True + Else If p_pago.visible Then p_pago.Visible = False else If p_mesa.Visible Then If Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False @@ -238,20 +260,20 @@ Sub b_prodMenos_Click LogColor(clv.GetValue(index), Colors.Magenta) Private inv As Int = clv.GetValue(index).As(Map).Get("almacen") Dim pnl0 As B4XView = clv.GetPanel(index) - Log(pnl0.As(Panel)) +' Log(pnl0.As(Panel)) Dim pnl As B4XView = pnl0.GetView(0) Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant ' Log(pnl.GetView(0).NumberOfViews) Dim elNombre As B4XView = pnl.GetView(1) If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4) - Log($"${pnl.GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$) +' Log($"${pnl.GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$) If buttonTag = "vendido" And laCant.Text > 0 Then - Log(clv.GetValue(index).As(Map)) +' Log(clv.GetValue(index).As(Map)) clv.GetValue(index).As(Map).Put("almacen",inv + 1) - Log(clv.GetValue(index).As(Map)) +' Log(clv.GetValue(index).As(Map)) End If If laCant.Text = "" Then laCant.Text = 0 - Log($"|${laCant.Text}|"$) +' Log($"|${laCant.Text}|"$) laCant.Text = $"$1.0{laCant.Text-1}"$ If laCant.Text < 0 Then laCant.Text = 0 Private tmpMap As Map = clv.GetValue(index).As(Map) @@ -286,11 +308,11 @@ Sub b_prodMas_Click Dim laCant As B4XView = pnl.GetView(2).GetView(4) 'et_pCant Dim elNombre As B4XView = pnl.GetView(1) If WobbleMenu1.GetCurrentTab = 3 Then laCant = pnl.GetView(2).GetView(4) - Log($"${pnl.GetView(2).GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$) +' Log($"${pnl.GetView(2).GetView(1)}${CRLF}${pnl.GetView(2).GetView(2)}${CRLF}${pnl.GetView(2).GetView(3)}${CRLF}${pnl.GetView(2).GetView(4)}"$) If laCant.Text = "" Then laCant.Text = 0 Private precio As String=clv.GetValue(index).As(Map).Get("precio") Private inv As Int = clv.GetValue(index).As(Map).Get("almacen") - Log($"|${laCant.Text}, ${inv}"$) +' Log($"|${laCant.Text}, ${inv}"$) If buttonTag = "vendido" Then If inv > 0 And (laCant.Text + 1 <= inv) Then ' Log(clv.GetValue(index).As(Map)) @@ -345,32 +367,58 @@ End Sub Sub LlenaProdsLL(p As ResultSet, extra As String) ' Log("LlenaProdsLL") listaProds.Initialize + Private listaProdsIndex As List + listaProdsIndex.Initialize + Dim cantsMap As Map + cantsMap.Initialize hayPedido = Subs.hayPedido ' Log($"HAYPEDIDO: ${hayPedido}"$) + Private listaProdsConCant2, listaProdsConCantIndex2 As List + listaProdsConCant2.Initialize + listaProdsConCantIndex2.Initialize If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV. - Dim cantsMap As Map - cantsMap.Initialize - Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_TICKET = '${Starter.ticketActual}' and PE_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'"$) +' 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 -' Log($"Con pedido: ${pe.RowCount}"$) -' Log("CANTSMAP: " & cantsMap) - pe.Close +' 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 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("CAT_GP_NOMBRE"), "precio":c.GetString("CAT_GP_PRECIO"), "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 + End If ' Log(p.IsInitialized) If query = "" Or query = Null Then query = "cat_gunaprod2" If p.IsInitialized Then - Log($"YA HAY RESULSET ${p.RowCount}"$) + Log($"YA HAY RESULSET ${p.RowCount} registros"$) Else ' Log("NO HAY RESULSET") Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$) End If +' Log($"listaProdsConCant2= ${listaProdsConCant2}"$) +' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$) +' Log($"listaProdsConCant2=${listaProdsConCant2}"$) +' 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 @@ -379,61 +427,69 @@ Sub LlenaProdsLL(p As ResultSet, extra As String) ' 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")) +' 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}"$) +' Log($"listaProdsConCantIndex2=${listaProdsConCantIndex2}"$) p.Close ' Log("LISTAPRODS: " & listaProds) PCLV.Commit clv_prods_ll.Clear - Private listaProdsConCant, listaProdsConCantIndex As List - listaProdsConCant.Initialize - listaProdsConCantIndex.Initialize - listaHints.Initialize +' 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 +' 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 listaProdsConCant.Size - 1 'Agregamos los productos con cantidad previa. + For pr0=0 To listaProdsConCant2.Size - 1 'Agregamos los productos con cantidad previa. Private Pnl As B4XView = xui.CreatePanel("") Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 70dip) - clv_prods_ll.Add(Pnl, listaProdsConCant.Get(pr0)) - listaHints.Add(listaProdsConCant.get(pr0).As(Map).Get("prod")) + clv_prods_ll.Add(Pnl, listaProdsConCant2.Get(pr0)) +' listaHints.Add(listaProdsConCant2.get(pr0).As(Map).Get("prod")) cont = cont + 1 Next ' LogColor(clv_prods_ll.Size, Colors.red) -' Log(listaProds.Size) +'' 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 +' 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) + 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)) listaHints.Add(listaProds.get(pr).As(Map).Get("prod")) - cont = cont + 1 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. End If - PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size - PCLV.B4XSeekBar1.MinValue = 0 - PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/20 - PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - PCLV.B4XSeekBar1.Update +' PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size +' PCLV.B4XSeekBar1.MinValue = 0 +' PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/20 +' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size +' PCLV.B4XSeekBar1.Update ' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/20}"$) reiniciarlistaProds = False End Sub @@ -450,10 +506,19 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In 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 = Root.Width * 0.99 + p_prods.Width = clv_prods_ll.GetBase.Width ' Root.Width * 0.99 ' p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5) -' Log(Root.Width) - p_botMasMen.Left = (p_prods.Width - p_botMasMen.Width - 75) + + '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 cs.Initialize @@ -480,7 +545,7 @@ 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 +' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - FirstIndex ' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$) Next End Sub @@ -583,8 +648,8 @@ End Sub 'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder. Sub PCLV_HintRequested(Index As Int) As Object - Dim word As String = listaHints.get(Index) - Return word +' Dim word As String = listaHints.get(Index) +' Return word End Sub 'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder. @@ -600,7 +665,7 @@ Private Sub WobbleMenu1_Tab1Click ' LlenaProdsLL(Null, Null) Subs.panelVisible(p_mesas, 0, 0) PCLVM.B4XSeekBar1.mBase.Visible = True - PCLV.B4XSeekBar1.mBase.Visible = False +' PCLV.B4XSeekBar1.mBase.Visible = False p_meseros.Visible = False ' p_carrito.Visible = False p_historial.Visible = False @@ -610,9 +675,9 @@ End Sub Private Sub WobbleMenu1_Tab2Click LlenaProdsLL(Null, Null) - PCLVM.B4XSeekBar1.mBase.Visible = False - PCLV.B4XSeekBar1.mBase.BringToFront - PCLV.B4XSeekBar1.mBase.Visible = True +' PCLVM.B4XSeekBar1.mBase.Visible = False +' PCLV.B4XSeekBar1.mBase.BringToFront +' PCLV.B4XSeekBar1.mBase.Visible = True Subs.panelVisible(p_meseros, 0, 0) p_mesas.Visible = False ' p_carrito.Visible = False @@ -848,7 +913,14 @@ End Sub 'Entramos a la mesa seleccionada. Private Sub p_mesasItem_Click - Log(Sender.As(Panel).tag) +' clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, (l_meseroAbierta2.Top + l_meseroAbierta2.Height + 5), Root.Width, Root.Height * 0.55) 'Cambiamos el tamaño y posición de la lista de productos. +' clv_prods_ll.Base_Resize(clv_prods_ll.GetBase.Width, clv_prods_ll.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que se ajuste al nuevo tamaño. +' Log(p_prods.Width) +' p_prods.Width = clv_prods_ll.GetBase.Width +' clv_prods_ll.Base_Resize(400,Root.Height) + clv_prods_ll.AsView.Visible = False + lv_categorias.Visible = True +' Log(Sender.As(Panel).tag) b_abrirMesa.Text = "Abrir Mesa" Subs.panelVisible(p_mesa, 0, 0) Private m As Map = Sender.As(Panel).tag @@ -857,7 +929,7 @@ Private Sub p_mesasItem_Click Starter.ticketActual = m.Get("ticket") Starter.comensalesActuales = m.Get("comensales") l_mesa.Text = $"MESA NO. ${m.Get("id")}"$ - Log(m) +' Log(m) b_mesaCerrar.Tag = m Starter.skmt.ExecNonQuery("delete from cuentaa") Starter.skmt.ExecNonQuery($"insert into cuentaa (cuenta) values ('${m.Get("ticket")}')"$) @@ -893,7 +965,7 @@ Private Sub b_abrirMesa_Click Else Starter.ticketActual = Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE") Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_TICKET = '${Subs.traeConsecutivoTicket("ABIERTA", "PENDIENTE")}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) - Log($"update CAT_MESAS set M_TICKET = '${Starter.ticketActual}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) +' Log($"update CAT_MESAS set M_TICKET = '${Starter.ticketActual}', M_ESTATUS = 'ABIERTA', M_MESERO = '${cb_mesero.SelectedItem}', M_COMENSALES = '${cb_comensales.SelectedItem}' where M_ID = '${Starter.mesaActual}'"$) End If Starter.meseroActual = cb_mesero.SelectedItem Starter.comensalesActuales = cb_comensales.SelectedItem @@ -926,6 +998,7 @@ Private Sub b_mesaCerrar_Click 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) + et_propina.Text = "" p_pago.BringToFront p_pago.Visible = True Else @@ -946,7 +1019,11 @@ Private Sub p_mesaAbierta_Click End Sub Private Sub lv_categorias_ItemClick (Position As Int, Value As Object) - +' Log("ITEM CLICKED") + lv_categorias.Visible = False + clv_prods_ll.AsView.Visible = True + Private c As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' and CAT_GP_CLASIF = '${Value}' order by CAT_GP_NOMBRE"$) + LlenaProdsLL(c, Null) End Sub Private Sub p_pago_Click @@ -966,7 +1043,10 @@ Private Sub b_pagoCerrar_Click ' Log($"update CAT_MESAS set M_PAGO = null, M_TICKET = null, M_ESTATUS = null, M_MESERO = null, M_COMENSALES = null where M_ID = '${Starter.mesaActual}'"$) Starter.skmt.ExecNonQuery($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) ' Log($"update PEDIDO set PE_TIPO = '${tipoPago}', PE_TICKET = '${sigTicket}' where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) - Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) + Private laPropina As String = "0" + If et_propina.Text <> "" Then laPropina = et_propina.Text + + Starter.skmt.ExecNonQuery($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}', PT_TARJETA = '${cb_pago.SelectedItem}', PT_PROPINA = '${laPropina}', PT_PAGO_PROPINA = '${cb_pagoPropina.SelectedItem}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA'"$) ' Log($"update PEDIDO_TICKET set PT_PAGO = '${tipoPago}', PT_TICKET = '${sigTicket}' where PT_MESA = '${Starter.mesaActual}' and PT_TICKET = '${Starter.ticketActual}' and PT_PAGO = 'VENTA"$) B4XPage_CloseRequest End Sub @@ -997,7 +1077,7 @@ Private Sub b_cierraAdmin_LongClick ToastMessageShow("¡Cierre administrativo cancelado!", False) End Sub -Private Sub b_imp_DEMO_Click +Private Sub b_cierreTotal_LongClick Log("click") sv_resumen.Panel.Height = p_resumen.Height cs.Initialize @@ -1107,6 +1187,132 @@ Sub Printer1_Error End Sub Sub b_imp_Click + Private imprimirAqui As Boolean = False + Private sDate, sTime As String + Private c As Cursor + sv_resumen.Panel.Height = p_resumen.Height + cs.Initialize + Private l_total, la_cuenta As Label + l_total.Initialize("l") + la_cuenta.Initialize("2") + b_imp.Enabled = False + ProgressDialogShow("Imprimiendo, un momento ...") + 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 + 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) + If imprimirAqui Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + If imprimirAqui Then Printer1.WriteString(Printer1.REVERSE) + If imprimirAqui Then Printer1.PrintImage(myimage) + If imprimirAqui Then Printer1.WriteString(Printer1.UNREVERSE) + Try + DateTime.DateFormat = "yyyymmdd" + sDate = DateTime.Date(DateTime.Now) + If imprimirAqui Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) + 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 PE_MESA, PE_TIPO, PE_TICKET, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo, PE_TICKET order by PE_MESA, PE_TIPO desc") + If c.RowCount > 0 Then + c.Position = 0 + Private mesaAnt As String = "" + 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 c.RowCount - 1 + c.Position = i + ticket = c.GetString("PE_TICKET") + If c.GetString("PE_TIPO") = "TARJETA" Then tipo = "Pago Tarjeta " Else tipo = "Pago Efectivo " + If mesaAnt <> c.GetString("PE_MESA") Then + Private tm As Cursor = Starter.skmt.ExecQuery($"select sum(PT_MONTO) as totalMesa from PEDIDO_TICKET where PT_MESA = '${c.GetString("PE_MESA")}'"$) + tm.Position = 0 + cs.Color(Colors.red).Append($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$).pop + If imprimirAqui Then Printer1.WriteString($"Mesa ${c.GetString("PE_MESA")} - $${NumberFormat2(tm.GetString("totalMesa"), 1, 2, 2, True)} ${CRLF}"$) + End If + If tipoAnt <> c.GetString("PE_TIPO") 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 + 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}"$) + mesaAnt = c.GetString("PE_MESA") + tipoAnt = c.GetString("PE_TIPO") + 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 + 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(te.GetString("total"), 1,2,2,True)}${CRLF}"$).popall + If imprimirAqui Then Printer1.WriteString($"Total Efectivo: ${NumberFormat2(te.GetString("total"), 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 + End If + Subs.panelVisible(p_transparenteResumen, 0, 0) + Else + ToastMessageShow("¡Es necesario que NO haya mesas abiertas para realizar el cierre!", True) + End If + +' 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 +End Sub + +Sub b_imp_VIEJO_Click ' Log("inicia B_IMP2_Click") Private TAMANO As Int Private ESPACIO As Int @@ -1175,25 +1381,25 @@ Sub b_imp_Click ' perfil = c.GetString("CAT_VA_VALOR") ' c.Close ' End If - c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") - c.Position=0 - Private usuario As String = c.GetString("USUARIO") +' c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") +' c.Position=0 + Private usuario As String = "USUARIO" 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 = c.GetString("CAT_VA_VALOR") - c.Close +' 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" +' c.Close TAMANO = 0 ESPACIO = 14 BLANCO = " " 'esto para las impresoras nuevas 'printer.Initialize(cmp20.OutputStream) Printer1.Reset Dim bmp As Bitmap - bmp.InitializeResize(File.DirAssets, "kellanova_borde.png", 376, 129, True) 'ignore + 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) @@ -1202,152 +1408,17 @@ Sub b_imp_Click Printer1.WriteString(Printer1.REVERSE) Printer1.PrintImage(myimage) Printer1.WriteString(Printer1.UNREVERSE) - '' Printer1.Justify = 1 - If la_cuenta.Text = "0" Then - Try - Printer1.WriteString("KELLOGG COMPANY MEXICO" & CRLF) - Printer1.WriteString(sDate &" " & sTime & CRLF) - Printer1.WriteString("Vendedor:" & 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("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) - Printer1.WriteString("PEDIDO" & 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 substr(pe_pronombre,1,6) <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE", Array As String("ABORDO","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 - 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 -' If Logger Then Log($"|${ESPACIO}|, |${TAMANO}|, |${BLANCO}|"$) - 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) -' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF) - TAMANO = 0 - ESPACIO = 14 - BLANCO = " " - End If - Next - End If - s.Close - Printer1.WriteString(CRLF) - Printer1.WriteString("------------RMI---------------" & 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 substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE", Array As String("ABORDO","CAMBIO")) - If S.RowCount>0 Then - For i=0 To S.RowCount -1 - TAMANO = 0 - ESPACIO = 14 - BLANCO = " " - S.Position=i - If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then - Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF) - Else - 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) -' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF) - TAMANO = 0 - ESPACIO = 14 - BLANCO = " " - End If - If Starter.logger Then Log($"|${ESPACIO}|, |${TAMANO}|, |${BLANCO}|"$) - Next - End If - 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("ABORDO")) - s.Position =0 - Private sTotal1 As Double - If s.GetString("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then - sTotal1 = s.GetString("TOTAL") - Else - sTotal1 = 0 - End If - Printer1.WriteString( "Total entrega: $" & NumberFormat2(sTotal1, 1, 2, 2, False) & CRLF) - - Printer1.WriteString("===============================" & CRLF) - ''bold para las nuevas impresoras - Private total3 As String = 0 - If s.GETSTRING("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then total3 = s.GETSTRING("TOTAL") - Printer1.WriteString( Printer1.BOLD & "Total pedido: $" & NumberFormat2(total3, 1, 2, 2, False) & CRLF) - - s.Close - s=Starter.skmt.ExecQuery2("select SUM(PE_CANT) AS TOTAL FROM PEDIDO WHERE PE_TIPO = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("ABORDO")) - s.Position =0 - Private total4 As String = "0" - If s.GetString("TOTAL") <> Null And IsNumber(s.GetString("TOTAL")) Then total4 = s.GetString("TOTAL") - Printer1.WriteString( Printer1.BOLD & "No. Productos: " & total4 & CRLF) - Printer1.WriteString("===============================" & CRLF) - s.Close - Printer1.WriteString(Printer1.DEFAULTS) - -' printer.WriteLine("------------VENTA-------------") - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - - Printer1.WriteString( "Nombre y Firma del cliente" & CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - Printer1.WriteString(CRLF) - 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) - 'printer.Close - Sleep(1000) - Printer1.DisConnect - Catch - ToastMessageShow("Error en la impresion 1.", True) - Printer1.Disconnect - B4XPages.ShowPage("Principal") - End Try - Else Try DateTime.DateFormat = "yyyymmdd" sDate=DateTime.Date(DateTime.Now) - Printer1.WriteString("KELLOGG COMPANY MEXICO" & CRLF) - Printer1.WriteString("No. Ticket: " & sDate & la_cuenta.Text & CRLF) + Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) + Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) Printer1.WriteString(sDate &" " & sTime & CRLF) - Printer1.WriteString("Vendedor:" & usuario & 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) @@ -1357,45 +1428,7 @@ Sub b_imp_Click ' Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) ' Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) Printer1.WriteString(" " & CRLF) - - ''''''' 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_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS,PE_PRONOMBRE", Array As String("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 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 - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString("PEDIDO DON TOÑO" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - 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) -' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF) -' If Logger Then Log($"|${ESPACIO}|, |${TAMANO}|, |${BLANCO}|"$) - 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_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DOE")) s.Position = 0 Private sTotal2 As Double @@ -1410,16 +1443,6 @@ Sub b_imp_Click End If Log(sTotal2) Private cantidad1 As String = "0" - If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then - cantidad1 = s.GetString("CANTIDAD") - - Printer1.WriteString( "No. Productos: " & cantidad1 & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - Printer1.WriteString("FIN PEDIDO DON TOÑO" & CRLF) - Printer1.WriteString("------------------------------" & CRLF) - End If - - ' Printer1.WriteString(CRLF) 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")) @@ -1448,8 +1471,6 @@ Sub b_imp_Click 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) -' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF) -' If Logger Then Log($"|${ESPACIO}|, |${TAMANO}|, |${BLANCO}|"$) TAMANO = 0 ESPACIO = 14 BLANCO = " " @@ -1482,54 +1503,23 @@ Sub b_imp_Click Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad1 & CRLF) Printer1.WriteString(CRLF) s.Close - Printer1.WriteString("------------RMI---------------" & 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 substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","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 - 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) -' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF) - If Starter.logger Then Log($"|${ESPACIO}|, |${TAMANO}|, |${BLANCO}|"$) - 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_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) - s.Position = 0 - 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 CAMBIOS: $" & NumberFormat2(sTotal3, 1, 2, 2, False) & CRLF) - Private cantidad2 As String = "0" - If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad2 = s.GetString("CANTIDAD") - Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad2 & CRLF) - Printer1.WriteString(CRLF) - s.Close - 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_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO")) +' s.Position = 0 +' 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 CAMBIOS: $" & NumberFormat2(sTotal3, 1, 2, 2, False) & CRLF) +' Private cantidad2 As String = "0" +' If s.GetString("CANTIDAD") <> Null And IsNumber(s.GetString("CANTIDAD")) Then cantidad2 = s.GetString("CANTIDAD") +' Printer1.WriteString( Printer1.UNREVERSE & Printer1.BOLD & "No. Productos: " & cantidad2 & CRLF) +' 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) @@ -1546,8 +1536,8 @@ Sub b_imp_Click 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. Productos vendidos: " & (total5 - cantidad2) & CRLF) - Printer1.WriteString(Printer1.BOLD & "Productos devueltos : " & cantidad2 & CRLF) + Printer1.WriteString(Printer1.BOLD & "No. platillos vendidos: " & (total5) & CRLF) +' Printer1.WriteString(Printer1.BOLD & "Productos devueltos : " & cantidad2 & CRLF) Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF) ' Printer1.WriteString( "No. Productos: " & s.GetString("TOTAL") & CRLF) ' Printer1.WriteString( "===============================" & CRLF) @@ -1584,7 +1574,6 @@ Sub b_imp_Click Printer1.Disconnect B4XPages.ShowPage("Principal") End Try - End If Sleep(1000) b_imp.Enabled = True ProgressDialogHide @@ -1663,3 +1652,159 @@ Sub JobDone(Job As HttpJob) If reqManager.errorList.Size > 0 Then Log(">>>>> ERRORES - " & reqManager.errorList) Job.Release End Sub + +Private Sub b_regresarProds_Click + WobbleMenu1_Tab1Click +End Sub + +Private Sub b_imprimirTicket_Click + Private imprimirEste As Boolean = True + Private logger As Boolean = True + Private TAMANO As Int + Private ESPACIO As Int + Private BLANCO As String + Private c, s As Cursor + + Private l_total, la_cuenta As Label + l_total.Initialize("l") + la_cuenta.Initialize("2") + + 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 ...") + 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 + + 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" +' c.Close + TAMANO = 0 + ESPACIO = 14 + BLANCO = " " 'esto para las impresoras nuevas + 'printer.Initialize(cmp20.OutputStream) + 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) + +' Mesero: Donald--------- # Mesa +' Mesero: Luis----------- # Mesa +' ...........................2 + + If imprimirEste Then Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + If imprimirEste Then Printer1.WriteString(Printer1.REVERSE) + If imprimirEste Then Printer1.PrintImage(myimage) + If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) + Try + If imprimirEste Then Printer1.WriteString("LA LANTERNA RISTORANTE" & CRLF) + If logger Then Log("LA LANTERNA RISTORANTE" & CRLF) + If imprimirEste Then Printer1.WriteString("No. Ticket: " & Starter.ticketActual & CRLF) + If logger Then Log("No. Ticket: " & Starter.ticketActual & CRLF) + If imprimirEste Then Printer1.WriteString(sDate &" " & sTime & CRLF) + If logger Then Log(sDate &" " & sTime & CRLF) + If imprimirEste Then Printer1.WriteString($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)}${Printer1.BOLD} # Mesa${CRLF}"$) + If logger Then Log($"Mesero: ${Starter.meseroActual}${Subs.rellenaHasta(15 - Starter.meseroActual.Length)} # Mesa${CRLF}"$) + If imprimirEste Then Printer1.WriteString($"${Printer1.BOLD}${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) + If logger Then Log($"${Subs.alineaDerecha(Starter.mesaActual, 28, " ")}"$) +' 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) + If logger Then Log(" " & CRLF) + c = Starter.skmt.ExecQuery($"select * from PEDIDO where PE_MESA = '${Starter.mesaActual}' and PE_TIPO = 'VENTA' and PE_TICKET = '${Starter.ticketActual}'"$) + If c.RowCount > 0 Then + 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}"$) + Next + End If + c = Starter.skmt.ExecQuery($"select * from PEDIDO_TICKET where PT_MESA = '${Starter.mesaActual}' and PT_PAGO = 'VENTA' and PT_TICKET = '${Starter.ticketActual}'"$) + If c.RowCount > 0 Then + c.Position = 0 + If imprimirEste Then Printer1.WriteString($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$) + If logger Then Log($"${CRLF}Total: $${NumberFormat2(c.GetString("PT_MONTO"), 1, 2, 2, True)}"$) + End If + + + If imprimirEste Then Printer1.WriteString(Printer1.UNREVERSE) + If imprimirEste Then Printer1.WriteString(Printer1.NOBOLD) +' printer.WriteLine("------------VENTA-------------") +' printer.WriteLine("TOTAL COMPRA: $:" & total_cliente) +' Printer1.WriteString(Printer1.DEFAULTS & CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + ' Printer1.WriteString(Printer1.SINGLE) + 'Printer1.WriteString("------------------------------") + ' Printer1.WriteString(Printer1.HIGH) + ' Printer1.Justify = 1 +' If imprimirEste Then Printer1.WriteString( "Nombre y Firma del cliente" & CRLF) +' If logger Then Log( "Nombre y Firma del cliente" & CRLF) +' If imprimirEste Then Printer1.WriteString(CRLF) +' If imprimirEste Then Printer1.WriteString(CRLF) +' If imprimirEste Then Printer1.WriteString(CRLF) + ' Printer1.WriteString(Printer1.DEFAULTS) + ' Printer1.WriteString(Printer1.SINGLE) +' If imprimirEste Then Printer1.WriteString("__________" & CRLF) +' If logger Then Log("__________" & CRLF) + If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) + If logger Then Log("------------------------------" & CRLF) + If imprimirEste Then Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF) + If logger Then Log("----ESTE TICKET NO ES UN -----" & CRLF) + If imprimirEste Then Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + If logger Then Log("--COMPROBANTE FISCAL, SOLO ES-" & CRLF) + If imprimirEste Then Printer1.WriteString("--------INFORMATIVO-----------" & CRLF) + If logger Then Log("--------INFORMATIVO-----------" & CRLF) + If imprimirEste Then Printer1.WriteString("------------------------------" & CRLF) + If logger Then Log("------------------------------" & CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + If imprimirEste Then Printer1.WriteString(CRLF) + Sleep(1000) + Printer1.DisConnect + + Catch + Log(LastException) + End Try + Sleep(1000) + b_imp.Enabled = True + ProgressDialogHide +End Sub + +Private Sub cb_pagoPropina_SelectedIndexChanged (Index As Int) + +End Sub \ No newline at end of file diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 4dcbc24..c1eb301 100644 Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index bbe2913..31533df 100644 Binary files a/B4A/Files/principal.bal and b/B4A/Files/principal.bal differ diff --git a/B4A/Files/proditem.bal b/B4A/Files/proditem.bal index e4beae2..163955f 100644 Binary files a/B4A/Files/proditem.bal and b/B4A/Files/proditem.bal differ diff --git a/B4A/MarketPlace.b4a b/B4A/Lanterna.b4a similarity index 96% rename from B4A/MarketPlace.b4a rename to B4A/Lanterna.b4a index 3df060f..ac56c31 100644 --- a/B4A/MarketPlace.b4a +++ b/B4A/Lanterna.b4a @@ -1,4 +1,4 @@ -Build1=Default,mp.keymon.lat,HU2_PUBLIC +Build1=Default,lanterna.keymon.lat,HU2_PUBLIC File1=candado.png File10=logoLanter.png File11=logoLanter_192x192.png @@ -18,10 +18,10 @@ File23=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white.png File3=engrane.png File4=engranes.png File5=errormanager.bal -File6=fondoblanco.png -File7=kmt.db -File8=login.bal -File9=logo.png +File6=kmt.db +File7=login.bal +File8=logo.png +File9=logoLanter.bmp FileGroup1=Default Group FileGroup10=Default Group FileGroup11=Default Group @@ -77,7 +77,7 @@ NumberOfModules=7 Version=12.8 @EndOfDesignText@ #Region Project Attributes - #ApplicationLabel: MarketPlace + #ApplicationLabel: Lanterna #VersionCode: 1 #VersionName: 4.02.10 'SupportedOrientations possible values: unspecified, landscape or portrait. diff --git a/B4A/Lanterna.b4a.meta b/B4A/Lanterna.b4a.meta new file mode 100644 index 0000000..f1d38d5 --- /dev/null +++ b/B4A/Lanterna.b4a.meta @@ -0,0 +1,27 @@ +ModuleBookmarks0= +ModuleBookmarks1= +ModuleBookmarks2= +ModuleBookmarks3= +ModuleBookmarks4= +ModuleBookmarks5= +ModuleBookmarks6= +ModuleBookmarks7= +ModuleBreakpoints0= +ModuleBreakpoints1= +ModuleBreakpoints2= +ModuleBreakpoints3= +ModuleBreakpoints4= +ModuleBreakpoints5= +ModuleBreakpoints6= +ModuleBreakpoints7= +ModuleClosedNodes0= +ModuleClosedNodes1=12 +ModuleClosedNodes2=50,51,52 +ModuleClosedNodes3= +ModuleClosedNodes4= +ModuleClosedNodes5= +ModuleClosedNodes6= +ModuleClosedNodes7=47,48,68 +NavigationStack=Starter,Service_Start,53,0,C_Principal,B4XPage_Created,169,0,C_Principal,p_mesasItem_Click,925,0,C_Principal,LlenaProdsLL,401,6,C_Principal,b_prodMas_Click,304,0,C_Principal,b_prodMenos_Click,266,0,Visual Designer,principal.bal,-100,1,Visual Designer,login.bal,-100,5,B4XMainPage,user_TextChanged,240,6,B4XMainPage,JobDone,233,0 +SelectedBuild=0 +VisibleModules=1,6,7,2,3 diff --git a/B4A/MarketPlace.b4a.meta b/B4A/MarketPlace.b4a.meta deleted file mode 100644 index aa9eda2..0000000 --- a/B4A/MarketPlace.b4a.meta +++ /dev/null @@ -1,27 +0,0 @@ -ModuleBookmarks0= -ModuleBookmarks1= -ModuleBookmarks2= -ModuleBookmarks3= -ModuleBookmarks4= -ModuleBookmarks5= -ModuleBookmarks6= -ModuleBookmarks7= -ModuleBreakpoints0= -ModuleBreakpoints1= -ModuleBreakpoints2= -ModuleBreakpoints3= -ModuleBreakpoints4= -ModuleBreakpoints5= -ModuleBreakpoints6= -ModuleBreakpoints7= -ModuleClosedNodes0= -ModuleClosedNodes1=12,14 -ModuleClosedNodes2=11,12,13,14,24,25,27,28,29,30,31,32,33,34,35,46,47,50 -ModuleClosedNodes3= -ModuleClosedNodes4= -ModuleClosedNodes5= -ModuleClosedNodes6= -ModuleClosedNodes7=68 -NavigationStack=C_Principal,b_envioInfo_Click,1589,3,Starter,Service_Destroy,85,0,B4XMainPage,ListView1_ItemClick,165,0,Visual Designer,login.bal,-100,1,Starter,Service_Start,54,6,Starter,Process_Globals,11,0,Starter,Service_Create,28,0,C_Principal,B4XPage_Appear,147,0,C_Principal,b_cierreTotal_Click,1036,3,B4XMainPage,b_server_Click,117,1 -SelectedBuild=0 -VisibleModules=1,6,7,2,4,3,5 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index d0bf14b..5f2f7b2 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -57,7 +57,7 @@ Sub Service_Start (StartingIntent As Intent) Logger = False #End If Private c As Cursor = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER")) - Log(c.RowCount) +' Log(c.RowCount) If c.RowCount > 0 Then c.Position = 0 DBReqServer = c.GetString("CAT_VA_VALOR") diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 1489e74..0a8f112 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -188,7 +188,7 @@ End Sub 'Revisa que exista la BD y si es necesario crea algunans tablas dentro de ella Sub revisaBD 'ignore - Log("REVISA BD") +' Log("REVISA BD") If Not(File.Exists(Starter.ruta, "kmt.db")) Then File.Copy(File.DirAssets, "kmt.db", Starter.ruta, "kmt.db") LogColor("copiamos kmt.db de "&File.DirAssets & " a " & Starter.ruta,Colors.Green) @@ -201,6 +201,9 @@ Sub revisaBD 'ignore 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)") agregaColumna("PEDIDO_TICKET", "PT_TICKET", "TEXT") + agregaColumna("PEDIDO_TICKET", "PT_TARJETA", "TEXT") + agregaColumna("PEDIDO_TICKET", "PT_PROPINA", "TEXT") + agregaColumna("PEDIDO_TICKET", "PT_PAGO_PROPINA", "TEXT") agregaColumna("PEDIDO", "PE_TICKET", "TEXT") agregaColumna("PEDIDO", "PE_MESA", "TEXT") agregaColumna("PEDIDO", "PE_MESERO", "TEXT") @@ -1183,7 +1186,7 @@ Sub hayPedido As Boolean thisC.Position = 0 Private hay As Boolean = False If thisC.GetInt("hayPedido") > 0 Then hay = True - ' Log($"Cliente actual=${traeTicket}, hayPedido=${hay}"$) +' Log($"Cliente actual=${Starter.ticketActual}, hayPedido=${hay}"$) Return hay End Sub @@ -1271,7 +1274,7 @@ Sub actualizaProducto(costoU As String, cant As String, nombre As String, prodId End If Else 'INSERTAMOS - LogColor("INSERTAMOS PROD", Colors.red) +' LogColor("INSERTAMOS PROD", Colors.red) If cant > 0 Then guardaProductoSinGestion(costoU, cant, nombre, prodId, ticketId, fecha, mesero, mesa, precioSin, tipoVenta, comensales) End If c.Close @@ -1290,12 +1293,12 @@ Sub guardaProductoSinGestion(costoU As String, cant As String, nombre As String, 'Actualizamos el inventario en cat_gunaprod solo si no es RMI Starter.skmt.ExecNonQuery2($"update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId)) c = Starter.skmt.ExecQuery($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}' and PE_TIPO = 'VENTA' and PE_MESA = '${mesa}'"$) - Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) +' Log($"select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_TICKET = '${ticketId}'"$) c.Position = 0 Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) ' Log($"delete from PEDIDO_TICKET where PT_TICKET = '${ticketId}' and PT_MESA = '${mesa}' and PT_PAGO = '${tipoVenta}'"$) Starter.skmt.ExecNonQuery2("insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_FECHA, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(ticketId, tipoVenta, fecha, mesero, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), mesa, c.GetString("TOTAL_CLIE_SIN"), comensales)) - Log($"insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (${ticketId}, ${tipoVenta}, ${mesero}, ${c.GetString("CANT_CLIE")}, ${c.GetString("TOTAL_CLIE")}, ${mesa}, ${c.GetString("TOTAL_CLIE_SIN")}, ${comensales})"$) +' Log($"insert into PEDIDO_TICKET(PT_TICKET, PT_PAGO, PT_MESERO, PT_NOART, PT_MONTO, PT_MESA, PT_COSTO_SIN, PT_COMENSALES) VALUES (${ticketId}, ${tipoVenta}, ${mesero}, ${c.GetString("CANT_CLIE")}, ${c.GetString("TOTAL_CLIE")}, ${mesa}, ${c.GetString("TOTAL_CLIE_SIN")}, ${comensales})"$) End Sub Sub agrupador() @@ -1355,6 +1358,20 @@ Sub traeMeserosLista As List 'ignore Return items End Sub +'Regresa las categorias de los productos en una lista +Sub traeCategorias As List + Private c As Cursor = Starter.skmt.ExecQuery($"select distinct CAT_GP_CLASIF from CAT_GUNAPROD order by CAT_GP_CLASIF"$) + Private l As List + If c.RowCount > 0 Then + l.Initialize + For i = 0 To c.RowCount - 1 + c.Position = i + l.Add(c.GetString("CAT_GP_CLASIF")) + Next + End If + Return l +End Sub + 'Regresa una lista con el id de los meseros desde la base de datos. Sub traeMeserosIdLista As List 'ignore Private cc As Cursor = Starter.skmt.ExecQuery($"select * from cat_meseros order by ms_nombre"$) @@ -1373,7 +1390,7 @@ Sub traeMeserosIdLista As List 'ignore End Sub 'Regresa el mesero de la mesa dada. -Sub traeMesero(mesaId As String) As String +Sub traeMeseroNombre(mesaId As String) As String Private m As String = "NINGUNO" Private c As Cursor = Starter.skmt.ExecQuery($"select IFNULL(M_MESERO, "NINGUNO") as MESERO from CAT_MESAS where M_ID = '${mesaId}'"$) Log($"select IFNULL(M_MESERO, "NINGUNO") as MESERO from CAT_MESAS where M_ID = '${mesaId}'"$) @@ -1446,6 +1463,25 @@ Sub SetButtonTintList(View As View, Disabled As Int, Enabled As Int) jo.RunMethod("setButtonTintList", Array(View, CSL)) End Sub +'Regresa el texto dado, rellenado a la cantidad de espacios especificados. +Sub alineaDerecha(texto As String, tamano As Int, relleno As String) As String + Private blanco As String = relleno + tamano = tamano - texto.Length - 1 + For E = 0 To tamano - 1 + blanco = relleno & blanco + Next +' Log(blanco & texto) + Return blanco & texto +End Sub + +'Regresa una cadena de espacios del tamaño especificado +Sub rellenaHasta(tamano As Int) As String + Private relleno As String = "" + For i = 0 To tamano - 1 + relleno = relleno & " " + Next + Return relleno +End Sub 'CAT_GUNAPRODS, CAT_MESAS y CAT_MESEROS '1782