Commit inicial.

This commit is contained in:
2023-09-05 14:02:16 -06:00
parent a17c1def9b
commit 4e0a6b7fcd
422 changed files with 16267 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
**/Objects
**/AutoBackups
*.meta

595
B4A/B4XMainPage.bas Normal file
View File

@@ -0,0 +1,595 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=9.85
@EndOfDesignText@
#Region Shared Files
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
'###########################################################################################################
'###################### PULL #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=..\..\gitpull.bat
'###########################################################################################################
'###################### PUSH #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
'###########################################################################################################
#End Region
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Public login As B4XMainPage
Public principal As C_Principal
Public clientes As C_Clientes
Public cliente As C_Cliente
Public productos As C_Productos
Public updateAvailable As C_updateAvailable
Public mapas As C_Mapas
Public nuevoCliente As C_NuevoCliente
Public ticketsDia As C_TicketsDia
Public noVenta As C_NoVenta
Public nota As C_Nota
Public pedidos As C_Pedidos
Public promos As C_Promos
Public historico As C_Historico
Public checklist As C_CheckList
Dim reqManager As DBRequestManager
Dim ultimaActualizacionGPS As String = 235959
Dim almacen, ruta As String
Dim user As EditText
Dim pass As EditText
Dim c As Cursor
Dim D As Cursor
Dim existe As String
Dim paso1 As String
Dim IMEI As String
Dim alterno As String
Private b_menu As Button
' Dim PopupMenu As RSPopupMenu
Dim cmd As DBCommand
Private IMEN As EditText
Private Entrar As Button
Private Panel1 As Panel
Private ImageView4 As ImageView
Private E_SERVER As EditText
Private B_SERVER As Button
Private B_FECHA As Button
Private CUANTOS As String
Private foto_g () As Byte
Private ListView1 As ListView
Private ImageView1 As ImageView
Private Label1 As Label
Private B_BorrarFinDia As Button
Private b_fdCancelar As Button
Private b_findiaOk As Button
Private p_finDia As Panel
Private et_autSup As EditText
'prueba downloadfile
Dim ProgressBar1 As ProgressBar
Dim Label1 As Label
Dim btnDownload As Button
Dim btnCancel As Button
Private p_download As Panel
Private Label6 As Label
Dim logger As Boolean = True
End Sub
Public Sub Initialize
B4XPages.GetManager.LogEvents = True
#if not(DEBUG)
Starter.logger = False
#end if
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
If Not(Starter.Logger) Then logger = False
Root = Root1
' Root.LoadLayout("MainPage")
Root.LoadLayout("login")
B4XPages.SetTitle(Me, "Kelloggs Preventa")
login.Initialize
B4XPages.AddPage("Login", login)
principal.Initialize
B4XPages.AddPage("Principal", principal)
clientes.Initialize
B4XPages.AddPage("Clientes", clientes)
cliente.Initialize
B4XPages.AddPageAndCreate("Cliente", cliente)
productos.Initialize
B4XPages.AddPage("Productos", productos)
updateAvailable.Initialize
B4XPages.AddPage("updateAvailable", updateAvailable)
mapas.Initialize
B4XPages.AddPage("Mapas", mapas)
nuevoCliente.Initialize
B4XPages.AddPage("NuevoCliente", nuevoCliente)
ticketsDia.Initialize
B4XPages.AddPage("TicketsDia", ticketsDia)
noVenta.Initialize
B4XPages.AddPage("NoVenta", noVenta)
nota.Initialize
B4XPages.AddPage("Nota", nota)
pedidos.Initialize
B4XPages.AddPage("Pedidos", pedidos)
promos.Initialize
B4XPages.AddPage("Promos", promos)
historico.Initialize
B4XPages.AddPage("Historico", historico)
checklist.Initialize
B4XPages.AddPage("CheckList", checklist)
ruta = Starter.ruta
ruta = File.DirInternal
Starter.tiempos.Initialize
Dim sDate, sTime As String
DateTime.DateFormat = "yyyyMMdd"
sDate=DateTime.Date(DateTime.Now)
Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS PEDIDO3")
Starter.skmt.ExecNonQuery("CREATE TABLE PEDIDO3 (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS DESC_CLIENTES (DC_CL_CLIENTE TEXT, CAT_CL_DESCUENTO_SS TEXT, CAT_CL_DESCUENTO_RTEC TEXT, CAT_CL_DESCUENTO_PING TEXT, CAT_CL_TIPOCLIENTE TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_DESCUENTOS_SKU (CAT_DS_CLIENTE TEXT, CAT_DS_PRODID TEXT, CAT_DS_PORCENTAJE TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENVIOS (HE_FECHA TEXT, HE_CUANTOS TEXT, HE_TIPO TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FOTOS (HF_FOTO BLOB, HF_CUENTA TEXT, HF_IDENCUESTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_IMPRESO (CI_CUENTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_MONTO (CPM_IDPROMO TEXT, CPM_MONTO TEXT, CPM_PROID TEXT, CPM_CLIENTE TEXT, CPM_CANT TEXT, CPM_RANGO TEXT, CPM_DESC TEXT)")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_EXHIBIDORES2 (HIST_EX_ID_CLIENTE TEXT, HIST_EX_TIPO TEXT, HIST_EX_CANT TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PROMO_WHATS(HIST_CLIENTE TEXT, HIST_RESPUESTA_PROMO)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_CARGA_DIA (CCD_CUENTA TEXT)")
''' PARA LO DE DOE---
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD_DOE (CAT_GP_ID TEXT,CAT_GP_NOMBRE TEXT,CAT_GP_IMP1 TEXT,CAT_GP_IMP2 TEXT,CAT_GP_PRECIO TEXT,CAT_GP_CLASIF TEXT,CAT_GP_STS TEXT,CAT_GP_TIPO TEXT,CAT_GP_SUBTIPO TEXT,CAT_GP_IMG TEXT,CAT_GP_ALMACEN TEXT,CAT_GP_TIPOPROD TEXT,CAT_GP_INICIATIVA TEXT,CAT_GP_DEV TEXT,CAT_GP_CODPROMO TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDO_DOE (PE_PRECIO2 TEXT,PE_TIPO TEXT,PE_FOLIO NUMERIC,PE_DESC NUMERIC,PE_COSTO_SIN TEXT,PE_RUTA TEXT,PE_CEDIS TEXT,PE_COSTO_TOT NUMERIC,PE_COSTOU NUMERIC,PE_CANT NUMERIC,PE_PRONOMBRE TEXT,PE_PROID TEXT,PE_CLIENTE TEXT,PE_FECHA TEXT,PE_USUARIO TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PEDIDOS_DOE_ENTREGA (PC_CLIENTE TEXT, PC_ENTREGA TEXT)")
''' FIN DOE
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "IMPRESION" en la tabla
c=Starter.skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('kmt_info') WHERE name='IMPRESION'")
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
Starter.skmt.ExecNonQuery("ALTER TABLE kmt_info ADD COLUMN IMPRESION INTEGER")
Catch
Log(LastException)
End Try
End Try
If sDate = "20190523" Then
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.server))
End If
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", "MAIN"))
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",Starter.server))
Else
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
Starter.server = c.GetString("CAT_VA_VALOR")
reqManager.Initialize(Me, Starter.server)
End If
reqManager.Initialize(Me, Starter.server)
' Activity.LoadLayout("login")
Label1.Text = Application.VersionName
Log("Revisa permisos para external storage")
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then Log("Tenemos permisos de escritura externa.")
Log("TERMINA PERMISOS")
Log("Revisamos permisos para location")
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
StartService(Tracker)
If logger Then Log("Start Tracker")
Else
ToastMessageShow("Sin permisos para GPS", True)
End If
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_COARSE_LOCATION)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
StartService(Tracker)
If logger Then Log("Start Tracker")
Else
ToastMessageShow("Sin permisos para GPS", True)
End If
Log("TERMINA PERMISOS LOC")
If logger Then LogColor("Revisa permisos Phone_State", Colors.Green)
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
' Dim Phn As PhoneId
IMEN.Text = ""
IMEI = ""
If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue)
End If
Log("TERMINA PERMISOS Phone")
c=Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS FROM TMP_INSPECCION_AUTO_DIARIA")
c.Position = 0
CUANTOS = c.GetString("CUANTOS")
c.Close
If CUANTOS = 0 Then
Dim theDir As String
If File.IsDirectory("/","kmts") Then
theDir = "/kmts"
End If
Try
File.MakeDir(File.DirInternal,"kmts")
theDir = "/kmts"
LogColor(File.DirInternal, Colors.Red)
Catch
theDir = ""
End Try
Try
foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista1.png"))
Dim SALIDA As OutputStream
SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO1.jpg", False)
SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
SALIDA.Close
' If Logger Then LogColor("** ** Creamos FOTO1.jpg en "&File.DirInternal, Colors.Blue)
Catch
Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
End Try
Try
foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista3.png"))
Dim SALIDA As OutputStream
SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO2.jpg", False)
SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
SALIDA.Close
Catch
Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
End Try
Try
foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista2.png"))
Dim SALIDA As OutputStream
SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO3.jpg", False)
SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
SALIDA.Close
Catch
Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
End Try
Try
foto_g = Bit.InputStreamToBytes(File.OpenInput(File.DirAssets, "vista4.png"))
Dim SALIDA As OutputStream
SALIDA = File. OpenOutput (File.DirInternal&theDir, "FOTO4.jpg", False)
SALIDA.WriteBytes(foto_g, 0, foto_g.Length)
SALIDA.Close
Catch
Msgbox("No se puede crear el archivo de foto","Aviso") 'ignore
End Try
End If
' Dim ph As Phone 'Get Id Device
Dim DeviceID As String = Starter.ph.GetSettings("android_id").ToUpperCase
If logger Then Log($"Marca: ${Starter.ph.manufacturer}, Modelo: ${Starter.ph.model}"$)
If logger Then LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue)
'este codigo es para lo del menu
' PopupMenu.Initialize("PopupMenu", b_menu)
' PopupMenu.AddMenuItem(0, 0, "View")
' PopupMenu.AddMenuItem(1, 1, "Edit")
' PopupMenu.AddMenuItem(2, 2, "Details")
' PopupMenu.AddMenuItem(3, 3, "Remove")
' menu fin
Subs.borraArribaDe100Errores
End Sub
Sub B4XPage_Appear
' server = "http://keymon.com.mx:1782"
' server = "http://201.99.139.28:1782"
' server = "http://177.244.63.54:1782"
reqManager.Initialize(Me, Starter.server)
Starter.montoActual = 0
Starter.clientesTotal = 0
Starter.clientesVenta = 0
Starter.clientesVisitados = 0
almacen = 0
Starter.rutaPreventa = 0
Starter.CANTIDADPROD = 0
c.Close
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
c.Position =0
CUANTOS = c.GetString("CUANTOS")
c.Close
If CUANTOS > 0 Then
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("CODIGO"))
c.Position =0
If c.GetString("CAT_VA_VALOR") = "743" Then
Entrar.Visible = True
End If
c.Close
Else
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CODIGO","743"))
End If
c=Starter.skmt.ExecQuery2("select COUNT(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP","0"))
End If
D=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version")
D.Position=0
If D.GetString("CUANTOS") > 0 Then
c=Starter.skmt.ExecQuery("select NOVERSION from version")
c.Position = 0
If c.GetString("NOVERSION") = "2.1" Then
Starter.skmt.ExecNonQuery("delete from VERSION")
End If
c.Close
End If
D.Close
D=Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from version")
D.Position=0
If D.GetString("CUANTOS") > 0 Then
c=Starter.skmt.ExecQuery("select NOVERSION from version")
c.Position = 0
If c.GetString("NOVERSION") <> "2.95" Then
Msgbox("INSTALAR NUEVO APK" ,"AVISO") 'ignore
B4XPage_Appear
End If
c.Close
End If
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Entrar_Click
If user.Text = "ALTERNO" Then
c=Starter.skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
c.Position =0
Starter.server = c.GetString("CAT_CO_CONFIGURACION")
alterno = c.GetString("CAT_CO_RESULTADO")
c.Close
If alterno = 1 Then
Starter.skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER"))
Starter.skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER"))
Else if alterno = 2 Then
Starter.skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 1 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 1", Array As String ("SERVER"))
Starter.skmt.ExecNonQuery2("UPDATE CAT_CODIGOS SET CAT_CO_PONDERACION = 0 WHERE CAT_CO_ACCION = ? AND CAT_CO_RESULTADO = 2", Array As String ("SERVER"))
End If
c=Starter.skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER"))
c.Position =0
Starter.server = c.GetString("CAT_CO_CONFIGURACION")
user.Text = Starter.server
c.Close
reqManager.Initialize(Me, Starter.server)
else if user.Text = "KMTSKLL1" Then
Starter.skmt.ExecNonQuery("delete from usuarioa")
Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text))
Starter.skmt.ExecNonQuery("delete from cat_almacen")
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (pass.Text))
Starter.skmt.ExecNonQuery("delete from VERSION")
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95"))
B4XPages.ShowPage("Principal")
End If
c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text))
c.Position=0
existe = c.GetString("EXISTE1")
'existe = 1
If existe = 0 Then
'skmt.ExecNonQuery("delete from usuarioa")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_usuario_guna_KELL"
cmd.Parameters = Array As Object(user.Text, pass.Text)
reqManager.ExecuteQuery(cmd , 0, "usuario")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_version_KELL"
reqManager.ExecuteQuery(cmd , 0, "version")
Else
B4XPages.ShowPage("Principal")
End If
End Sub
Sub JobDone(Job As HttpJob)
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
If logger Then 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 = "version" Then 'query tag
For Each records() As Object In result.Rows
Starter.skmt.ExecNonQuery("delete from VERSION")
Dim CAT_VE_VERSION As String = records(result.Columns.Get("CAT_VE_VERSION"))
Starter.skmt.ExecNonQuery("delete from VERSION")
Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "agencia" Then 'query tag
For Each records() As Object In result.Rows
Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN"))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "fecha" Then 'query tag
For Each records() As Object In result.Rows
Starter.FECHA_HOY = records(result.Columns.Get("FECHA"))
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA", Starter.FECHA_HOY))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "usuario" Then 'query tag
For Each records() As Object In result.Rows
Dim name As String = records(result.Columns.Get("USUARIO"))
Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA"))
If logger Then Log(name)
' Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO"))
Next
paso1 = 1
End If
End If
Job.Release
End If
If paso1 =1 Then
If name = "OKActivo" Then
Starter.skmt.ExecNonQuery("delete from usuarioa")
Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text))
Starter.skmt.ExecNonQuery("delete from cat_almacen")
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN))
almacen = ID_ALMACEN
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
B4XPages.ShowPage("Principal")
Else If name = "OKExpirado" Then
Msgbox("Usuario Expirado llamar al administrador","") 'ignore
Else If name = "OKCancelado" Then
Msgbox("Usuario Cancelado llamar al administrador","") 'ignore
Else
Msgbox("Usuario o password No validos","") 'ignore
End If
paso1 = 0
End If
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
'Return True to close, False to cancel
Log("BACK")
If Panel1.Visible Then
Panel1.Visible = False
Entrar.Visible = True
Return True
Else
If logger Then Log("Saliendo")
B4XPages.ClosePage(Me)
Subs.cierraActividades
Return True
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
If user.text = "GPS" Then
user.Text=Location1.Latitude
pass.text=Location1.Longitude
End If
End Sub
Sub PopupMenu_Dismiss
ToastMessageShow("PopupMenu dismissed", False)
End Sub
Sub PopupMenu_MenuItemClick (ItemId As Int) As Boolean
ToastMessageShow("Item " & ItemId & " clicked.", False)
Return False
End Sub
Sub b_menu_Click
' PopupMenu.Show
End Sub
Sub IMEN_EnterPressed
End Sub
Sub user_EnterPressed
If user.Text = "CODIGO" Then
IMEN.Visible = True
user.Text = ""
End If
End Sub
Sub ImageView4_Click
Entrar.Visible = False
' Starter.server = "http://201.99.139.28:1782"
' Starter.server = "http://177.244.63.54:1782"
' Starter.server = "http://keymon.com.mx:1782"
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:1782")
ListView1.AddSingleLine("http://keymon.lat:1782")
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
c.Position =0
E_SERVER.text = c.GetString("CAT_VA_VALOR")
Panel1.Visible = True
Panel1.Width = Root.Width * 0.95
Panel1.Left = (Root.Width/2) - (Panel1.Width/2)
Panel1.Top = (Root.Height/2) - (Panel1.Height/2)
Panel1.Elevation = 100
Panel1.BringToFront
End Sub
Private Sub ImageView4_LongClick
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
Subs.copiaDB(True)
End Sub
Sub B_SERVER_Click
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",E_SERVER.text))
Starter.server = E_SERVER.text
If logger Then Log("Inicializamos reqManager con " & Starter.server)
reqManager.Initialize(Me, Starter.server)
CallSubDelayed(Starter, "reinicializaReqManager")
Panel1.Visible = False
Entrar.Visible = True
End Sub
Sub B_FECHA_Click
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","0"))
Panel1.Visible = False
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
E_SERVER.text = Value
End Sub
Sub ImageView1_Click
End Sub
Sub B_BorrarFinDia_Click
p_finDia.Visible = True
p_finDia.BringToFront
End Sub
Sub b_fdCancelar_Click
p_finDia.Visible = False
p_finDia.SendToBack
End Sub
Sub b_findiaOk_Click
c=Starter.skmt.ExecQuery2("select count(*) as passOk from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ? and CAT_VA_VALOR = ?", Array As String ("FINDIA_PASS", et_autSup.Text))
c.Position =0
If c.GetString("passOk") = 1 Or et_autSup.Text = "FinDiaAutOk" Then
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'")
ToastMessageShow("Ya se puede hacer FIN DIA!!", True)
p_finDia.Visible = False
p_finDia.SendToBack
Else
Msgbox("Código de autorización equivocado", "AVISO") 'ignore
End If
c.Close
End Sub

710
B4A/C_Calculadora.bas Normal file
View File

