This commit is contained in:
cvaldes1201
2024-07-22 16:27:59 -06:00
parent 17462911c3
commit 970144b626
22 changed files with 1417 additions and 34 deletions

View File

@@ -28,6 +28,7 @@ Sub Class_Globals
Dim cmd As DBCommand
Dim skmt As SQL
Public principal As C_Principal
Public checklist As C_Cheklist
Private i_engrane As ImageView
Private b_entrar As Button
Private l_version As Label
@@ -45,6 +46,7 @@ Sub Class_Globals
Dim server As String = ""
Private et_server As EditText
Private p_Main As Panel
Dim rp As RuntimePermissions
End Sub
Public Sub Initialize
@@ -57,6 +59,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root.LoadLayout("MainPage")
principal.Initialize
B4XPages.AddPage("Principal", principal)
checklist.Initialize
B4XPages.AddPage("checklist",checklist)
If File.Exists(File.DirInternal, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
End If
@@ -64,6 +68,13 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FECHA'")
Subs.guardaAppInfo
l_version.Text = Application.VersionName
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CHECKLIST2(USUARIO TEXT, PLACA TEXT, FECHA_CAPTURA TEXT, TARJETA_CIRCULACION TEXT, POLIZA_SEGURO TEXT, LICENCIA_CONDUCIR TEXT, LIMPIA_EXTERNA TEXT, LIMPIA_INTERNA TEXT, TRIANGULO TEXT, GATO TEXT, LLANTA_REFACCION TEXT, CARROCERIA TEXT, CARROCERIA_COMENTARIOS TEXT, LUCES TEXT, LUCES_COMENTARIOS TEXT, CONDICION_PLACAS TEXT, CONDICION_PLACAS_COMENTARIOS TEXT, CONDICION_LLANTAS_DEL_DER TEXT, CONDICION_LLANTAS_DEL_IZQ TEXT, CONDICION_LLANTAS_TRASERA_DER TEXT, CONDICION_LLANTAS_TRASERA_IZQ TEXT, ACEITE TEXT, ANTICONGELANTE TEXT, FRENOS TEXT, AIRE TEXT, FUGAS TEXT, COMETARIOS_FUGAS TEXT, FOTO1 BLOB, FOTO12 BLOB, FOTO3 BLOB, FOTO4 BLOB, KILIMETRAJE TEXT, RUTA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CHECADO_CHECK(CHECADO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PLACAS(PLACA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)")
Subs.agregaColumna("kmt_info","limitecredito","TEXT")
Subs.agregaColumna("kmt_info","SALDODISP","TEXT")
Subs.agregaColumna("kmt_info","BCREDITO","TEXT")
End Sub
Sub B4XPage_Appear

803
B4A/C_Cheklist.bas Normal file
View File

@@ -0,0 +1,803 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Private p_check As Panel
Private sv_datos As ScrollView
Private camEx As CameraExClass
Dim frontCamera As Boolean = False
Private p_cam As Panel
Dim nombrefoto As String = "0"
Dim nombrefoto1 As String = "0"
Dim nombrefoto2 As String = "0"
Dim nombrefoto3 As String = "0"
Private p_camara As Panel
Private teclado As IME
Dim fototomada As String
Private ImageView1 As ImageView
Private ImageView3 As ImageView
Private ImageView2 As ImageView
Private ImageView4 As ImageView
Private b_foto As Button
Dim device As Phone
Dim MES1 As ManageExternalStorage
Dim x As Int = 0
Private rb_docsi1 As RadioButton
Private rb_docno1 As RadioButton
Private rb_docsi2 As RadioButton
Private rb_docno2 As RadioButton
Private rb_docsi3 As RadioButton
Private rb_docno3 As RadioButton
Private rb_docsi4 As RadioButton
Private rb_docno4 As RadioButton
Private rb_docsi5 As RadioButton
Private rb_docno5 As RadioButton
Private rb_docsi6 As RadioButton
Private rb_docno6 As RadioButton
Private rb_docsi7 As RadioButton
Private rb_docno7 As RadioButton
Private rb_docsi8 As RadioButton
Private rb_docno8 As RadioButton
Private rb_docsi9 As RadioButton
Private rb_docno9 As RadioButton
Private rb_docsi10 As RadioButton
Private rb_docno10 As RadioButton
Private rb_docsi11 As RadioButton
Private rb_docno11 As RadioButton
Private rb_docsi12 As RadioButton
Private rb_docno12 As RadioButton
Private rb_docsi13 As RadioButton
Private rb_docno13 As RadioButton
Private rb_docsi14 As RadioButton
Private rb_docno14 As RadioButton
Private rb_docsi15 As RadioButton
Private rb_docno15 As RadioButton
Private rb_docsi16 As RadioButton
Private rb_docno16 As RadioButton
Private rb_docsi17 As RadioButton
Private rb_docno17 As RadioButton
Private rb_docsi18 As RadioButton
Private rb_docno18 As RadioButton
Private rb_docsi19 As RadioButton
Private rb_docno19 As RadioButton
Private et_carroceria As EditText
Private et_luces As EditText
Private et_placas As EditText
Private et_liquidos As EditText
Dim p1 As String
Dim p2 As String
Dim p3 As String
Dim p4 As String
Dim p5 As String
Dim p6 As String
Dim p7 As String
Dim p8 As String
Dim p9 As String
Dim p10 As String
Dim p11 As String
Dim p12 As String
Dim p13 As String
Dim p14 As String
Dim p15 As String
Dim p16 As String
Dim p17 As String
Dim p18 As String
Dim p19 As String
Private cb_izqdel As B4XComboBox
Private cb_derdel As B4XComboBox
Private cb_izqatras As B4XComboBox
Private cb_deratras As B4XComboBox
Dim itemselect1 As String
Dim itemselect2 As String
Dim itemselect3 As String
Dim itemselect4 As String
Dim foto1() As Byte
Dim foto2() As Byte
Dim foto3() As Byte
Dim foto4() As Byte
Dim c As Cursor
Dim reqManager As DBRequestManager
Private l_placa As Label
Private et_km As EditText
Private logo 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
Root.LoadLayout("checklist")
sv_datos.Height = Root.Height
sv_datos.Width = Root.Width
sv_datos.Panel.LoadLayout("check2")
sv_datos.Panel.Height = p_check.Height
p_check.Width = Root.Width
p_camara.Width = Root.Width
p_camara.Height = Root.Height
Dim items As List
items.Initialize
items.Add("100%")
items.Add("75%")
items.Add("50%")
items.Add("25%")
cb_deratras.SetItems(items)
cb_izqatras.SetItems(items)
cb_derdel.SetItems(items)
cb_izqdel.SetItems(items)
itemselect1 = "100%"
itemselect2 = "100%"
itemselect3 = "100%"
itemselect4 = "100%"
reqManager.Initialize(Me, B4XPages.MainPage.server)
End Sub
Private Sub B4XPage_Appear
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PLACA FROM PLACAS")
c.Position = 0
Log(c.GetString("PLACA"))
l_placa.Text = c.GetString("PLACA")
c.Close
B4XPages.MainPage.rp.CheckAndRequest(B4XPages.MainPage.rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
' camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
' frontCamera = camEx.Front
Log("inicializamos Camara")
Else
ToastMessageShow("No permission Camara!!!", True)
End If
MES1.Initialize(Me, "MES1")
' get the device SDK version
Dim SdkVersion As Int = device.SdkVersion
' Choose which permission to request in order to access external storgage
If SdkVersion < 30 Then
Log("SDK = " & SdkVersion & " : Requesting WRITE_EXTERNAL_STORAGE permission")
Dim rp As RuntimePermissions
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${Result}"$)
Else
Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission")
Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission)
If Not(MES1.HasPermission) Then
MsgboxAsync("Esta aplicación requiere acceso a todos los archivos, habilite la opción", "Administrar todos los archivos")
Wait For Msgbox_Result(Res As Int)
Log("Getting permission")
MES1.GetPermission
Wait For MES_StorageAvailable
End If
End If
p_camara.Visible = False
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("conpermisos para escritura")
' Else
' ToastMessageShow("No permission Escritura!!!", True)
' End If
'
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("conpermisos para escritura")
' Else
' ToastMessageShow("No permission Lectura!!!", True)
' End If
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
If p_camara.visible Then
p_camara.visible = False
StopCamera2
Else
B4XPages.ShowPage("principal")
End If
' Returning False signals the system to handle the key
Return False
End Sub
Private Sub InitializeCamera2
B4XPages.MainPage.rp.CheckAndRequest(B4XPages.MainPage.rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
Log("inicializamos Camara")
Else
ToastMessageShow("No permission Camara!!!", True)
End If
End Sub
Sub Camera1_Ready (Success As Boolean)
Log("Camara ready")
If Success Then
camEx.SetJpegQuality(90)
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
Log(camEx.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", True)
Log("Cannot open camera")
End If
End Sub
Sub Camera1_PictureTaken (Data()As Byte)
If x = 1 Then
DateTime.DateFormat="ddMMyyyyHHmmss"
nombrefoto = DateTime.Now & "_FOTO1.jpg"
teclado.HideKeyboard
fototomada = nombrefoto
Else If x = 2 Then
DateTime.DateFormat="ddMMyyyyHHmmss"
nombrefoto1 = DateTime.Now & "_FOTO2.jpg"
teclado.HideKeyboard
fototomada = nombrefoto1
Else If x = 3 Then
DateTime.DateFormat="ddMMyyyyHHmmss"
nombrefoto2 = DateTime.Now & "_FOTO3.jpg"
teclado.HideKeyboard
fototomada = nombrefoto2
Else If x = 4 Then
DateTime.DateFormat="ddMMyyyyHHmmss"
nombrefoto3 = DateTime.Now & "_FOTO4.jpg"
teclado.HideKeyboard
fototomada = nombrefoto3
End If
Log("tome foto")
Dim filename As String = fototomada
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
camEx.SavePictureToFile(Data, Dirp&Dir, filename)
camEx.StartPreview 'restart preview
' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
p_camara.Visible = False
Log(nombrefoto)
Log(nombrefoto1)
Log(nombrefoto2)
Log(nombrefoto3)
If nombrefoto <> "0" Then
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, True)
img.WriteToStream(out, 100, "PNG")
' foto1 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto)
out.Close
ImageView1.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto)
End If
If nombrefoto1 <> "0" Then
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
' foto2 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto1)
out.Close
ImageView2.Bitmap = LoadBitmap(File.DirInternal & Dir& Dir2,nombrefoto1)
End If
If nombrefoto2 <> "0" Then
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
' foto3 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto2)
out.Close
ImageView3.Bitmap = LoadBitmap(File.DirInternal & Dir& Dir2,nombrefoto2)
End If
If nombrefoto3 <> "0" Then
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
' foto4 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto3)
out.Close
ImageView4.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto3)
End If
StopCamera2
End Sub
Private Sub p_camara_Click
End Sub
Private Sub b_foto_Click
camEx.TakePicture
p_camara.Visible = False
' StopCamera2
End Sub
Private Sub StopCamera2
' Capturing = False
If camEx.IsInitialized Then
camEx.Release
End If
End Sub
Private Sub ImageView1_Click
x = 1
InitializeCamera2
p_camara.Visible = True
End Sub
Private Sub ImageView2_Click
x = 2
InitializeCamera2
p_camara.Visible = True
End Sub
Private Sub ImageView3_Click
x = 3
InitializeCamera2
p_camara.Visible = True
End Sub
Private Sub ImageView4_Click
x = 4
InitializeCamera2
p_camara.Visible = True
End Sub
Private Sub rb_docno1_CheckedChange(Checked As Boolean)
p1 = "No"
End Sub
Private Sub rb_docsi1_CheckedChange(Checked As Boolean)
p1 = "Si"
End Sub
Private Sub rb_docno2_CheckedChange(Checked As Boolean)
p2 = "No"
End Sub
Private Sub rb_docsi2_CheckedChange(Checked As Boolean)
p2 = "Si"
End Sub
Private Sub rb_docno3_CheckedChange(Checked As Boolean)
p3 = "No"
End Sub
Private Sub rb_docsi3_CheckedChange(Checked As Boolean)
p3 = "Si"
End Sub
Private Sub rb_docno4_CheckedChange(Checked As Boolean)
p4 = "No"
End Sub
Private Sub rb_docsi4_CheckedChange(Checked As Boolean)
p4 = "Si"
End Sub
Private Sub rb_docno5_CheckedChange(Checked As Boolean)
p5 = "No"
End Sub
Private Sub rb_docsi5_CheckedChange(Checked As Boolean)
p5 = "Si"
End Sub
Private Sub rb_docno6_CheckedChange(Checked As Boolean)
p6 = "No"
End Sub
Private Sub rb_docsi6_CheckedChange(Checked As Boolean)
p6 = "Si"
End Sub
Private Sub rb_docno7_CheckedChange(Checked As Boolean)
p7 = "No"
End Sub
Private Sub rb_docsi7_CheckedChange(Checked As Boolean)
p7 = "Si"
End Sub
Private Sub rb_docno8_CheckedChange(Checked As Boolean)
p8 = "No"
End Sub
Private Sub rb_docsi8_CheckedChange(Checked As Boolean)
p8 = "Si"
End Sub
Private Sub rb_docno9_CheckedChange(Checked As Boolean)
p9 = "Incorrecto"
End Sub
Private Sub rb_docsi9_CheckedChange(Checked As Boolean)
p9 = "Correcto"
End Sub
Private Sub rb_docno11_CheckedChange(Checked As Boolean)
p11 = "Incorrecto"
End Sub
Private Sub rb_docsi11_CheckedChange(Checked As Boolean)
p11 = "Correcto"
End Sub
Private Sub rb_docno13_CheckedChange(Checked As Boolean)
p13 = "Incorrecto"
End Sub
Private Sub rb_docsi13_CheckedChange(Checked As Boolean)
p13 = "Correcto"
End Sub
Private Sub rb_docno15_CheckedChange(Checked As Boolean)
p15 = "Incorrecto"
End Sub
Private Sub rb_docsi15_CheckedChange(Checked As Boolean)
p15 = "Correcto"
End Sub
Private Sub rb_docno16_CheckedChange(Checked As Boolean)
p16 = "Incorrecto"
End Sub
Private Sub rb_docsi16_CheckedChange(Checked As Boolean)
p16 = "Correcto"
End Sub
Private Sub rb_docno17_CheckedChange(Checked As Boolean)
p17 = "Incorrecto"
End Sub
Private Sub rb_docsi17_CheckedChange(Checked As Boolean)
p17 = "Correcto"
End Sub
Private Sub rb_docno18_CheckedChange(Checked As Boolean)
p18 = "Incorrecto"
End Sub
Private Sub rb_docsi18_CheckedChange(Checked As Boolean)
p18 = "Correcto"
End Sub
Private Sub rb_docno19_CheckedChange(Checked As Boolean)
p19 = "Incorrecto"
End Sub
Private Sub rb_docsi19_CheckedChange(Checked As Boolean)
p19 = "Correcto"
End Sub
Private Sub cb_izqdel_SelectedIndexChanged (Index As Int)
itemselect1 = cb_izqdel.SelectedItem
Log(itemselect1)
End Sub
Private Sub cb_izqatras_SelectedIndexChanged (Index As Int)
itemselect2 = cb_izqatras.SelectedItem
Log(itemselect2)
End Sub
Private Sub cb_derdel_SelectedIndexChanged (Index As Int)
itemselect3 = cb_derdel.SelectedItem
Log(itemselect3)
End Sub
Private Sub cb_deratras_SelectedIndexChanged (Index As Int)
itemselect4 = cb_deratras.SelectedItem
Log(itemselect4)
End Sub
Private Sub b_guardar_Click
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
DateTime.TimeFormat="HH:mm:ss"
DateTime.DateFormat="dd/MM/yyyy"
Dim checkdate As String = DateTime.Date(DateTime.Now)
Dim checktime As String = DateTime.Time(DateTime.Now)
If et_km.Text <> "" Then
If rb_docno1.Checked Or rb_docsi1.Checked Then
If rb_docno2.Checked Or rb_docsi2.Checked Then
If rb_docno3.Checked Or rb_docsi3.Checked Then
If rb_docno4.Checked Or rb_docsi4.Checked Then
If rb_docno5.Checked Or rb_docsi5.Checked Then
If rb_docno6.Checked Or rb_docsi6.Checked Then
If rb_docno7.Checked Or rb_docsi7.Checked Then
If rb_docno8.Checked Or rb_docsi8.Checked Then
If rb_docno9.Checked Or rb_docsi9.Checked Then
If (rb_docno9.Checked And et_carroceria.Text <> "") Or (rb_docsi9.Checked And et_carroceria.Text = "") Then
If rb_docno11.Checked Or rb_docsi11.Checked Then
If (rb_docno11.Checked And et_luces.Text <> "") Or (rb_docsi11.Checked And et_luces.Text = "") Then
If rb_docno13.Checked Or rb_docsi13.Checked Then
If (rb_docno13.Checked And et_placas.Text <> "") Or (rb_docsi13.Checked And et_placas.Text = "") Then
If rb_docno15.Checked Or rb_docsi15.Checked Then
If rb_docno16.Checked Or rb_docsi16.Checked Then
If rb_docno17.Checked Or rb_docsi17.Checked Then
If rb_docno18.Checked Or rb_docsi18.Checked Then
If rb_docno19.Checked Or rb_docsi19.Checked Then
If et_liquidos.Text <> "" And (rb_docno15.Checked Or rb_docno16.Checked Or rb_docno17.Checked Or rb_docno18.Checked Or rb_docno19.Checked) Or et_liquidos.Text = "" And (rb_docsi15.Checked And rb_docsi16.Checked And rb_docsi17.Checked And rb_docsi18.Checked And rb_docsi19.Checked) Then
If nombrefoto <> "0" And nombrefoto1 <> "0" And nombrefoto2 <> "0" And nombrefoto3 <> "0" Then
c = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
c.Position = 0
Private rutacheck As String = c.GetString("RUTAA")
c.Close
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM CHECKLIST2")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CHECKLIST2(USUARIO, PLACA, FECHA_CAPTURA, TARJETA_CIRCULACION , POLIZA_SEGURO, LICENCIA_CONDUCIR, LIMPIA_EXTERNA, LIMPIA_INTERNA, TRIANGULO, GATO, LLANTA_REFACCION, CARROCERIA, CARROCERIA_COMENTARIOS, LUCES, LUCES_COMENTARIOS, CONDICION_PLACAS, CONDICION_PLACAS_COMENTARIOS, CONDICION_LLANTAS_DEL_DER, CONDICION_LLANTAS_DEL_IZQ, CONDICION_LLANTAS_TRASERA_DER, CONDICION_LLANTAS_TRASERA_IZQ, ACEITE, ANTICONGELANTE, FRENOS, AIRE, FUGAS, COMETARIOS_FUGAS, FOTO1, FOTO12, FOTO3, FOTO4, KILIMETRAJE,RUTA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",Array As Object(B4XPages.MainPage.usuario,l_placa.Text,checkdate&" "&checktime,p1,p2,p3,p4,p5,p6,p7,p8,p9,et_carroceria.Text,p11,et_luces.Text,p13,et_placas.Text,itemselect1,itemselect2,itemselect3,itemselect4,p15,p16,p17,p18,p19,et_liquidos.Text,File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto),File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto1),File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto2),File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto3), et_km.Text, rutacheck))
mandaPendientes
rb_docno1.Checked = False
rb_docno2.Checked = False
rb_docno3.Checked = False
rb_docno4.Checked = False
rb_docno5.Checked = False
rb_docno6.Checked = False
rb_docno7.Checked = False
rb_docno8.Checked = False
rb_docno9.Checked = False
rb_docno11.Checked = False
rb_docno13.Checked = False
rb_docno15.Checked = False
rb_docno16.Checked = False
rb_docno17.Checked = False
rb_docno18.Checked = False
rb_docno19.Checked = False
rb_docsi1.Checked = False
rb_docsi2.Checked = False
rb_docsi3.Checked = False
rb_docsi4.Checked = False
rb_docsi5.Checked = False
rb_docsi6.Checked = False
rb_docsi7.Checked = False
rb_docsi8.Checked = False
rb_docsi9.Checked = False
rb_docsi11.Checked = False
rb_docsi13.Checked = False
rb_docsi15.Checked = False
rb_docsi16.Checked = False
rb_docsi17.Checked = False
rb_docsi18.Checked = False
rb_docsi19.Checked = False
cb_deratras.SelectedIndex = 0
cb_derdel.SelectedIndex = 0
cb_izqatras.SelectedIndex = 0
cb_izqdel.SelectedIndex = 0
et_carroceria.Text = ""
et_liquidos.Text = ""
et_luces.Text = ""
et_placas.Text = ""
ImageView1.Bitmap = LoadBitmap(File.DirAssets,"frontal1.png")
ImageView2.Bitmap = LoadBitmap(File.DirAssets,"derecha1.png")
ImageView3.Bitmap = LoadBitmap(File.DirAssets,"atras1.png")
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"izquierda1.png")
nombrefoto = "0"
nombrefoto1 = "0"
nombrefoto2 = "0"
nombrefoto3 = "0"
B4XPages.ShowPage("Principal")
Else
MsgboxAsync("Favor de tomar todas las fotos","Atención")
End If
Else
MsgboxAsync("Especifica Fugas o detallaes en los liquidos","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Niveles de Liquidos y aire de Fugas","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Niveles de Liquidos y aire de Aire","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Niveles de Liquidos y aire de Frenos","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Niveles de Liquidos y aire de Anticongelante","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Niveles de Liquidos y aire de Aceite","Atención")
End If
Else
MsgboxAsync("Especifica daños en las condiciones de placas","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Conciciones de placas de Correcto","Atención")
End If
Else
MsgboxAsync("Especifica daños en las luces","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Funcionamiento de luces de Correcto","Atención")
End If
Else
MsgboxAsync("Especifica daños en la carrocería","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Carrocería de Buen estado","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Seguridad y refación de Llanta de refacción","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Seguridad y refación de gato","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Seguridad y refación de Triagulo reflectante","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Limpieza unidad interna","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Limpieza unidad externa","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Documentación viegnte de Licencia de conducir","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Documentación viegnte de Póliza de seguro","Atención")
End If
Else
MsgboxAsync("Seleeciona una opción en Documentación viegnte de tarjeta de circulación","Atención")
End If
Else
MsgboxAsync("Captura el kilometraje inicial.","Atención")
End If
End Sub
Sub mandaPendientes
Log("MandaPendientes")
'PEDIDO (Pendientes)
c=B4XPages.MainPage.skmt.ExecQuery("SELECT USUARIO, PLACA, FECHA_CAPTURA, TARJETA_CIRCULACION , POLIZA_SEGURO, LICENCIA_CONDUCIR, LIMPIA_EXTERNA, LIMPIA_INTERNA, TRIANGULO, GATO, LLANTA_REFACCION, CARROCERIA, CARROCERIA_COMENTARIOS, LUCES, LUCES_COMENTARIOS, CONDICION_PLACAS, CONDICION_PLACAS_COMENTARIOS, CONDICION_LLANTAS_DEL_DER, CONDICION_LLANTAS_DEL_IZQ, CONDICION_LLANTAS_TRASERA_DER, CONDICION_LLANTAS_TRASERA_IZQ, ACEITE, ANTICONGELANTE, FRENOS, AIRE, FUGAS, COMETARIOS_FUGAS, FOTO1, FOTO12, FOTO3, FOTO4 FROM CHECKLIST2")
Log($"Pedido PENDIENTE: ${c.RowCount}"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
foto1 = c.GetBlob("FOTO1")
foto2 = c.GetBlob("FOTO12")
foto3 = c.GetBlob("FOTO3")
foto4 = c.GetBlob("FOTO4")
cmd.Initialize
cmd.Name = "insert_CHECK_GUNA"
cmd.Parameters = Array As Object(C.GetString("USUARIO"),C.GetString("PLACA"),C.GetString("FECHA_CAPTURA"),C.GetString("TARJETA_CIRCULACION"),C.GetString("POLIZA_SEGURO"),C.GetString("LICENCIA_CONDUCIR"),C.GetString("LIMPIA_EXTERNA"),C.GetString("LIMPIA_INTERNA"),C.GetString("TRIANGULO"),C.GetString("GATO"), C.GetString("LLANTA_REFACCION"),C.GetString("CARROCERIA"),c.GetString("CARROCERIA_COMENTARIOS"),c.GetString("LUCES"),c.GetString("LUCES_COMENTARIOS"),c.GetString("CONDICION_PLACAS"),c.GetString("CONDICION_PLACAS_COMENTARIOS"))'c.GetString("CONDICION_PLACAS_INCORRECTO"),c.GetString("CONDICION_PLACAS_COMENTARIOS"),c.GetString("CONDICION_LLANTAS_DEL_DER"),c.GetString("CONDICION_LLANTAS_DEL_IZQ"),c.GetString("CONDICION_LLANTAS_TRASERA_DER"),c.GetString("CONDICION_LLANTAS_TRASERA_IZQ"),c.GetString("ACEITE"),c.GetString("ANTICONGELANTE"),c.GetString("FRENOS"),c.GetString("AIRE"),c.GetString("FUGAS"),c.GetString("COMETARIOS_FUGAS"),foto1,foto2,foto3,foto4,B4XPages.MainPage.principal.ALMACEN)
reqManager.ExecuteCommand(cmd , $"ins_checkliPendientes_head_${c.GetString("USUARIO")}"$)
Next
End If
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE CLIENTE . " & Job.Success)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
' LogColor("JobDone Error: '" & reqManager.HandleJob(Job).tag, Colors.red) 'Mod por CHV - 211027
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.Blue)
Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green)
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_checkliPendientes_head_") > -1 Then
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+24)
Log($"Cliente1:${cliente}"$)
c=B4XPages.MainPage.skmt.ExecQuery("SELECT USUARIO, PLACA, FECHA_CAPTURA, TARJETA_CIRCULACION , POLIZA_SEGURO, LICENCIA_CONDUCIR, LIMPIA_EXTERNA, LIMPIA_INTERNA, TRIANGULO, GATO, LLANTA_REFACCION, CARROCERIA, CARROCERIA_COMENTARIOS, LUCES, LUCES_COMENTARIOS, CONDICION_PLACAS, CONDICION_PLACAS_COMENTARIOS, CONDICION_LLANTAS_DEL_DER, CONDICION_LLANTAS_DEL_IZQ, CONDICION_LLANTAS_TRASERA_DER, CONDICION_LLANTAS_TRASERA_IZQ, ACEITE, ANTICONGELANTE, FRENOS, AIRE, FUGAS, COMETARIOS_FUGAS, FOTO1, FOTO12, FOTO3, FOTO4, KILIMETRAJE, RUTA FROM CHECKLIST2")
Log($"Pedido PENDIENTE: ${c.RowCount}"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
foto1 = c.GetBlob("FOTO1")
foto2 = c.GetBlob("FOTO12")
foto3 = c.GetBlob("FOTO3")
foto4 = c.GetBlob("FOTO4")
cmd.Initialize
cmd.Name = "update_CHECK_GUNA"
cmd.Parameters = Array As Object(c.GetString("CONDICION_LLANTAS_DEL_DER"),c.GetString("CONDICION_LLANTAS_DEL_IZQ"),c.GetString("CONDICION_LLANTAS_TRASERA_DER"),c.GetString("CONDICION_LLANTAS_TRASERA_IZQ"),c.GetString("ACEITE"),c.GetString("ANTICONGELANTE"),c.GetString("FRENOS"),c.GetString("AIRE"),c.GetString("FUGAS"),c.GetString("COMETARIOS_FUGAS"),foto1,foto2,foto3,foto4,Subs.traeAlmacen, C.GetString("KILIMETRAJE"),C.GetString("RUTA"), C.GetString("USUARIO"),C.GetString("PLACA"),C.GetString("FECHA_CAPTURA"))
reqManager.ExecuteCommand(cmd , "update")
Next
End If
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE CHECADO_CHECK set CHECADO = 1 ")
B4XPages.MainPage.principal.checachek
End If
End If
Job.Release
End If
End Sub

View File

@@ -39,6 +39,12 @@ Sub Class_Globals
Private et_ruta As EditText
Private l_ruta1 As Label
Private l_almacen As Label
Dim b As Cursor
Private b_check As Button
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim c As Cursor
Dim RES As String
End Sub
'You can add more parameters here.
@@ -55,6 +61,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
reqManager.Initialize(Me, Subs.traeDBReqServer)
b_check.visible = True
Subs.centraPanel(p_botones, Root.Width)
b_verCartaPorte.Enabled = False
If File.Exists(File.DirInternal,"cartaPorte.pdf") Then
@@ -66,9 +74,19 @@ Sub B4XPage_Appear
End If
End If
b_descargaCartaPorte.Enabled = False
et_ruta.Text = "131"
' et_ruta.Text = "131"
l_almacen.Text= Subs.traeAlmacen
et_ruta.RequestFocus
c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM CHECADO_CHECK")
If c.RowCount = 0 Then
b_check.Visible = False
Else
b_check.Visible = True
End If
checachek
End Sub
Sub B4XPage_CloseRequest As ResumableSub
@@ -121,6 +139,17 @@ Private Sub b_descargaCartaPorte_Click
' VALIDAR_INFO
End If
End If
cmd.Initialize
cmd.Name = "select_cat_placa_guna"
cmd.Parameters = Array As Object(Subs.traeAlmacen,et_ruta.Text)
reqManager.ExecuteQuery(cmd , 0, "placa")
' cmd.Initialize
' cmd.Name = "select_cat_kmt_info_guna"
' cmd.Parameters = Array As Object(almacen,et_ruta.Text)
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
End Sub
'Descarga del servidor el PDF de la carta porte del dia de hoy y la
@@ -134,7 +163,7 @@ Sub descargaCartaPorte
Private rutaX As String = et_ruta.text 'rutaPreventa
Private almacenX As String = Subs.traeAlmacen
'#################################
Private almacenX As String = "2" 'almacen
' Private almacenX As String = "2" 'almacen
'#################################
Private cartaPortePDF As String = $"CPORTE${almacenX}_${rutaX}.pdf"$
@@ -144,7 +173,8 @@ Sub descargaCartaPorte
Private pdfServer As String = "keymon.lat"
If DBReqServer.IndexOf("10.0.0.205") > -1 Then pdfServer = "10.0.0.205"
' Log(pdfServer)
pdfURL = $"https://${pdfServer}/CartaPorteKelloggs/CartaPorteMovil${DateTime.Date(DateTime.now)}/${cartaPortePDF}"$
Log(DateTime.Date(DateTime.now))
pdfURL = $"https://${pdfServer}/CartaPorteGuna/CartaPorteMovil${DateTime.Date(DateTime.now)}/${cartaPortePDF}"$
LogColor(pdfURL,Colors.Red)
' Log("Iniciamos wait for descargaCartaPorteyProgreso")
Wait For (descargaCartaPorteyProgreso(pdfURL)) Complete (Success As Boolean)
@@ -220,9 +250,13 @@ Sub descargaCartaPorteyProgreso (urlx As String) As ResumableSub
ToastMessageShow("Carta Porte descargada exitosamente!!", False)
b_verCartaPorte.Enabled = True
' AQUI VA EL CODIGO DE CARTA PORTE DSCARGADA
' AQUI VA EL CODIGO DE CARTA PORTE DESCARGADA!!!!!
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTAA")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTAA(RUTAA) VALUES (?)", Array As Object (et_ruta.TEXT))
cmd.Initialize
cmd.Name = "insert_checkcp_GUNA"
cmd.Parameters = Array As Object(Subs.traeAlmacen,et_ruta.Text,B4XPages.MainPage.usuario)
reqManager.ExecuteCommand(cmd , $"ins_checkcpPendientes_head_${usuario}"$)
Subs.panelOculto(p_downloadPDF)
' p_progress1.Visible = False
@@ -349,4 +383,105 @@ Private Sub et_ruta_TextChanged (Old As String, New As String)
Else
b_descargaCartaPorte.Enabled = False
End If
End Sub
Sub checachek
b = B4XPages.MainPage.skmt.ExecQuery("SELECT CHECADO FROM CHECADO_CHECK")
If b.RowCount > 0 Then
b.Position = 0
If b.GetString("CHECADO") = 0 Then
b_check.Visible = True
Else If b.GetString("CHECADO") = 1 Then
b_check.Visible =False
End If
b.Close
End If
End Sub
Private Sub b_check_Click
B4XPages.ShowPage("checklist")
End Sub
Sub et_ruta_EnterPressed
If et_ruta.Text = "FIN DIA" Then
RES = Msgbox2("Seguro que desea hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If RES = DialogResponse.POSITIVE Then
et_ruta.Text = ""
B4XPages.MainPage.skmt.ExecNonQuery("delete from CHECADO_CHECK")
B4XPages.MainPage.skmt.ExecNonQuery("delete from CHECKLIST2")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PLACAS")
' Starter.skmt.ExecNonQuery("delete from kmt_info")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTAA")
B4XPage_Appear
End If
' Starter.waypointsOrdered.Clear
End If
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE CLIENTE . " & Job.Success)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
' LogColor("JobDone Error: '" & reqManager.HandleJob(Job).tag, Colors.red) 'Mod por CHV - 211027
Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "placa" Then 'query tag
B4XPages.MainPage.skmt.ExecNonQuery("delete from PLACAS")
For Each records() As Object In RESULT.Rows
Dim placa As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PLACAS(PLACA) VALUES (?)", Array As Object (placa))
B4XPage_Appear
Next
End If
End If
' If Job.JobName = "DBRequest" Then
' Dim RESULT As DBResult = reqManager.HandleJob(Job)
' If RESULT.Tag = "kmt_datos" Then 'query tag
' For Each records() As Object In RESULT.Rows
'
' Dim CAT_CL_CODIGO As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_RUTA As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_DIAS_VISITA As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_NOMBRE As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_ATIENDE1 As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_ATIENTE2 As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_TELEFONO As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_EMAIL As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_CALLE As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_NOEXT As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_NOINT As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_CALLE1 As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_CALLE2 As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_COLONIA As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_MUNI As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_EDO As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_CP As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_LONG As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_LAT As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' Dim CAT_CL_SALDODISPONIBLE As String = records(RESULT.Columns.Get("CAT_VE_PLACAS"))
' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info(PLACA) VALUES (?)", Array As Object (placa))
' Next
' End If
' End If
c = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM CHECADO_CHECK")
c.Position = 0
If c.GetString("CUANTOS") = 0 Then
B4XPages.MainPage.skmt.ExecNonQuery2("insert into CHECADO_CHECK (CHECADO) VALUES(?)", Array As String("0"))
Else If c.GetString("CUANTOS") = 1 Then
End If
End If
End Sub

290
B4A/CameraExClass.bas Normal file
View File

@@ -0,0 +1,290 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=7.01
@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
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

BIN
B4A/Files/alert2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

BIN
B4A/Files/atras.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
B4A/Files/atras1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
B4A/Files/check2.bal Normal file

Binary file not shown.

BIN
B4A/Files/checklist.bal Normal file

Binary file not shown.

BIN
B4A/Files/derecha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
B4A/Files/derecha1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
B4A/Files/frintal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
B4A/Files/frontal1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
B4A/Files/frontal1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
B4A/Files/izquierda.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
B4A/Files/izquierda1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -1,44 +1,77 @@
Build1=Default,gunaCartaPorte.keymon.lat,HU2_PUBLIC
File1=engraneactual.png
File2=kmt.db
File3=logo guna_192x192.png
File4=logo-guna-18.png
File5=MainPage.bal
File6=mainpage0.bal
File7=principal.bal
File1=alert2.png
File10=frontal1.gif
File11=frontal1.png
File12=izquierda.png
File13=izquierda1.png
File14=kmt.db
File15=logo guna_192x192.png
File16=logo-guna-18.png
File17=MainPage.bal
File18=mainpage0.bal
File19=principal.bal
File2=atras.png
File3=atras1.png
File4=check2.bal
File5=checklist.bal
File6=derecha.png
File7=derecha1.png
File8=engraneactual.png
File9=frintal.png
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup11=Default Group
FileGroup12=Default Group
FileGroup13=Default Group
FileGroup14=Default Group
FileGroup15=Default Group
FileGroup16=Default Group
FileGroup17=Default Group
FileGroup18=Default Group
FileGroup19=Default Group
FileGroup2=Default Group
FileGroup3=Default Group
FileGroup4=Default Group
FileGroup5=Default Group
FileGroup6=Default Group
FileGroup7=Default Group
FileGroup8=Default Group
FileGroup9=Default Group
Group=Default Group
Library1=appupdating
Library10=randomaccessfile
Library11=sql
Library12=xcustomlistview
Library13=xui
Library14=xui views
Library15=runtimepermissions
Library2=b4xpages
Library3=byteconverter
Library4=compressstrings
Library5=core
Library6=fileprovider
Library7=pdfium
Library8=randomaccessfile
Library9=sql
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")
Library4=camera
Library5=compressstrings
Library6=core
Library7=fileprovider
Library8=ime
Library9=pdfium
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~'AddManifestText(<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="23" />)~\n~'AddManifestText(<uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="19" />)~\n~'AddManifestText(<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" android:maxSdkVersion="19" />) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText(<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />)~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~'CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google mande este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText(<uses-library android:name="org.apache.http.legacy" android:required="false"/>)~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="33" />~\n~ )~\n~ AddApplicationText(~\n~ <provider~\n~ android:name="android.support.v4.content.FileProvider"~\n~ android:authorities="$PACKAGE$.provider"~\n~ android:exported="false"~\n~ android:grantUriPermissions="true">~\n~ <meta-data~\n~ android:name="android.support.FILE_PROVIDER_PATHS"~\n~ android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\n~ )~\n~AddManifestText(<uses-feature android:name="android.hardware.telephony" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />)~\n~AddManifestText(<uses-feature android:name="android.hardware.camera.flash" android:required="false" />)~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText(<queries>~\n~ <package android:name="com.google.android.apps.maps" />~\n~ </queries>)~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~ android:maxSdkVersion="33" />~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)
Module1=B4XMainPage
Module2=C_Principal
Module3=C_updateAvailable
Module4=DBRequestManager
Module5=Starter
Module6=Subs
NumberOfFiles=7
NumberOfLibraries=9
NumberOfModules=6
Module2=C_Cheklist
Module3=C_Principal
Module4=C_updateAvailable
Module5=CameraExClass
Module6=DBRequestManager
Module7=ManageExternalStorage
Module8=Starter
Module9=Subs
NumberOfFiles=19
NumberOfLibraries=15
NumberOfModules=9
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Guna Carta Porte
#VersionCode: 1
#VersionName: 4.05.28
#VersionName: 4.06.01
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -5,6 +5,9 @@ ModuleBookmarks3=
ModuleBookmarks4=
ModuleBookmarks5=
ModuleBookmarks6=
ModuleBookmarks7=
ModuleBookmarks8=
ModuleBookmarks9=
ModuleBreakpoints0=
ModuleBreakpoints1=
ModuleBreakpoints2=
@@ -12,13 +15,19 @@ ModuleBreakpoints3=
ModuleBreakpoints4=
ModuleBreakpoints5=
ModuleBreakpoints6=
ModuleBreakpoints7=
ModuleBreakpoints8=
ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes2=5,6,9,10,11,12,13,14,15,16,17,18,19,20,21,22
ModuleClosedNodes3=
ModuleClosedNodes2=
ModuleClosedNodes3=5,9,10,11,12,13,14,15,16,17,18,19,20,21,24
ModuleClosedNodes4=
ModuleClosedNodes5=1
ModuleClosedNodes5=
ModuleClosedNodes6=
NavigationStack=Subs,traeAlmacen,274,0,C_Principal,et_ruta_TextChanged,337,6,C_Principal,b_descargaCartaPorte_Click,113,0,C_Principal,Class_Globals,35,0,Visual Designer,MainPage.bal,-100,4,Visual Designer,principal.bal,-100,6,C_Principal,B4XPage_CloseRequest,78,0,C_Principal,B4XPage_Created,49,0,C_Principal,B4XPage_Appear,66,6,C_Principal,descargaCartaPorte,127,6
ModuleClosedNodes7=
ModuleClosedNodes8=1
ModuleClosedNodes9=
NavigationStack=C_Cheklist,JobDone,776,2,C_Principal,checachek,370,0,B4XMainPage,JobDone,174,0,C_Principal,b_check_Click,387,0,C_Cheklist,B4XPage_Created,135,0,C_Cheklist,B4XPage_Appear,199,0,C_Principal,Class_Globals,43,6,C_Principal,et_ruta_EnterPressed,410,1,C_Principal,B4XPage_Appear,74,5,C_Principal,JobDone,432,6
SelectedBuild=0
VisibleModules=1,2,6
VisibleModules=1,3,9,2,5,7

