From 3fea2efa9edd4ed8be27eb92ac04ccd3c448d91b Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sat, 10 Feb 2024 22:55:01 -0600 Subject: [PATCH] =?UTF-8?q?Se=20agreg=C3=B3=C2=B4el=20envio=20de=20la=20in?= =?UTF-8?q?formaci=C3=B3n=20con=20boton=20de=20ciere=20total=20y=20el=20bo?= =?UTF-8?q?rrado=20de=20las=20ordenes=20con=20efectivo,=20el=20codigo=20pa?= =?UTF-8?q?ra=20imprimir=20(incompleto)=20y=20logos=20e=20icono=20de=20la?= =?UTF-8?q?=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/B4XMainPage.bas | 23 +- B4A/C_Principal.bas | 701 +++++++++++++++++- B4A/DBRequestManager.bas | 3 +- B4A/EscPosPrinter.bas | 1148 ++++++++++++++++++++++++++++++ B4A/Files/login.bal | Bin 11157 -> 11296 bytes B4A/Files/logoLanter.bmp | Bin 0 -> 150454 bytes B4A/Files/logolanter.png | Bin 0 -> 62967 bytes B4A/Files/logolanter2.bmp | Bin 0 -> 97958 bytes B4A/Files/logolanter_192x192.png | Bin 0 -> 13423 bytes B4A/Files/logolanternegro.bmp | Bin 0 -> 152682 bytes B4A/Files/logolanternegro.png | Bin 0 -> 64157 bytes B4A/Files/logolanternegro2.bmp | Bin 0 -> 95878 bytes B4A/Files/principal.bal | Bin 26091 -> 27601 bytes B4A/MarketPlace.b4a | 47 +- B4A/MarketPlace.b4a.meta | 13 +- B4A/Starter.bas | 20 +- 16 files changed, 1895 insertions(+), 60 deletions(-) create mode 100644 B4A/EscPosPrinter.bas create mode 100644 B4A/Files/logoLanter.bmp create mode 100644 B4A/Files/logolanter.png create mode 100644 B4A/Files/logolanter2.bmp create mode 100644 B4A/Files/logolanter_192x192.png create mode 100644 B4A/Files/logolanternegro.bmp create mode 100644 B4A/Files/logolanternegro.png create mode 100644 B4A/Files/logolanternegro2.bmp diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index bf4e07e..f7bdc7b 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -31,7 +31,7 @@ Sub Class_Globals Private b_regresar As Button Private b_entrar As Button Private b_envioBD As Button - Private B_SERVER As Button + Private b_server As Button Private ImageView4 As ImageView Private ImageView2 As ImageView Private Panel3 As Panel @@ -77,6 +77,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.centraEtiqueta(Label3, p_configuracion.Width) Subs.centraPanel(p_server, p_configuracion.Width) Subs.centraPanel(p_botones, p_configuracion.Width) + i_logo.Left = (Root.Width / 2) - (i_logo.Width / 2) + Subs.centraPanel(Panel3, p_configuracion.Width) ' subs.panelVisible(p_configuracion, 0, 0) End Sub @@ -111,9 +113,18 @@ Private Sub b_entrar_Click B4XPages.ShowPage("principal") End Sub -Private Sub B_SERVER_Click - Starter.DBReqServer = E_SERVER.text - p_configuracion.Visible = False +Private Sub b_server_Click + If E_SERVER.Text <> "" Then + Starter.DBReqServer = E_SERVER.text + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER", Starter.DBReqServer)) + p_configuracion.Visible = False + reqManager.Initialize(Me, Starter.DBReqServer) + Starter.reqManager.Initialize(Me, Starter.DBReqServer) +' Log(E_SERVER.text) + Else + ToastMessageShow("Por favor ingrese la direccion del servidor", True) + End If End Sub Private Sub b_envioBD_Click @@ -158,7 +169,7 @@ End Sub Private Sub ListView1_ItemClick (Position As Int, Value As Object) Starter.DBReqServer = Value E_SERVER.Text = Value - Log(Starter.DBReqServer) +' Log(Starter.DBReqServer) End Sub Sub JobDone(Job As HttpJob) @@ -227,5 +238,5 @@ Sub JobDone(Job As HttpJob) End Sub Private Sub b_entrar_LongClick - Dim a As Int = "a" +' Dim a As Int = "a" End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 18af6ba..ab7f6f6 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -81,6 +81,11 @@ Sub Class_Globals Private sv_resumen As ScrollView Dim su As StringUtils Dim cs As CSBuilder + Dim impresoraConectada As Boolean = False + Dim errorImpresora As Int = 0 + Dim Printer1 As EscPosPrinter + dim b_imp as button + Private b_envioInfo As Button End Sub 'You can add more parameters here. @@ -148,6 +153,7 @@ End Sub Sub B4XPage_Appear reqManager.Initialize(Me, Starter.DBReqServer) +' Log(Starter.DBReqServer) clv = clv_prods_ll cuentaProds LlenaMesas(Null, Null) @@ -182,6 +188,23 @@ Sub B4XPage_Appear PCLVM.B4XSeekBar1.Update p_meseros.Height = Root.Height - WobbleMenu1.Height If p_mesas.Visible And Subs.revisaCierreAdmin Then p_transparenteCierreAdmin.Visible = True Else p_transparenteCierreAdmin.Visible = False + Private c As Cursor = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP")) + c.Position = 0 + If c.RowCount > 0 Then + Starter.mac_impresora = c.GetString("CAT_VA_VALOR") + Else + Starter.mac_impresora = 0 + 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 @@ -196,6 +219,11 @@ Sub B4XPage_CloseRequest As ResumableSub LlenaMesas(Null, Null) Else if p_transparenteResumen.Visible Then p_transparenteResumen.Visible = False + else if WobbleMenu1.GetCurrentTab = 3 Or WobbleMenu1.GetCurrentTab = 2 Then + WobbleMenu1.SetCurrentTab(1) + WobbleMenu1_Tab1Click + else if WobbleMenu1.GetCurrentTab = 1 Then + B4XPages.ShowPage("Login") End If Return False End Sub @@ -577,6 +605,7 @@ Private Sub WobbleMenu1_Tab1Click ' p_carrito.Visible = False p_historial.Visible = False p_mesa.Visible = False + p_transparenteResumen.Visible = False End Sub Private Sub WobbleMenu1_Tab2Click @@ -590,6 +619,7 @@ Private Sub WobbleMenu1_Tab2Click p_transparenteCierreAdmin.Visible = False p_historial.Visible = False p_mesa.Visible = False + p_transparenteResumen.Visible = False End Sub Private Sub WobbleMenu1_Tab3Click @@ -657,7 +687,7 @@ Private Sub b_terminar_Click End Sub Sub llenaHistorial - Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select * from pedido_ticket where PT_PAGO <> 'VENTA' order by PT_PAGO, PT_TICKET"$) + Dim rs_hist As ResultSet = Starter.skmt.ExecQuery($"Select * from pedido_ticket where PT_PAGO <> 'VENTA' order by PT_PAGO desc, PT_TICKET"$) If rs_hist.RowCount > 0 Then l_historialVacio.Visible = False Private cs As CSBuilder @@ -668,8 +698,8 @@ Sub llenaHistorial Dim Label1 As Label Label1 = lv_historial.TwoLinesLayout.Label Label1.TextSize = 16 - Private elColor As Int = Colors.Red - If rs_hist.GetString("PT_PAGO") = "TARJETA" Then elColor = Colors.RGB(0,0,122) + Private elColor As Int = Colors.RGB(0,0,122) + If rs_hist.GetString("PT_PAGO") = "TARJETA" Then elColor = Colors.Red Label1.color = Colors.White Label1.Height = 30dip Dim label2 As Label @@ -948,7 +978,7 @@ End Sub Private Sub b_cierraAdmin_Click 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 + If c.RowCount = 0 Then 'Si no hay mesas abiertas entonces ... cd1.Initialize(Colors.gray, 10dip) b_cierraAdmin.Background = cd1 ToastMessageShow("¡Cierre administrativo habilitado!", False) @@ -967,29 +997,71 @@ Private Sub b_cierraAdmin_LongClick ToastMessageShow("¡Cierre administrativo cancelado!", False) End Sub -Private Sub b_cierreTotal_Click +Private Sub b_imp_DEMO_Click Log("click") sv_resumen.Panel.Height = p_resumen.Height cs.Initialize Log(l_resumen.text) - Private c As Cursor = Starter.skmt.ExecQuery("select PE_MESA, PE_TIPO, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo order by PE_MESA, PE_TIPO desc") - If c.RowCount > 0 Then - c.Position = 0 - Private mesaAnt As String = "" - Private tipo As String -' Private texoResumen As String - For i = 0 To c.RowCount - 1 - c.Position = i - If c.GetString("PE_TIPO") = "TARJETA" Then tipo = "Tarjeta " Else tipo = "Efectivo " - If mesaAnt <> c.GetString("PE_MESA") Then cs.Color(Colors.red).Append("Mesa " & c.GetString("PE_MESA") & CRLF).pop - cs.Append($"* ${tipo} $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall - mesaAnt = c.GetString("PE_MESA") - Next - l_resumen.Text = cs - l_resumen.Height = su.MeasureMultilineTextHeight(l_resumen, l_resumen.Text) - sv_resumen.Panel.Height = l_resumen.Height + 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 + DateTime.DateFormat = "dd/mm/yyyy HH:mm:ss" + cs.Append($"Fecha: ${DateTime.Date(DateTime.now)}${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 cs.Color(Colors.red).Append("Mesa " & c.GetString("PE_MESA") & CRLF).pop + If tipoAnt <> c.GetString("PE_TIPO") Then cs.Color(Colors.red).Append(" * " & tipo & CRLF).pop + cs.Append($" Ticket ${ticket}: $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall + mesaAnt = c.GetString("PE_MESA") + tipoAnt = c.GetString("PE_TIPO") + Next + 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 +End Sub + +Private Sub b_cierreTotal_Click + Log("click") + sv_resumen.Panel.Height = p_resumen.Height + cs.Initialize +' Log(l_resumen.text) + Private m As Cursor = Starter.skmt.ExecQuery($"select M_ESTATUS from CAT_MESAS where M_ESTATUS = 'ABIERTA'"$) +' Log(m.RowCount) + If m.RowCount = 0 Then 'Si no hay mesas abiertas entonces ... + Private c As Cursor = Starter.skmt.ExecQuery("select PE_MESA, PE_TIPO, sum(PE_COSTO_TOT) as SUBTOT from PEDIDO group by PE_MESA, pe_tipo order by PE_MESA, PE_TIPO desc") + If c.RowCount > 0 Then + c.Position = 0 + Private mesaAnt As String = "" + Private tipo As String + For i = 0 To c.RowCount - 1 + c.Position = i + If c.GetString("PE_TIPO") = "TARJETA" Then tipo = "Tarjeta " Else tipo = "Efectivo " + If mesaAnt <> c.GetString("PE_MESA") Then cs.Color(Colors.red).Append("Mesa " & c.GetString("PE_MESA") & CRLF).pop + cs.Append($"* ${tipo} $${NumberFormat2(c.GetString("SUBTOT"), 0, 2, 2, True)}${CRLF}"$).Popall + mesaAnt = c.GetString("PE_MESA") + Next + 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 - Subs.panelVisible(p_transparenteResumen, 0, 0) End Sub Private Sub et_inicioDia_EnterPressed @@ -1006,5 +1078,588 @@ Private Sub p_transparenteCierreAdmin_Click End Sub Private Sub p_transparenteResumen_Click + 'Para evitar que el clic en pantalla no se siga hacia atras +End Sub + +Sub Printer1_Connected (Success As Boolean) +' If Logger Then Log("Printer1_Connected") + If Success Then + ToastMessageShow("Impresora conectada", False) + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP", Starter.mac_impresora)) + If Starter.logger Then LogColor("Impresora conectada", Colors.Green) +' B_IMP2.Enabled = True + impresoraConectada = True + Else +' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore +' ToastMessageShow("Error conectando la impresora", False) + LogColor("Error conectando la impresora", Colors.Red) + errorImpresora = errorImpresora + 1 + If errorImpresora > 1 Then + Starter.MAC_IMPRESORA = "0" + errorImpresora = 0 + End If + End If +End Sub + +Sub Printer1_Error + Log("error printer") +End Sub + +Sub b_imp_Click +' Log("inicia B_IMP2_Click") + Private TAMANO As Int + Private ESPACIO As Int + Private BLANCO As String + Private c, s As Cursor -End Sub \ No newline at end of file + 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 +' If Logger Then Log($"Impresora Conectada: ${Printer1.IsConnected}"$) +' If la_cuenta.Text <> "0" And la_cuenta.Text <> "null" Then +' Starter.skmt.ExecNonQuery2("UPDATE PEDIDO SET PE_TIPO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ", Array As Object("VENTA")) +' Starter.skmt.ExecNonQuery("UPDATE kmt_info set IMPRESION = 1 where CAT_CL_CODIGO In (select cuenta from cuentaa)")'' +' End If +' Guardar.Visible = True +' Starter.skmt.ExecNonQuery("delete from pedido3") +' Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ") +' c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") + +' If c.RowCount > 0 Then +' For i = 0 To c.RowCount -1 +' c.Position = i +' Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FECHA= ? WHERE PE_CLIENTE = ? AND PE_PRONOMBRE = ? AND PE_PROID = ? AND PE_CEDIS = ? AND PE_FOLIO = ?", Array As Object(c.GetString("PE_FECHA"), c.GetString("PE_CLIENTE"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CEDIS"), c.GetString("PE_FOLIO"))) +' Next +' End If +' Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ") +' Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3") + +' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) +' c.Position =0 +' perfil = c.GetString("CUANTOS") +' c.Close +' If perfil > 0 Then +' c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) +' c.Position =0 +' 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") + 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 + 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 + Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp) + myimage = Printer1.DitherImage2D(myimage, 128) + myimage= Printer1.PackImage(myimage) + + Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening + 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) + + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + + 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) + + ''''''' 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 + 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" + 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")) + + 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) +' 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_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 + 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_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: $" & 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. Productos vendidos: " & (total5 - cantidad2) & 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) + 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 + End If + Sleep(1000) + b_imp.Enabled = True + ProgressDialogHide +' If Logger Then Log("Habilitamos boton") +End Sub + +Private Sub b_envioInfo_Click + Private cmd As DBCommand + Log(Starter.DBReqServer) +' sql.insertPedido_Lanter=insert into Lanter.pedido (PE_CODPROMO, PE_FECHA_SINC, PE_IDALMACEN, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_DESCUENTO, PE_CANT_TOTAL, PE_VENTA_TOTAL, PE_FOLIO, PE_TIPO, PE_PERFIL) +' VALUES ((?),SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?)) +' sql.insertPedidos_Lanter=insert into LANTER.pedido_cliente(PC_FECHA_SINC, PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO, PC_LON, PC_LAT, PC_IDALMACEN, PC_RUTA, PC_COSTO_SIN, PC_DESCUENTO, PC_FACTURA) +' VALUES (SYSDATE,(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?),(?)) + + Private cantTotal As Int + Private ventaTotal As Double + Private pt As Cursor = Starter.skmt.ExecQuery("select * from pedido_ticket") + If pt.RowCount > 0 Then + ProgressDialogShow("Enviando la información del día") + reqManager.trackInit + For j = 0 To pt.RowCount - 1 + pt.Position = j + cmd.Initialize + cmd.Name = "insertPedidos_Lanter" 'Inserta en tabla PEDIDO_CLIENTE + cmd.Parameters = Array As Object(pt.GetString("PT_TICKET"), pt.GetString("PT_FECHA"), 0, pt.GetString("PT_NOART"), pt.GetString("PT_MONTO"), 0, 0, pt.GetString("PT_MESA"), pt.GetString("PT_MESERO"), pt.GetString("PT_COSTO_SIN"), 0, pt.GetString("PT_FACTURA")) +' Log($"${pt.GetString("PT_TICKET")}, ${pt.GetString("PT_FECHA")}, 0, ${pt.GetString("PT_NOART")}, ${pt.GetString("PT_MONTO")}, 0, 0, ${pt.GetString("PT_MESA")}, ${pt.GetString("PT_MESERO")}, ${pt.GetString("PT_COSTO_SIN")}, 0, ${pt.GetString("PT_FACTURA")}"$) + reqManager.ExecuteCommand(cmd , $"insertPedidos_${pt.GetString("PT_TICKET")}"$) +' LogColor($"insertPedidos_${pt.GetString("PT_TICKET")}"$, Colors.Red) + cantTotal = pt.GetString("PT_NOART") + ventaTotal = pt.GetString("PT_MONTO") + 'De cada ticket, mandamos los productos + Private c As Cursor = Starter.skmt.ExecQuery($"select * from pedido where PE_MESA = '${pt.GetString("PT_MESA")}' and PE_TIPO = '${pt.GetString("PT_PAGO")}' and PE_TICKET = '${pt.GetString("PT_TICKET")}'"$) + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.position = i + cmd.Initialize + cmd.Name = "insertPedido_Lanter" 'Inserta en tabla PEDIDO + cmd.Parameters = Array As Object("", c.getstring("PE_MESA"), c.getstring("PE_COSTO_TOT"), c.getstring("PE_COSTOU"), c.getstring("PE_CANT"), c.getstring("PE_PRONOMBRE"), c.getstring("PE_PROID"), c.getstring("PE_TICKET"), c.getstring("PE_FECHA"), "", c.getstring("PE_MESERO"), c.getstring("PE_COSTO_SIN"), 0, cantTotal, ventaTotal, c.getstring("PE_FOLIO"), c.getstring("PE_TIPO"), "") ' + reqManager.ExecuteCommand(cmd , $"insertPedido_${c.GetString("PE_MESA")}_${c.GetString("PE_TIPO")}_${c.GetString("PE_TICKET")}_${c.GetString("PE_PROID")}"$) +' LogColor($"insertPedido_${c.GetString("PE_MESA")}_${c.GetString("PE_TIPO")}_${c.GetString("PE_TICKET")}_${c.GetString("PE_PROID")}"$, Colors.Blue) + Next + End If +' Log("##########################################") + Next + End If +End Sub + +Sub JobDone(Job As HttpJob) +' Log("JOBDONE PRINCIPAL") + reqManager.trackNext(Job) + If Not(Job.Success) Then + LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) + reqManager.errorList.Add(Job.Tag) + Else + LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 + If Job.JobName = "DBRequest" Then + 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 + Next +' End If + End If + End If + If reqManager.reqsList.Size = 0 Then + ProgressDialogHide + p_transparenteResumen.Visible = False + Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_TIPO = 'EFECTIVO'"$) + Starter.skmt.ExecNonQuery($"delete from PEDIDO_TICKET where PT_PAGO = 'EFECTIVO'"$) + llenaHistorial + ToastMessageShow("¡Envío terminado!", False) + End If + If reqManager.errorList.Size > 0 Then Log(">>>>> ERRORES - " & reqManager.errorList) + Job.Release +End Sub diff --git a/B4A/DBRequestManager.bas b/B4A/DBRequestManager.bas index c14262f..12f43bd 100644 --- a/B4A/DBRequestManager.bas +++ b/B4A/DBRequestManager.bas @@ -16,7 +16,7 @@ Sub Class_Globals Private VERSION As Float = 0.9 Private tempArray(1) As Object Dim jobTagAnterior As String = "" 'Mod por CHV - 211109 - Dim reqsList, timesList As List + Dim reqsList, timesList, errorList As List Dim inicioRequest As Long 'ignore Dim inicioJobDone As Long 'ignore Dim inicioRequestMap, inicioJobDoneMap As Map @@ -321,6 +321,7 @@ Sub trackInit 'ignore Log(">>>>>>>>> TRACKINIT ") reqsList.Initialize timesList.Initialize + errorList.Initialize inicioRequestMap.Initialize inicioJobDoneMap.Initialize End Sub diff --git a/B4A/EscPosPrinter.bas b/B4A/EscPosPrinter.bas new file mode 100644 index 0000000..40292c1 --- /dev/null +++ b/B4A/EscPosPrinter.bas @@ -0,0 +1,1148 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=9.3 +@EndOfDesignText@ +#IgnoreWarnings: 9 +' 9 = unused variable + +Sub Class_Globals + ' 1.0 Initial version + ' 2.0 Added FeedPaper, changed many WriteString(.." & Chr(number)) instances to WriteBytes(params) + ' This is to avoid Unicode code page transformations on some numbers > 32 + ' Added PrintAndFeedPaper, setRelativePrintPosn, + ' Added user defined characters, DefineCustomCharacter, DeleteCustomCharacter and setUseCustomCharacters + ' Addedhelper methods CreateCustomCharacter, CreateLine, CreateBox and CreateCircle + Private Version As Double = 2.0 ' Printer class version + + Type AnImage(Width As Int, Height As Int, Data() As Byte) + + Private EventName As String 'ignore + Private CallBack As Object 'ignore + + Private Serial1 As Serial + Private Astream As AsyncStreams + Private Connected As Boolean + Private ConnectedError As String + + Dim ESC As String = Chr(27) + Dim FS As String = Chr(28) + Dim GS As String = Chr(29) + + 'Bold and underline don't work well in reversed text + Dim UNREVERSE As String = GS & "B" & Chr(0) + Dim REVERSE As String = GS & "B" & Chr(1) + + ' Character orientation. Print upside down from right margin + Dim UNINVERT As String = ESC & "{0" + Dim INVERT As String = ESC & "{1" + + ' Character rotation clockwise. Not much use without also reversing the printed character sequence + Dim UNROTATE As String = ESC & "V0" + Dim ROTATE As String = ESC & "V1" + + ' Horizontal tab + Dim HT As String = Chr(9) + + ' Character underline + Dim ULINE0 As String = ESC & "-0" + Dim ULINE1 As String = ESC & "-1" + Dim ULINE2 As String = ESC & "-2" + + ' Character emphasis + Dim BOLD As String = ESC & "E1" + Dim NOBOLD As String = ESC & "E0" + + ' Character height and width + Dim SINGLE As String = GS & "!" & Chr(0x00) + Dim HIGH As String = GS & "!" & Chr(0x01) + Dim WIDE As String = GS & "!" & Chr(0x10) + Dim HIGHWIDE As String = GS & "!" & Chr(0x11) + + ' Default settings + Private LEFTJUSTIFY As String = ESC & "a0" + Private LINEDEFAULT As String = ESC & "2" + Private LINSET0 As String = ESC & "$" & Chr(0x0) & Chr(0x0) + Private LMARGIN0 As String = GS & "L" & Chr(0x0) & Chr(0x0) + Private WIDTH0 As String = GS & "W" & Chr(0xff) & Chr(0xff) + Private CHARSPACING0 As String = ESC & " " & Chr(0) + Private CHARFONT0 As String = ESC & "M" & Chr(0) + Dim DEFAULTS As String = CHARSPACING0 & CHARFONT0 & LMARGIN0 & WIDTH0 & LINSET0 & LINEDEFAULT & LEFTJUSTIFY _ + & UNINVERT & UNROTATE & UNREVERSE & NOBOLD & ULINE0 + +End Sub + +'********** +'PUBLIC API +'********** + +'Initialize the object with the parent and event name +Public Sub Initialize(vCallback As Object, vEventName As String) + EventName = vEventName + CallBack = vCallback + Serial1.Initialize("Serial1") + Connected = False + ConnectedError = "" +End Sub + +' Returns any error raised by the last attempt to connect a printer +Public Sub ConnectedErrorMsg As String + Return ConnectedError +End Sub + +' Returns whether a printer is connected or not +Public Sub IsConnected As Boolean + Return Connected +End Sub + +' Returns whether Bluetooth is on or off +Public Sub IsBluetoothOn As Boolean + Return Serial1.IsEnabled +End Sub + +' Ask the user to connect to a printer and return whether she tried or not +' If True then a subsequent Connected event will indicate success or failure +Public Sub Connect As Boolean + 'leos +' Serial1.Connect("88:6B:0F:3E:53:9E") +' Return True + Try + If Starter.MAC_IMPRESORA = "0" Then + Dim PairedDevices As Map + PairedDevices = Serial1.GetPairedDevices + Dim l As List + l.Initialize + For i = 0 To PairedDevices.Size - 1 + l.Add(PairedDevices.GetKeyAt(i)) + Next + Dim Res As Int + Res = InputList(l, "Choose a printer", -1) 'show list with paired devices 'ignore + If Res <> DialogResponse.CANCEL Then + Serial1.Connect(PairedDevices.Get(l.Get(Res))) 'convert the name to mac address + 'Msgbox(PairedDevices.Get(l.Get(Res)),"mac") + Starter.mac_impresora = PairedDevices.Get(l.Get(Res)) + Return True + End If + Return False + Else + Serial1.Connect(Starter.mac_impresora) + ' Starter.mac_impresora = colonia.MAC_IMPRESORA + Return True + End If + Catch + Log(LastException) + End Try +End Sub + +' Disconnect the printer +Public Sub DisConnect + Serial1.Disconnect + Connected = False +End Sub + +' Reset the printer to the power on state +Public Sub Reset + WriteString(ESC & "@") +End Sub + +'-------------- +' Text Commands +'-------------- + +' Print any outstanding characters then feed the paper the specified number of units of 0.125mm +' This is similar to changing LineSpacing before sending CRLF but this has a one off effect +' A full character height is always fed even if units = 0. Units defines the excess over this minimum +Public Sub PrintAndFeedPaper(units As Int) + WriteString(ESC & "J") + Dim params(1) As Byte + params(0) = units + WriteBytes(params) +End Sub + +' Set the distance between characters +Public Sub setCharacterSpacing(spacing As Int) + WriteString(ESC & " ") + Dim params(1) As Byte + params(0) = spacing + WriteBytes(params) +End Sub + +' Set the left inset of the next line to be printed +' Automatically resets to 0 for the following line +' inset is specified in units of 0.125mm +Public Sub setLeftInset(inset As Int) + Dim dh As Int = inset / 256 + Dim dl As Int = inset - dh + WriteString(ESC & "$" & Chr(dl) & Chr(dh)) + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the left margin of the print area, must be the first item on a new line +' margin is specified in units of 0.125mm +' This affects barcodes as well as text +Public Sub setLeftMargin(margin As Int) + Dim dh As Int = margin / 256 + Dim dl As Int = margin - dh + WriteString(GS & "L") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the width of the print area, must be the first item on a new line +' margin is specified in units of 0.125mm +' This affects barcodes as well as text +' This appears to function more like a right margin than a print area width when used with LeftMargin +Public Sub setPrintWidth(width As Int) + Dim dh As Int = width / 256 + Dim dl As Int = width - dh + WriteString(GS & "W") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Set the distance between lines in increments of 0.125mm +' If spacing is < 0 then the default of 30 is set +Public Sub setLineSpacing(spacing As Int) + If spacing < 0 Then + WriteString(ESC & "2") + Else + WriteString(ESC & "3") + Dim params(1) As Byte + params(0) = spacing + WriteBytes(params) + End If +End Sub + +' Set the line content justification, must be the first item on a new line +' 0 left, 1 centre, 2 right +Public Sub setJustify(justify As Int) + WriteString(ESC & "a" & Chr(justify + 48)) +End Sub + +' Set the codepage of the printer +' You need to look at the printer documentation to establish which codepages are supported +Public Sub setCodePage(codepage As Int) + WriteString(ESC & "t") + Dim params(1) As Byte + params(0) = codepage + WriteBytes(params) +End Sub + +' Select the size of the font for printing text. 0 = Font A (12 x 24), 1 = Font B (9 x 17) +' For font B you may want to set the line spacing to a lower value than the default of 30 +' This affects only the size of printed characters. The code page determines the actual character set +' On my printer setting UseCustomCharacters = while Font B is selected crashes the printer and turns it off +Public Sub setCharacterFont(font As Int) + WriteString(ESC & "M" & Chr(Bit.And(1,font))) +End Sub + +' Set the positions of the horizontal tabs +' Each tab is specified as a number of character widths from the beginning of the line +' There may be up to 32 tab positions specified each of size up to 255 characters +' The printer default is that no tabs are defined +Public Sub setTabPositions(tabs() As Int) + WriteString(ESC & "D") + Dim data(tabs.Length+1) As Byte + For i = 0 To tabs.Length - 1 + data(i) = tabs(i) + Next + data(tabs.Length) = 0 + WriteBytes(data) +End Sub + +' Set print position relative to the current position using horizontal units of 0.125mm +' relposn can be negative +' Unless I have misundertood this doesn't work as documented on my printer +' It only seems take effect at the beginning of a line as a one off effect +Public Sub setRelativePrintPosn(relposn As Int) + Dim dh As Int = relposn / 256 + Dim dl As Int = relposn - dh + WriteString(ESC & "\") + Dim params(2) As Byte + params(0) = dl + params(1) = dh + WriteBytes(params) +End Sub + +' Send the contents of an array of bytes to the printer +' Remember that if the printer is expecting text the bytes will be printed as characters in the current code page +Public Sub WriteBytes(data() As Byte) + If Connected Then + Astream.Write(data) + End If +End Sub + +' Send the string to the printer in IBM437 encoding which is the original PC DOS codepage +' This is usually the default codepage for a printer and is CodePage = 0 +' Beware of using WriteString with Chr() to send numeric values as they may be affected by Unicode to codepage translations +' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenation with other string data +Public Sub WriteString(data As String) + WriteString2(data, "IBM437") +End Sub + +' Send the string to the printer in the specified encoding +' You also need to set the printer to a matching encoding using the CodePage property +' Beware of using WriteString2 with Chr() to send numeric values as they may be affected by codepage substitutions +' Most character level operations are pre-defined as UPPERCASE string variables for easy concatenatipon with other string data +Public Sub WriteString2(data As String, encoding As String) + Try + If Connected Then + Astream.Write(data.GetBytes(encoding)) + End If + Catch + Log("Printer error : " & LastException.Message) + AStream_Error + End Try +End Sub + +'----------------------------------------- +' User defined character commands commands +'----------------------------------------- + +' Delete the specified user defined character mode +' This command deletes the pattern defined for the specified code in the font selected by ESC ! +' If the code is subsequently printed in custom character mode the present code page character is printed instead +Public Sub DeleteCustomCharacter(charcode As Int) + WriteString(ESC & "?") + Dim params(1) As Byte + params(0) = charcode + WriteBytes(params) +End Sub + +' Enable the user defined character mode if custom is True, revert to normal if custom is False +' If a custom character has not been defined for a given character code then the default character for the present font is printed +' FontA and FontB have separate definitions for custom characters +' On my printer setting UseCustomCharacters = while Font B is selected crashes the printer and turns it off +' Therefore the cuatom character routines have not been tested on ont B +Public Sub setUseCustomCharacters(custom As Boolean) + If custom Then + WriteString(ESC & "%1") + Else + WriteString(ESC & "%0") + End If +End Sub + +' Define a user defined character +' The allowable character code range is the 95 characters) from ASCII code 32 (0x20) to 126 (0x7E) +' Characters can be defined in either font A (12*24) or font B (9*17) as selected by present setting of CharacterFont +' The programmer must ensure that the correct font size definition is used for the present setting of CharacterFont +' The user-defined character definition is cleared when Reset is invoked or the printer is turned off +' The vertical and horizontal printed resolution is approximaely 180dpi +' Characters are always defined by sets of three bytes in the vertical direction and up to 9 or 12 sets horizontally +' Each byte defines a vertical line of 8 dots. The MSB of each byte is the highest image pixel, the LSB is the lowest +' Byte(0+n) defines the topmost third of the vertical line, Byte(1+n) is below and Byte(2+n) is the lowest +' Set a bit to 1 to print a dot or 0 to not print a dot +' If the lines to the right of the character are blank then there set of three bytes can be omiited from the byte array +' When the user-defined characters are defined in font B (9*17) only the most significant bit of the 3rd byte of data is used +' charcode defines the character code for the character being defined +' bitdata is a Byte array containing the character definitiopn as described above. +' If the length of bitdata is not a multiple of 3 the definition is ignored and a value of -1 returned +Public Sub DefineCustomCharacter(charcode As Int, bitdata() As Byte) As Int + Dim excess As Int = bitdata.Length Mod 3 + If excess <> 0 Then Return -1 + Dim size As Int = bitdata.Length / 3 + WriteString(ESC & "&") + Dim params(4) As Byte + params(0) = 3 + params(1) = charcode + params(2) = charcode + params(3) = size + WriteBytes(params) + WriteBytes(bitdata) + Return 0 +End Sub + +' The third triangle point is hacked into spare bits keeping the generated Int human readable i hex for other shapes +' The shape array contains the character shapes and characterfont is 0 for a 12*24 character andd 1 for a 9*17 character +' Returns a Byte(36) for characterfont = 0 and a Byte(27) for characterfont = 1 +' The returned array can be directly passed to DefineCustomCharacter +' To define a custom character requires specifying up to 288 data points +' This is a lot of data and in most cases it is mainly white space +' This method takes a character definition that defines only the shapes in the character that are to be printed black +' It will be easier use the outputs from CreateLine, CreateTriangle, CreateBox and CreateCircle rather then building the actual Int values +' Each shape is defined by a single Int value containing four parameters in hex format plugs some single bit flags +' Taking the representation of the Int as eight hex characters numbered from the MS end as 0x01234567 +' 0 contains the shape to draw. 0 = Line, 1 = Box, 2 = Circle, 3 = Triangle +' 1 contains a value between 0 and 0xF. This is either an X coordinate or for a circle the radius +' 2 and 3 contain a value between 0 and 0x1F. This is either a Y coordinate or for a circle the quadrants to draw +' 4 contains a value between 0 and 0xF. This is 0 for an empty shope or 1 for a filled shape +' 5 contains a value between 0 and 0xF. This is an X coordinate +' 5 and 6 contain a value between 0 and 0x1F. This is a Y coordinate +' The coordinate 0,0 is at the top left of the character +' Line +' One point of the vector is contained in the top part of the Int and the other in the bottom half +' To define a single point place its coordinates as both sr=start and end of a line +' Box +' The two X,Y coordinates specify the top left and bottom right corners of the box +' Circle +' The left X parameter is now the radius of the circle, the left Y is the quadrants to be drawn +' The right X and Y parameters are the centre of the circle' +' The quadrants to draw are bit ORed together, UpperRight = 0x1, LowerRight = 0x2, LowerLeft = 0x4, Upper Left = 0x8 +' Triangle +' The left X and Y parameters are now one point of the triangle, the right X and Y parameters another point +' The third triangle point is hacked into spare bits keeping the generated Int human readable in hex for the other shapes +' The bit allocations of a shape are as follows. f = fill as 0 or 1, s = shape as 0 to 7, xn as 0 to 15, yn as 0 to 31 +' Shape 0 = line, 1 = box, 2 = triangle, 3 = circle, 4 to 7 = unused +' fsss xxxx -yyy yyyy xxxx xxxx yyyy yyyy +' 0000 220 0000 2222 1111 2221 1111 +' x0 y2 y0 x2 x1 y2 y1 +' The shape array contains the character shapes and characterfont is 0 for a 12*24 character andd 1 for a 9*17 character +' Returns a Byte(36) for characterfont = 0 and a Byte(27) for characterfont = 1 +' The returned array can be directly passed to DefineCustomCharacter +Public Sub CreateCustomCharacter(shapes() As Int, characterfont As Int) As Byte() + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + ' rather than try to catch errors whenever we access this array we Dim it to the maximum possible values of X and Y + ' then copy the top left of it to the final character definition array of the correct size + Dim points(16,32) As Byte + ' initialise the character to all white + For x = 0 To 15 + For y = 0 To 31 + points(x,y) = 0 + Next + Next + Dim size As Int = 12 + If characterfont = 1 Then size = 9 + Dim charbyes(size * 3) As Byte + For c = 0 To charbyes.Length - 1 + charbyes(c) = 0 + Next + ' set the points array from the shapes provided + For i = 0 To shapes.Length -1 + Dim fill As Int = Bit.UnsignedShiftRight(Bit.And(0x80000000, shapes(i)), 31) + Dim shape As Int = Bit.UnsignedShiftRight(Bit.And(0x70000000, shapes(i)), 28) + Dim x0 As Int = Bit.UnsignedShiftRight(Bit.And(0x0f000000, shapes(i)), 24) + Dim y0 As Int = Bit.UnsignedShiftRight(Bit.And(0x001f0000, shapes(i)), 16) + Dim x1 As Int = Bit.UnsignedShiftRight(Bit.And(0x00000f00, shapes(i)), 8) + Dim y1 As Int = Bit.And(0x0000001f, shapes(i)) + Dim x2 As Int = Bit.UnsignedShiftRight(Bit.And(0x0000f000, shapes(i)), 12) + Dim y2 As Int = Bit.UnsignedShiftRight(Bit.And(0x00e00000, shapes(i)), 18) + Bit.UnsignedShiftRight(Bit.And(0x000000e0, shapes(i)), 5) + ' The bit allocations of a shape are as follows. f = fill as 0 or 1, s = shape as 0 to 7, xn as 0 to 15, yn as 0 to 31 + ' Shape 0 = line, 1 = box, 2 = triangle, 3 = circle, 4 to 7 = unused + ' fsss xxxx -yyy yyyy xxxx xxxx yyyy yyyy + ' 0000 220 0000 2222 1111 2221 1111 + ' x0 y2 y0 x2 x1 y2 y1 + Dim logmsg As String = ": Fill=" & fill & " : Points " & x0 & "," & y0 & " " & x1 & "," & y1 & " " & x2 & "," & y2 + If shape = 3 Then + Log("Triangle " & logmsg) + PlotTriangle(x0, y0, x1, y1, x2, y2, points, fill) + else If shape = 2 Then + Log("Circle " & logmsg) + PlotCircle(x0, y0, x1, y1, points, fill) + Else If shape = 1 Then + Log("Box " & logmsg) + PlotBox(x0, y0, x1, y1, points, fill) + Else + Log("Line " & logmsg) + PlotLine(x0, y0, x1, y1, points) + End If + ' map the points array onto the character definition array + For x = 0 To size -1 ' 9 or 12 horizontal bytes + For y = 0 To 2 ' 3 vertical bytes + Dim bits As Byte = 0 + For b = 0 To 7 ' 8 vertical bits + If points(x, y*8+b) <> 0 Then + bits = Bit.Or(bits, masks(b)) + End If + Next + charbyes(x*3+y) = bits + Next + Next + Next + Return charbyes +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a line in a custom character +' The line starts at X0,Y0 and ends at X1,Y1 +Public Sub CreateLine(x0 As Int, y0 As Int, x1 As Int, y1 As Int) As Int + Dim line As Int = 0 + line = line + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + line = line + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + line = line + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + line = line + Bit.And(0x1f,y1) + Return line +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a circle in a custom character +' The circle is centred on X1,Y1 and the quadrants to draw are bit ORed together +' UpperRight = 0x1, LowerRight = 0x2, LowerLeft = 0x4, Upper Left = 0x8 +Public Sub CreateCircle(radius As Int, quadrants As Int, x1 As Int, y1 As Int, fill As Boolean) As Int + Dim circle As Int = 0x20000000 + If fill Then circle = circle + 0x80000000 + circle = circle + Bit.ShiftLeft(radius, 24) + circle = circle + Bit.ShiftLeft(quadrants, 16) + circle = circle + Bit.ShiftLeft(x1, 8) + circle = circle + y1 + Return circle +End Sub + + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a triangle in a custom character +' The triangles corners are at X0,Y0 X1,Y1 and X2,Y2 +Public Sub CreateTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, fill As Boolean) As Int + Dim triangle As Int = 0x30000000 + If fill Then triangle = triangle + 0x80000000 + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + triangle = triangle + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + triangle = triangle + Bit.And(0x1f,y1) + triangle = triangle + Bit.ShiftLeft(Bit.And(0xf,x2), 12) ' extra X + triangle = triangle + Bit.ShiftLeft(Bit.And(0x7,y2), 5) ' extra Y lsbits * 3 + triangle = triangle + Bit.ShiftLeft(Bit.And(0x18,y2), 18) ' extra Y msbits * 2 + Return triangle +End Sub + +' This is a higher level method that builds the Int values to pass to CreateCustomCharacter in the shapes array +' Create the value to draw a box in a custom character +' The box top left start is X0,Y0 and bottom right is X1,Y1 +Public Sub CreateBox(x0 As Int, y0 As Int, x1 As Int, y1 As Int, fill As Boolean) As Int + Dim box As Int = 0x10000000 + If fill Then box = box + 0x80000000 + box = box + Bit.ShiftLeft(Bit.And(0xf,x0), 24) + box = box + Bit.ShiftLeft(Bit.And(0x1f,y0), 16) + box = box + Bit.ShiftLeft(Bit.And(0xf,x1), 8) + box = box + Bit.And(0x1f,y1) + Return box +End Sub + +'----------------------------------------- +' Private custom character drawing methods +'----------------------------------------- + +Private Sub PlotTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, points(,) As Byte, Fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and it isn't invoked often + PlotLine(x0, y0, x1, y1, points) + PlotLine(x1, y1, x2, y2, points) + PlotLine(x2, y2, x0, y0, points) + If Fill > 0 Then + FillTriangle(x0, y0, x1, y1, x2, y2, points) + End If +End Sub + +Private Sub FillTriangle(x0 As Int, y0 As Int, x1 As Int, y1 As Int, x2 As Int, y2 As Int, points(,) As Byte) + ' first sort the three vertices by y-coordinate ascending so v0 Is the topmost vertice */ + Dim tx, ty As Int + If y0 > y1 Then + tx = x0 : ty = y0 + x0 = x1 : y0 = y1 + x1 = tx : y1 = ty + End If + If y0 > y2 Then + tx = x0 : ty = y0 + x0 = x2 : y0 = y2 + x2 = tx : y2 = ty + End If + If y1 > y2 Then + tx = x1 : ty = y1 + x1 = x2 : y1 = y2 + x2 = tx : y2 = ty + End If + + Dim dx0, dx1, dx2 As Double + Dim x3, x4, y3, y4 As Double + Dim inc As Int + + If y1 - y0 > 0 Then dx0=(x1-x0)/(y1-y0) Else dx0=0 + If y2 - y0 > 0 Then dx1=(x2-x0)/(y2-y0) Else dx1=0 + If y2 - y1 > 0 Then dx2=(x2-x1)/(y2-y1) Else dx2=0 + x3 = x0 : x4 = x0 + y3 = y0 : y4 = y0 + If dx0 > dx1 Then + While + Do While y3 <= y1 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx1 : x4 = x4 + dx0 + Loop + x4=x1 + y4=y1 + Do While y3 <= y2 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x ,y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx1 : x4 = x4 + dx2 + Loop + Else + While + Do While y3 <= y1 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx0 : x4 = x4 +dx1 + Loop + x3=x1 + y3=y1 + Do While y3<=y2 + If x3 > x4 Then inc = -1 Else inc = 1 + For x = x3 To x4 Step inc + points(x, y3) = 1 + Next + y3 = y3 + 1 : y4 = y4 + 1 : x3 = x3 + dx2 : x4 = x4 + dx1 + Loop + End If +End Sub + +Private Sub PlotBox(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte, Fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and itsn't invoked often + PlotLine(x0, y0, x0, y1, points) + PlotLine(x0, y0, x1, y0, points) + PlotLine(x1, y0, x1, y1, points) + PlotLine(x0, y1, x1, y1, points) + If Fill > 0 Then + For x = x0 To x1 + PlotLine(x, y0, x, y1, points) + Next + End If +End Sub + + +Private Sub PlotCircle(radius As Int, quadrants As Int, x1 As Int, y1 As Int, points(,) As Byte, fill As Int) + ' This is a pretty crude algorithm, but it is simple, works and itsn't invoked often + Dim mask As Int = 1 + For q = 3 To 0 Step -1 + If Bit.And(quadrants, mask) <> 0 Then + For i = q*90 To q*90+90 Step 1 + Dim x,y As Double + x = x1 - SinD(i)*radius + y = y1 - CosD(i)*radius + If fill > 0 Then + PlotLine(x1, y1, x, y, points) + Else + points(Round(x), Round(y)) = 1 + End If + Next + End If + mask = Bit.ShiftLeft(mask, 1) + Next +End Sub + +' Bresenham's line algorithm - see Wikipedia +Private Sub PlotLine(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte ) + If Abs(y1 - y0) < Abs(x1 - x0) Then + If x0 > x1 Then + PlotLineLow(x1, y1, x0, y0, points) + Else + PlotLineLow(x0, y0, x1, y1, points) + End If + Else + If y0 > y1 Then + PlotLineHigh(x1, y1, x0, y0, points) + Else + PlotLineHigh(x0, y0, x1, y1, points) + End If + End If +End Sub + +Private Sub PlotLineHigh(x0 As Int, y0 As Int, x1 As Int, y1 As Int, points(,) As Byte ) + Dim dx As Int = x1 - x0 + Dim dy As Int = y1 - y0 + Dim xi As Int = 1 + If dx < 0 Then + xi = -1 + dx = -dx + End If + Dim D As Int = 2*dx - dy + Dim x As Int = x0 + For y = y0 To y1 + points(x,y) = 1 + If D > 0 Then + x = x + xi + D = D - 2*dy + End If + D = D + 2*dx + Next +End Sub + +Private Sub PlotLineLow(x0 As Int, y0 As Int, x1 As Int,y1 As Int, points(,) As Byte ) + Dim dx As Int = x1 - x0 + Dim dy As Int = y1 - y0 + Dim yi As Int = 1 + If dy < 0 Then + yi = -1 + dy = -dy + End If + Dim D As Int = 2*dy - dx + Dim y As Int = y0 + For x = x0 To x1 + points(x,y) = 1 + If D > 0 Then + y = y + yi + D = D - 2*dx + End If + D = D + 2*dy + Next +End Sub + + +'------------------- +' Image commands +'------------------- +' There are two different image printing options with different pixel formats. +' PrintImage prints an entire image at once with a maximum size of 576x512 +' PrintImage2 prints a slice of an image with a height of 8 or 24 and a maximum width of 576 +' One or other may look better on your particular printer + +' Printer support method for pre-processing images to print +' Convert the bitmap supplied to an array of pixel values representing the luminance value of each original pixel +Sub ImageToBWIMage(bmp As Bitmap) As AnImage + Dim BC As BitmapCreator 'ignore + Dim W As Int = bmp.Width + Dim H As Int = bmp.Height + Dim pixels(W * H) As Byte + + For y = 0 To H - 1 + For x = 0 To W - 1 + Dim j As Int = bmp.GetPixel(x, y) + ' convert color to approximate luminance value + Dim col As ARGBColor + BC.ColorToARGB(j, col ) + Dim lum As Int = col.r * 0.2 + col.b*0.1 + col.g*0.7 + If lum> 255 Then lum = 255 + ' save the pixel luminance + pixels(y*W + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = bmp.Width + ret.Height = bmp.Height + ret.Data = pixels + Return ret +End Sub + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to an array of 0s and 1s according to the threshold value +Sub ThresholdImage(img As AnImage, threshold As Int) As AnImage 'ignore + Dim pixels(img.Data.Length) As Byte + For i = 0 To pixels.Length - 1 + Dim lum As Int = Bit.And(img.Data(i), 0xff) ' bytes are signed values + If lum < threshold Then + lum = 1 + Else + lum = 0 + End If + pixels(i) = lum + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to a dithered array of 0s and 1s according to the threshold value +' The dithering algorithm is the simplest one-dimensional error diffusion algorithm +' Normally threshold should be 128 but some images may look better with a little more or less. +' This algorithm tends to produce vertical lines. DitherImage2D will probably look far better +Sub DitherImage1D(img As AnImage, threshold As Int) As AnImage 'ignore + Dim pixels(img.Data.Length) As Byte + Dim error As Int + For y = 0 To img.Height - 1 + error = 0 ' reset on each new line + For x = 0 To img.Width - 1 + Dim lum As Int = Bit.And(img.Data(y*img.Width + x), 0xff) ' bytes are signed values + lum = lum + error + If lum < threshold Then + error = lum + lum = 1 + Else + error = lum - 255 + lum = 0 + End If + pixels(y*img.Width + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + + +' Printer support method for pre-processing images to print +' Convert the array of luminance values to a dithered array of 0s and 1s according to the threshold value +' The dithering algorithm is the simplest two-dimensional error diffusion algorithm +' Normally threshold should be 128 but some images may look better with a little more or less. +' Anything more sophisticated might be overkill considering the image quality of most thermal printers +Sub DitherImage2D(img As AnImage, threshold As Int) As AnImage + Dim pixels(img.Data.Length) As Byte + Dim xerror As Int + Dim yerrors(img.Width) As Int + For i = 0 To yerrors.Length -1 + yerrors(0) = 0 + Next + For y = 0 To img.Height - 1 + xerror = 0 ' reset on each new line + For x = 0 To img.Width - 1 + Dim lum As Int = Bit.And(img.Data(y*img.Width + x), 0xff) ' bytes are signed values + lum = lum + xerror + yerrors(x) + If lum < threshold Then + xerror = lum/2 + yerrors(x) = xerror + lum = 1 + Else + xerror = (lum - 255)/2 + yerrors(x) = xerror + lum = 0 + End If + pixels(y*img.Width + x) = lum + Next + Next + Dim ret As AnImage + ret.Width = img.Width + ret.Height = img.Height + ret.Data = pixels + Return ret +End Sub + + +' GS v0 printing +'--------------- + +' Prints the given image at the specified height and width using the "GS v" command +' Image data is supplied as bytes each containing 8 bits of horizontal image data +' The top left of the image is Byte(0) and the bottom right is Byte(width*height-1) +' MSB of the byte is the leftmost image pixel, the LSB is the rightmost +' Maximum width is 72 bytes (576 bits), Maximum height is 512 bytes +' The printed pixels are square +' Returns status 0 : OK, -1 : too wide, -2 : too high, -3 : array too small +' The printer can take a long time to process the data and start printing +Public Sub PrintImage(img As AnImage) As Int + ' max width = 72 ' 72mm/576 bits wide + ' max height = 512 ' 64mm/512 bits high + If img.width > 72 Then Return -1 + If img.height > 512 Then Return -2 + If img.data.Length < img.width * img.height Then Return -3 + Dim xh As Int = img.width / 256 + Dim xl As Int = img.width - xh * 256 + Dim yh As Int = img.height / 256 + Dim yl As Int = img.height - yh * 256 + Dim params(5) As Byte + params(0) = 0 ' + params(1) = xl + params(2) = xh + params(3) = yl + params(4) = yh + WriteString(GS & "v0") + WriteBytes(params) + WriteBytes(img.data) + WriteString(CRLF) + Return 0 +End Sub + +' Printer support method for pre-processing images to print by PrintImage +' Takes an array of image pixels and packs it for use with PrintImage +' Each byte in the imagedata array is a single pixel valued zero or non-zero for white and black +' The returned array is 8 x smaller and packs 8 horizontal black or white pixels into each byte +' If the horizontal size of the image is not a multiple of 8 it will be truncated so that it is. +Public Sub PackImage(imagedata As AnImage) As AnImage + Dim xbytes As Int = imagedata.width/8 + Dim pixels(xbytes * imagedata.height) As Byte + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + Dim index As Int = 0 + For y = 0 To imagedata.Height - 1 + For x = 0 To xbytes - 1 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = imagedata.Data(index) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + index = index + 1 + Next + pixels(y*xbytes + x) = xbyte + Next + Next + Dim ret As AnImage + ret.Width = xbytes + ret.Height = imagedata.Height + ret.Data = pixels + Return ret +End Sub + + +' ESC * printing +'--------------- + +' Prints the given image slice at the specified height and width using the "ESC *" command +' Image data is supplied as bytes each containing 8 bits of vertical image data +' Pixels are not square, the width:height ratio varies with density and line height +' Returns status 0 = OK, -1 = too wide, -2 = too high, -3 = wrong array length +' Line spacing needs to be set to 0 if printing consecutive slices +' The printed pixels are not square, the ratio varies with the highdensity and dots24 parameter settings +' The highdensity parameter chooses high or low horizontal bit density when printed +' The dots24 parameter chooses 8 or 24 bit data slice height when printed +' Not(highdensity) +' Maximum width is 288 bits. Horizontal dpi is approximately 90 +' MSB of each byte is the highest image pixel, the LSB is the lowest +' highdensity +' Maximum width is 576 bits. Horizontal dpi is approximately 180 +' Not(dots24) +' Vertical printed height is 8 bits at approximately 60dpi +' One byte in the data Array represents one vertical line when printed +' Array size is the same as the width +' MSB of each byte is the highest image pixel, the LSB is the lowest +' dots24 +' Vertical printed height is 24 bits at approximately 180dpi +' Three consecutive bytes in the data array represent one vertical 24bit line when printed +' Array size is 3 times the width +' Byte(n+0) is the highest, byte (n+2) us the lowest +' MSB of each byte is the highest image pixel, the LSB is the lowest +Public Sub PrintImage2(width As Int, data() As Byte, highdensity As Boolean, dotds24 As Boolean) As Int + Dim d As String = Chr(0) + If Not(highdensity) And Not(dotds24 ) Then + d = Chr(0) + If width > 288 Then Return -1 + If data.Length <> width Then Return -3 + Else If highdensity And Not(dotds24) Then + d = Chr(1) + If width > 576 Then Return -1 + If data.Length <> width Then Return -3 + Else If Not(highdensity) And dotds24 Then + d = Chr(32) + If width > 288 Then Return -1 + If data.Length <> width*3 Then Return -3 + Else ' highdensity And dotds24 + d = Chr(33) + If width > 576 Then Return -1 + If data.Length <> width*3 Then Return -3 + End If + Dim xh As Int = width / 256 + Dim xl As Int = width - xh * 256 + Dim params(2) As Byte + params(0) = xl + params(1) = xh + WriteString(ESC & "*" & d) + WriteBytes(params) + WriteBytes(data) + WriteString(CRLF) + Return 0 +End Sub + +' Printer support method for pre-processing images to print by PrintImage2 +' Takes an array of image pixels and packs one slice of it for use with PrintImage2 +' Each byte in the imagedata array is a single pixel valued zero or non-zero for white and black +' The returned array packs 8 vertical black or white pixels into each byte +' If dots24 is True then the slice is 24 pixels high otherwise it is 8 pixels high +Public Sub PackImageSlice(img As AnImage, slice As Int, dots24 As Boolean) As Byte() + Dim bytes As Int = img.width + If dots24 Then + Dim pixels(bytes * 3) As Byte + Dim slicestart As Int = slice * bytes * 8 * 3 + Else + Dim pixels(bytes) As Byte + Dim slicestart As Int = slice * bytes * 8 + End If + + Dim masks(8) As Byte + masks(0) = 0x80 + masks(1) = 0x40 + masks(2) = 0x20 + masks(3) = 0x10 + masks(4) = 0x08 + masks(5) = 0x04 + masks(6) = 0x02 + masks(7) = 0x01 + ' You could compress this into a single code block but I left it as two to make it more obvious what's happening + If dots24 Then + For x = 0 To bytes - 1 + For s = 0 To 2 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = img.Data(slicestart + ((b + s*8) * bytes) + x) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + Next + pixels(x*3+s) = xbyte + Next + Next + Else + For x = 0 To bytes - 1 + Dim xbyte As Byte = 0 + For b = 0 To 7 + ' get a pixel + Dim pix As Byte = img.Data(slicestart + (b * bytes) + x) + If pix <> 0 Then + xbyte = xbyte + masks(b) + End If + Next + pixels(x) = xbyte + Next + End If + Return pixels +End Sub + +'---------------- +'Barcode commands +'---------------- + +' Set the height of a 2D bar code as number of dots vertically, 1 to 255 +' Automatically resets to the default after printing the barcode +Public Sub setBarCodeHeight(height As Int) + WriteString(GS & "h") + Dim params(1) As Byte + params(0) = height + WriteBytes(params) +End Sub + +' Set the left inset of a 2D barcode, 0 to 255 +' This does not reset on receipt of RESET +Public Sub setBarCodeLeft(left As Int) + WriteString(GS & "x") + Dim params(1) As Byte + params(0) = left + WriteBytes(params) +End Sub + +' Set the width of each bar in a 2D barcode. width value is 2 to 6, default is 3 +' 2 = 0.250, 3 - 0.375, 4 = 0.560, 5 = 0.625, 6 = 0.75 +' Resets to default after printing the barcode +Public Sub setBarCodeWidth(width As Int) + WriteString(GS & "w") + Dim params(1) As Byte + params(0) = width + WriteBytes(params) +End Sub + +'Selects the printing position of HRI (Human Readable Interpretation) characters when printing a 2D bar code. +'0 Not printed, 1 Above the bar code, 2 Below the bar code, 3 Both above And below the bar code +' Automatically resets to the default of 0 after printing the barcode +' The docs say this can be Chr(0, 1 2 or 3) or "0" "1" "2" or "3" but the numeric characters don't work +Public Sub setHriPosn(posn As Int) + WriteString(GS & "H") + Dim params(1) As Byte + params(0) = posn + WriteBytes(params) +End Sub + +'Selects the font for HRI (Human Readable Interpretation) characters when printing a 2D bar code. +'0 Font A (12 x 24), 1 Font B (9 x 17) +' Automatically resets to the default of 0 after printing the barcode +' The docs say this can be Chr(0 or 1) or "0" or "1" but the numeric characters don't work +Public Sub setHriFont(font As Int) + WriteString(GS & "f" & Chr(font)) +End Sub + +' If given invalid data no barcode is printed, only strange characters +' CODABAR needs any of A,B,C or D at the start and end of the barcode. Some decoders may not like them anywhere else +' Bartype Code Number of characters Permitted values +' A | UPC-A | 11 or 12 characters | 0 to 9 | The 12th printed character is always the check digit +' B | UPC-E | 6 characters | 0 to 9 | The 12th printed character is always the check digit +' C | EAN13 | 12 or 13 characters | 0 to 9 | The 12th printed character is always the check digit +' D | EAN8 | 7 or 8 characters | 0 to 9 | The 8th printed character is always the check digit +' E | CODE39 | 1 or more characters | 0 to 9, A to Z, Space $ % + - . / +' F | ITF | 1 or more characters | 0 to 9 | even number of characters only +' G | CODABAR| 3 to 255 characters | 0 to 9, A to D, $ + - . / : | needs any of A,B,C or D at the start and end +' H | CODE93 | 1 to 255 characters | Same as CODE39 +' I | CODE128| 2 to 255 characters | entire 7 bit ASCII set +Public Sub WriteBarCode(bartype As String, data As String) + Dim databytes() As Byte = data.GetBytes("ASCII") + Dim dlow As Int = databytes.Length + Log("Barcode " & bartype & ", Size " & dlow & ", " & data) + WriteString(GS & "k" & bartype.ToUpperCase.CharAt(0)) + Dim params(1) As Byte + params(0) = dlow + WriteBytes(params) + WriteBytes(databytes) +End Sub + +' On my printer QR codes don't seem to be able to be decoded and on high ECs look obviously wrong :( +' size is 1 to 40, 0 is auto-size. Successive versions increase module size by 4 each side +' size = 1 is 21x21, 2 = 25x25 ... size 40 = 177x177 +' EC is error correction level, "L"(7%) or "M"(15%) or "Q"(25%) or "H"(30%) +' scale is 1 to 8, 1 is smallest, 8 is largest +Public Sub WriteQRCode(size As Int, EC As String, scale As Int, data As String) + Dim databytes() As Byte = data.GetBytes("ISO-8859-1") + Dim dhigh As Int = databytes.Length / 256 + Dim dlow As Int = databytes.Length - dhigh*256 + Log("QR Code : Size " & size & ", EC " & EC & ", Scale " & scale & ", Size " & dlow & " " & dhigh & " : Data = " & data) + Dim params(3) As Byte + params(0) = scale + params(1) = dlow + params(2) = dhigh + WriteString(ESC & "Z" & Chr(size) & EC.ToUpperCase.CharAt(0)) + WriteBytes(params) + WriteBytes(databytes) +End Sub + + +'**************** +' PRIVATE METHODS +'**************** + +'----------------------- +' Internal Serial Events +'----------------------- + +Private Sub Serial1_Connected (Success As Boolean) + If Success Then + Astream.Initialize(Serial1.InputStream, Serial1.OutputStream, "astream") + Connected = True + ConnectedError = "" + Serial1.Listen + Else + Connected = False + ConnectedError = LastException.Message + End If + If SubExists(CallBack, EventName & "_Connected") Then + CallSub2(CallBack, EventName & "_Connected", Success) + End If +End Sub + +'---------------------------- +' Internal AsyncStream Events +'---------------------------- + +Private Sub AStream_NewData (Buffer() As Byte) + If SubExists(CallBack, EventName & "_NewData") Then + CallSub2(CallBack, EventName & "_NewData", Buffer) + End If + Log("Data " & Buffer(0)) +End Sub + +Private Sub AStream_Error + If SubExists(CallBack, EventName & "_Error") Then + CallSub(CallBack, EventName & "_Error") + End If +End Sub + +Private Sub AStream_Terminated + Connected = False + If SubExists(CallBack, EventName & "_Terminated") Then + CallSub(CallBack, EventName & "_Terminated") + End If +End Sub diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 2fe547a3be49b9209ba3b9ee174d034fb44a03ee..4dcbc24df97dd754fd6dbee2aa3603cdbcb48a65 100644 GIT binary patch delta 665 zcmbOlz952?m4Shwew~e*Qtejy{uRxYi4^0J%P{ZXxVII<&Ynu_!Zt z@&m5zd@w)cfc>y}KKCLPrh5#NodupVa!pPY_5hL(M71{06FkI-B5*|*A+Y&@=o?g7 z2MInV##NI86{RNkDXCAMAf-52RZK|6255OK5OadO9tXs1|3Ccr9}f~qn0#N#R45V1 zWM!}bk&Kog;iSpl%F4kjClecQ=GlG3RN!yd@HsfS(Z7%?gU8`^a delta 578 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 H2sHVBVsUz3 literal 0 HcmV?d00001 diff --git a/B4A/Files/logolanter.png b/B4A/Files/logolanter.png new file mode 100644 index 0000000000000000000000000000000000000000..b9479ed6c9e5ec64c4e1cbecd936e95b6b714575 GIT binary patch literal 62967 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℞_r^%^UodBVh4>Xsfu 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 RVgCRC002ovPDHLkV1nxu?VSJs literal 0 HcmV?d00001 diff --git a/B4A/Files/logolanternegro.bmp b/B4A/Files/logolanternegro.bmp new file mode 100644 index 0000000000000000000000000000000000000000..770e1d4569479de21e5b0581d48022d9c0563be2 GIT binary patch literal 152682 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 TrO;H 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

*~V6Jqw!bLz?40}nhHVLPDY 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 literal 0 HcmV?d00001 diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 73c542b3681970dbeb754f1a5e50cf3426cf0117..bbe2913565a0d15a5310d7a7625b6da61ee2aa48 100644 GIT binary patch delta 1405 zcmZ{k%TH556o>DDV!5=nKzUS9sRfazK-E^IJQP6+QHfxL7*krTra}6WxRUe_kcD^> z-4Kl%7H*7Q6a?}821Pb%OiXYKD-$*@Og(c2IVHIGo%_w4nKN@|&Y8t&nEL{TBuSD! zYb7a#zAZzBkXc9Ib^8Jr{XtjYY*6^UZhv3s?!Z!lIfGguw>Q`y4EQcI_X%i`jlq*S5 zY4d7B+QN7%<2=R|#@iTM8Rs)DV7#4ip~_Kp7t#*qC}Ld9xP);j<1)tOjCV4wAg&}; zk!*~2(fa=!yNUOZ>?8-{y^QxU-p{z2v6FEP<66db%j^-0)icKd#s?WUFh0b%k#Q68 zVNx^6MN;zs^R&G%r(D(^(cz-$R_p(ga!n?SW+SDwCt`_9>|_zUFBI|j`6J5LbQ36p z8G#o3RbGvgorQ1@hrIciS|Af$DXPNyt_)o8jDSM@Wk!W2i>ua)%$8|vMKRv2*@)jy z$*Av1Pgnp9cNJlCj|WEaM_HS3G;V@|KV25Mk8ay>ymZEy@_@VvBGMR!+Z*&EyOKZ_ z9pkiIX2nB7SOQ5B1tpJ>5mf-9c*W7k<78I1Lt9+l&Y({QCtmYa;jFV4Ce*D@tUESa zr%-rNQ(y(W(_ux6*NA5OZ%@7i#u2}`Hcn+{6AWWoae4F!d1X;pPf6;LJQF?7$-E$K zh{ckn6QbuOnO6c{lX*iTS1k6H0K|*)Zl&ivfjmv-w162h9|RmF^O2;^nk4{n(CTxk u`5T{Z>Lh$x{weL%5<4~8y0c)0?zR+19CfH`lJQ%&4QF#waNeh(3;qLx`sq0U delta 1056 zcmY+@%}*0S7zXf}3f94vD&1=Fiz*dqDc0f#Ra&hgU`RAd!l6bZ#YPi}hQzB$)q_{l zyzvj<;>pD5`h{PpP!!6AlSjOJGU4RG^?4VuFNf#tZ)bLQX0|hn-}TR`_SY+=?t7JL z!0$lWKmP2|vd5lS=hr$-PwTFid}#M0jmWA4!kdIQ3pWV|g)KOQY(cgnVWb(^CcM4o zlG;(bP&6P$9V^6-e&JtTRs5hBg$pQ6v`*YIh4=ZRF1^y_q7~780(=YLm4{XY3O3UP0!H1d;&EYOVLu^qMIX+ zbp>s$G}31Rl{K%Mp 0 Then + c.Position = 0 + DBReqServer = c.GetString("CAT_VA_VALOR") + Log("De base de datos -> " & DBReqServer) + End If + reqManager.Initialize(Me, DBReqServer) End Sub Sub Service_TaskRemoved @@ -84,11 +91,6 @@ Sub Service_Destroy If Logger Then LogColor("starter destroyed", Colors.red) End Sub -Sub reinicializaReqManager 'ignore - reqManager.Initialize(Me, server) - If Logger Then Log(server) -End Sub - Sub JobDone(Job As HttpJob) LogColor("Starter - JobDone", Colors.Magenta) If Job.Success = False Then