@@ -0,0 +1,710 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'--***---- BOLETA DE LIQUIDACION
Private P_BOLETA As Panel
'------ BILLETES
Private LBL_TMIL As Label
Private LBL_TQUIN As Label
Private LBL_TDOS As Label
Private LBL_TCIEN As Label
Private LBL_TCIN As Label
Private LBL_TVEIN As Label
Private LBL_MIL As Label
Private LBL_QUIN As Label
Private LBL_DOSC As Label
Private LBL_CIEN As Label
Private LBL_CINCUEN As Label
Private LBL_VEINTE As Label
Private EDT_CANVEIN As EditText
Private EDT_CANCIN As EditText
Private EDT_CANCIEN As EditText
Private EDT_CANDOS As EditText
Private EDT_CANQUIN As EditText
Private EDT_CANMIL As EditText
Private Btn_TOTALBILLETE As Button
Private Pnl_Billete As Panel
Private Pnl_Moneda As Panel
Private L_CALCULA_BILLE As Label
'------ BOTONES MAS Y MENOS
Private B_MENMIL As Button
Private B_SUMIL As Button
Private B_MENQUI As Button
Private B_SUQUI As Button
Private B_MENDOS As Button
Private B_SUDOS As Button
Private B_MENCIE As Button
Private B_SUCIEN As Button
Private B_MENCIN As Button
Private B_SUCIN As Button
Private B_MENVEI As Button
Private B_SUVEI As Button
'------ MONEDAS
Private L_DIEZ As Label
Private L_CINCO As Label
Private L_DOS As Label
Private L_UNO As Label
Private L_CENTAVO As Label
Private LBL_TDIEZ As Label
Private LBL_TCI As Label
Private LBL_TDO As Label
Private LBL_TUN As Label
Private LBL_TCEN As Label
Private EDT_CANCEN As EditText
Private EDT_CANUN As EditText
Private EDT_CANDO As EditText
Private EDT_CANCI As EditText
Private EDT_CANDIEZ As EditText
Private L_CALCULA_MONEDA As Label
Private B_TOTALMONEDA As Button
'------ BOTONES MAS Y MENOS
Private B_MENCENT As Button
Private B_MENUN As Button
Private B_MENDO As Button
Private B_MENCI As Button
Private B_MENDIEZ As Button
Private B_SUMDIEZ As Button
Private B_SUMCIN As Button
Private B_SUMDO As Button
Private B_SUMUN As Button
Private B_SUMCENT As Button
'------ SUMA TOTALES
Private B_AGREGAMONE As Button
Private B_AGREGABILL As Button
Private TOTALES As Label
Private B_SUM_TOTAL As Button
Private TOTALBILLETES As Button
Private TOTALMONEDA As Button
Private PNL_TOTALES As Panel
Private LBL_RETURN As Label
Private IMG_IMPRESORA As Label
Private LBL_REGRESA As Label
'--***---- FIN BOLETA
' Private P_INF_GENERAL As Panel
Private B_Regresar As Button
' Private ABORDO As String
Private a_inicial As String
Private a_total As String
Private a_venta As String
Private a_final As String
Private a_VENTA_F As String
Private a_inicial_5 As String
Private L_INVA As ListView
Private B_IMP_INV As Button
Private B_CERRAR_I As Button
Private Panel_INV_A As Panel
Private LBL_TVEINTE As Label
Private B_SUMVEINTE As Button
Private EDT_CANVEINTE As EditText
Private B_MENVEINTE As Button
Private L_VEINTE As Label
Dim RutaBoleta As String
Dim Id_Almacen As String
Dim cursorBoleta As Cursor
Private Bt_GuardarBoleta As Button
Private CUANTOS1 As String
Private Panel9 As Panel
Private t_tenc As Label
Private E_RES_E As EditText
Private B_E_NEXT As Button
Private Label26 As Label
Private l_chk_e As Label
Private Chk_1 As CheckBox
Private chk_2 As CheckBox
Private chk_3 As CheckBox
Private b_chk_e As Button
Private Panel10 As Panel
Private chk_1_valor As String
Private chk_2_valor As String
Private chk_3_valor As String
Private p_encuesta As Panel
Private b_encuesta_1 As Button
Private b_encuesta_2 As Button
Private b_encuesta_3 As Button
Private l_titEncuesta As Label
Private l_txtEncuesta As Label
Private encuestaRes As String
Private botonPresionado As Int
Private B_IMP2 As Button
Dim impresoraConectada As Boolean = False
Private l_categoria2 As Label
Private l_exhibidor2 As Label
Private p_exhibidores As Panel
Private Button1 As Button
Private b_exhibidor As Button
Private l_exhibidores3 As Label
Private l_segmento2 As Label
Private et_encuesta As EditText
Private b_encuesta_continuar As Button
Dim muestraBoleta As Boolean = False
Private Panel4 As Panel
Private Edt_FH As EditText
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("calculadora")
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub LLAMA_BOLETA
'' FECHA DE TELEFONO
DateTime.DateFormat="dd/MM/yyyy"
Edt_FH.Text=DateTime.Date(DateTime.Now)
Subs.panelAnchoAlto(PNL_TOTALES, Root.Width, Root.Height)
PNL_TOTALES.Visible=True
Pnl_Billete.Visible=True
Pnl_Moneda.visible=True
LBL_RETURN.Visible=False
LBL_REGRESA.Visible=False
P_BOLETA.Visible=True
' P_INF_GENERAL.Visible=False
LBL_REGRESA.Visible=True
Private c As Cursor = Starter.skmt.ExecQuery("select * from TMP_CAT_BILLETE join TMP_CAT_MONEDAS")
If c.RowCount > 0 Then
c.Position = 0
Log("==================== CALCULADORA "&c.ColumnCount)
' Traemos billetes
EDT_CANMIL.Text = "0"
If IsNumber(c.GetString("TMP_BILLE_MIL")) Then EDT_CANMIL.Text = c.GetString("TMP_BILLE_MIL")
EDT_CANQUIN.Text = "0"
If c.GetString("TMP_BILLE_QUINIENTOS")<> Null Then EDT_CANQUIN.Text = c.GetString("TMP_BILLE_QUINIENTOS")
EDT_CANDOS.Text = "0"
If c.GetString("TMP_BILLE_DOSCIENTOS") <>Null Then EDT_CANDOS.Text = c.GetString("TMP_BILLE_DOSCIENTOS")
EDT_CANCIEN.Text = "0"
If c.GetString("TMP_BILLE_CIEN")<> Null Then EDT_CANCIEN.Text = c.GetString("TMP_BILLE_CIEN")
EDT_CANCIN.Text = "0"
If c.GetString("TMP_BILLE_CINCUENTA")<> Null Then EDT_CANCIN.Text = c.GetString("TMP_BILLE_CINCUENTA")
EDT_CANVEIN.Text = "0"
If c.GetString("TMP_BILLE_VEINTE")<> Null Then EDT_CANVEIN.Text = c.GetString("TMP_BILLE_VEINTE")
' Traemos monedas
EDT_CANVEINTE.Text = "0"
If c.GetString("TMP_MON_VEINTE")<> Null Then EDT_CANVEINTE.Text = c.GetString("TMP_MON_VEINTE")
EDT_CANDIEZ.Text = "0"
If c.GetString("TMP_MON_DIEZ")<> Null Then EDT_CANDIEZ.Text = c.GetString("TMP_MON_DIEZ")
EDT_CANCI.Text = "0"
If c.GetString("TMP_MON_CINCO")<> Null Then EDT_CANCI.Text = c.GetString("TMP_MON_CINCO")
EDT_CANDO.Text = "0"
If c.GetString("TMP_MON_DOS")<> Null Then EDT_CANDO.Text = c.GetString("TMP_MON_DOS")
EDT_CANUN.Text = "0"
If c.GetString("TMP_MON_UN")<> Null Then EDT_CANUN.Text = c.GetString("TMP_MON_UN")
EDT_CANCEN.Text = "0"
If c.GetString("TMP_MON_CENTAVOS")<> Null Then EDT_CANCEN.Text = c.GetString("TMP_MON_CENTAVOS")
L_CALCULA_BILLE_CLICK
L_CALCULA_MONEDA_Click
B_SUM_TOTAL.Text = TOTALBILLETES.Text + TOTALMONEDA.text
End If
Starter.boleta = 0
muestraBoleta = False
c.Close
End Sub
'''BILLETES
Sub L_CALCULA_BILLE_CLICK
If EDT_CANMIL.Text="" Or EDT_CANQUIN.Text="" Or EDT_CANDOS.Text="" Or EDT_CANCIEN.Text="" Or EDT_CANCIN.Text="" Or EDT_CANVEIN.Text="" Then
Pnl_Billete.RequestFocus
Msgbox("Por favor llena todas las cantidades","") 'ignore
Else
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'20
Private Sub EDT_CANVEIN_FocusChanged (HasFocus As Boolean)
If EDT_CANVEIN.Text = "" Then EDT_CANVEIN.Text = "0"
EDT_CANVEIN.Text = Round (EDT_CANVEIN.Text)
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUVEI_Click
If EDT_CANVEIN.Text = "" Then
EDT_CANVEIN.Text=0
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Else
EDT_CANVEIN.Text = Round (EDT_CANVEIN.Text + 1)
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENVEI_Click
If EDT_CANVEIN.Text = "" Then
EDT_CANVEIN.Text=0
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Else IF EDT_CANVEIN.Text > 0 Then
EDT_CANVEIN.Text = Round(EDT_CANVEIN.Text -1)
LBL_TVEIN.Text=LBL_VEINTE.Tag * EDT_CANVEIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'50
Private Sub EDT_CANCIN_FocusChanged (HasFocus As Boolean)
If EDT_CANCIN.Text = "" Then EDT_CANCIN.Text = "0"
EDT_CANCIN.Text = Round (EDT_CANCIN.Text)
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUCIN_Click
If EDT_CANCIN.Text = "" Then
EDT_CANCIN.Text =0
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
Else
EDT_CANCIN.Text = Round (EDT_CANCIN.Text + 1)
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENCIN_Click
If EDT_CANCIN.Text = "" Then
EDT_CANCIN.Text =0
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
Else IF EDT_CANCIN.Text > 0 Then
EDT_CANCIN.Text = Round(EDT_CANCIN.Text -1)
LBL_TCIN.Text=LBL_CINCUEN.Tag * EDT_CANCIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'100
Private Sub EDT_CANCIEN_FocusChanged (HasFocus As Boolean)
If EDT_CANCIEN.Text = "" Then EDT_CANCIEN.Text = "0"
EDT_CANCIEN.Text = Round (EDT_CANCIEN.Text)
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUCIEN_Click
If EDT_CANCIEN.Text = "" Then
EDT_CANCIEN.Text = 0
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
Else
EDT_CANCIEN.Text = Round (EDT_CANCIEN.Text + 1)
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENCIE_Click
If EDT_CANCIEN.Text = "" Then
EDT_CANCIEN.Text = 0
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
Else IF EDT_CANCIEN.Text > 0 Then
EDT_CANCIEN.Text = Round(EDT_CANCIEN.Text -1)
LBL_TCIEN.Text=LBL_CIEN.Tag * EDT_CANCIEN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'200
Private Sub EDT_CANDOS_FocusChanged (HasFocus As Boolean)
If EDT_CANDOS.Text = "" Then EDT_CANDOS.Text = "0"
EDT_CANDOS.Text = Round (EDT_CANDOS.Text)
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUDOS_Click
If EDT_CANDOS.Text = "" Then
EDT_CANDOS.Text = 0
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
Else
EDT_CANDOS.Text = Round (EDT_CANDOS.Text + 1)
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENDOS_Click
If EDT_CANDOS.Text = "" Then
EDT_CANDOS.Text = 0
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
Else IF EDT_CANDOS.Text > 0 Then
EDT_CANDOS.Text = Round(EDT_CANDOS.Text -1)
LBL_TDOS.Text=LBL_DOSC.Tag * EDT_CANDOS.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'500
Private Sub EDT_CANQUIN_FocusChanged (HasFocus As Boolean)
If EDT_CANQUIN.Text = "" Then EDT_CANQUIN.Text = "0"
EDT_CANQUIN.Text = Round (EDT_CANQUIN.Text)
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUQUI_Click
If EDT_CANQUIN.Text = "" Then
EDT_CANQUIN.Text =0
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
Else
EDT_CANQUIN.Text = Round (EDT_CANQUIN.Text + 1)
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENQUI_Click
If EDT_CANQUIN.Text = "" Then
EDT_CANQUIN.Text =0
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
Else IF EDT_CANQUIN.Text > 0 Then
EDT_CANQUIN.Text = Round(EDT_CANQUIN.Text -1)
LBL_TQUIN.Text=LBL_QUIN.Tag * EDT_CANQUIN.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'1000
Private Sub EDT_CANMIL_FocusChanged (HasFocus As Boolean)
If EDT_CANMIL.Text = "" Then EDT_CANMIL.Text = "0"
EDT_CANMIL.Text = Round (EDT_CANMIL.Text )
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End Sub
Sub B_SUMIL_Click
If EDT_CANMIL.Text = "" Then
EDT_CANMIL.Text = 0
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
Else
EDT_CANMIL.Text = Round (EDT_CANMIL.Text + 1)
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
Sub B_MENMIL_Click
If EDT_CANMIL.Text = "" Then
EDT_CANMIL.Text = 1
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
Else IF EDT_CANMIL.Text > 0 Then
EDT_CANMIL.Text = Round(EDT_CANMIL.Text -1)
LBL_TMIL.Text= LBL_MIL.Tag * EDT_CANMIL.Text
Btn_TOTALBILLETE.Text= ( LBL_TMIL.Text + LBL_TQUIN.Text + LBL_TDOS.Text + LBL_TCIEN.Text + LBL_TCIN.Text + LBL_TVEIN.Text)
TOTALBILLETES.Text=Btn_TOTALBILLETE.Text
End If
End Sub
'''' MONEDAS
Sub L_CALCULA_MONEDA_Click
If EDT_CANDIEZ.Text="" Or EDT_CANCI.Text="" Or EDT_CANDO.Text="" Or EDT_CANUN.Text="" Or EDT_CANCEN.Text="" Or EDT_CANVEINTE.Text="" Then
Msgbox("Por favor llena todas las cantidades","") 'ignore
Pnl_Billete.RequestFocus
Else
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
LBL_TVEINTE.Text=L_VEINTE.Tag * EDT_CANVEINTE.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'0.50
Private Sub EDT_CANCEN_FocusChanged (HasFocus As Boolean)
If EDT_CANCEN.Text = "" Then EDT_CANCEN.Text = "0"
EDT_CANCEN.Text = Round (EDT_CANCEN.Text)
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_SUMCENT_Click
If EDT_CANCEN.Text = "" Then
EDT_CANCEN.Text = 0
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
Else
EDT_CANCEN.Text = Round (EDT_CANCEN.Text + 1)
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_MENCENT_Click
If EDT_CANCEN.Text = "" Then
EDT_CANCEN.Text =0
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
Else IF EDT_CANCEN.Text > 0 Then
EDT_CANCEN.Text = Round(EDT_CANCEN.Text -1)
LBL_TCEN.Text=L_CENTAVO.Tag * EDT_CANCEN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'1
Private Sub EDT_CANUN_FocusChanged (HasFocus As Boolean)
If EDT_CANUN.Text = "" Then EDT_CANUN.Text = "0"
EDT_CANUN.Text = Round (EDT_CANUN.Text)
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_SUMUN_Click
If EDT_CANUN.Text = "" Then
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
Else
EDT_CANUN.Text = Round (EDT_CANUN.Text + 1)
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_MENUN_Click
If EDT_CANUN.Text = "" Then
EDT_CANUN.Text = 0
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
Else IF EDT_CANUN.Text > 0 Then
EDT_CANUN.Text = Round(EDT_CANUN.Text -1)
LBL_TUN.Text=L_UNO.Tag * EDT_CANUN.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'2
Private Sub EDT_CANDO_FocusChanged (HasFocus As Boolean)
If EDT_CANDO.Text = "" Then EDT_CANDO.Text = "0"
EDT_CANDO.Text = Round (EDT_CANDO.Text)
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_SUMDO_Click
If EDT_CANDO.Text = "" Then
EDT_CANDO.Text =0
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
Else
EDT_CANDO.Text = Round (EDT_CANDO.Text + 1)
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_MENDO_Click
If EDT_CANDO.Text = "" Then
EDT_CANDO.Text=0
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
Else IF EDT_CANDO.Text > 0 Then
EDT_CANDO.Text = Round(EDT_CANDO.Text -1)
LBL_TDO.Text=L_DOS.Tag * EDT_CANDO.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'5
Private Sub EDT_CANCI_FocusChanged (HasFocus As Boolean)
If EDT_CANCI.Text = "" Then EDT_CANCI.Text = "0"
EDT_CANCI.Text = Round (EDT_CANCI.Text)
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_SUMCIN_Click
If EDT_CANCI.Text = "" Then
EDT_CANCI.Text =0
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
Else
EDT_CANCI.Text = Round (EDT_CANCI.Text + 1)
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_MENCI_Click
If EDT_CANCI.Text = "" Then
EDT_CANCI.Text =0
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
Else IF EDT_CANCI.Text > 0 Then
EDT_CANCI.Text = Round(EDT_CANCI.Text -1)
LBL_TCI.Text= L_CINCO.Tag * EDT_CANCI.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'10
Private Sub EDT_CANDIEZ_FocusChanged (HasFocus As Boolean)
If EDT_CANDIEZ.Text = "" Then EDT_CANDIEZ.Text = "0"
EDT_CANDIEZ.Text = Round (EDT_CANDIEZ.Text)
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_SUMDIEZ_Click
If EDT_CANDIEZ.Text = "" Then
EDT_CANDIEZ.Text =0
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
Else
EDT_CANDIEZ.Text = Round (EDT_CANDIEZ.Text + 1)
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_MENDIEZ_Click
If EDT_CANDIEZ.Text = "" Then
EDT_CANDIEZ.Text = 0
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
Else IF EDT_CANDIEZ.Text > 0 Then
EDT_CANDIEZ.Text = Round(EDT_CANDIEZ.Text -1)
LBL_TDIEZ.Text= L_DIEZ.Tag * EDT_CANDIEZ.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
'20
Private Sub EDT_CANVEINTE_FocusChanged (HasFocus As Boolean)
If EDT_CANVEINTE.Text = "" Then EDT_CANVEINTE.Text = "0"
EDT_CANVEINTE.Text = Round(EDT_CANVEINTE.Text)
LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End Sub
Sub B_MENVEINTE_Click
If EDT_CANVEINTE.Text = "" Then
EDT_CANVEINTE.Text = 0
LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
Else IF EDT_CANVEINTE.Text > 0 Then
EDT_CANVEINTE.Text = Round(EDT_CANVEINTE.Text -1)
LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text )
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
Sub B_SUMVEINTE_Click
If EDT_CANVEINTE.Text = "" Then
EDT_CANVEINTE.Text =0
LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
Else
EDT_CANVEINTE.Text = Round (EDT_CANVEINTE.Text + 1)
LBL_TVEINTE.Text= L_VEINTE.Tag * EDT_CANVEINTE.Text
B_TOTALMONEDA.Text=( LBL_TDIEZ.Text + LBL_TCI.Text + LBL_TDO.Text + LBL_TUN.Text + LBL_TCEN.Text + LBL_TVEINTE.Text)
TOTALMONEDA.Text=B_TOTALMONEDA.Text
End If
End Sub
''''''TOTALES
Sub TOTALES_Click
If TOTALMONEDA.Text="" Or TOTALBILLETES.Text="" Then
TOTALMONEDA.Text=0
TOTALBILLETES.Text=0
B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
Else
B_SUM_TOTAL.Text= "$"&(TOTALMONEDA.Text + TOTALBILLETES.Text)
End If
End Sub
Sub B_AGREGABILL_Click
Pnl_Billete.Visible=True
Pnl_Moneda.Visible=False
PNL_TOTALES.Visible=False
LBL_RETURN.Visible=True
LBL_REGRESA.Visible=True
End Sub
Sub B_AGREGAMONE_Click
Pnl_Billete.Visible=False
Pnl_Moneda.Visible=True
PNL_TOTALES.Visible=False
LBL_RETURN.Visible=True
LBL_REGRESA.Visible=True
End Sub
Sub LBL_RETURN_Click
Pnl_Billete.Visible=False
Pnl_Moneda.Visible=False
PNL_TOTALES.Visible=True
LBL_RETURN.Visible=False
LBL_REGRESA.Visible=False
''' CALCULO FINAL
If TOTALMONEDA.Text="" Or TOTALBILLETES.Text="" Then
TOTALMONEDA.Text=0
TOTALBILLETES.Text=0
B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
Else
B_SUM_TOTAL.Text="$"& (TOTALMONEDA.Text + TOTALBILLETES.Text)
End If
End Sub
Sub LBL_REGRESA_Click
Pnl_Billete.Visible=False
Pnl_Moneda.Visible=False
LBL_RETURN.Visible=False
LBL_REGRESA.Visible=False
PNL_TOTALES.Visible=True
LBL_REGRESA.Visible=True
End Sub
Sub B_Regresar_Click
' StartActivity("SELECCION")
Subs.iniciaActividad("principal")
' B4XPages.ShowPage("Principal")
' Activity.Finish
PNL_TOTALES.Visible=False
Pnl_Billete.Visible=False
Pnl_Moneda.visible=False
PNL_TOTALES.Visible=False
LBL_RETURN.Visible=False
LBL_REGRESA.Visible=False
P_BOLETA.Visible=False
' P_INF_GENERAL.Visible=True
LBL_REGRESA.Visible=False
End Sub

939
B4A/C_CheckList.bas Normal file
View File

@@ -0,0 +1,939 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim reqManager As DBRequestManager
Dim ruta As String
Dim c As Cursor
Dim C2 As Cursor
Private frontCamera As Boolean = False
Dim OK_CheckList As Int
'//Globals
Dim IME As IME
Private Edt_FH As EditText
Private Sp_MENU As Spinner
Dim LISTMENU As List
Private LB_CATEGORIA As Label
Private SCROLLPRINC As ScrollView
Private Pnl_CABINA As Panel
Dim sDate,sTime As String
''''''''' PANELS CHECKS
Private camEx As CameraExClass
Private Rb_4_4 As RadioButton
Private Rb_3_4 As RadioButton
Private Rb_2_4 As RadioButton
Private Rb_1_4 As RadioButton
Private Lb_4 As Label
Private Lb_3 As Label
Private Lb_2 As Label
Private Lb_1 As Label
Private Et_KilometrajeIni As EditText
Private Cbox_Claxon As CheckBox
Private Cbox_Parabrisas As CheckBox
Private Cbox_Cinturon As CheckBox
Private Cbox_Espejos As CheckBox
Private Cbox_Licencia As CheckBox
Private Pnl_CabinaInfo As Panel
Private Pnl_MotorEncen As Panel
Private Pnl_Inspec As Panel
Private Pnl_CofreAbierto As Panel
Private Pnl_Carga As Panel
Private SP_MENUC As SD_Spinner
Private Im_1 As ImageView
Private Im2 As ImageView
Private Im3 As ImageView
Private Im4 As ImageView
Private Bt_Foto1 As Button
Private Bt_Foto2 As Button
Private Bt_Foto3 As Button
Private Bt_Foto4 As Button
Private Bt_GuardarCheck As Button
Private N_Ruta As String
Private Id_Almacen As String
Private Combustible As String
Private PLACAS As String
'' PANEL 2
Private Ch_OBJETOSINE As CheckBox
Private CH_OBJMPERV As CheckBox
Private Ch_ORHERRA As CheckBox
Private Ch_LIMPIO As CheckBox
Private Ch_UNILIMPIA As CheckBox
Private Ch_BASURA As CheckBox
Private Ch_RESPON As CheckBox
Private Ch_AUDITORIA As CheckBox
Private Ch_HABITUAL As CheckBox
'' PANEL 3
Private Ch_HERRAMIENTAS As CheckBox
Private Ch_CONOS As CheckBox
Private Ch_EDOCARROCE As CheckBox
Private Ch_FUN_LUCES As CheckBox
Private Ch_PLACAS_CIRCU As CheckBox
Private Ch_COND_LLANTAS As CheckBox
'' PANEL 4
Private Ch_ACEITEMOTOR As CheckBox
Private Ch_ACEITEDIREC As CheckBox
Private Ch_NVL_REFRIGE As CheckBox
Private Ch_NVL_LIQUIDBRI As CheckBox
Private Ch_COND_BANMOTOR As CheckBox
''''' PANEL5
Private Ch_FUGASGRAL As CheckBox
Private Ch_FRENOS As CheckBox
Private Edt_COMENTARIO As AutoCompleteEditText
Private Pnl_Fotos As Panel
Private btnTakePicture As Button
Private b_guardar As Button
Private Pnl_foto As Panel
Dim camera1 As Camera
Private TOMO_FOTO1 As String
Private TOMO_FOTO2 As String
Private TOMO_FOTO3 As String
Private TOMO_FOTO4 As String
Private LBL_REGRESA As Label
Private Label5 As Label
Dim out As OutputStream
Private CUANTOS As String
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("checklist")
SCROLLPRINC.Panel.LoadLayout("checks")
SCROLLPRINC.Panel.Height = Pnl_MotorEncen.Height
IME.Initialize("IME")
IME.AddHeightChangedEvent
OK_CheckList=0
Pnl_CabinaInfo.Visible=True
btnTakePicture.Enabled = True
camera1.Initialize(Pnl_foto, "Camera1")
LISTMENU.IsInitialized
LISTMENU.Initialize
LISTMENU.AddAll(Array As String ("Cabina con switch encendido", "Cabina y espacio de carga", "Inspección General Exterior", "Cofre abierto, motor apagado","Con motor encendido"))
SP_MENUC.AddAll(LISTMENU,"CheckList",Colors.White,Colors.Blue,Gravity.CENTER)
DateTime.DateFormat="dd/MM/yyyy"
Edt_FH.Text=DateTime.Date(DateTime.Now)
ruta = File.DirInternal
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Camera1_Ready (Success As Boolean)
Log("Camara lista")
If Success Then
camera1.StartPreview
camera1.Initialize(Pnl_foto, "Camera1")
btnTakePicture.Enabled = True
Else
ToastMessageShow("No se puede abrir la camara.", True)
End If
End Sub
Sub B4XPage_Appear
reqManager.Initialize(Me, Starter.server)
' If Subs.traeUltimaActividadBD <> "CHECKLIST_AUTO" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD)
c=Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS FROM TMP_INSPECCION_AUTO_DIARIA")
c.Position = 0
CUANTOS = c.GetString("CUANTOS")
c.Close
If CUANTOS > 0 Then
If Et_KilometrajeIni.Text = "" Then
c=Starter.skmt.ExecQuery("select * from tmp_inspeccion_auto_diaria")
If c.RowCount > 0 Then
c.Position = 0
If c.GetString("TMP_AUTO_COMBUSTIBLE") = "4/4" Then Rb_4_4.Checked = True
If c.GetString("TMP_AUTO_COMBUSTIBLE") = "3/4" Then Rb_3_4.Checked = True
If c.GetString("TMP_AUTO_COMBUSTIBLE") = "2/4" Then Rb_2_4.Checked = True
If c.GetString("TMP_AUTO_COMBUSTIBLE") = "1/4" Then Rb_1_4.Checked = True
If c.GetString("TMP_AUTO_KILOMETRAJE") <> "" Then Et_KilometrajeIni.text = c.GetString("TMP_AUTO_KILOMETRAJE")
If c.GetString("TMP_AUTO_CLAXON ") = "1" Then Cbox_Claxon.Checked = True
If c.GetString("TMP_AUTO_PARABRISAS ") = "1" Then Cbox_Parabrisas.Checked = True
If c.GetString("TMP_AUTO_CINTURON ") = "1" Then Cbox_Cinturon.Checked = True
If c.GetString("TMP_AUTO_ESPEJOS ") = "1" Then Cbox_Espejos.Checked = True
If c.GetString("TMP_AUTO_LICENCIA ") = "1" Then Cbox_Licencia.Checked = True
If c.GetString("TMP_AUTO_LIB_OBJETOSINE ") = "1" Then Ch_OBJETOSINE.Checked = True
If c.GetString("TMP_AUTO_LIB_OBJETOTMPERVI ") = 1 Then CH_OBJMPERV.Checked = True
If c.GetString("TMP_AUTO_ORDEN_HERRA ") = "1" Then Ch_ORHERRA.Checked = True
If c.GetString("TMP_AUTO_UNILIMPIA ") = "1" Then Ch_UNILIMPIA.Checked = True
If c.GetString("TMP_AUTO_LIMPIO ") = "1" Then Ch_LIMPIO.Checked = True
If c.GetString("TMP_AUTO_BASURA ") = "1" Then Ch_BASURA.Checked = True
If c.GetString("TMP_AUTO_RESPONSABILIDAD ") ="1" Then Ch_RESPON.Checked = True
If c.GetString("TMP_AUTO_AUDITORIA ") = "1" Then Ch_AUDITORIA.Checked = True
If c.GetString("TMP_AUTO_HABITUAL ") = "1" Then Ch_HABITUAL.Checked = True
If c.GetString("TMP_AUTO_HERRAMIENTAS ") = "1" Then Ch_HERRAMIENTAS.Checked = True
If c.GetString("TMP_AUTO_CONOS ") = "1" Then Ch_CONOS.Checked = True
If c.GetString("TMP_AUTO_EDO_CARROCERIA ") = "1" Then Ch_EDOCARROCE.Checked = True
If c.GetString("TMP_AUTO_FUN_LUCES ") = "1" Then Ch_FUN_LUCES.Checked = True
If c.GetString("TMP_AUTO_PLACAS_CIRCU ") = "1" Then Ch_PLACAS_CIRCU.Checked = True
If c.GetString("TMP_AUTO_COND_LLANTAS ") = "1" Then Ch_COND_LLANTAS.Checked = True
If c.GetString("TMP_AUTO_ACEITEMOTOR ") = "1" Then Ch_ACEITEMOTOR.Checked = True
If c.GetString("TMP_AUTO_ACEITEDIREC ") = "1" Then Ch_ACEITEDIREC.Checked = True
If c.GetString("TMP_AUTO_NVL_REFRIGERANTE ") = "1" Then Ch_NVL_REFRIGE.Checked = True
If c.GetString("TMP_AUTO_NVL_LIQUIDBRISAS ") = "1" Then Ch_NVL_LIQUIDBRI.Checked = True
If c.GetString("TMP_AUTO_COND_BANMOTOR ") = "1" Then Ch_COND_BANMOTOR.Checked = True
If c.GetString("TMP_AUTO_FUGASGRAL ") = "1" Then Ch_FUGASGRAL.Checked = True
If c.GetString("TMP_AUTO_FRENOS ") = "1" Then Ch_FRENOS.Checked = True
If c.GetString("TMP_AUTO_COMENTARIOS ") <> "" Then Edt_COMENTARIO.text = c.GetString("TMP_AUTO_COMENTARIOS ")
End If
End If
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=True
Pnl_MotorEncen.Visible=True
Pnl_CofreAbierto.Visible=False
If File.Exists(File.DirInternal,"FOTO1.jpg") = True Then
Im_1.Bitmap = LoadBitmap(File.DirInternal, "FOTO1.jpg")
Else
If File.Exists(File.DirInternal,"FOTO1.jpg") = False Then
Im_1.Bitmap = LoadBitmap(File.DirAssets,"foto1.jpg")
End If
End If
If File.Exists(File.DirInternal,"FOTO2.jpg") = True Then
Im2.Bitmap = LoadBitmap(File.DirInternal, "FOTO2.jpg")
Else
If File.Exists(File.DirInternal,"FOTO2.jpg") = False Then
Im2.Bitmap = LoadBitmap(File.DirAssets,"foto2.jpg")
End If
End If
If File.Exists(File.DirInternal,"FOTO3.jpg") = True Then
Im3.Bitmap = LoadBitmap(File.DirInternal, "FOTO3.jpg")
Else
If File.Exists(File.DirInternal,"FOTO3.jpg") = False Then
Im3.Bitmap = LoadBitmap(File.DirAssets,"foto3.jpg")
End If
End If
If File.Exists(File.DirInternal,"FOTO4.jpg") = True Then
Im4.Bitmap = LoadBitmap(File.DirInternal, "FOTO4.jpg")
Else
If File.Exists(File.DirInternal,"FOTO4.jpg") = False Then
Im4.Bitmap = LoadBitmap(File.DirAssets,"foto4.jpg")
End If
End If
End If
End Sub
Sub Camera1_PictureTaken (Data() As Byte)
Log("foto tomada")
camera1.StartPreview
If Bt_Foto1.Tag="1" Then
Dim salida As OutputStream
salida = File.OpenOutput(File.DirInternal, "FOTO1.jpg", False)
salida.WriteBytes(Data, 0, Data.Length)
salida.Close
ToastMessageShow("FOTO GUARDADA "& "FOTO1.jpg", True)
Bt_Foto1.Tag="2"
End If
If Bt_Foto2.Tag="1" Then
Dim salida As OutputStream
salida = File.OpenOutput(File.DirInternal, "FOTO2.jpg", False)
salida.WriteBytes(Data, 0, Data.Length)
salida.Close
ToastMessageShow("FOTO GUARDADA "& "FOTO2.jpg", True)
Bt_Foto2.Tag="2"
End If
If Bt_Foto3.Tag="1" Then
Dim salida As OutputStream
salida = File.OpenOutput(File.DirInternal, "FOTO3.jpg", False)
salida.WriteBytes(Data, 0, Data.Length)
salida.Close
ToastMessageShow("FOTO GUARDADA "& "FOTO3.jpg", True)
Bt_Foto3.Tag="2"
End If
If Bt_Foto4.Tag="1" Then
Dim salida As OutputStream
salida = File.OpenOutput(File.DirInternal, "FOTO4.jpg", False)
salida.WriteBytes(Data, 0, Data.Length)
salida.Close
ToastMessageShow("FOTO GUARDADA "& "FOTO4.jpg", True)
Bt_Foto4.Tag="2"
End If
End Sub
Sub btnTakePicture_Click
btnTakePicture.Enabled = True
camera1.TakePicture
End Sub
Sub Nvl_Combustible_CheckedChange(Checked As Boolean)
If Rb_1_4.Checked Then
Lb_1.Visible=True
Lb_2.Visible=False
Lb_3.Visible=False
Lb_4.Visible=False
End If
If Rb_2_4.Checked Then
Lb_1.Visible=False
Lb_2.Visible=True
Lb_3.Visible=False
Lb_4.Visible=False
End If
If Rb_3_4.Checked Then
Lb_1.Visible=False
Lb_2.Visible=False
Lb_3.Visible=True
Lb_4.Visible=False
End If
If Rb_4_4.Checked Then
Lb_1.Visible=False
Lb_2.Visible=False
Lb_3.Visible=False
Lb_4.Visible=True
End If
End Sub
Sub SP_MENUC_ItemClick (Position As Int, Value As String)
LB_CATEGORIA.Text =LISTMENU.Get(Position)
If LB_CATEGORIA.Text = "Cabina con switch encendido" Then
Pnl_CabinaInfo.Visible=True
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=False
Pnl_MotorEncen.Visible=False
Pnl_CofreAbierto.Visible=False
End If
If LB_CATEGORIA.Text = "Cabina y espacio de carga" Then
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=True
Pnl_Inspec.Visible=False
Pnl_MotorEncen.Visible=False
Pnl_CofreAbierto.Visible=False
End If
If LB_CATEGORIA.Text = "Inspección General Exterior" Then
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=True
Pnl_MotorEncen.Visible=False
Pnl_CofreAbierto.Visible=False
End If
If LB_CATEGORIA.Text = "Cofre abierto, motor apagado" Then
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=False
Pnl_MotorEncen.Visible=False
Pnl_CofreAbierto.Visible=True
If Pnl_CofreAbierto.Visible=True Then
Pnl_Fotos.visible=False
End If
End If
If LB_CATEGORIA.Text = "Con motor encendido" Then
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=True
Pnl_MotorEncen.Visible=True
Pnl_CofreAbierto.Visible=False
End If
End Sub
Sub Bt_GuardarCheck_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
N_Ruta=0
c=Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info")
If c.RowCount > 0 Then
c.Position=0
N_Ruta= c.GetString("CAT_CL_RUTA")
End If
C2=Starter.skmt.ExecQuery("select ID_ALMACEN FROM CAT_ALMACEN")
C2.Position=0
Id_Almacen=C2.GetString("ID_ALMACEN")
''''''''''''''''''''''''''''''''''''NIVELES DE GASOLINA CHECK''''''''''''''''''
If Rb_1_4.Checked Then
Combustible="1/4"
End If
If Rb_2_4.Checked Then
Combustible="2/4"
End If
If Rb_3_4.Checked Then
Combustible="3/4"
End If
If Rb_4_4.Checked Then
Combustible="4/4"
End If
''''''''''''''''''''''''''''''''''''INDICADORES DE TABLERO''''''''''''''''''
If Cbox_Claxon.Checked=True Then
Cbox_Claxon.Tag="1"
Else
Cbox_Claxon.Tag="0"
End If
If Cbox_Cinturon.Checked=True Then
Cbox_Cinturon.Tag="1"
Else
Cbox_Cinturon.Tag="0"
End If
If Cbox_Parabrisas.Checked=True Then
Cbox_Parabrisas.Tag="1"
Else
Cbox_Parabrisas.Tag="0"
End If
If Cbox_Espejos.Checked=True Then
Cbox_Espejos.Tag="1"
Else
Cbox_Espejos.Tag="0"
End If
If Cbox_Licencia.Checked=True Then
Cbox_Licencia.Tag="1"
Else
Cbox_Licencia.Tag="0"
End If
'''''' SEGUNDO PANEL
If Ch_OBJETOSINE.Checked=True Then
Ch_OBJETOSINE.Tag="1"
Else
Ch_OBJETOSINE.Tag="0"
End If
If CH_OBJMPERV.Checked=True Then
CH_OBJMPERV.Tag="1"
Else
CH_OBJMPERV.Tag="0"
End If
If Ch_ORHERRA.Checked=True Then
Ch_ORHERRA.Tag="1"
Else
Ch_ORHERRA.Tag="0"
End If
If Ch_UNILIMPIA.Checked=True Then
Ch_UNILIMPIA.Tag="1"
Else
Ch_UNILIMPIA.Tag="0"
End If
If Ch_LIMPIO.Checked=True Then
Ch_LIMPIO.Tag="1"
Else
Ch_LIMPIO.Tag="0"
End If
If Ch_BASURA.Checked=True Then
Ch_BASURA.Tag="1"
Else
Ch_BASURA.Tag="0"
End If
If Ch_RESPON.Checked=True Then
Ch_RESPON.Tag="1"
Else
Ch_RESPON.Tag="0"
End If
If Ch_AUDITORIA.Checked=True Then
Ch_AUDITORIA.Tag="1"
Else
Ch_AUDITORIA.Tag="0"
End If
If Ch_HABITUAL.Checked=True Then
Ch_HABITUAL.Tag="1"
Else
Ch_HABITUAL.Tag="0"
End If
''''' PANEL 3
If Ch_HERRAMIENTAS.Checked=True Then
Ch_HERRAMIENTAS.Tag="1"
Else
Ch_HERRAMIENTAS.Tag="0"
End If
If Ch_CONOS.Checked=True Then
Ch_CONOS.Tag="1"
Else
Ch_CONOS.Tag="0"
End If
If Ch_EDOCARROCE.Checked=True Then
Ch_EDOCARROCE.Tag="1"
Else
Ch_EDOCARROCE.Tag="0"
End If
If Ch_FUN_LUCES.Checked=True Then
Ch_FUN_LUCES.Tag="1"
Else
Ch_FUN_LUCES.Tag="0"
End If
If Ch_PLACAS_CIRCU.Checked=True Then
Ch_PLACAS_CIRCU.Tag="1"
Else
Ch_PLACAS_CIRCU.Tag="0"
End If
If Ch_COND_LLANTAS.Checked=True Then
Ch_COND_LLANTAS.Tag="1"
Else
Ch_COND_LLANTAS.Tag="0"
End If
'''' PANEL 4
If Ch_ACEITEMOTOR.Checked=True Then
Ch_ACEITEMOTOR.Tag="1"
Else
Ch_ACEITEMOTOR.Tag="0"
End If
If Ch_ACEITEDIREC.Checked=True Then
Ch_ACEITEDIREC.Tag="1"
Else
Ch_ACEITEDIREC.Tag="0"
End If
If Ch_NVL_REFRIGE.Checked=True Then
Ch_NVL_REFRIGE.Tag="1"
Else
Ch_NVL_REFRIGE.Tag="0"
End If
If Ch_NVL_LIQUIDBRI.Checked=True Then
Ch_NVL_LIQUIDBRI.Tag="1"
Else
Ch_NVL_LIQUIDBRI.Tag="0"
End If
If Ch_COND_BANMOTOR.Checked=True Then
Ch_COND_BANMOTOR.Tag="1"
Else
Ch_COND_BANMOTOR.Tag="0"
End If
''''' PANEL 5
If Ch_FUGASGRAL.Checked=True Then
Ch_FUGASGRAL.Tag="1"
Else
Ch_FUGASGRAL.Tag="0"
End If
If Ch_FRENOS.Checked=True Then
Ch_FRENOS.Tag="1"
Else
Ch_FRENOS.Tag="0"
End If
c=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("PLACAS") )
c.Position=0
PLACAS = c.GetString("CUANTOS")
c.Close
If PLACAS > 0 Then
c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("PLACAS") )
c.Position=0
PLACAS = c.GetString("CAT_VA_VALOR")
c.Close
Else
PLACAS = "0000"
End If
'''''''''''''''''''''''''''''''''' FOTOS '''''''''''''''''''''''''''''''
Private fotosOk As Int = 0
If Not(File.Exists(File.DirInternal,"FOTO1.jpg")) Or _
Not(File.Exists(File.DirInternal,"FOTO2.jpg")) Or _
Not(File.Exists(File.DirInternal,"FOTO3.jpg")) Or _
Not(File.Exists(File.DirInternal,"FOTO4.jpg")) Then
Msgbox("Por favor tomar las 4 fotos.", "Atención") 'ignore
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=True
Pnl_MotorEncen.Visible=True
Pnl_CofreAbierto.Visible=False
Else
fotosOk = 1
End If
'''''''''''''''''''''' Kilometraje inicial '''''''''''''''''
Private kmsOk As Int = 0
If Et_KilometrajeIni.Text="" Then
Msgbox("Atención","Ingresa el Kilometraje Inicial") 'ignore
Pnl_CabinaInfo.Visible=True
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=False
Pnl_MotorEncen.Visible=False
Pnl_CofreAbierto.Visible=False
Else
kmsOk = 1
End If
If kmsOk = 1 And fotosOk = 1 Then
CUANTOS = 0
c=Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS FROM TMP_INSPECCION_AUTO_DIARIA")
If c.RowCount > 0 Then
c.Position = 0
CUANTOS = c.GetString("CUANTOS")
Log("Info checklist: " & CUANTOS)
End If
c.Close
If CUANTOS = 0 Then
Starter.skmt.ExecNonQuery("delete from TMP_INSPECCION_AUTO_DIARIA") 'Mod por CHV - 211125
Starter.skmt.ExecNonQuery2("INSERT INTO TMP_INSPECCION_AUTO_DIARIA ( " & Chr(34) & "TMP_AUTO_RUTA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACA" & Chr(34) & "," & Chr(34) & "TMP_AUTO_CEDIS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_IDALMACEN" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FECHA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_KILOMETRAJE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMBUSTIBLE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_TABLERO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CLAXON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PARABRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CINTURON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ESPEJOS " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LICENCIA " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOSINE " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOTMPERVI " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ORDEN_HERRA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_UNILIMPIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_LIMPIO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_BASURA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_RESPONSABILIDAD " & Chr(34) & "," & Chr(34) & "TMP_AUTO_AUDITORIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HABITUAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HERRAMIENTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CONOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_EDO_CARROCERIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUN_LUCES " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACAS_CIRCU " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_LLANTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEDIREC " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_REFRIGERANTE " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_LIQUIDBRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_BANMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUGASGRAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FRENOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMENTARIOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO1" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO2" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO3" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO4" & Chr(34) & " ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (N_Ruta,PLACAS,Null,Id_Almacen,sDate,Et_KilometrajeIni.Text,Combustible,1,Cbox_Claxon.Tag,Cbox_Parabrisas.Tag,Cbox_Cinturon.Tag,Cbox_Espejos.Tag,Cbox_Licencia.Tag,Ch_OBJETOSINE.Tag,CH_OBJMPERV.Tag,Ch_ORHERRA.Tag,Ch_UNILIMPIA.Tag,Ch_LIMPIO.Tag,Ch_BASURA.Tag,Ch_RESPON.Tag,Ch_AUDITORIA.Tag,Ch_HABITUAL.Tag,Ch_HERRAMIENTAS.Tag,Ch_CONOS.Tag,Ch_EDOCARROCE.Tag,Ch_FUN_LUCES.Tag,Ch_PLACAS_CIRCU.Tag,Ch_COND_LLANTAS.Tag,Ch_ACEITEMOTOR.Tag,Ch_ACEITEDIREC.Tag,Ch_NVL_REFRIGE.Tag,Ch_NVL_LIQUIDBRI.Tag,Ch_COND_BANMOTOR.Tag,Ch_FUGASGRAL.Tag,Ch_FRENOS.Tag,Edt_COMENTARIO.TeXT))
Log("Guardamos Kilometraje")
Else
Starter.skmt.ExecNonQuery("delete from TMP_INSPECCION_AUTO_DIARIA") 'Mod por CHV - 211125
Starter.skmt.ExecNonQuery2("INSERT INTO TMP_INSPECCION_AUTO_DIARIA ( " & Chr(34) & "TMP_AUTO_RUTA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACA" & Chr(34) & "," & Chr(34) & "TMP_AUTO_CEDIS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_IDALMACEN" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FECHA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_KILOMETRAJE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMBUSTIBLE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_TABLERO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CLAXON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PARABRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CINTURON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ESPEJOS " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LICENCIA " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOSINE " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOTMPERVI " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ORDEN_HERRA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_UNILIMPIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_LIMPIO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_BASURA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_RESPONSABILIDAD " & Chr(34) & "," & Chr(34) & "TMP_AUTO_AUDITORIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HABITUAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HERRAMIENTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CONOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_EDO_CARROCERIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUN_LUCES " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACAS_CIRCU " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_LLANTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEDIREC " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_REFRIGERANTE " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_LIQUIDBRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_BANMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUGASGRAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FRENOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMENTARIOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO1" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO2" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO3" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO4" & Chr(34) & " ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (N_Ruta,PLACAS,Null,Id_Almacen,sDate,Et_KilometrajeIni.Text,Combustible,1,Cbox_Claxon.Tag,Cbox_Parabrisas.Tag,Cbox_Cinturon.Tag,Cbox_Espejos.Tag,Cbox_Licencia.Tag,Ch_OBJETOSINE.Tag,CH_OBJMPERV.Tag,Ch_ORHERRA.Tag,Ch_UNILIMPIA.Tag,Ch_LIMPIO.Tag,Ch_BASURA.Tag,Ch_RESPON.Tag,Ch_AUDITORIA.Tag,Ch_HABITUAL.Tag,Ch_HERRAMIENTAS.Tag,Ch_CONOS.Tag,Ch_EDOCARROCE.Tag,Ch_FUN_LUCES.Tag,Ch_PLACAS_CIRCU.Tag,Ch_COND_LLANTAS.Tag,Ch_ACEITEMOTOR.Tag,Ch_ACEITEDIREC.Tag,Ch_NVL_REFRIGE.Tag,Ch_NVL_LIQUIDBRI.Tag,Ch_COND_BANMOTOR.Tag,Ch_FUGASGRAL.Tag,Ch_FRENOS.Tag,Edt_COMENTARIO.TeXT))
Log("Guardamos Kilometraje")
End If
OK_CheckList = 1
Msgbox("DATOS GUARDADOS CON EXITO ","") 'ignore
mandaCheckList
B4XPages.ShowPage("Principal")
End If
End Sub
Sub mandaCheckList
ProgressDialogShow("Enviando checklist al servidor")
Log("Enviando CheckList")
Private contador_env As Int = 0
Private foto1() As Byte
Private foto2() As Byte
Private foto3() As Byte
Private foto4() As Byte
If File.Exists(File.DirInternal,"FOTO1.jpg") And File.Exists(File.DirInternal,"FOTO2.jpg") And _
File.Exists(File.DirInternal,"FOTO3.jpg") And File.Exists(File.DirInternal,"FOTO4.jpg") Then
foto1 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO1.jpg"))
foto2 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO2.jpg"))
foto3 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO3.jpg"))
foto4 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO4.jpg"))
Else
ToastMessageShow("FOTOS INCOMPLETAS!!", True)
End If
Private cl As Cursor=Starter.skmt.ExecQuery("SELECT " & Chr(34) & "TMP_AUTO_RUTA " & Chr(34) & " as TMP_AUTO_RUTA," & Chr(34) & "TMP_AUTO_PLACA" & Chr(34) & " as TMP_AUTO_PLACA," & Chr(34) & "TMP_AUTO_CEDIS " & Chr(34) & " as TMP_AUTO_CEDIS," & Chr(34) & "TMP_AUTO_IDALMACEN" & Chr(34) & " as TMP_AUTO_IDALMACEN," & Chr(34) & "TMP_AUTO_FECHA " & Chr(34) & " as TMP_AUTO_FECHA," & Chr(34) & "TMP_AUTO_KILOMETRAJE" & Chr(34) & " as TMP_AUTO_KILOMETRAJE," & Chr(34) & "TMP_AUTO_COMBUSTIBLE" & Chr(34) & " as TMP_AUTO_COMBUSTIBLE," & Chr(34) & "TMP_AUTO_TABLERO " & Chr(34) & " as TMP_AUTO_TABLERO," & Chr(34) & "TMP_AUTO_CLAXON " & Chr(34) & " as TMP_AUTO_CLAXON," & Chr(34) & "TMP_AUTO_PARABRISAS " & Chr(34) & " as TMP_AUTO_PARABRISAS," & Chr(34) & "TMP_AUTO_CINTURON " & Chr(34) & " as TMP_AUTO_CINTURON," & Chr(34) & "TMP_AUTO_ESPEJOS " & Chr(34) & " as TMP_AUTO_ESPEJOS," & Chr(34) & "TMP_AUTO_LICENCIA " & Chr(34) & " as TMP_AUTO_LICENCIA," & Chr(34) & "TMP_AUTO_LIB_OBJETOSINE " & Chr(34) & " as TMP_AUTO_LIB_OBJETOSINE," & Chr(34) & "TMP_AUTO_LIB_OBJETOTMPERVI " & Chr(34) & " as TMP_AUTO_LIB_OBJETOTMPERVI," & Chr(34) & "TMP_AUTO_ORDEN_HERRA " & Chr(34) & " as TMP_AUTO_ORDEN_HERRA," & Chr(34) & "TMP_AUTO_UNILIMPIA " & Chr(34) & " as TMP_AUTO_UNILIMPIA," & Chr(34) & "TMP_AUTO_LIMPIO " & Chr(34) & " as TMP_AUTO_LIMPIO," & Chr(34) & "TMP_AUTO_BASURA " & Chr(34) & " as TMP_AUTO_BASURA," & Chr(34) & "TMP_AUTO_RESPONSABILIDAD " & Chr(34) & " as TMP_AUTO_RESPONSABILIDAD," & Chr(34) & "TMP_AUTO_AUDITORIA " & Chr(34) & " as TMP_AUTO_AUDITORIA," & Chr(34) & "TMP_AUTO_HABITUAL " & Chr(34) & " as TMP_AUTO_HABITUAL," & Chr(34) & "TMP_AUTO_HERRAMIENTAS " & Chr(34) & " as TMP_AUTO_HERRAMIENTAS," & Chr(34) & "TMP_AUTO_CONOS " & Chr(34) & " as TMP_AUTO_CONOS," & Chr(34) & "TMP_AUTO_EDO_CARROCERIA " & Chr(34) & " as TMP_AUTO_EDO_CARROCERIA," & Chr(34) & "TMP_AUTO_FUN_LUCES " & Chr(34) & " as TMP_AUTO_FUN_LUCES," & Chr(34) & "TMP_AUTO_PLACAS_CIRCU " & Chr(34) & " as TMP_AUTO_PLACAS_CIRCU," & Chr(34) & "TMP_AUTO_COND_LLANTAS " & Chr(34) & " as TMP_AUTO_COND_LLANTAS," & Chr(34) & "TMP_AUTO_ACEITEMOTOR " & Chr(34) & " as TMP_AUTO_ACEITEMOTOR," & Chr(34) & "TMP_AUTO_ACEITEDIREC " & Chr(34) & " as TMP_AUTO_ACEITEDIREC," & Chr(34) & "TMP_AUTO_NVL_REFRIGERANTE " & Chr(34) & " as TMP_AUTO_NVL_REFRIGERANTE," & Chr(34) & "TMP_AUTO_NVL_LIQUIDBRISAS " & Chr(34) & " as TMP_AUTO_NVL_LIQUIDBRISAS," & Chr(34) & "TMP_AUTO_COND_BANMOTOR " & Chr(34) & " as TMP_AUTO_COND_BANMOTOR," & Chr(34) & "TMP_AUTO_FUGASGRAL " & Chr(34) & " as TMP_AUTO_FUGASGRAL," & Chr(34) & "TMP_AUTO_FRENOS " & Chr(34) & " as TMP_AUTO_FRENOS," & Chr(34) & "TMP_AUTO_COMENTARIOS " & Chr(34) & " as TMP_AUTO_COMENTARIOS FROM TMP_INSPECCION_AUTO_DIARIA")
If cl.RowCount>0 Then
For i=0 To cl.RowCount -1
cl.Position=i
If File.Exists(File.DirInternal,"FOTO1.jpg") And File.Exists(File.DirInternal,"FOTO2.jpg") And _
File.Exists(File.DirInternal,"FOTO3.jpg") And File.Exists(File.DirInternal,"FOTO4.jpg") Then
foto1 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO1.jpg"))
foto2 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO2.jpg"))
foto3 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO3.jpg"))
foto4 = Bit.InputStreamToBytes(File.OpenInput(File.DirInternal,"FOTO4.jpg"))
Else
ToastMessageShow("FOTOS INCOMPLETAS!!", True)
End If
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "INSERT_TMP_INSPECCION_AUTO_DIARIA"
cmd.Parameters = Array As Object(cl.GetString("TMP_AUTO_RUTA"),cl.GetString("TMP_AUTO_PLACA"),cl.GetString("TMP_AUTO_CEDIS"),cl.GetString("TMP_AUTO_IDALMACEN"),cl.GetString("TMP_AUTO_FECHA"),cl.GetString("TMP_AUTO_KILOMETRAJE"),cl.GetString("TMP_AUTO_COMBUSTIBLE"),cl.GetString("TMP_AUTO_TABLERO"),cl.GetString("TMP_AUTO_CLAXON"),cl.GetString("TMP_AUTO_PARABRISAS"),cl.GetString("TMP_AUTO_CINTURON"),cl.GetString("TMP_AUTO_ESPEJOS"),cl.GetString("TMP_AUTO_LICENCIA"),cl.GetString("TMP_AUTO_LIB_OBJETOSINE"),cl.GetString("TMP_AUTO_LIB_OBJETOTMPERVI"),cl.GetString("TMP_AUTO_ORDEN_HERRA"),cl.GetString("TMP_AUTO_UNILIMPIA"),cl.GetString("TMP_AUTO_LIMPIO"),cl.GetString("TMP_AUTO_BASURA"),cl.GetString("TMP_AUTO_RESPONSABILIDAD"),cl.GetString("TMP_AUTO_AUDITORIA"),cl.GetString("TMP_AUTO_HABITUAL"),cl.GetString("TMP_AUTO_HERRAMIENTAS"),cl.GetString("TMP_AUTO_CONOS"),cl.GetString("TMP_AUTO_EDO_CARROCERIA"),cl.GetString("TMP_AUTO_FUN_LUCES"),cl.GetString("TMP_AUTO_PLACAS_CIRCU"),cl.GetString("TMP_AUTO_COND_LLANTAS"),cl.GetString("TMP_AUTO_ACEITEMOTOR"),cl.GetString("TMP_AUTO_ACEITEDIREC"),cl.GetString("TMP_AUTO_NVL_REFRIGERANTE"),cl.GetString("TMP_AUTO_NVL_LIQUIDBRISAS"),cl.GetString("TMP_AUTO_COND_BANMOTOR"),cl.GetString("TMP_AUTO_FUGASGRAL"),cl.GetString("TMP_AUTO_FRENOS"),cl.GetString("TMP_AUTO_COMENTARIOS"), foto1, foto2, foto3, foto4)
Log(cl.GetString("TMP_AUTO_RUTA")& " | " & cl.GetString("TMP_AUTO_PLACA"))
reqManager.ExecuteCommand(cmd , "insert_checklist")
contador_env = contador_env + 1
Next
cl.Close
End If
Log("Terminamos CheckList")
Sleep(1000)
ProgressDialogHide
Msgbox2Async("El checklist ha sido enviado al servidor","AVISO", "Aceptar","","",Null, True)
End Sub
Sub JobDone(Job As HttpJob)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
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 = "updateKell_UTR" Then 'query tag
For Each records() As Object In result.Rows
For Each k As String In result.Columns.Keys
' Log("Ubicacion en tiempo real: " & k & ": " & records(result.Columns.Get(k)))
Next
Next
End If
End If
End If
Job.Release
End Sub
Sub GUARDA_TEMPORAL
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info")
c.Position=0
N_Ruta= c.GetString("CAT_CL_RUTA")
C2=Starter.skmt.ExecQuery("select ID_ALMACEN FROM CAT_ALMACEN")
C2.Position=0
Id_Almacen=C2.GetString("ID_ALMACEN")
''''''''''''''''''''''''''''''''''''NIVELES DE GASOLINA CHECK''''''''''''''''''
If Rb_1_4.Checked Then
Combustible="1/4"
End If
If Rb_2_4.Checked Then
Combustible="2/4"
End If
If Rb_3_4.Checked Then
Combustible="3/4"
End If
If Rb_4_4.Checked Then
Combustible="4/4"
End If
''''''''''''''''''''''''''''''''''''INDICADORES DE TABLERO''''''''''''''''''
If Cbox_Claxon.Checked=True Then
Cbox_Claxon.Tag="1"
Else
Cbox_Claxon.Tag="0"
End If
If Cbox_Cinturon.Checked=True Then
Cbox_Cinturon.Tag="1"
Else
Cbox_Cinturon.Tag="0"
End If
If Cbox_Parabrisas.Checked=True Then
Cbox_Parabrisas.Tag="1"
Else
Cbox_Parabrisas.Tag="0"
End If
If Cbox_Espejos.Checked=True Then
Cbox_Espejos.Tag="1"
Else
Cbox_Espejos.Tag="0"
End If
If Cbox_Licencia.Checked=True Then
Cbox_Licencia.Tag="1"
Else
Cbox_Licencia.Tag="0"
End If
'''''' SEGUNDO PANEL
If Ch_OBJETOSINE.Checked=True Then
Ch_OBJETOSINE.Tag="1"
Else
Ch_OBJETOSINE.Tag="0"
End If
If CH_OBJMPERV.Checked=True Then
CH_OBJMPERV.Tag="1"
Else
CH_OBJMPERV.Tag="0"
End If
If Ch_ORHERRA.Checked=True Then
Ch_ORHERRA.Tag="1"
Else
Ch_ORHERRA.Tag="0"
End If
If Ch_UNILIMPIA.Checked=True Then
Ch_UNILIMPIA.Tag="1"
Else
Ch_UNILIMPIA.Tag="0"
End If
If Ch_LIMPIO.Checked=True Then
Ch_LIMPIO.Tag="1"
Else
Ch_LIMPIO.Tag="0"
End If
If Ch_BASURA.Checked=True Then
Ch_BASURA.Tag="1"
Else
Ch_BASURA.Tag="0"
End If
If Ch_RESPON.Checked=True Then
Ch_RESPON.Tag="1"
Else
Ch_RESPON.Tag="0"
End If
If Ch_AUDITORIA.Checked=True Then
Ch_AUDITORIA.Tag="1"
Else
Ch_AUDITORIA.Tag="0"
End If
If Ch_HABITUAL.Checked=True Then
Ch_HABITUAL.Tag="1"
Else
Ch_HABITUAL.Tag="0"
End If
''''' PANEL 3
If Ch_HERRAMIENTAS.Checked=True Then
Ch_HERRAMIENTAS.Tag="1"
Else
Ch_HERRAMIENTAS.Tag="0"
End If
If Ch_CONOS.Checked=True Then
Ch_CONOS.Tag="1"
Else
Ch_CONOS.Tag="0"
End If
If Ch_EDOCARROCE.Checked=True Then
Ch_EDOCARROCE.Tag="1"
Else
Ch_EDOCARROCE.Tag="0"
End If
If Ch_FUN_LUCES.Checked=True Then
Ch_FUN_LUCES.Tag="1"
Else
Ch_FUN_LUCES.Tag="0"
End If
If Ch_PLACAS_CIRCU.Checked=True Then
Ch_PLACAS_CIRCU.Tag="1"
Else
Ch_PLACAS_CIRCU.Tag="0"
End If
If Ch_COND_LLANTAS.Checked=True Then
Ch_COND_LLANTAS.Tag="1"
Else
Ch_COND_LLANTAS.Tag="0"
End If
'''' PANEL 4
If Ch_ACEITEMOTOR.Checked=True Then
Ch_ACEITEMOTOR.Tag="1"
Else
Ch_ACEITEMOTOR.Tag="0"
End If
If Ch_ACEITEDIREC.Checked=True Then
Ch_ACEITEDIREC.Tag="1"
Else
Ch_ACEITEDIREC.Tag="0"
End If
If Ch_NVL_REFRIGE.Checked=True Then
Ch_NVL_REFRIGE.Tag="1"
Else
Ch_NVL_REFRIGE.Tag="0"
End If
If Ch_NVL_LIQUIDBRI.Checked=True Then
Ch_NVL_LIQUIDBRI.Tag="1"
Else
Ch_NVL_LIQUIDBRI.Tag="0"
End If
If Ch_COND_BANMOTOR.Checked=True Then
Ch_COND_BANMOTOR.Tag="1"
Else
Ch_COND_BANMOTOR.Tag="0"
End If
''''' PANEL 5
If Ch_FUGASGRAL.Checked=True Then
Ch_FUGASGRAL.Tag="1"
Else
Ch_FUGASGRAL.Tag="0"
End If
If Ch_FRENOS.Checked=True Then
Ch_FRENOS.Tag="1"
Else
Ch_FRENOS.Tag="0"
End If
c=Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("PLACAS") )
c.Position=0
PLACAS = c.GetString("CUANTOS")
c.Close
If PLACAS > 0 Then
c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("PLACAS") )
c.Position=0
PLACAS = c.GetString("CAT_VA_VALOR")
c.Close
Else
PLACAS = "0000"
End If
Starter.skmt.ExecNonQuery("delete from TMP_INSPECCION_AUTO_DIARIA") 'Mod por CHV - 211125
Starter.skmt.ExecNonQuery2("INSERT INTO TMP_INSPECCION_AUTO_DIARIA( " & Chr(34) & "TMP_AUTO_RUTA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACA" & Chr(34) & "," & Chr(34) & "TMP_AUTO_CEDIS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_IDALMACEN" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FECHA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_KILOMETRAJE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMBUSTIBLE" & Chr(34) & "," & Chr(34) & "TMP_AUTO_TABLERO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CLAXON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PARABRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CINTURON " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ESPEJOS " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LICENCIA " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOSINE " & Chr(34) & " ," & Chr(34) & "TMP_AUTO_LIB_OBJETOTMPERVI " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ORDEN_HERRA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_UNILIMPIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_LIMPIO " & Chr(34) & "," & Chr(34) & "TMP_AUTO_BASURA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_RESPONSABILIDAD " & Chr(34) & "," & Chr(34) & "TMP_AUTO_AUDITORIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HABITUAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_HERRAMIENTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_CONOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_EDO_CARROCERIA " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUN_LUCES " & Chr(34) & "," & Chr(34) & "TMP_AUTO_PLACAS_CIRCU " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_LLANTAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_ACEITEDIREC " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_REFRIGERANTE " & Chr(34) & "," & Chr(34) & "TMP_AUTO_NVL_LIQUIDBRISAS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COND_BANMOTOR " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FUGASGRAL " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FRENOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_COMENTARIOS " & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO1" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO2" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO3" & Chr(34) & "," & Chr(34) & "TMP_AUTO_FOTO4" & Chr(34) & " ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (N_Ruta,PLACAS,Null,Id_Almacen,sDate,Et_KilometrajeIni.Text,Combustible,1,Cbox_Claxon.Tag,Cbox_Parabrisas.Tag,Cbox_Cinturon.Tag,Cbox_Espejos.Tag,Cbox_Licencia.Tag,Ch_OBJETOSINE.Tag,CH_OBJMPERV.Tag,Ch_ORHERRA.Tag,Ch_UNILIMPIA.Tag,Ch_LIMPIO.Tag,Ch_BASURA.Tag,Ch_RESPON.Tag,Ch_AUDITORIA.Tag,Ch_HABITUAL.Tag,Ch_HERRAMIENTAS.Tag,Ch_CONOS.Tag,Ch_EDOCARROCE.Tag,Ch_FUN_LUCES.Tag,Ch_PLACAS_CIRCU.Tag,Ch_COND_LLANTAS.Tag,Ch_ACEITEMOTOR.Tag,Ch_ACEITEDIREC.Tag,Ch_NVL_REFRIGE.Tag,Ch_NVL_LIQUIDBRI.Tag,Ch_COND_BANMOTOR.Tag,Ch_FUGASGRAL.Tag,Ch_FRENOS.Tag,Edt_COMENTARIO.TeXT))
End Sub
Sub b_guardar_Click
If Bt_Foto1.Tag="2" Then
Im_1.Bitmap = LoadBitmap(File.DirInternal, "FOTO1.jpg")
Pnl_Fotos.Visible=False
Bt_Foto1.Visible=True
Bt_Foto2.Visible=True
Bt_Foto3.Visible=True
Bt_Foto4.Visible=True
Pnl_Fotos.Visible=False
Bt_GuardarCheck.Visible=True
End If
If Bt_Foto2.Tag="2" Then
Im2.Bitmap = LoadBitmap(File.DirInternal, "FOTO2.jpg")
Pnl_Fotos.Visible=False
Bt_Foto1.Visible=True
Bt_Foto2.Visible=True
Bt_Foto3.Visible=True
Bt_Foto4.Visible=True
Pnl_Fotos.Visible=False
Bt_GuardarCheck.Visible=True
End If
If Bt_Foto3.Tag="2" Then
Im3.Bitmap = LoadBitmap(File.DirInternal, "FOTO3.jpg")
Pnl_Fotos.Visible=False
Bt_Foto1.Visible=True
Bt_Foto2.Visible=True
Bt_Foto3.Visible=True
Bt_Foto4.Visible=True
Pnl_Fotos.Visible=False
Bt_GuardarCheck.Visible=True
End If
If Bt_Foto4.Tag="2" Then
Im4.Bitmap = LoadBitmap(File.DirInternal, "FOTO4.jpg")
Pnl_Fotos.Visible=False
Bt_Foto1.Visible=True
Bt_Foto2.Visible=True
Bt_Foto3.Visible=True
Bt_Foto4.Visible=True
Pnl_Fotos.Visible=False
Bt_GuardarCheck.Visible=True
End If
End Sub
Sub Bt_Foto1_Click
foto.quien_llamo = "1"
GUARDA_TEMPORAL
TOMO_FOTO1 = 1
StartActivity("foto")
End Sub
Sub Bt_Foto2_Click
foto.quien_llamo = "2"
GUARDA_TEMPORAL
StartActivity("foto")
End Sub
Sub Bt_Foto3_Click
foto.quien_llamo = "3"
GUARDA_TEMPORAL
TOMO_FOTO3 = 1
StartActivity("foto")
End Sub
Sub Bt_Foto4_Click
foto.quien_llamo = "4"
GUARDA_TEMPORAL
TOMO_FOTO4 = 1
StartActivity("foto")
End Sub
Sub LBL_REGRESA_Click
Pnl_Fotos.Visible=False
Bt_Foto1.Visible=True
Bt_Foto2.Visible=True
Bt_Foto3.Visible=True
Bt_Foto4.Visible=True
Bt_GuardarCheck.Visible=True
End Sub
''' SUBIR PANEL.
Sub IME_HeightChanged(NewHeight As Int, OldHeight As Int)
' para subir la entrada de datos y que este encima del teclado
'Log("NewHeight " & NewHeight & " OldHeight " & OldHeight)
End Sub
Sub Activity_KeyPress (key As Int) As Boolean 'ignore
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
Pnl_CabinaInfo.Visible=False
Pnl_Carga.Visible=False
Pnl_Inspec.Visible=True
Pnl_MotorEncen.Visible=True
Pnl_CofreAbierto.Visible=False
Return False
'End If
End If
' Returning False signals the system to handle the key
End Sub

3145
B4A/C_Cliente.bas Normal file

File diff suppressed because it is too large Load Diff

281
B4A/C_Clientes.bas Normal file
View File

@@ -0,0 +1,281 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'// Process Globals
Dim ruta As String
Dim q_buscar As String
Dim MAC_IMPRESORA As String
'// Globals
Dim c As Cursor
Dim c2 As Cursor
Dim s As Cursor
Dim ListView1 As ListView
Dim entro As String
Dim gest As Button
Dim lfila As Label
Dim busca As EditText
Dim colonia As String 'ignore
Private b_qr As Button
Private qr As QRCode
Dim sc As Zxing_scanner
Dim CODIGO As String
Private b_bdd As Button
Private SEMANA As String
Private B_IMP As Button
Dim logger As Boolean = True
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("Clientes")
entro ="2"
ruta = File.DirInternal
qr.initialize
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
c.Position =0
MAC_IMPRESORA = c.GetString("CAT_VA_VALOR")
Starter.MAC_IMPRESORA = MAC_IMPRESORA
If Not(Starter.Logger) Then logger = False
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
B_IMP.Visible = False
' If Logger Then Log(Me)
' If Logger Then LogColor("Ultima actividad guardada=" & Subs.traeUltimaActividadBD, Colors.Blue)
' If Subs.traeUltimaActividadBD <> "colonia" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD)
c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
c.Position =0
SEMANA = c.GetString("CUANTOS")
c.Close
If SEMANA > 0 Then
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
c.Position =0
SEMANA = c.GetString("CAT_VA_VALOR")
c.Close
End If
b_bdd.Visible = True
' b_qr.Visible = True
busca.Text = ""
entro ="2"
colonia = 0
c=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO, CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?) and gestion = 0 and cat_cl_codigo not in (select pe_cliente from pedido) and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) and CAT_CL_CODIGO not in (select NV_CLIENTE from NOVENTA) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String("DIA_VISITA",SEMANA, "SEMANAL"))
ListView1.Clear
lfila.Text = "NOMBRE"
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 14
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 14
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NUM_SERIEFISICO") & " " & c.GetString("CAT_CL_NOMBRE") )
Next
End If
entro = "4"
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
' If Logger Then Log(Regex.Split("\.",Me)(Regex.Split("\.",Me).Length-1))
Private Subrutina As Map =CreateMap("nombre":"ListView1_ItemClick", "param1":Position, "param2":Value)
Starter.sesion = CreateMap("actividad":Me, "sub":Subrutina)
If colonia = 0 Then
colonia = Value
End If
If entro = "2" Then
c2=Starter.skmt.ExecQuery2("select CAT_CL_CALLE, CAT_CL_COLONIA, count(*) as cuantos from kmt_info where gestion = 0 and CAT_CL_COLONIA = ? GROUP BY CAT_CL_CALLE, CAT_CL_COLONIA order by CAT_CL_CALLE ", Array As String(Value))
ListView1.Clear
lfila.text = "Calle"
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
ListView1.AddTwoLines(c2.GetString("CAT_CL_CALLE"),c2.GetString("cuantos") )
Next
End If
entro = "3"
Else If entro = "3" Then
c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where gestion = 0 and CAT_CL_CALLE = ? AND CAT_CL_COLONIA = ? order by CAT_CL_NOMBRE ", Array As String(Value, colonia))
ListView1.Clear
lfila.text = "Nombre"
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE"))
Next
End If
entro = "4"
Else If entro = "4" Then
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
Starter.boleta = 0
Subs.iniciaActividad("Cliente")
End If
End Sub
Sub Activity_KeyPress (key As Int) As Boolean 'ignore
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
Subs.iniciaActividad("Principal")
Return False
'End If
End If
' Returning False signals the system to handle the key
End Sub
Sub BUSCA_TextChanged (Old As String, New As String)
q_buscar = "%" & busca.Text & "%"
c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where (CAT_CL_NOMBRE like ? OR CAT_CL_CODIGO LIKE ?) and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?) and gestion = 0 order by CAT_CL_NOMBRE ", Array As String(q_buscar,q_buscar,"DIA_VISITA"))
ListView1.Clear
lfila.text = "Nombre y Calle"
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 14
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 14
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE") &" CALLE: "& c2.GetString("CAT_CL_CALLE"))
Next
End If
entro = "4"
c2.Close
End Sub
Sub b_qr_Click
Dim scan_width As Int
Dim scan_height As Int
scan_width = 400
scan_height = 400
sc.BeginScan("sc","CODIGO CLIENTE",scan_width,scan_height)
End Sub
Sub sc_result(atype As String,Values As String)
'If Logger Then Log("Type : " & atype)
'If Logger Then Log("Value : " & Values)
CODIGO = Values
c2=Starter.skmt.ExecQuery2("select COUNT(*) AS ENCONTRADO from kmt_info where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO))
c2.Position =0
If c2.GetString("ENCONTRADO") > 0 Then
s=Starter.skmt.ExecQuery2("select CAT_CL_CODIGO from kmt_info where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO))
s.Position =0
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(s.GetString("CAT_CL_CODIGO")))
s.Close
b_qr.Visible = False
Subs.iniciaActividad("Cliente")
Else
Msgbox("CODIGO " & CODIGO & " NO ENCONTRADO","AVISO") 'ignore
End If
End Sub
Sub sc_noScan
If logger Then Log("nothing returned from the scan !!!!!")
End Sub
Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes
Dim i As Int
' Dim cO As Char
Dim soma As Int
Dim n As Int
Dim digit As Float
soma = 0
For i=0 To number.Length - 1
digit = number.SubString2(i,i+1)
n= digit * ((i Mod 2) * 2 + 1)
soma=soma+n
Next
Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 )
End Sub
Sub b_bdd_Click
q_buscar = "%" & busca.Text & "%"
c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where (CAT_CL_NOMBRE like ? OR CAT_CL_CODIGO LIKE ?) and gestion = 0 order by CAT_CL_NOMBRE ", Array As String(q_buscar,q_buscar))
ListView1.Clear
lfila.text = "Nombre y Calle"
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 14
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 14
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE") &" CALLE: "& c2.GetString("CAT_CL_CALLE"))
Next
End If
entro = "4"
c2.Close
End Sub
'Imprimimos clientes.
Sub B_IMP_Click
' If Printer1.IsInitialized And Printer1.IsConnected = False Then
' Printer1.Connect
' ToastMessageShow("Conectando impresora ...", False)
' End If
' Try
' c=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO, CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?) and gestion = 0 and cat_cl_codigo not in (select pe_cliente from pedido) and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String("DIA_VISITA",SEMANA, "SEMANAL"))
'' c=skmt.ExecQuery("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO,CAT_CL_DIAS_VISITA from kmt_info where gestion = 0 and cat_cl_codigo <> 0 ORDER BY CAT_CL_CODIGO")
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' Printer1.WriteString("ID. " & c.GetString("CAT_CL_CODIGO") & CRLF)
' Printer1.WriteString("Nombre " & c.GetString("CAT_CL_NUM_SERIEFISICO") & " " & c.GetString("CAT_CL_NOMBRE") & CRLF)
' Printer1.WriteString("------------------------------" & CRLF)
' Next
' End If
' Catch
' Log(LastException)
' End Try
End Sub
Sub revisaImpresora (mode As String) 'ignore
' If Not(Starter.btAdmin.IsEnabled) Then Starter.btAdmin.Enable 'Si no esta prendido el BT lo prendemos.
' If Not(Printer1.IsInitialized) Then Printer1.Initialize(Me, "Printer1") 'Si no esta inicializada la inicializamos.
' If Not(Starter.revisandoImpresora) Then Return
' Starter.revisandoImpresora = True
' If mode = "BT" Then
'' If Logger Then LogColor("reiniciamos BT", Colors.Blue)
'' Starter.btAdmin.Disable
'' Sleep(500)
'' Starter.btAdmin.Enable
'' Sleep(1000)
'' If Starter.btAdmin.IsEnabled Then revisaImpresora("")
' Else
'' ToastMessageShow("Conectando impresora.", False)
' If Not(Printer1.IsConnected) Then 'Si no estamos conectados, nos conectamos.
' If Logger Then Log("Connect")
' Printer1.Connect
' Else 'Si ya estamos conectados
' If Logger Then Log("Disc-Conn")
' Printer1.DisConnect
' Sleep(1000)
' Printer1.Connect
' End If
' End If
End Sub

184
B4A/C_Foto.bas Normal file
View File

@@ -0,0 +1,184 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim ruta As String
Dim g As GPS
Private frontCamera As Boolean = False
Dim quien_llamo As String
Dim foto_g () As Byte
Dim foto_g1 () As Byte
Dim foto_g2 () As Byte
Dim foto_g3 () As Byte
Dim foto_g4 () As Byte
'//Globals
Dim btnTakePicture As Button
Dim Panel1 As Panel
Dim c As Cursor
Dim cuenta As String
Dim lat_gps As String
Dim lon_gps As String
Private camEx As CameraExClass
Private i_foto As ImageView
Private b_guardar As Button
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("foto")
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
ruta = File.DirInternal
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub Camera1_Ready (Success As Boolean)
If Success Then
' camEx.SetJpegQuality(90)
' camEx.CommitParameters
Dim ps As CameraSize
ps.Width =640'480 '1280
ps.Height =480'360 '960
camEx.SetPictureSize(ps.Width, ps.Height)
camEx.CommitParameters
Try
camEx.StartPreview
Catch
camEx.Release
Subs.iniciaActividad("CHECKLIST_AUTO")
End Try
' Dim ps As CameraSize
' ps.Width =640 '1280
' ps.Height =480 '960
' camEx.SetPictureSize(ps.Width, ps.Height)
' camEx.CommitParameters
' Log(camEx.GetPreviewSize)
'Msgbox(camEx.GetPreviewSize,"aviso") 'ignore
Else
Subs.iniciaActividad("CHECKLIST_AUTO")
'ToastMessageShow("Cannot open camera.", True)
End If
End Sub
Sub Activity_Resume
i_foto.Visible = False
' If g.GPSEnabled=False Then
' ToastMessageShow("Habilitar el GPS", True)
' StartActivity(g.LocationSettingsIntent)
' Else
' g.Start(0,0)
' End If
InitializeCamera
btnTakePicture.Enabled = True
b_guardar.Enabled = False
End Sub
Sub Activity_Pause (UserClosed As Boolean)
camEx.Release
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
' 'btnTakePicture.Enabled = True
' 's.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE,HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, lat_gps, lon_gps))
End Sub
Private Sub InitializeCamera
camEx.Initialize(Panel1, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
End Sub
Sub Camera1_PictureTaken (Data() As Byte)
btnTakePicture.Enabled = True
Dim filename As String = "2.jpg"
Dim dir As String = File.DirRootExternal
camEx.SavePictureToFile(Data, dir, filename)
camEx.StartPreview 'restart preview
i_foto.Visible = True
i_foto.Bitmap = LoadBitmap(File.DirRootExternal, "2.jpg")
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
Dim InputStream1 As InputStream
InputStream1 = File.OpenInput(File.DirRootExternal, "2.jpg")
Dim OutputStream1 As OutputStream
OutputStream1.InitializeToBytesArray(500)
File.Copy2(InputStream1, OutputStream1)
foto_g = OutputStream1.ToBytesArray
End If
b_guardar.Enabled = True
camEx.Release
InitializeCamera
btnTakePicture.Enabled = True
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
B4XPages.ShowPage("Principal")
'Return True
End If
' Returning False signals the system to handle the key
Return False
End Sub
Sub b_guardar_Click
camEx.Release
'If quien_llamo = "1" Then
Try
If quien_llamo = "1" Then
File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO1.jpg")
Subs.iniciaActividad("CHECKLIST_AUTO")
else if quien_llamo = "2" Then
File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO2.jpg")
Subs.iniciaActividad("CHECKLIST_AUTO")
else if quien_llamo = "3" Then
File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO3.jpg")
Subs.iniciaActividad("CHECKLIST_AUTO")
else if quien_llamo = "4" Then
File.Copy(File.DirRootExternal, "2.jpg",File.DirRootExternal, "FOTO4.jpg")
Subs.iniciaActividad("CHECKLIST_AUTO")
End If
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
c=Starter.skmt.ExecQuery("select cuenta from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
c.Close
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTOS (HF_FOTO, HF_CUENTA, HF_IDENCUESTA) VALUES(?,?,?) ", Array As Object (foto_g,cuenta, B4XPages.MainPage.cliente.id_encuesta ))
Subs.iniciaActividad("fila")
End If
Catch
Msgbox("ERROR EN FOTO","") 'ignore
If B4XPages.MainPage.cliente.TOMAR_FOTO = 1 Then
Subs.iniciaActividad("fila")
Else
Subs.iniciaActividad("CHECKLIST_AUTO")
End If
End Try
End Sub
Sub btnTakePicture_Click
btnTakePicture.Enabled = False
Dim ps As CameraSize
ps.Width =640'480 '1280
ps.Height =480'360 '960
camEx.SetPictureSize(ps.Width, ps.Height)
camEx.CommitParameters
camEx.TakePicture
End Sub

135
B4A/C_Historico.bas Normal file
View File

@@ -0,0 +1,135 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim g As GPS
Dim clie_id As String
Dim sDate,sTime As String
Dim usuario As String
'//Globals
Dim c As Cursor
Dim ruta As String
Dim Regresar As Button
Dim ListView1 As ListView
Dim L_CANT As Label
Dim L_TOTAL As Label
Dim borra As Button
Dim Existe As String
Dim result As String
Dim lat_gps, lon_gps As String
Private Titulo As Label
Private b_desc As Button
Private ListView2 As ListView
Private B_RMI As Button
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
ruta = File.DirInternal
Root.LoadLayout("historico")
B_RMI.Visible = True
borra.Visible = False
Titulo.Text = "Acumulado"
b_desc.Visible = False
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
L_CANT.Text =""
L_TOTAL.Text=""
c=Starter.skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
c=Starter.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")& " FECHA " &c.GetString("HVD_FECHA") )
Next
End If
If Existe <> 0 Then
c=Starter.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)")
C.Position=0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
End Sub
Sub Regresar_Click
B_RMI.Visible = False
Subs.iniciaActividad("Cliente")
End Sub
Sub B4XPage_CloseRequest As ResumableSub
Log("Vamos a Cliente")
' BACK key pressed
' Return True To close, False To cancel
Regresar_Click
' Return True
Return False
End Sub
Sub ListView2_ItemClick (Position As Int, Value As Object)
ListView2.Visible = False
ListView1.Visible = True
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
ListView2.Visible = True
ListView1.Visible = False
Dim label1 As Label
For i=0 To 20
label1 = ListView2.SingleLineLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
ListView2.AddSingleLine(i)
Next
End Sub
Sub B_RMI_Click
c=Starter.skmt.ExecQuery("select HR_CLIENTE,HR_PRONOMBRE,HR_CANT from HIST_RMI WHERE HR_CLIENTE IN (Select CUENTA from cuentaa)")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("HR_PRONOMBRE"),"Cantidad #"& c.GetString("HR_CANT") )
Next
End If
End Sub

135
B4A/C_Mapas.bas Normal file
View File

@@ -0,0 +1,135 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim GPS As GPS
Dim rp As RuntimePermissions
Dim ruta As String
'//Globals
Private gmap As GoogleMap
Private MapFragment1 As MapFragment
Dim Latitud As Double = 0
Dim Longitud As Double = 0
Dim Lat2 As Double = 0
Dim Lon2 As Double = 0
Dim p1, p2 As Location
Dim Distance As Float
Dim boton1 As Button
Dim c As Cursor
Dim latmarker As String
Dim longmarker As String
Private l_long As Label
Private l_lat As Label
Private NOMBRE_TIENDA As String
Dim logger As Boolean = True
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("mapas")
If MapFragment1.IsGooglePlayServicesAvailable = False Then
ToastMessageShow("Please install Google Play Services.", True)
End If
'Boton velocidad'
boton1.Initialize(0)
boton1.Text = 0 &" "&"km/h"
boton1.TextColor = Colors.Red
boton1.TextSize = 15
Root.AddView(boton1, 40%x, 5dip, 25%x, 40dip)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
Log("INICIAMOS MAPAS")
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
gmap.MyLocationEnabled = Result
GPS.Initialize("GPS")
If GPS.GPSEnabled = False Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(GPS.LocationSettingsIntent)
Else
GPS.Start(0, 0)
End If
latmarker = B4XPages.MainPage.cliente.LATITUD
longmarker = B4XPages.MainPage.cliente.LONGITUD
NOMBRE_TIENDA = B4XPages.MainPage.cliente.NOMBRE
If logger Then Log($"lat=${latmarker}, lon=${longmarker}"$)
If logger Then Log(gmap)
If gmap.IsInitialized And gmap.MyLocationEnabled Then
gmap.Clear
MapFragment1_Ready
End If
If Not(Starter.Logger) Then logger = False
End Sub
Sub B4XPage_CloseRequest As ResumableSub
Log("Vamos a Cliente")
' BACK key pressed
' Return True To close, False To cancel
Subs.iniciaActividad("Cliente")
' Return True
Return False
End Sub
Sub MapFragment1_Ready
' LogColor("MapReady", Colors.red)
gmap = MapFragment1.GetMap
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
gmap.MyLocationEnabled = Result
gmap.Clear
Dim JavaMapsObject As JavaObject
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
'marcadores
If latmarker = "null" Or latmarker = Null Or latmarker = "" Then 'Zocalo
latmarker = "19.432568527069805"
longmarker = "-99.13335030112772"
End If
If logger Then Log($"lat=${latmarker}, lon=${longmarker}"$)
Dim marcador1 As Marker = gmap.AddMarker(latmarker, longmarker, "TIENDA")
marcador1.Snippet = B4XPages.MainPage.cliente.NOMBRE
'Tienda 1
'posicion inicial
Dim aa As CameraPosition
aa.Initialize(latmarker, longmarker,15)''' RECOMENDABLE CAMBIAR A 10 SI ES MAS DE 1 MARCADOR
gmap.AnimateCamera(aa)
End Sub
Sub GPS_LocationChanged (Parametro As Location)
Dim sp As Int
sp = Ceil(Parametro.Speed * 3.6)
boton1.Text = sp &" "&"km/h"
Latitud = Parametro.Latitude
Longitud = Parametro.Longitude
p2.Initialize2(Latitud,Longitud)
p1.Initialize2(Lat2, Lon2)
Distance = p1.DistanceTo(p2)
End Sub
Sub Activity_Pause (UserClosed As Boolean)
GPS.Stop
End Sub
Sub reg_Click
Subs.iniciaActividad("Cliente")
End Sub

