Build1=Default,lanterna_h.keymon.lat,HU2_PUBLIC File1=candado.png File10=logo.png File11=logolanter.bmp File12=logoLanter.png File13=logoLanter_192x192.png File14=logoLanter2.bmp File15=logoLanterNegro.bmp File16=logoLanterNegro.png File17=logoLanterNegro2.bmp File18=mainpage.bal File19=mesasitem.bal File2=durakelo.png File20=principal.bal File21=proditem.bal File22=proditemcarrito.bal File23=resumencont.bal File24=resumenItem.bal File25=usuario.png File26=vecteezy_white-diagonal-stripes-with-red-line-isolated-on-white.png File3=engrane.png File4=engranes.png File5=errormanager.bal File6=formapago.bal File7=kmt.db File8=Layout.bal File9=login.bal FileGroup1=Default Group FileGroup10=Default Group FileGroup11=Default Group FileGroup12=Default Group FileGroup13=Default Group FileGroup14=Default Group FileGroup15=Default Group FileGroup16=Default Group FileGroup17=Default Group FileGroup18=Default Group FileGroup19=Default Group FileGroup2=Default Group FileGroup20=Default Group FileGroup21=Default Group FileGroup22=Default Group FileGroup23=Default Group FileGroup24=Default Group FileGroup25=Default Group FileGroup26=Default Group FileGroup3=Default Group FileGroup4=Default Group FileGroup5=Default Group FileGroup6=Default Group FileGroup7=Default Group FileGroup8=Default Group FileGroup9=Default Group Group=Default Group Library1=appupdating Library10=okhttputils2 Library11=preoptimizedclv Library12=randomaccessfile Library13=runtimepermissions Library14=scrollview2d Library15=serial Library16=sql Library17=stringutils Library18=wobblemenu Library19=xui Library2=b4xtable Library20=jsch Library3=byteconverter Library4=compressstrings Library5=core Library6=fileprovider Library7=javaobject Library8=json Library9=net ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~~\n~AddApplicationText(~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ ~\n~)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~~\n~~\n~'APP UPDATING~\n~AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~~\n~~\n~~\n~)~\n~AddManifestText(~\n~)~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~)~\n~CreateResource(xml, provider_paths,~\n~~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK) Module1=appUpdater Module2=DBRequestManager Module3=errorManager Module4=EscPosPrinter Module5=numeroATexto Module6=Principal Module7=Starter Module8=Subs Module9=updateAvailable NumberOfFiles=26 NumberOfLibraries=20 NumberOfModules=9 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Lanterna #VersionCode: 1 #VersionName: 4.08.01 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: landscape #CanInstallToExternalStorage: False '########################################################################################################### '###################### PULL ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull '########################################################################################################### '###################### PUSH ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ '########################################################################################################### '###################### PUSH TORTOISE GIT ######################################################### 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../"&Args=/closeonend:2 '########################################################################################################### #End Region #Region Activity Attributes #FullScreen: False #IncludeTitle: False #End Region Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Private xui As XUI Public Provider As FileProvider End Sub Sub Globals 'These global variables will be redeclared each time the activity is created. Private i_logo As ImageView Private p_configuracion As Panel Private p_login As Panel Private b_regresar As Button Private b_entrar As Button Private b_envioBD As Button Private b_server As Button Private ImageView4 As ImageView Private ImageView2 As ImageView Private Panel3 As Panel Private Label1 As Label Private i_conf As ImageView Private b_cargaProductos As Button Private ListView1 As ListView Private E_SERVER As EditText Dim reqManager As DBRequestManager Private l_version As Label Private p_botones As Panel Private Label3 As Label Private p_server As Panel Private cb_impresionActiva As CheckBox Private CheckBox1 As CheckBox Private b_leyendaDescuento As Button Private p_leyendaDescuento As Panel Private b_reimprimirTicket As Button Private b_fix As Button Dim in As Intent Dim intentUsado As Boolean = False Private cb_importarDesdeWA As CheckBox Dim habilitarImportarDesdeWA As Boolean = False Private b_update As Button Private b_borraEfectivo As Button End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("login") Subs.revisaBD p_login.Width = Activity.Width p_login.Height = Activity.Height Try Subs.agregaColumna("cat_gunaprod", "CAT_PT_DESC", "TEXT") Subs.agregaColumna("cat_gunaprod", "CAT_PS_DESC", "TEXT") Subs.agregaColumna("cat_gunaprod", "CAT_PS_DESC", "TEXT") Subs.agregaColumna("cat_gunaprod", "CAT_GP_FECHA", "TEXT") Subs.agregaColumna("cat_gunaprod", "CAT_GP_FECHA_MOD", "TEXT") Subs.agregaColumna("cat_gunaprod", "CAT_GP_ORDEN_GRUPOS", "TEXT") ' Starter.skmt.ExecNonQuery("delete from cuentaa") ' Starter.skmt.ExecNonQuery("insert into cuentaa (cuenta) values ('123456')") Starter.skmt.ExecNonQuery("delete from cat_almacen") Starter.skmt.ExecNonQuery("insert into cat_almacen (id_almacen) values ('1')") Catch Log(LastException) End Try l_version.Text = Application.VersionName p_configuracion.Height = Activity.Height : p_configuracion.width = Activity.width reqManager.Initialize(Me, Starter.DBReqServer) Subs.centraEtiqueta(Label3, p_configuracion.Width) Subs.centraPanel(p_server, p_configuracion.Width) Subs.centraPanel(p_botones, p_configuracion.Width) i_logo.Left = (Activity.Width / 2) - (i_logo.Width / 2) Subs.centraPanel(Panel3, p_configuracion.Width) ' subs.panelVisible(p_configuracion, 0, 0) Private x As Cursor = Starter.skmt.ExecQuery($"select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'DESCUENTO X EFECTIVO'"$) If x.RowCount = 0 Then 'Insertamos el descuento para efectivo por default. ' Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DESCUENTO X EFECTIVO")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DESCUENTO X EFECTIVO","10")) End If Private z As ResultSet = Starter.skmt.ExecQuery2("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As String ("IMPRESION_ACTIVA")) If z.RowCount = 0 Then Log("Guardamos impresion como true") Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("IMPRESION_ACTIVA", True)) End If End Sub Sub Activity_Resume If Starter.muestraProgreso = 1 Then muestraProgreso("Descargando actualización") Starter.muestraProgreso = 0 End If Private z As ResultSet = Starter.skmt.ExecQuery2("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As String ("IMPRESION_ACTIVA")) Do While z.NextRow Private ia As Boolean = False If z.GetString("CAT_VA_VALOR") = 1 Then ia = True Loop cb_impresionActiva.Checked = ia Starter.imprimirTicket = ia importaBDDesdeWhatsApp 'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar). If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then l_version.Top = 20dip l_version.Left = 10dip End If End Sub Sub Activity_KeyPress (key As Int) As Boolean ' BACK key pressed If key=KeyCodes.KEYCODE_BACK Then If p_configuracion.Visible Then p_configuracion.Visible = False Else If p_login.Visible Then Log("SALIENDO") ExitApplication Else p_configuracion.Visible = False Subs.panelVisible(p_login, 0, 0) End If End If Return True ' Returning False signals the system to handle the key End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Private Sub i_logo_Click End Sub Private Sub b_regresar_Click p_configuracion.Visible = False Subs.panelVisible(p_login, 0, 0) End Sub Private Sub b_entrar_Click StartActivity(Principal) End Sub 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 'Enviamos la base de datos por correo o Whatsapp. Private Sub b_envioBD_Click 'Hay que agregar las siguientes lineas al manifiesto: 'AddApplicationText( ' ) 'CreateResource(xml, provider_paths, ' ') Dim Provider As FileProvider Provider.Initialize Dim FileName As String = "kmt.db" 'copy the shared file to the shared folder Log("xxxxxx:"&Provider.SharedFolder) Sleep(1000) File.Copy(File.DirInternal, FileName, Provider.SharedFolder, "kmt_Lanterna.db") Dim email As Email email.To.Add("soporte@keymonsoft.com") email.Subject = "Envio Base de datos Lanterna" email.Attachments.Add(Provider.GetFileUri("kmt_Lanterna.db")) ' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment Dim in As Intent = email.GetIntent in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION StartActivity(in) End Sub Private Sub i_conf_Click ListView1.Clear Dim Label1 As Label Label1 = ListView1.SingleLineLayout.Label Label1.TextSize = 20 Label1.TextColor = Colors.Black ' If user.Text = "KMTS1" Then ListView1.AddSingleLine("http://10.0.0.205:1781") ListView1.AddSingleLine("http://keymon.lat:1782") ListView1.AddSingleLine("http://keymon.lat:9000") p_configuracion.Width = Activity.Width p_configuracion.Height = Activity.Height p_configuracion.BringToFront Subs.panelVisible(p_configuracion, 0, 0) Private z As ResultSet = Starter.skmt.ExecQuery2("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As String ("IMPRESION_ACTIVA")) Do While z.NextRow If z.GetString("CAT_VA_VALOR") = 1 Then cb_impresionActiva.Checked = True Loop 'Esto para cambiar los tamaños y posiciones para pantallas chicas (celuar). If GetDeviceLayoutValues.ApproximateScreenSize < 6 Then Label3.Top = 2dip Label3.BringToFront p_server.Top = 20dip p_botones.BringToFront p_botones.Top = p_server.Top + p_server.Height - 10dip End If End Sub Private Sub b_cargaProductos_Click Log(Starter.DBReqServer) ' Dim cmd As DBCommand ' cmd.Initialize ' cmd.Name = "select_cat_gunaprod_GV2" ' cmd.Parameters = Array As Object(1) ' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod") Dim cmd As DBCommand cmd.Initialize cmd.Name = "selectProds_Lanter" reqManager.ExecuteQuery(cmd , 0, "selectProds") cmd.Initialize cmd.Name = "selectMesas_Lanter" reqManager.ExecuteQuery(cmd , 0, "selectMesas") cmd.Initialize cmd.Name = "selectMeseros_Lanter" reqManager.ExecuteQuery(cmd , 0, "selectMeseros") End Sub Private Sub ListView1_ItemClick (Position As Int, Value As Object) Starter.DBReqServer = Value E_SERVER.Text = Value ' Log(Starter.DBReqServer) End Sub Sub JobDone(Job As HttpJob) Log("JOBDONE MAINPAGE") If Job.Tag.As(String).StartsWith("_KMS_") Then Job.tag = Job.Tag.As(String).SubString(16) If Job.Success = False Then ToastMessageShow("Error: " & Job.ErrorMessage, True) Else If Starter.Logger Then LogColor("JobDone: '" & Starter.reqManager.HandleJob(Job).tag & "' - Registros: " & Starter.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 If Job.JobName = "DBRequest" Then Dim result As DBResult = Starter.reqManager.HandleJob(Job) If result.Tag = "selectProds" Then 'query tag ' If Starter.Logger Then Subs.logJobDoneResultados(result) 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"))}"$) 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")) Dim CAT_GP_ALMACEN As String = 10000 'records(result.Columns.Get("CAT_GP_ALMACEN")) Dim CAT_GP_IMG() As Byte = records(result.Columns.Get("CAT_GP_IMG")) Dim CAT_GP_FECHA As String = records(result.Columns.Get("CAT_GP_FECHA")) Dim CAT_GP_FECHA_MOD As String = records(result.Columns.Get("CAT_GP_FECHA_MOD")) Dim CAT_GP_CLASIF As String = records(result.Columns.Get("CAT_GP_CLASIF")) Dim CAT_GP_TIPO As String = records(result.Columns.Get("CAT_GP_TIPO")) Dim CAT_GP_TIPO2 As String = records(result.Columns.Get("CAT_GP_TIPO2")) Dim CAT_GP_ORDENAMIENTO As Int = records(result.Columns.Get("CAT_GP_ORDENAMIENTO")) Dim CAT_GP_ORDEN_GRUPOS As Int = records(result.Columns.Get("CAT_GP_ORDEN_GRUPOS")) Log($"${CAT_GP_NOMBRE}, ${CAT_GP_ORDEN_GRUPOS}"$) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF, CAT_GP_TIPO, CAT_GP_TIPO2, CAT_GP_ORDENAMIENTO,CAT_GP_ORDEN_GRUPOS) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD,CAT_GP_CLASIF,CAT_GP_TIPO,CAT_GP_TIPO2,CAT_GP_ORDENAMIENTO,CAT_GP_ORDEN_GRUPOS)) Next For v = 1 To 20 'Agregamos productos varios (editables) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF, CAT_GP_TIPO, CAT_GP_TIPO2,CAT_GP_ORDEN_GRUPOS) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As Object ($"AVAR${NumberFormat2(v, 2, 0, 0, False)}"$,$"Alimentos Varios ${NumberFormat2(v, 2, 0, 0, False)}"$,"1","10000",Null,"2024-02-04 17:00:00","2024-02-04 17:00:00","VARIOS","ALIMENTOS","ALIMENTOS","1")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_PRECIO,CAT_GP_ALMACEN,CAT_GP_IMG,CAT_GP_FECHA,CAT_GP_FECHA_MOD, CAT_GP_CLASIF, CAT_GP_TIPO, CAT_GP_TIPO2,CAT_GP_ORDEN_GRUPOS) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As Object ($"VVAR${NumberFormat2(v, 2, 0, 0, False)}"$,$"Bebidas Varias ${NumberFormat2(v, 2, 0, 0, False)}"$,"1","10000",Null,"2024-02-04 17:00:00","2024-02-04 17:00:00","VARIOS","VINOS Y LICORES","BEBIDAS","8")) Next Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction End If If result.Tag = "selectMesas" Then 'query tag ' If Starter.Logger Then Subs.logJobDoneResultados(result) 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"))}"$) 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")) Dim M_ZONA As String = records(result.Columns.Get("M_ZONA")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_MESAS(M_ID, M_NUMERO, M_NOMBRE, M_ZONA) VALUES (?,?,?,?)", Array As Object (M_ID, M_NUMERO, M_NOMBRE, M_ZONA)) Next Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction 'Revisamos si con la carga de la información no se borró la info de alguna mesa abierta. Private m As ResultSet = Starter.skmt.ExecQuery($"select distinct M_ID, PT_PAGO, PT_TICKET, PT_MESERO, PT_COMENSALES from PEDIDO_TICKET join CAT_MESAS on PT_MESA = M_ID where PT_PAGO = 'VENTA' and M_ESTATUS is null "$) Log(m.RowCount) Do While m.NextRow ' Si hay registros en pedido_ticket, entonces atualizamos CAT_MESAS con la info faltante. Log($"${m.GetString("M_ID")}, ${m.GetString("PT_PAGO")}, ${m.GetString("PT_TICKET")}, ${m.GetString("PT_MESERO")}, ${m.GetString("PT_COMENSALES")}"$) Starter.skmt.ExecNonQuery($"update CAT_MESAS set M_ESTATUS = 'ABIERTA', M_TICKET = '${m.GetString("PT_TICKET")}', M_MESERO = '${m.GetString("PT_MESERO")}', M_COMENSALES = '${m.GetString("PT_COMENSALES")}' where M_ID = '${m.GetString("M_ID")}' "$) Loop End If If result.Tag = "selectMeseros" Then 'query tag ' If Starter.Logger Then Subs.logJobDoneResultados(result) 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"))}"$) 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")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_MESEROS(MS_ID, MS_NOMBRE, MS_MESAS_ASIGNADAS) VALUES (?,?,?)", Array As Object (MS_ID, MS_NOMBRE, MS_MESAS_ASIGNADAS)) Next Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! Starter.skmt.EndTransaction ' If Principal.cb_mesero.IsInitialized Then Principal.cb_mesero.SetItems(Subs.traeMeserosLista) Starter.cargaMeseros = True End If If result.Tag = "traePedido" Then 'query tag ' If Starter.Logger Then Subs.logJobDoneResultados(result) Starter.skmt.ExecNonQuery("delete from PEDIDO") For Each records() As Object In result.Rows ' PE_TIPO , PE_COSTO_TOT , PE_COSTOU , PE_CANT , PE_PRONOMBRE , PE_PROID , PE_FECHA , PE_TICKET , PE_MESA , PE_MESERO , PE_TIPO2 , PE_ORIGEN ' PT_MESA , PT_PAGO , PT_TICKET , PT_FECHA , PT_MESERO , PT_COMENSALES , PT_NOART , PT_MONTO , PT_TARJETA , PT_PROPINA , PT_PAGO_PROPINA , PT_PAGO2 , PT_ORIGEN , PT_FACTURAR Log(records(result.Columns.Get("PE_FECHA_SINC"))) Dim PE_TIPO As String = records(result.Columns.Get("PE_TIPO")) Dim PE_COSTO_TOT As String = records(result.Columns.Get("PE_COSTO_TOT")) Dim PE_COSTOU As String = records(result.Columns.Get("PE_COSTOU")) Dim PE_CANT As String = records(result.Columns.Get("PE_CANT")) Dim PE_PRONOMBRE As String = records(result.Columns.Get("PE_PRONOMBRE")) Dim PE_PROID As String = records(result.Columns.Get("PE_PROID")) Dim PE_FECHA As String = records(result.Columns.Get("PE_FECHA")) Dim PE_TICKET As String = records(result.Columns.Get("PE_TICKET")) Dim PE_MESA As String = records(result.Columns.Get("PE_MESA")) Dim PE_MESERO As String = records(result.Columns.Get("PE_MESERO")) Dim PE_TIPO2 As String = records(result.Columns.Get("PE_TARJETA")) Dim PE_ORIGEN As Object = records(result.Columns.Get("PE_ORIGEN")) Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_TIPO , PE_COSTO_TOT , PE_COSTOU , PE_CANT , PE_PRONOMBRE , PE_PROID , PE_FECHA , PE_TICKET , PE_MESA , PE_MESERO , PE_TIPO2 , PE_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (PE_TIPO , PE_COSTO_TOT , PE_COSTOU , PE_CANT , PE_PRONOMBRE , PE_PROID , PE_FECHA , PE_TICKET , PE_MESA , PE_MESERO , PE_TIPO2 , PE_ORIGEN)) Next End If If result.Tag = "traePedidoCliente" Then 'query tag ' If Starter.Logger Then Subs.logJobDoneResultados(result) Starter.skmt.ExecNonQuery("delete from PEDIDO_TICKET") For Each records() As Object In result.Rows ' PE_TIPO , PE_COSTO_TOT , PE_COSTOU , PE_CANT , PE_PRONOMBRE , PE_PROID , PE_FECHA , PE_TICKET , PE_MESA , PE_MESERO , PE_TIPO2 , PE_ORIGEN ' PT_MESA , PT_PAGO , PT_TICKET , PT_FECHA , PT_MESERO , PT_COMENSALES , PT_NOART , PT_MONTO , PT_TARJETA , PT_PROPINA , PT_PAGO_PROPINA , PT_PAGO2 , PT_ORIGEN , PT_FACTURAR ' Log(records(result.Columns.Get("PE_FECHA_SINC"))) Dim PT_MESA As String = records(result.Columns.Get("PC_MESA")) Dim PT_PAGO As String = records(result.Columns.Get("PC_TIPO")) Dim PT_TICKET As String = records(result.Columns.Get("PC_TICKET")) Dim PT_FECHA As String = records(result.Columns.Get("PC_FECHA")) Dim PT_MESERO As String = records(result.Columns.Get("PC_MESERO")) Dim PT_COMENSALES As String = "1" Dim PT_NOART As String = records(result.Columns.Get("PC_NOART")) Dim PT_MONTO As String = records(result.Columns.Get("PC_MONTO")) Dim PT_PAGO2 As String = records(result.Columns.Get("PC_TARJETA")) Dim PT_PROPINA As String = records(result.Columns.Get("PC_PROPINA")) If PT_PROPINA = "null" Or PT_PROPINA = "" Then PT_PROPINA = 0 Dim PT_PAGO_PROPINA As String = records(result.Columns.Get("PC_PROPINA_PAGO")) ' Dim PT_PAGO2 As String = records(result.Columns.Get("PT_PAGO2")) Dim PT_ORIGEN As Object = records(result.Columns.Get("PC_ORIGEN")) ' Dim PT_FACTURAR As String = records(result.Columns.Get("PT_FACTURAR")) Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO_TICKET(PT_MESA, PT_PAGO, PT_TICKET, PT_FECHA, PT_MESERO, PT_COMENSALES, PT_NOART, PT_MONTO, PT_PAGO2, PT_PROPINA, PT_PAGO_PROPINA, PT_ORIGEN) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (PT_MESA, PT_PAGO, PT_TICKET, PT_FECHA, PT_MESERO, PT_COMENSALES, PT_NOART, PT_MONTO, PT_PAGO2, PT_PROPINA, PT_PAGO_PROPINA, PT_ORIGEN)) Next 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.Trim = "KMTS1" Then i_conf.Visible = True Else i_conf.Visible = False End Sub Private Sub cb_impresionActiva_CheckedChange(Checked As Boolean) Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("IMPRESION_ACTIVA")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("IMPRESION_ACTIVA", Checked)) End Sub Private Sub b_leyendaDescuento_Click End Sub Private Sub b_reimprimirTicket_Click End Sub Private Sub b_fix_Click ' Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_NOART = '25', PT_MONTO = '4625', PT_PAGO2 = 'Mifel', PT_TARJETA = 'Mifel' where PT_TICKET = '00014' and PT_MESA = '5'"$) ' Starter.skmt.ExecNonQuery($"update pedido_ticket set PT_PAGO2 = 'Mifel' where PT_PAGO2 is null "$) ' ToastMessageShow("LISTO", True) Log("B_FIX") reqManager.Initialize(Me, "http://keymon.lat:9000") Dim cmd As DBCommand cmd.Initialize cmd.Name = "traePedido_Lanter" cmd.Parameters = Array As Object("07/28/24") reqManager.ExecuteQuery(cmd , 0, "traePedido") cmd.Initialize cmd.Name = "traePedidoCliente_Lanter" cmd.Parameters = Array As Object("07/28/24") reqManager.ExecuteQuery(cmd , 0, "traePedidoCliente") End Sub ' Se revisa si hay una intención (intent) de abrir una base de datos y si es así, entonces se importa esa base de datos. Sub importaBDDesdeWhatsApp ' Private tmpBDWA As Boolean = traeUsarIntentBDWA habilitarImportarDesdeWA = True If Not(in.IsInitialized) Then in = Activity.GetStartingIntent ' Si se usa esta funcion en Mainpage, se pone "Me" en lugar de B4XPages.MainPage. If Not(intentUsado) And in <> Null Then ' Log(in) intentUsado = True ' Log(in.As(String)) If in.GetData <> Null Then If habilitarImportarDesdeWA Then Dim XmlData As String XmlData = in.GetData Try Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal,"kmt.db",False) Dim InStr As InputStream = File.OpenInput("ContentDir",XmlData) File.Copy2(InStr,OutStr) LogColor("BD copiada a interna.", Colors.Blue) OutStr.Close If in.As(String).Contains("whatsapp") Then ToastMessageShow("BD cargada desde Whatsapp", False) Catch Log(LastException) End Try Else ToastMessageShow("NO se cargo la BD, por favor habilitar la opción en la configuración.", False) End If End If End If End Sub Private Sub cb_importarDesdeWA_CheckedChange(Checked As Boolean) If Checked Then habilitarImportarDesdeWA = True End Sub Sub b_update_Click StartService(appUpdater) End Sub 'appUpdater - Mostramos el anuncio de que se esta descargando el nuevo apk Sub muestraProgreso(mensaje As String) ProgressDialogShow(mensaje) End Sub 'appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk Sub ocultaProgreso ProgressDialogHide End Sub Private Sub i_logo_LongClick 'ftp was previously initialized and its event name was set to ftp: ' ftp.Initialize("ftp", "access986911787.webspace-data.io", 22, "u114586321", "FTP&R3sp4ld0sK3ym0n") Private theFile As String = "kmt.db" DateTime.DateFormat = "yyyymmdd_HHmmss" ' Wait For (sf) FTP_UploadCompleted (ServerPath As String, Success As Boolean) ' If Success Then ' Log("file was uploaded successfully") ' Else ' Log("Error uploading file") ' End If End Sub Private Sub b_borraEfectivo_Click CallSubDelayed(Principal, "borrarEfectivo") ToastMessageShow("Efectivo borrado!!", False) End Sub