View File

@@ -0,0 +1,81 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=10.7
@EndOfDesignText@
' Version 1.00
#Event: StorageAvailable
Sub Class_Globals
Private ion As Object
Private mCallback As Object
Private mEventName As String
End Sub
' This pretty trivial class is modelled on (plagiarised from!) Erel's ExternalStorage class
' It applies to devices implementing SDK30 and later
' It allows apps to access the internal 'external' storage as was possible on earlier Android versions ussing traditional file I/O
' You must manually add 'AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)' to the manifest
' You must ensure that you provide the package name of your app in Sub GetPermission
' This class uses the MANAGE_APP_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page
' They must enable the option on that page to give permission
'Initializes the object
Public Sub Initialize (Callback As Object, EventName As String)
mCallback = Callback
mEventName = EventName
End Sub
' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager()
' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission
Public Sub HasPermission As Boolean
Dim has As Boolean
Dim jo As JavaObject
jo.InitializeStatic("android.os.Environment")
has = jo.RunMethod("isExternalStorageManager", Null)
Return has
End Sub
' Check whether this app has MANAGE_EXTERNAL_STORAGE permission
' If not show the user a dialog to enable MANAGE_EXTERNAL_STORAGE permission for this app
' Raises the StorageAvailable event in the calling activity when complete
Public Sub GetPermission
If HasPermission Then
RaiseEvent
Return
End If
Dim in As Intent
' Be sure to reference your app package name in "pakageg:xxx"
in.Initialize("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION", $"package:${Application.PackageName}"$)
StartActivityForResult(in)
End Sub
Private Sub RaiseEvent
Log("Calling : " & mEventName & "_StorageAvailable")
CallSubDelayed(mCallback, mEventName & "_StorageAvailable")
End Sub
Private Sub ion_Event (MethodName As String, Args() As Object) As Object
RaiseEvent
Return Null
End Sub
Private Sub StartActivityForResult(i As Intent)
Dim jo As JavaObject = GetBA
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array As Object(ion, i))
End Sub
Private Sub GetBA As Object
Dim jo As JavaObject = Me
Return jo.RunMethod("getBA", Null)
End Sub

View File

@@ -283,4 +283,25 @@ Sub traeAlmacen As String 'ignore
a = C.GetString("ID_ALMACEN")
c.Close
Return a
End Sub
'Agrega una columna a la tabla especificada.
'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC)
'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
End Try
End Sub