120
B4A/C_NoVenta.bas Normal file
View File

@@ -0,0 +1,120 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim g As GPS
Dim ruta As String
' Dim skmt As SQL
Dim c As Cursor
Dim t3 As Timer
'// Globals
Dim CANCELA As Button
Dim GUARDA As Button
Dim r_1 As RadioButton
Dim r_2 As RadioButton
Dim r_3 As RadioButton
Dim e_comm As EditText
Dim motivo As String
Dim cuenta As String
Dim usuario As String
Dim sDate,sTime As String
Dim lat_gps, lon_gps As String
Dim CUANTOS As String
Dim r_4 As RadioButton
Private ImageView1 As ImageView
Private ImageView2 As ImageView
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("noventa")
ruta = File.DirInternal
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
e_comm.Text=""
lat_gps = 0
lon_gps = 0
res_gps
End Sub
Sub res_gps
GUARDA.Visible = False
t3.Initialize("T3", 5000) ' 1000 = 1 second
t3.Enabled = True
Wait For t3_tick
GUARDA.Visible = True
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
End Sub
Sub CANCELA_Click
Subs.iniciaActividad("Cliente")
End Sub
Sub GUARDA_Click
If r_1.Checked Then
motivo = "CERRADO"
Else If r_2.Checked Then
motivo = "NO COMPRA"
Else If r_3.Checked Then
motivo = "CON PRODUCTO"
Else
motivo = "NO ESTA EL ENCARGADO"
End If
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("select CUENTA from cuentaa")
c.Position = 0
cuenta = c.GetString("CUENTA")
c=Starter.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
c=Starter.skmt.ExecQuery("select PE_PROID,PE_CANT 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 cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Next
End If
If lat_gps = 0 Then
c=Starter.skmt.ExecQuery("select count(*) as CUANTOS from HIST_GPS")
c.Position =0
CUANTOS = c.GetString("CUANTOS")
c.Close
If CUANTOS > 0 Then
c=Starter.skmt.ExecQuery("SELECT HGLAT as HGLAT, HGLON as HGLON FROM HIST_GPS")
c.Position=0
lon_gps = c.GetString("HGLON")
lat_gps = c.GetString("HGLAT")
c.Close
End If
End If
Starter.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
Starter.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
Starter.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, motivo,e_comm.text,Starter.lat_gps,Starter.lon_gps))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
' StartActivity(seleccion)
B4XPages.ShowPage("Principal")
' Activity.Finish
End Sub

434
B4A/C_Nota.bas Normal file
View File

@@ -0,0 +1,434 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Mods 'Ignore
'2023/05/11 - Se modifico "ListView1_ItemLongClick" para que si al borrar un producto de la nota, el total es negativo, entonces se borren todos los RMIs de la orden.
End Sub
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim clie_id As String
Dim sDate,sTime As String
Dim usuario As String
'//Globals
Dim c,C_DOE As Cursor
Dim C1 As Cursor
Dim ruta As String
Dim Regresar As Button
Dim ListView1 As ListView
Dim L_CANT As Label
Dim L_TOTAL As Label
Dim borra As Button
Dim Existe As String
Dim result As String
Dim lat_gps, lon_gps As String
Private Titulo As Label
Private b_desc As Button
Dim DESCUENTO As String
Dim folio As String
Dim TIPO As String
Private CAMBIOS As String
Dim logger As Boolean = True
Private B_PEDIDO_DOE As Button
Private ListView3 As ListView
Private L_CANT_D As Label
Private L_TOTAL_D As Label
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
If Not(Starter.Logger) Then logger = False
Root = Root1
'load the layout to Root
ruta = File.DirInternal
Root.LoadLayout("nota")
borra.Visible = True
Titulo.Text = "Pedido Actual"
Starter.skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
c=Starter.skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 13
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 12
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PE_PRONOMBRE"),"Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO"))
folio = c.GetString("PE_FOLIO")
Next
End If
If Existe <> 0 Then
c=Starter.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
C.Position=0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
End If
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE"))
c.Position = 0
ListView1.Visible = True
L_CANT.Visible = True
L_TOTAL.Visible = True
ListView3.Visible = False
L_CANT_D.Visible = False
L_TOTAL_D.Visible = False
If c.GetString("CUANTOS") > 0 Then
B_PEDIDO_DOE.Text = "PEDIDO DON TOÑO"
B_PEDIDO_DOE.VISIBLE = True
C_DOE=Starter.skmt.ExecQuery2("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc", Array As String("DOE"))
ListView3.Clear
If C_DOE.RowCount>0 Then
For i=0 To C_DOE.RowCount -1
C_DOE.Position=i
Private txtPromo As String = ""
If C_DOE.GetString("PE_COSTO_TOT") < 0.02 And C_DOE.GetString("PE_COSTO_TOT") >= 0 Then txtPromo = "P - "
If C_DOE.GetString("PE_COSTO_TOT") < 0 Then txtPromo = "RMI - "
Dim label1 As Label
label1 = ListView3.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView3.TwoLinesLayout.SecondLabel
label2.TextSize = 12
label2.TextColor = Colors.Black
ListView3.AddTwoLines(C_DOE.GetString("PE_PRONOMBRE"),txtPromo & "Cantidad #"& C_DOE.GetString("PE_CANT")& " SubTotal $"& C_DOE.GetString("PE_COSTO_TOT")& " Folio "& C_DOE.GetString("PE_FOLIO"))
folio = C_DOE.GetString("PE_FOLIO")
Next
End If
C_DOE.Close
C_DOE=Starter.skmt.ExecQuery2("select sum(pe_cant) AS CANTIDAD, sum(pe_costo_tot) AS MONTO from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE"))
C_DOE.Position=0
L_CANT_D.Text = C_DOE.GetString("CANTIDAD")
L_TOTAL_D.Text = C_DOE.GetString("MONTO")
c.Close
Else
B_PEDIDO_DOE.VISIBLE = False
End If
c=Starter.skmt.ExecQuery("select count(*) as CUANTOS from kmt_info where (impresion = 1 or cat_cl_codigo in (select ci_cuenta from cliente_impreso)) and CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
c.Position = 0
If logger Then Log($"Impreso: ${c.GetString("CUANTOS")}"$)
If c.GetString("CUANTOS") > 0 Then
borra.Visible = False
Else
borra.Visible = True
End If
If Subs.clienteActual = "0" Then borra.Visible = True 'Si el cliente actual es "abordo" entonces SIEMPRE lo dejamos modificar la venta.
c.Close
L_CANT.Text =""
L_TOTAL.Text=""
Starter.skmt.ExecNonQuery("update pedido set pe_folio = 0 where pe_folio is null")
c=Starter.skmt.ExecQuery("select count(*) as EXISTE from pedido_cliente WHERE pc_cliente IN (Select CUENTA from cuentaa)")
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
c=Starter.skmt.ExecQuery2("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc", Array As String("DOE"))
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Private txtPromo As String = ""
If c.GetString("PE_COSTO_TOT") < 0.02 And c.GetString("PE_COSTO_TOT") >= 0 Then txtPromo = "P - "
If c.GetString("PE_COSTO_TOT") < 0 Then txtPromo = "RMI - "
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 12
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PE_PRONOMBRE"),txtPromo & "Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO"))
folio = c.GetString("PE_FOLIO")
Next
End If
If Existe <> 0 Then
c=Starter.skmt.ExecQuery2("select sum(pe_cant) AS CANTIDAD, sum(pe_costo_tot) AS MONTO from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> ?", Array As String("DOE"))
C.Position=0
L_CANT.Text = c.GetString("CANTIDAD")
L_TOTAL.Text = c.GetString("MONTO")
c.Close
c=Starter.skmt.ExecQuery("select SUM(IFNULL(PE_DESC,0)) AS DESCUENTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
b_desc.Visible = False
End If
c=Starter.skmt.ExecQuery("select count(*) As CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position = 0
If c.GetString("CUANTOS") = 0 Then
folio = 0
Else
C1=Starter.skmt.ExecQuery("SELECT SUM(ifnull(PE_FOLIO,0)) AS FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
C1.Position = 0
folio = C1.GetString("FOLIO")
If C1.GetString("FOLIO") > 0 Then
folio = 100
End If
End If
c.Close
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
End Sub
Sub Regresar_Click
Subs.iniciaActividad("Cliente")
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
Subs.iniciaActividad("Cliente")
'Return True
End If
' Returning False signals the system to handle the key
Return False
End Sub
Sub borra_Click
If folio = "0" Or Subs.clienteActual = "0" Then 'Si el folio es 0 o el cliente actual es "abordo", los deja borrar. - Mod por CHV 220512
result = Msgbox2("Seguro que desea borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c=Starter.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_TIPO 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
TIPO = c.GetString("PE_TIPO")
If c.GetString("PE_TIPO") = "VENTA" Then
Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Else
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
End If
Next
End If
Starter.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
Starter.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
B4XPage_Appear
End If
Else
Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
End If
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
c=Starter.skmt.ExecQuery("select count(*) as CUANTOS from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
c.Position = 0
If c.GetString("CUANTOS") = 0 Or Subs.clienteActual = "0" Then 'Si la venta no está impresa o es abordo entonces continuamos ...
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS, sum(PE_COSTO_TOT) as sumaRMIs FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
c.Position = 0
CAMBIOS = c.GetString("CUANTOS")
c.Close
c=Starter.skmt.ExecQuery2("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_PRONOMBRE = ? order by PE_PRONOMBRE asc", Array As String(Value) )
c.Position = 0
If c.GetString("PE_FOLIO") = "0" Or Subs.clienteActual = "0" Then
result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> ? ", Array As String(Value, "DOE"))
c.Position=0
TIPO = c.GetString("PE_TIPO")
If c.GetString("PE_TIPO") = "VENTA" Then
Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Else
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
End If
c.Close
If TIPO = "VENTA" Then
c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod2 where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
Else
c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
End If
c.Position=0
If c.GetString("CUANTOS") > 0 Then
Starter.skmt.ExecNonQuery2("delete from pedido where pe_folio = 0 and pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) and pe_cedis <> ?", Array As Object(Value, "DOE"))
Else
Starter.skmt.ExecNonQuery2("delete from pedido where pe_folio = 0 and pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> ?", Array As Object(Value, "DOE"))
End If
'Borramos RMIs si la venta es menor que los RMIs
Private x2 As Cursor = Starter.skmt.ExecQuery2("select sum(PE_COSTO_TOT) as sumaRMIs FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
Private x As Cursor = Starter.skmt.ExecQuery2("select sum(PE_COSTO_TOT) as sumaNoRMIs FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
x.Position = 0
x2.Position = 0
Private sumaRMIs = 0
Private sumaNoRMIs = 0
If x2.GetString("sumaRMIs") <> Null Then sumaRMIs = x2.GetString("sumaRMIs")
If x.GetString("sumaNoRMIs") <> Null Then sumaNoRMIs = x.GetString("sumaNoRMIs")
LogColor($"${x2.GetString("sumaRMIs")}, ${x.GetString("sumaNoRMIs")}"$, Colors.Magenta)
If (sumaRMIs + sumaNoRMIs) >= 0 Then
Log("No borrar RMIs")
Else
Log("Borrar RMIs")
Starter.skmt.ExecNonQuery2("delete FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
End If
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Else
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
B4XPage_Appear
End If
Else
Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
End If
Else
ToastMessageShow("Esta venta ya esta impresa, no se puede editar ni borrar.", False)
End If
End Sub
Sub b_desc_Click
If DESCUENTO = "MENOS" Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
result = Msgbox2("Seguro que desea dar descuento del 5%?","Dar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
Starter.skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT * .95, PE_DESC = 5 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
c.Close
B4XPage_Appear
End If
ELSE IF DESCUENTO = "MAS" Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
result = Msgbox2("Seguro que desea CANCELAR el descuento?","Cancelar descuento", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
Starter.skmt.ExecNonQuery("UPDATE pedido SET PE_COSTO_TOT = PE_COSTO_TOT / .95, PE_DESC = 0 WHERE PE_CLIENTE In (select cuenta from cuentaa)")
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
If logger Then LogColor($"Insertamos coordenadas en pedido: ${Starter.lon_gps}, ${Starter.lat_gps}"$, Colors.Magenta)
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps))
c.Close
B4XPage_Appear
End If
End If
End Sub
Private Sub B_PEDIDO_DOE_Click
If B_PEDIDO_DOE.Text = "PEDIDO DON TOÑO" Then
ListView1.Visible = False
L_CANT.Visible = False
L_TOTAL.Visible = False
B_PEDIDO_DOE.Text = "PEDIDO NORMAL"
ListView3.Visible = True
L_CANT_D.Visible = True
L_TOTAL_D.Visible = True
Else
ListView1.Visible = True
B_PEDIDO_DOE.Text = "PEDIDO DON TOÑO"
ListView3.Visible = False
L_CANT_D.Visible = False
L_TOTAL_D.Visible = False
L_CANT.Visible = True
L_TOTAL.Visible = True
End If
End Sub
Private Sub ListView3_ItemLongClick (Position As Int, Value As Object)
c=Starter.skmt.ExecQuery("select count(*) as CUANTOS from kmt_info where (impresion = 1 or cat_cl_codigo in (select ci_cuenta from cliente_impreso)) and CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
c.Position = 0
If logger Then Log($"Impreso: ${c.GetString("CUANTOS")}"$)
If c.GetString("CUANTOS") > 0 Then
ToastMessageShow("Esta venta ya esta impresa, no se puede editar ni borrar.", False)
Else
If folio = "0" Or Subs.clienteActual = "0" Then 'Si el folio es 0 o el cliente actual es "abordo", los deja borrar. - Mod por CHV 220512
result = Msgbox2("Seguro que desea borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE"))
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
TIPO = c.GetString("PE_TIPO")
If c.GetString("PE_TIPO") = "VENTA" Then
Starter.skmt.ExecNonQuery2("update cat_gunaprod2 set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
Else
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
End If
Next
End If
Starter.skmt.ExecNonQuery2("delete from pedido where pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As Object("DOE"))
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
B4XPage_Appear
End If
Else
Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
End If
End If
End Sub

88
B4A/C_NuevoCliente.bas Normal file
View File

@@ -0,0 +1,88 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
'//Process Globals
Dim g As GPS
Dim ruta As String
Dim c As Cursor
Dim C2 As Cursor
'//Globals
Dim CANCELA As Button
Dim GUARDA As Button
Dim cuenta As String
Dim usuario As String
Dim sDate,sTime As String
Dim lat_gps, lon_gps As String
Dim no_cliente As String
Dim no_ruta As String
Dim r_4 As RadioButton
Dim E_NOMBRE As EditText
Dim ALMACEN As String
Dim DIA_VISITA As String
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("nuevocliente")
ruta = File.DirInternal
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
E_NOMBRE.Text = ""
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' lat_gps=Location1.ConvertToSeconds(Location1.Latitude)
' lon_gps=Location1.ConvertToSeconds(Location1.Longitude)
End Sub
Sub CANCELA_Click
B4XPages.ShowPage("Principal")
End Sub
Sub GUARDA_Click
If E_NOMBRE.Text = "" Then
ToastMessageShow("Se tiene que nombrar la tienda para continuar" , True)
Else
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.Timeformat = "HHmmss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("select CAT_CL_RUTA ,CAT_CL_DIAS_VISITA FROM kmt_info WHERE CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA')")
c.Position=0
no_ruta= c.GetString("CAT_CL_RUTA")
DIA_VISITA=c.GetString("CAT_CL_DIAS_VISITA")
'Aqui creamos manualmete la hora con el separador de los 2 puntos porque en algunas versiones de android no respeta el formato "Timeformat = 'HH:mm:ss'"
Private hora As String = sTime.SubString2(0,2)
Private mins As String = sTime.SubString2(2,4)
Private segs As String = sTime.SubString(4)
Private sTime2 As String = hora&":"&mins&":"&segs
Log("////////////// sTime: "&sTime&" ////////////////")
no_cliente= "N" & sTime2 & no_ruta
c.Close
C2=Starter.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
C2.Position=0
ALMACEN= C2.GetString("ID_ALMACEN")
C2.Close
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_DIAS_VISITA,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO, gestion,CAT_CL_BFACTURA,IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,1000000,0) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,DIA_VISITA,"new","null","null","null","null","null","null","null","null","NULL","NULL","null","0",Starter.lon_gps,Starter.lat_gps))
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente))
Subs.iniciaActividad("Cliente")
End If
End Sub

24
B4A/C_Pedidos.bas Normal file
View File

@@ -0,0 +1,24 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.

3189
B4A/C_Principal.bas Normal file

File diff suppressed because it is too large Load Diff

1506
B4A/C_Productos.bas Normal file

File diff suppressed because it is too large Load Diff

24
B4A/C_Promos.bas Normal file
View File

@@ -0,0 +1,24 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.

131
B4A/C_TicketsDia.bas Normal file
View File

@@ -0,0 +1,131 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim c As Cursor
Dim ruta As String
Dim ListView1 As ListView
Dim b_noventa As Button
Dim nombre_boton As String
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
ruta = File.DirInternal
Root.LoadLayout("ticketsDia")
c=Starter.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
Next
End If
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
nombre_boton = "NOVENTA"
c=Starter.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cant. #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
Next
End If
c.Close
End Sub
Sub Regresar_Click
B4XPages.ShowPage("Cliente")
End Sub
Sub Activity_KeyPress (key As Int) As Boolean
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
' I want to capture the key here so I return True
B4XPages.ShowPage("Principal")
'Return True
End If
' Returning False signals the system to handle the key
Return False
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
Subs.iniciaActividad("Cliente")
End Sub
Sub b_noventa_Click
If nombre_boton = "NOVENTA" Then
nombre_boton = "VENTA"
b_noventa.Text ="VENTA"
c=Starter.skmt.ExecQuery("select NV_CLIENTE,NV_MOTIVO,NV_COMM, (select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = NV_CLIENTE ) as NOMBRE FROM NOVENTA ORDER BY NV_CLIENTE asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("NV_CLIENTE"),c.GetString("NOMBRE") &" Motivo #"& c.GetString("NV_MOTIVO")& " Comentario $"& c.GetString("NV_COMM"))
Next
End If
Else
nombre_boton = "NOVENTA"
b_noventa.Text ="NO VENTA"
c=Starter.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
Next
End If
c.Close
End If
End Sub

24
B4A/C_updateAvailable.bas Normal file
View File

@@ -0,0 +1,24 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.

293
B4A/CameraExClass.bas Normal file
View File

@@ -0,0 +1,293 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=6.8
@EndOfDesignText@
'Class module
'version 1.20
'See this page for the list of constants:
'http://developer.android.com/intl/fr/reference/android/hardware/Camera.Parameters.html
'Note that you should use the constant values instead of the names.
Sub Class_Globals
Private nativeCam As Object
Private cam As Camera
Private r As Reflector
Private target As Object
Private event As String
Public Front As Boolean
Type CameraInfoAndId (CameraInfo As Object, Id As Int)
Type CameraSize (Width As Int, Height As Int)
Private parameters As Object
End Sub
Public Sub Initialize (Panel1 As Panel, FrontCamera As Boolean, TargetModule As Object, EventName As String)
target = TargetModule
event = EventName
Front = FrontCamera
Dim id As Int
id = FindCamera(Front).id
If id = -1 Then
Front = Not(Front) 'try different camera
id = FindCamera(Front).id
If id = -1 Then
ToastMessageShow("No camera found.", True)
Return
End If
End If
cam.Initialize2(Panel1, "camera", id)
End Sub
Private Sub FindCamera (frontCamera As Boolean) As CameraInfoAndId
Dim ci As CameraInfoAndId
Dim cameraInfo As Object
Dim cameraValue As Int
If frontCamera Then cameraValue = 1 Else cameraValue = 0
cameraInfo = r.CreateObject("android.hardware.Camera$CameraInfo")
Dim numberOfCameras As Int = r.RunStaticMethod("android.hardware.Camera", "getNumberOfCameras", Null, Null)
For i = 0 To numberOfCameras - 1
r.RunStaticMethod("android.hardware.Camera", "getCameraInfo", Array As Object(i, cameraInfo), _
Array As String("java.lang.int", "android.hardware.Camera$CameraInfo"))
r.target = cameraInfo
If r.GetField("facing") = cameraValue Then 'ignore
ci.cameraInfo = r.target
ci.Id = i
Return ci
End If
Next
ci.id = -1
Return ci
End Sub
Private Sub SetDisplayOrientation
r.target = r.GetActivity
r.target = r.RunMethod("getWindowManager")
r.target = r.RunMethod("getDefaultDisplay")
r.target = r.RunMethod("getRotation")
Dim previewResult, result, degrees As Int = r.target * 90
Dim ci As CameraInfoAndId = FindCamera(Front)
r.target = ci.CameraInfo
Dim orientation As Int = r.GetField("orientation")
If Front Then
previewResult = (orientation + degrees) Mod 360
result = previewResult
previewResult = (360 - previewResult) Mod 360
Else
previewResult = (orientation - degrees + 360) Mod 360
result = previewResult
' Log(previewResult)
End If
r.target = nativeCam
r.RunMethod2("setDisplayOrientation", previewResult, "java.lang.int")
r.target = parameters
r.RunMethod2("setRotation", result, "java.lang.int")
CommitParameters
End Sub
Private Sub Camera_Ready (Success As Boolean)
If Success Then
r.target = cam
nativeCam = r.GetField("camera")
r.target = nativeCam
parameters = r.RunMethod("getParameters")
SetDisplayOrientation
Else
Log("success = false, " & LastException)
End If
CallSub2(target, event & "_ready", Success)
End Sub
Sub Camera_Preview (Data() As Byte)
If SubExists(target, event & "_preview") Then
CallSub2(target, event & "_preview", Data)
End If
End Sub
Public Sub TakePicture
cam.TakePicture
End Sub
Private Sub Camera_PictureTaken (Data() As Byte)
CallSub2(target, event & "_PictureTaken", Data)
End Sub
Public Sub StartPreview
cam.StartPreview
End Sub
Public Sub StopPreview
cam.StopPreview
End Sub
Public Sub Release
cam.Release
End Sub
'Saves the data received from PictureTaken event
Public Sub SavePictureToFile(Data() As Byte, Dir As String, FileName As String)
Dim out As OutputStream = File.OpenOutput(Dir, FileName, False)
out.WriteBytes(Data, 0, Data.Length)
out.Close
End Sub
Public Sub SetParameter(Key As String, Value As String)
r.target = parameters
r.RunMethod3("set", Key, "java.lang.String", Value, "java.lang.String")
End Sub
Public Sub GetParameter(Key As String) As String
r.target = parameters
Return r.RunMethod2("get", Key, "java.lang.String")
End Sub
Public Sub CommitParameters
Try
r.target = nativeCam
r.RunMethod4("setParameters", Array As Object(parameters), Array As String("android.hardware.Camera$Parameters"))
Catch
ToastMessageShow("Error setting parameters.", True)
Log(LastException)
End Try
End Sub
Public Sub GetColorEffect As String
Return GetParameter("effect")
End Sub
Public Sub SetColorEffect(Effect As String)
SetParameter("effect", Effect)
End Sub
Public Sub GetSupportedPicturesSizes As CameraSize()
r.target = parameters
Dim list1 As List = r.RunMethod("getSupportedPictureSizes")
Dim cs(list1.Size) As CameraSize
For i = 0 To list1.Size - 1
r.target = list1.Get(i)
cs(i).Width = r.GetField("width")
cs(i).Height = r.GetField("height")
Next
Return cs
End Sub
Public Sub SetPictureSize(Width As Int, Height As Int)
r.target = parameters
r.RunMethod3("setPictureSize", Width, "java.lang.int", Height, "java.lang.int")
End Sub
Public Sub SetJpegQuality(Quality As Int)
r.target = parameters
r.RunMethod2("setJpegQuality", Quality, "java.lang.int")
End Sub
Public Sub SetFlashMode(Mode As String)
r.target = parameters
r.RunMethod2("setFlashMode", Mode, "java.lang.String")
End Sub
Public Sub GetFlashMode As String
r.target = parameters
Return r.RunMethod("getFlashMode")
End Sub
Public Sub GetSupportedFlashModes As List
r.target = parameters
Return r.RunMethod("getSupportedFlashModes")
End Sub
Public Sub GetSupportedColorEffects As List
r.target = parameters
Return r.RunMethod("getSupportedColorEffects")
End Sub
Public Sub GetPreviewSize As CameraSize
r.target = parameters
r.target = r.RunMethod("getPreviewSize")
Dim cs As CameraSize
cs.Width = r.GetField("width")
cs.Height = r.GetField("height")
Return cs
End Sub
Public Sub GetPictureSize As CameraSize
r.target = parameters
r.target = r.RunMethod("getPictureSize")
Dim cs As CameraSize
cs.Width = r.GetField("width")
cs.Height = r.GetField("height")
Return cs
End Sub
'Converts a preview image formatted in YUV format to JPEG.
'Note that you should not save every preview image as it will slow down the whole process.
Public Sub PreviewImageToJpeg(data() As Byte, quality As Int) As Byte()
Dim size, previewFormat As Object
r.target = parameters
size = r.RunMethod("getPreviewSize")
previewFormat = r.RunMethod("getPreviewFormat")
r.target = size
Dim width = r.GetField("width"), height = r.GetField("height") As Int
Dim yuvImage As Object = r.CreateObject2("android.graphics.YuvImage", _
Array As Object(data, previewFormat, width, height, Null), _
Array As String("[B", "java.lang.int", "java.lang.int", "java.lang.int", "[I"))
r.target = yuvImage
Dim rect1 As Rect
rect1.Initialize(0, 0, r.RunMethod("getWidth"), r.RunMethod("getHeight"))
Dim out As OutputStream
out.InitializeToBytesArray(100)
r.RunMethod4("compressToJpeg", Array As Object(rect1, quality, out), _
Array As String("android.graphics.Rect", "java.lang.int", "java.io.OutputStream"))
Return out.ToBytesArray
End Sub
Public Sub GetSupportedFocusModes As List
r.target = parameters
Return r.RunMethod("getSupportedFocusModes")
End Sub
Public Sub SetContinuousAutoFocus
Dim modes As List = GetSupportedFocusModes
If modes.IndexOf("continuous-picture") > -1 Then
SetFocusMode("continuous-picture")
Else If modes.IndexOf("continuous-video") > -1 Then
SetFocusMode("continuous-video")
Else
Log("Continuous focus mode is not available")
End If
End Sub
Public Sub SetFocusMode(Mode As String)
r.target = parameters
r.RunMethod2("setFocusMode", Mode, "java.lang.String")
End Sub
Public Sub GetFocusDistances As Float()
Dim F(3) As Float
r.target = parameters
r.RunMethod4("getFocusDistances", Array As Object(F), Array As String("[F"))
Return F
End Sub
'This method should only be called if you need to immediately release the camera.
'For example if you need to start another application that depends on the camera.
Public Sub CloseNow
cam.Release
r.target = cam
r.RunMethod2("releaseCameras", True, "java.lang.boolean")
End Sub
'Calls AutoFocus and then takes the picture if focus was successfull.
Public Sub FocusAndTakePicture
cam.AutoFocus
End Sub
Private Sub Camera_FocusDone (Success As Boolean)
If Success Then
TakePicture
Else
Log("AutoFocus error.")
End If
End Sub

270
B4A/DBRequestManager.bas Normal file
View File

@@ -0,0 +1,270 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=6.8
@EndOfDesignText@
''Class module
Sub Class_Globals
Private mTarget As Object
Type DBResult (Tag As Object, Columns As Map, Rows As List)
Type DBCommand (Name As String, Parameters() As Object)
Private link As String
Private bc As ByteConverter
Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
Private VERSION As Float = 0.9
Private tempArray(1) As Object
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
End Sub
'Target - The module that handles JobDone (usually Me).
'ConnectorLink - URL of the Java server.
Public Sub Initialize (Target As Object, ConnectorLink As String)
mTarget = Target
link = ConnectorLink
End Sub
'Sends a query request.
'Command - Query name and parameters.
'Limit - Maximum rows to return or 0 for no limit.
'Tag - An object that will be returned in the result.
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
Dim j As HttpJob
Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag)
WriteObject(Command.Name, out2)
WriteInt(Limit, out2)
WriteList(Command.Parameters, out2)
out2.Close
j.PostBytes(link & "?method=query", ms.ToBytesArray)
End Sub
'Executes a batch of (non-select) commands.
'ListOfCommands - List of the commands that will be executes.
'Tag - An object that will be returned in the result.
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
Dim j As HttpJob
Dim ms As OutputStream
Dim out2 As OutputStream = StartJob(j,ms, Tag)
WriteInt(ListOfCommands.Size, out2)
For Each Command As DBCommand In ListOfCommands
WriteObject(Command.Name, out2)
WriteList(Command.Parameters, out2)
Next
out2.Close
j.PostBytes(link & "?method=batch", ms.ToBytesArray)
End Sub
'Similar to ExecuteBatch. Sends a single command.
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
ExecuteBatch(Array As DBCommand(Command), Tag)
End Sub
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
j.Initialize("DBRequest", mTarget)
j.Tag = Tag
MemoryStream.InitializeToBytesArray(0)
Dim compress As CompressedStreams
Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip")
WriteObject(VERSION, out)
Return out
End Sub
Private Sub WriteList(Parameters As List, out As OutputStream)
Dim data() As Byte
If Parameters = Null Or Parameters.IsInitialized = False Then
Dim Parameters As List
Parameters.Initialize
End If
data = bc.IntsToBytes(Array As Int(Parameters.Size))
out.WriteBytes(data, 0, data.Length)
For Each o As Object In Parameters
WriteObject(o, out)
Next
End Sub
Private Sub WriteObject(o As Object, out As OutputStream)
Dim data() As Byte
tempArray(0) = o
If tempArray(0) = Null Then
out.WriteBytes(Array As Byte(T_NULL), 0, 1)
Else If tempArray(0) Is Short Then
out.WriteBytes(Array As Byte(T_SHORT), 0, 1)
data = bc.ShortsToBytes(Array As Short(o))
Else If tempArray(0) Is Int Then
out.WriteBytes(Array As Byte(T_INT), 0, 1)
data = bc.IntsToBytes(Array As Int(o))
Else If tempArray(0) Is Float Then
out.WriteBytes(Array As Byte(T_FLOAT), 0, 1)
data = bc.FloatsToBytes(Array As Float(o))
Else If tempArray(0) Is Double Then
out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1)
data = bc.DoublesToBytes(Array As Double(o))
Else If tempArray(0) Is Long Then
out.WriteBytes(Array As Byte(T_LONG), 0, 1)
data = bc.LongsToBytes(Array As Long(o))
Else If tempArray(0) Is Boolean Then
out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1)
Dim b As Boolean = 0
Dim data(1) As Byte
If b Then data(0) = 1 Else data(0) = 0
Else If GetType(tempArray(0)) = "[B" Then
data = o
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
WriteInt(data.Length, out)
Else 'If o Is String Then (treat all other values as string)
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
data = bc.StringToBytes(o, "UTF8")
WriteInt(data.Length, out)
End If
If data.Length > 0 Then out.WriteBytes(data, 0, data.Length)
End Sub
Private Sub ReadObject(In As InputStream) As Object
Dim data(1) As Byte
In.ReadBytes(data, 0, 1)
Select data(0)
Case T_NULL
Return Null
Case T_SHORT
Dim data(2) As Byte
Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0)
Case T_INT
Dim data(4) As Byte
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
Case T_LONG
Dim data(8) As Byte
Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0)
Case T_FLOAT
Dim data(4) As Byte
Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0)
Case T_DOUBLE
Dim data(8) As Byte
Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0)
Case T_BOOLEAN
Dim b As Byte = ReadByte(In)
Return b = 1
Case T_BLOB
Dim len As Int = ReadInt(In)
Dim data(len) As Byte
Return ReadBytesFully(In, data, data.Length)
Case Else
Dim len As Int = ReadInt(In)
Dim data(len) As Byte
ReadBytesFully(In, data, data.Length)
Return BytesToString(data, 0, data.Length, "UTF8")
End Select
End Sub
Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte()
Dim count = 0, read As Int
Do While count < Len And read > -1
read = In.ReadBytes(Data, count, Len - count)
count = count + read
Loop
Return Data
End Sub
Private Sub WriteInt(i As Int, out As OutputStream)
Dim data() As Byte
data = bc.IntsToBytes(Array As Int(i))
out.WriteBytes(data, 0, data.Length)
End Sub
Private Sub ReadInt(In As InputStream) As Int
Dim data(4) As Byte
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
End Sub
Private Sub ReadByte(In As InputStream) As Byte
Dim data(1) As Byte
In.ReadBytes(data, 0, 1)
Return data(0)
End Sub
'Handles the Job result and returns a DBResult.
Public Sub HandleJob(Job As HttpJob) As DBResult
Dim start As Long = DateTime.Now 'ignore
Dim In As InputStream = Job.GetInputStream
Dim cs As CompressedStreams
In = cs.WrapInputStream(In, "gzip")
Dim serverVersion As Float = ReadObject(In) 'ignore
Dim method As String = ReadObject(In)
Dim table As DBResult
table.Initialize
table.Columns.Initialize
table.rows.Initialize
table.Tag = Job.Tag
If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109
jobTagAnterior = Job.Tag 'Mod por CHV - 211109
If method = "query" Then
Dim numberOfColumns As Int = ReadInt(In)
For i = 0 To numberOfColumns - 1
table.Columns.Put(ReadObject(In), i)
Next
Do While ReadByte(In) = 1
Dim rowObjects(numberOfColumns) As Object
table.rows.Add(rowObjects)
For col = 0 To numberOfColumns - 1
Dim o As Object = ReadObject(In)
rowObjects(col) = o
Next
Loop
Else If method = "batch" Then
table.Columns.Put("AffectedRows", 0)
Dim rows As Int = ReadInt(In)
For i = 0 To rows - 1
table.rows.Add(Array As Object(ReadInt(In)))
Next
End If
In.Close
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
Return table
End Sub
'Reads a file and returns the file as a bytes array.
Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
Dim out As OutputStream
out.InitializeToBytesArray(0)
Dim In As InputStream = File.OpenInput(Dir, FileName)
File.Copy2(In, out)
out.Close
Return out.ToBytesArray
End Sub
'Converts an image to a bytes array (for BLOB fields).
Public Sub ImageToBytes(Image As Bitmap) As Byte()
Dim out As OutputStream
out.InitializeToBytesArray(0)
Image.WriteToStream(out, 100, "JPEG")
out.Close
Return out.ToBytesArray
End Sub
'Converts a bytes array to an image (for BLOB fields).
Public Sub BytesToImage(bytes() As Byte) As Bitmap
Dim In As InputStream
In.InitializeFromBytesArray(bytes, 0, bytes.Length)
Dim bmp As Bitmap
bmp.Initialize2(In)
Return bmp
End Sub
'Prints the table to the logs.
Public Sub PrintTable(Table As DBResult)
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
Dim sb As StringBuilder
sb.Initialize
For Each col In Table.Columns.Keys
sb.Append(col).Append(TAB)
Next
Log(sb.ToString)
For Each row() As Object In Table.Rows
Dim sb As StringBuilder
sb.Initialize
For Each record As Object In row
sb.Append(record).Append(TAB)
Next
ToastMessageShow(sb.ToString, True)
Next
End Sub

114
B4A/DownloadService.bas Normal file
View File

@@ -0,0 +1,114 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Service
Version=5.5
@EndOfDesignText@
#Region Service Attributes
#StartAtBoot: False
#End Region
Sub Process_Globals
Private jobs As Map
Private timer1 As Timer
Type DownloadData (url As String, Target As Object, EventName As String)
Type JobTag (Data As DownloadData, _
CountingStream As CountingOutputStream, Total As Long)
Private pw As PhoneWakeState
End Sub
Sub Service_Create
jobs.Initialize
timer1.Initialize("timer1", 1000)
End Sub
Sub Service_Start (StartingIntent As Intent)
End Sub
Sub Service_Destroy
End Sub
Private Sub StartTimer (Target As Object)
Dim n As Notification
n.Initialize2(n.IMPORTANCE_LOW)
n.Icon = "icon"
n.Vibrate = False
n.Sound = False
n.Light = False
n.SetInfo("Downloading file...", "", Target)
Service.StartForeground(1, n)
timer1.Enabled = True
pw.PartialLock
End Sub
Private Sub EndTimer 'ignore
Service.StopForeground(1)
timer1.Enabled = False
pw.ReleasePartialLock
End Sub
Public Sub StartDownload(data As DownloadData)
If jobs.ContainsKey(data.url) Then
Log("Ignoring duplicate request.")
Return
End If
Dim J As HttpJob
J.Initialize(data.url, Me)
Log(J)
Dim tag As JobTag
tag.Initialize
tag.data = data
Log(tag)
J.tag = tag
jobs.Put(data.url, J)
Log(jobs)
J.Download(data.url)
If timer1.Enabled = False Then StartTimer(data.Target)
End Sub
Public Sub CancelDownload(url As String)
If jobs.ContainsKey(url) = False Then
Log("Ignoring cancel request.")
Return
End If
Dim job As HttpJob = jobs.Get(url)
Dim jt As JobTag = job.Tag
If jt.CountingStream.IsInitialized Then
jt.CountingStream.Close
Else
jt.Data.url = ""
End If
End Sub
Sub timer1_tick
For Each job As HttpJob In jobs.Values
Dim jt As JobTag = job.Tag
If jt.CountingStream.IsInitialized Then
CallSub3(jt.Data.Target, jt.Data.EventName & "_Progress", _
jt.CountingStream.Count, jt.Total)
End If
Next
End Sub
Sub JobDone(job As HttpJob)
' Log("1")
' jobs.Remove(job.JobName)
' Dim jt As JobTag = job.Tag
' Log(jt)
' If jobs.Size = 0 Then EndTimer
' Log(jobs.Size)
' If job.Success Then
' Log("5-"&jt.Data.Target&"-"&jt.Data.EventName&"-"&jt.CountingStream.Count&"-"&jt.Total)
' CallSubDelayed3(jt.Data.Target, jt.Data.EventName & "_Progress", jt.CountingStream.Count, jt.Total)
' Log("6")
' CallSubDelayed2(jt.Data.Target, jt.Data.EventName & "_Complete", job)
' Log("7")
' Else
' Log(job.ErrorMessage)
' Log("8")
' CallSubDelayed2(jt.Data.Target, jt.Data.EventName & "_Complete", job)
' Log("9")
' End If
' Log("10")
End Sub

1148
B4A/EscPosPrinter.bas Normal file

File diff suppressed because it is too large Load Diff

BIN
B4A/Files/WHATSTEL.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
B4A/Files/alcancia.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
B4A/Files/alert2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

BIN
B4A/Files/alerta.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
B4A/Files/amarillo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
B4A/Files/anterior.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
B4A/Files/blacnco.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
B4A/Files/carrito.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
B4A/Files/checklist.bal Normal file

Binary file not shown.

BIN
B4A/Files/checks.bal Normal file

Binary file not shown.

BIN
B4A/Files/cliente.bal Normal file

Binary file not shown.

BIN
B4A/Files/clientes.bal Normal file

Binary file not shown.

BIN
B4A/Files/detalle_promo.bal Normal file

Binary file not shown.

BIN
B4A/Files/durakelo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
B4A/Files/durakelo1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
B4A/Files/engrane.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
B4A/Files/engrane.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
B4A/Files/errormanager.bal Normal file

Binary file not shown.

BIN
B4A/Files/fondo_kmt.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
B4A/Files/foto.bal Normal file

Binary file not shown.

BIN
B4A/Files/foto1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
B4A/Files/foto2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
B4A/Files/foto3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
B4A/Files/foto4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
B4A/Files/guardagestion.bal Normal file

Binary file not shown.

BIN
B4A/Files/guna_viejo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
B4A/Files/historico.bal Normal file

Binary file not shown.

BIN
B4A/Files/info_gral.resp Normal file

Binary file not shown.

BIN
B4A/Files/infonavit1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
B4A/Files/inventario.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
B4A/Files/inventario.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
B4A/Files/itembuttonred.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
B4A/Files/kelloggs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

BIN
B4A/Files/kelloggs2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
B4A/Files/kelloggs2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
B4A/Files/keymon_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
B4A/Files/kmt.db Normal file

Binary file not shown.

BIN
B4A/Files/login.bal Normal file

Binary file not shown.

BIN
B4A/Files/logo sanfer.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
B4A/Files/logo2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
B4A/Files/logo2_192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
B4A/Files/logo_exitus1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
B4A/Files/mainpage.bal Normal file

Binary file not shown.

BIN
B4A/Files/malo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
B4A/Files/mapa.bal Normal file

Binary file not shown.

BIN
B4A/Files/mapa_rutas.bal Normal file

Binary file not shown.

BIN
B4A/Files/mapas.bal Normal file

Binary file not shown.

BIN
B4A/Files/marker-azul-0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
B4A/Files/marker-azul-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
B4A/Files/marker-azul-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
B4A/Files/marker-azul-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Some files were not shown because too many files have changed in this diff Show More