- SE AGREGO CODIGO PARA EN ELNVIO DE ERRORES

This commit is contained in:
2024-03-23 16:04:24 -06:00
parent 79d74e2fdb
commit 2d4e8dd2d2
8 changed files with 302 additions and 92 deletions

View File

@@ -90,31 +90,23 @@ Private Sub B4XPage_Created (Root1 As B4XView)
reqManager.Initialize(Me, Starter.DBReqServer) reqManager.Initialize(Me, Starter.DBReqServer)
g.Initialize("GPS") g.Initialize("GPS")
qr.Initialize(B4XImageView1.mBase.Width) qr.Initialize(B4XImageView1.mBase.Width)
Panel1.Width = Root.Width Panel1.Width = Root.Width
Panel1.Height = Root.Height Panel1.Height = Root.Height
p_camara.Width = Root.Width p_camara.Width = Root.Width
p_camara.Height = Root.Height p_camara.Height = Root.Height
p_validacion.Width = Root.Width p_validacion.Width = Root.Width
p_validacion.Height = Root.Height p_validacion.Height = Root.Height
ScrollView1.height = Root.Height - p_general.Height ScrollView1.height = Root.Height - p_general.Height
p_scroll.height = Root.Height - p_general.Height p_scroll.height = Root.Height - p_general.Height
p_trabajadas.height = Root.Height - p_general.Height p_trabajadas.height = Root.Height - p_general.Height
End Sub End Sub
Private Sub B4XPage_Appear Private Sub B4XPage_Appear
CheckAndRequestNotificationPermission CheckAndRequestNotificationPermission
If Not(Subs.IsConnectedToInternet) Then If Not(Subs.IsConnectedToInternet) Then
Msgbox("Habilita los datos del celular","Atención") Msgbox("Habilita los datos del celular","Atención")
B4XPage_Appear B4XPage_Appear
Else Else
If g.GPSEnabled=False Then If g.GPSEnabled=False Then
Dim Resultado As Int= -3 Dim Resultado As Int= -3
Do While Resultado=-3 Do While Resultado=-3
@@ -129,8 +121,7 @@ Private Sub B4XPage_Appear
End Select End Select
Loop Loop
Else Else
' Log("ENTRE")
Log("ENTRE")
StartService(Tracker) StartService(Tracker)
m_lat = "0" m_lat = "0"
@@ -172,7 +163,7 @@ Private Sub B4XPage_Appear
b_checkin.visible = True b_checkin.visible = True
b_checout.visible = False b_checout.visible = False
b_comidain.Visible = False b_comidain.Visible = False
b_comidaout.Visible = False b_comidaout.Visible = False
End If End If
'' CallSubDelayed(Tracker, "StartFLPSmall") '' CallSubDelayed(Tracker, "StartFLPSmall")
@@ -181,7 +172,7 @@ Private Sub B4XPage_Appear
Starter.longitud = Tracker.FLP.GetLastKnownLocation.Longitude Starter.longitud = Tracker.FLP.GetLastKnownLocation.Longitude
' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$) ' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation) GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
Log("hice esto") ' Log("hice esto")
End If End If
bu.Initialize bu.Initialize
@@ -471,7 +462,7 @@ Private Sub b_checkin_Click
p_validacion.Visible = True p_validacion.Visible = True
l_codigo.Text = "Ingresa el codigo para el CHECK-IN." l_codigo.Text = "Ingresa el codigo para el CHECK-IN."
End If End If
Else If donde2 = "2" Then Else If donde2 = "2" Then
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False) Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (result As Int) Wait For Msgbox_Result (result As Int)
@@ -690,49 +681,49 @@ Private Sub b_gestion_Click
c.Position = 0 c.Position = 0
Log(c.GetString("ESTATUS")) Log(c.GetString("ESTATUS"))
If c.GetString("ESTATUS") = "ENTRADA" Or c.GetString("ESTATUS") = "SALIDA A COMER" Or c.GetString("ESTATUS") = "REGRESO DE COMER" Then If c.GetString("ESTATUS") = "ENTRADA" Or c.GetString("ESTATUS") = "SALIDA A COMER" Or c.GetString("ESTATUS") = "REGRESO DE COMER" Then
If Not(Subs.IsConnectedToInternet) Then If Not(Subs.IsConnectedToInternet) Then
MsgboxAsync("Habilita los datos del celular","Atención") MsgboxAsync("Habilita los datos del celular","Atención")
B4XPage_Appear B4XPage_Appear
Else Else
If distance > 200 Then If distance > 200 Then
Log("aqui") Log("aqui")
MsgboxAsync("No estas cerca del punto asignado","Atención") MsgboxAsync("No estas cerca del punto asignado","Atención")
Else If distance < 200 Then Else If distance < 200 Then
p_trabajadas.Visible= False p_trabajadas.Visible= False
p_scroll.Visible = True p_scroll.Visible = True
ScrollView1.Visible = True ScrollView1.Visible = True
ScrollView1.Panel.LoadLayout("gestion") ScrollView1.Panel.LoadLayout("gestion")
ScrollView1.Panel.Height = p_gestion.Height ScrollView1.Panel.Height = p_gestion.Height
p_scroll.BringToFront p_scroll.BringToFront
y = 1 y = 1
x = 1 x = 1
InitializeCamera2 InitializeCamera2
p_camara.Visible = True p_camara.Visible = True
b_gestion.Enabled = False b_gestion.Enabled = False
p_gestion.Visible = True p_gestion.Visible = True
nombrefoto = "0" nombrefoto = "0"
nombrefoto1 = "0" nombrefoto1 = "0"
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png") iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png") iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
itemselect = "" itemselect = ""
Dim Items As List Dim Items As List
Items.Initialize Items.Initialize
Items.Clear Items.Clear
Items.Add("SELECCIONA UNA OPCION ") Items.Add("SELECCIONA UNA OPCION ")
Items.Add("APROBADO") Items.Add("APROBADO")
Items.Add("RECHAZADO") Items.Add("RECHAZADO")
Items.Add("INTERMITENCIA") Items.Add("INTERMITENCIA")
Items.Add("NO CONCLUIDO") Items.Add("NO CONCLUIDO")
cb_estatus.SetItems(Items) cb_estatus.SetItems(Items)
itemselect = "SELECCIONA UNA OPCION" itemselect = "SELECCIONA UNA OPCION"
p_inci.Visible = False p_inci.Visible = False
ajustaTamano ajustaTamano
End If
End If End If
End If
Else Else
MsgboxAsync("Por favor hacer el check-in","Atención") MsgboxAsync("Por favor hacer el check-in","Atención")
End If End If
@@ -916,7 +907,7 @@ Sub ajustaTamano
Log("Invisible 1 y 2") Log("Invisible 1 y 2")
b_cancelar.Top = iv_ine.Top + iv_ine.Height + 45 b_cancelar.Top = iv_ine.Top + iv_ine.Height + 45
b_finalizar.Top = iv_ine.Top + iv_ine.Height + 45 b_finalizar.Top = iv_ine.Top + iv_ine.Height + 45
End If End If
p_gestion.Height = b_cancelar.Top + 150 p_gestion.Height = b_cancelar.Top + 150
ScrollView1.Panel.Height = p_gestion.Height ScrollView1.Panel.Height = p_gestion.Height
End Sub End Sub
@@ -1135,7 +1126,7 @@ Sub mandaPendientes
If c.RowCount > 0 Then If c.RowCount > 0 Then
For i = 0 To c.RowCount -1 For i = 0 To c.RowCount -1
c.Position=i c.Position=i
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "insert_GESTION_GABICO" cmd.Name = "insert_GESTION_GABICO"
cmd.Parameters = Array As Object(c.GetString("HIST_PM_FECHA"), c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_TELEFONO"), c.GetString("HIST_PR_CORREO"), c.GetString("HIST_PR_CURP"), c.GetBlob("HIST_PR_INE"), c.GetString("HIST_PR_ESTATUS"),c.GetBlob("HIST_PR_EVIDENCIA"), c.GetString("HIST_PR_OBSERVACIONES"), c.GetString("HIST_PR_COMENTARIOERROR"), c.GetString("HIST_PR_IDPROYECTO"), c.GetString("HIST_PR_NOMBREPROYECTO"), c.GetString("HIST_PR_IDSUCURSAL"), c.GetString("HIST_PR_NOMBRESUCURSAL"), c.GetString("HIST_PR_USUARIO"), c.GetString("HIST_PR_LATITUD"), c.GetString("HIST_PR_LONGITUD"), c.GetString("HIST_PR_BATERIA")) cmd.Parameters = Array As Object(c.GetString("HIST_PM_FECHA"), c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_TELEFONO"), c.GetString("HIST_PR_CORREO"), c.GetString("HIST_PR_CURP"), c.GetBlob("HIST_PR_INE"), c.GetString("HIST_PR_ESTATUS"),c.GetBlob("HIST_PR_EVIDENCIA"), c.GetString("HIST_PR_OBSERVACIONES"), c.GetString("HIST_PR_COMENTARIOERROR"), c.GetString("HIST_PR_IDPROYECTO"), c.GetString("HIST_PR_NOMBREPROYECTO"), c.GetString("HIST_PR_IDSUCURSAL"), c.GetString("HIST_PR_NOMBRESUCURSAL"), c.GetString("HIST_PR_USUARIO"), c.GetString("HIST_PR_LATITUD"), c.GetString("HIST_PR_LONGITUD"), c.GetString("HIST_PR_BATERIA"))
@@ -1412,7 +1403,7 @@ End Sub
Private Sub b_comidain_Click Private Sub b_comidain_Click
If p_scroll.Visible = False Then If p_scroll.Visible = False Then
Log("Cumple panel invisible") Log("Cumple panel invisible")
If horasalidacomer Then If horasalidacomer Then
If Not(Subs.IsConnectedToInternet) Then If Not(Subs.IsConnectedToInternet) Then
Msgbox("Habilita los datos del celular","Atención") Msgbox("Habilita los datos del celular","Atención")
@@ -1520,8 +1511,8 @@ Sub horasalidacomer As Boolean
Log(DateUtils.TicksToString(newDate)) Log(DateUtils.TicksToString(newDate))
Dim p2 As Period Dim p2 As Period
p2.Hours = 1 p2.Hours = 1
p2.Minutes = 0 p2.Minutes = 0
DateTime.DateFormat = "MM/dd/yyyy HH:mm" DateTime.DateFormat = "MM/dd/yyyy HH:mm"
Dim fecha2 As String = DateTime.Date(DateTime.Now) Dim fecha2 As String = DateTime.Date(DateTime.Now)
Dim prueba2() As String = Regex.Split(" ",fecha2) Dim prueba2() As String = Regex.Split(" ",fecha2)
@@ -1567,7 +1558,7 @@ Sub horasalidacomer As Boolean
End Sub End Sub
Private Sub b_aceptar_Click Private Sub b_aceptar_Click
mandacodigo mandacodigo
End Sub End Sub
Private Sub p_validacion_Click Private Sub p_validacion_Click
@@ -1644,7 +1635,7 @@ Private Sub cb_rechazadas_CheckedChange(Checked As Boolean)
botongestionadas botongestionadas
End Sub End Sub
Sub botongestionadas Sub botongestionadas
c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA") c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA")
If c.RowCount > 0 Then If c.RowCount > 0 Then
If cb_aprobadas.Checked = False And cb_rechazadas.Checked = False Then If cb_aprobadas.Checked = False And cb_rechazadas.Checked = False Then

BIN
B4A/Files/errormanager.bal Normal file

Binary file not shown.

View File

@@ -1,26 +1,27 @@
Build1=Default,gabinete.keymon.lat Build1=Default,gabinete.keymon.lat
File1=alert2.png File1=alert2.png
File10=gestion.bal File10=gabinete1.png
File11=gestion_sup.bal File11=gestion.bal
File12=gestiones.bal File12=gestion_sup.bal
File13=izquierda.png File13=gestiones.bal
File14=kmt.db File14=izquierda.png
File15=login.bal File15=kmt.db
File16=MainPage.bal File16=login.bal
File17=mas.png File17=MainPage.bal
File18=menos.png File18=mas.png
File19=principal.bal File19=menos.png
File2=atras.png File2=atras.png
File20=qr.png File20=principal.bal
File21=Roit.png File21=qr.png
File22=supervisor.bal File22=Roit.png
File23=supervisor.bal
File3=camara.png File3=camara.png
File4=derecha.png File4=derecha.png
File5=engranes.png File5=engranes.png
File6=frintal.png File6=errormanager.bal
File7=from2.png File7=frintal.png
File8=gabinete.png File8=from2.png
File9=gabinete1.png File9=gabinete.png
FileGroup1=Default Group FileGroup1=Default Group
FileGroup10=Default Group FileGroup10=Default Group
FileGroup11=Default Group FileGroup11=Default Group
@@ -36,6 +37,7 @@ FileGroup2=Default Group
FileGroup20=Default Group FileGroup20=Default Group
FileGroup21=Default Group FileGroup21=Default Group
FileGroup22=Default Group FileGroup22=Default Group
FileGroup23=Default Group
FileGroup3=Default Group FileGroup3=Default Group
FileGroup4=Default Group FileGroup4=Default Group
FileGroup5=Default Group FileGroup5=Default Group
@@ -72,14 +74,15 @@ Library6=bitmapcreator
Library7=byteconverter Library7=byteconverter
Library8=camera Library8=camera
Library9=compressstrings Library9=compressstrings
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="5" 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~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'SetServiceAttribute(android:requestLegacyExternalStorage, True)~\n~~\n~AddApplicationText(~\n~<meta-data~\n~ android:name="com.google.android.geo.API_KEY"~\n~ android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~ <meta-data android:name="com.google.android.gms.version"~\n~ android:value="@integer/google_play_services_version" />~\n~)~\n~~\n~AddManifestText(~\n~<uses-permission~\n~ android:name="android.permission.ACCESS_FINE_LOCATION"~\n~ android:maxSdkVersion="33" />~\n~)~\n~~\n~AddManifestText(~\n~<uses-permission ~\n~ android:name="android.permission.ACCESS_COARSE_LOCATION"~\n~ android:maxSdkVersion="33" />~\n~ )~\n~~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~~\n~AddManifestText(<uses-permission~\n~android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~android:maxSdkVersion="33" />~\n~)~\n~~\n~~\n~'End of default text.~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~ 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~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~AddPermission("android.permission.POST_NOTIFICATIONS")~\n~~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~ 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="5" android:targetSdkVersion="34"/>~\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~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'SetServiceAttribute(android:requestLegacyExternalStorage, True)~\n~~\n~AddApplicationText(~\n~<meta-data~\n~ android:name="com.google.android.geo.API_KEY"~\n~ android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~ <meta-data android:name="com.google.android.gms.version"~\n~ android:value="@integer/google_play_services_version" />~\n~)~\n~~\n~AddManifestText(~\n~<uses-permission~\n~ android:name="android.permission.ACCESS_FINE_LOCATION"~\n~ android:maxSdkVersion="34" />~\n~)~\n~~\n~AddManifestText(~\n~<uses-permission ~\n~ android:name="android.permission.ACCESS_COARSE_LOCATION"~\n~ android:maxSdkVersion="34" />~\n~ )~\n~~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~~\n~'AddManifestText(<uses-permission~\n~'android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~'android:maxSdkVersion="34" />~\n~')~\n~~\n~~\n~'End of default text.~\n~~\n~'/////////////////////// App Updating ////////////////~\n~' AddManifestText(<uses-permission~\n~' android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~' android:maxSdkVersion="34" />~\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~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~AddPermission("android.permission.POST_NOTIFICATIONS")~\n~~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:maxSdkVersion="33" />)~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~
Module1=appUpdater Module1=appUpdater
Module10=DBRequestManager Module10=DBRequestManager
Module11=login Module11=errorManager
Module12=QRGenerator Module12=login
Module13=Starter Module13=QRGenerator
Module14=Subs Module14=Starter
Module15=Tracker Module15=Subs
Module16=Tracker
Module2=B4x_Transition Module2=B4x_Transition
Module3=|relative|..\B4XMainPage Module3=|relative|..\B4XMainPage
Module4=BatteryUtilities Module4=BatteryUtilities
@@ -88,15 +91,15 @@ Module6=C_supervisor
Module7=C_UpdateAvailable Module7=C_UpdateAvailable
Module8=CameraExClass Module8=CameraExClass
Module9=CameraExClass2 Module9=CameraExClass2
NumberOfFiles=22 NumberOfFiles=23
NumberOfLibraries=28 NumberOfLibraries=28
NumberOfModules=15 NumberOfModules=16
Version=12.8 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Gabinete #ApplicationLabel: Gabinete
#VersionCode: 1 #VersionCode: 1
#VersionName: 4.03.05 #VersionName: 4.03.06
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -6,6 +6,7 @@ ModuleBookmarks12=
ModuleBookmarks13= ModuleBookmarks13=
ModuleBookmarks14= ModuleBookmarks14=
ModuleBookmarks15= ModuleBookmarks15=
ModuleBookmarks16=
ModuleBookmarks2= ModuleBookmarks2=
ModuleBookmarks3= ModuleBookmarks3=
ModuleBookmarks4= ModuleBookmarks4=
@@ -22,6 +23,7 @@ ModuleBreakpoints12=
ModuleBreakpoints13= ModuleBreakpoints13=
ModuleBreakpoints14= ModuleBreakpoints14=
ModuleBreakpoints15= ModuleBreakpoints15=
ModuleBreakpoints16=
ModuleBreakpoints2= ModuleBreakpoints2=
ModuleBreakpoints3= ModuleBreakpoints3=
ModuleBreakpoints4= ModuleBreakpoints4=
@@ -38,6 +40,7 @@ ModuleClosedNodes12=
ModuleClosedNodes13= ModuleClosedNodes13=
ModuleClosedNodes14= ModuleClosedNodes14=
ModuleClosedNodes15= ModuleClosedNodes15=
ModuleClosedNodes16=
ModuleClosedNodes2= ModuleClosedNodes2=
ModuleClosedNodes3= ModuleClosedNodes3=
ModuleClosedNodes4= ModuleClosedNodes4=
@@ -46,6 +49,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=C_principal,horaentrada,574,0,C_principal,ImageView2_Click,614,6,C_principal,botongestionadas,1627,0,C_principal,b_gestionadas_Click,1606,6,C_principal,b_comidain_Click,1429,0,C_principal,ajustaTamano2,918,5,C_principal,ajustaTamano,900,0,C_supervisor,Class_Globals,0,0,B4XMainPage,Class_Globals,19,0 NavigationStack=Subs,fechaKMT,89,0,Starter,Process_Globals,35,0,Starter,Service_Destroy,79,0,Visual Designer,login.bal,-100,3,Visual Designer,errormanager.bal,-100,1,Starter,Application_Error,67,0,errorManager,Activity_Resume,93,5,login,b_inicio_Click,109,0,login,JobDone,145,0,login,b_inicio_LongClick,119,6,Main,Process_Globals,21,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=13,3,11,5,6,10,14,15,12,1 VisibleModules=14,3,12,5,6,10,15,16,11

View File

@@ -39,6 +39,9 @@ Sub Process_Globals
Dim horacomin As String Dim horacomin As String
Dim horacomout As String Dim horacomout As String
Dim trabaja As Int Dim trabaja As Int
'Para los Logs
Dim logs As StringBuilder
Private logcat As LogCat
End Sub End Sub
Sub Service_Create Sub Service_Create
@@ -61,8 +64,19 @@ Sub Service_TaskRemoved
Timer1.Enabled = False Timer1.Enabled = False
End Sub End Sub
'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Para los Logs
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
'wait for 500ms to allow the logs to be updated.
Log(">>>>>>>>> ERROR")
Dim jo As JavaObject
Dim l As Long = 500: jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) 'Sleep 500ms
logcat.LogCatStop
logs.Initialize
logs.Append(Application.LabelName & " Ver " & Application.VersionName & CRLF)
logs.Append(StackTrace)
Subs.revisaBD
Subs.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (Subs.fechaKMT(DateTime.now), logs))
StartActivity(errorManager)
Return True Return True
End Sub End Sub
@@ -70,7 +84,6 @@ Sub Service_Destroy
End Sub End Sub
Private Sub Timer1_Tick Private Sub Timer1_Tick
' ToastMessageShow("Timer",False) ' ToastMessageShow("Timer",False)
' If logger Then Log("Siguiente actuaizacion " & DateTime.Time(DateTime.Now + Interval * 1000)) ' If logger Then Log("Siguiente actuaizacion " & DateTime.Time(DateTime.Now + Interval * 1000))

View File

@@ -9,7 +9,7 @@ Version=11.8
Sub Process_Globals Sub Process_Globals
'These global variables will be declared once when the application starts. 'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules. 'These variables can be accessed from all modules.
Dim errorLog As SQL 'Requiere la libreria "SQL"
End Sub End Sub
Sub revisaBD 'ignore Sub revisaBD 'ignore
@@ -23,6 +23,24 @@ Sub revisaBD 'ignore
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_SUPERVISOR(HIST_CHKS_PROYECTO TEXT, HIST_CHKS_NOMPROY TEXT, HIST_CHKS_SUCURSAL TEXT,HIST_CHKS_FORMATO TEXT, HIST_CHKS_SUPERVISOR TEXT, HIST_CHKS_PROMOTOR TEXT, HIST_CHKS_FECHA TEXT, HIST_CHKS_ID TEXT, HIST_CHKS_CALIF_MULTIPLE TEXT, HIST_CHKS_CALIF_ABIERTA TEXT, HIST_CHKS_HORARIO TEXT, ENVIADO INT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_SUPERVISOR(HIST_CHKS_PROYECTO TEXT, HIST_CHKS_NOMPROY TEXT, HIST_CHKS_SUCURSAL TEXT,HIST_CHKS_FORMATO TEXT, HIST_CHKS_SUPERVISOR TEXT, HIST_CHKS_PROMOTOR TEXT, HIST_CHKS_FECHA TEXT, HIST_CHKS_ID TEXT, HIST_CHKS_CALIF_MULTIPLE TEXT, HIST_CHKS_CALIF_ABIERTA TEXT, HIST_CHKS_HORARIO TEXT, ENVIADO INT)")
' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_SUPERVISOR") ' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_SUPERVISOR")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS trabaja(sitrabaja TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS trabaja(sitrabaja TEXT)")
If Not(errorLog.IsInitialized) Then errorLog.Initialize(File.DirInternal, "errorLog.db", True)
errorLog.ExecNonQuery("CREATE TABLE IF NOT EXISTS errores(fecha INTEGER, error TEXT)")
End Sub
'Limpiamos la tabla errorLog de la BD
Sub deleteErrorLog_DB 'ignore
errorLog.ExecNonQuery("delete from errores")
errorLog.ExecNonQuery("vacuum;")
ToastMessageShow("BD Errores Borrada", False)
End Sub
'Borramos renglones extra de la tabla de errores
Sub borraArribaDe100Errores 'ignore
revisaBD
LogColor("Borramos BD de log", Colors.Magenta)
errorLog.ExecNonQuery("DELETE FROM errores WHERE fecha NOT in (SELECT fecha FROM errores ORDER BY fecha desc LIMIT 99 )")
errorLog.ExecNonQuery("vacuum;")
Log("Borramos mas de 100 de errorLog")
End Sub End Sub
'Genera una notificacion con importancia alta 'Genera una notificacion con importancia alta
@@ -64,4 +82,15 @@ Sub IsConnectedToInternet As Boolean 'ignore
End If End If
' If logger Then LogColor("Not connected", Colors.red) ' If logger Then LogColor("Not connected", Colors.red)
Return False Return False
End Sub
'Convierte una fecha al formato yyMMddHHmmss
Sub fechaKMT(fecha As String) As String 'ignore
' Log(fecha)
Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
DateTime.DateFormat="yyMMddHHmmss"
Dim nuevaFecha As String=DateTime.Date(fecha)
DateTime.DateFormat=OrigFormat 'return to orig date format
' Log(nuevaFecha)
Return nuevaFecha
End Sub End Sub

167
B4A/errorManager.bas Normal file
View File

@@ -0,0 +1,167 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Activity
Version=10.2
@EndOfDesignText@
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
'******************************************************************************
'Este modulo intercepta los errores de la aplicación mediante "Starter.Application_Error" y muestra una pantalla
'con el log del error y lo manda al servidor con un query de DBRequestManager, se necesita que exista el query
'en el "config.properties" llamado "guardaErrores" y que tenga el siguiente texto:
'
'sql.guardaErrores=INSERT INTO KELLOGGS.PUSH_INFO (ID, RUTA, FECHA, DATOS) VALUES((?),(?),(?),(?))
'
'Agregar estas lineas a "Starter.Process_Globals"
' 'Para los Logs
' Dim logs As StringBuilder
' Private logcat As LogCat
'
'Agregar estas lineas a "Starter.Service_Create"
' 'Para los Logs
' #if RELEASE
' logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat")
' #end if
' logs.Initialize
'
'Agregar este Sub a "Starter"
'
'Return true to allow the OS default exceptions handler to handle the uncaught exception. 'Para los Logs
'Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
' 'wait for 500ms to allow the logs to be updated.
' Dim jo As JavaObject
' Dim l As Long = 500: jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) 'Sleep 500ms
' logcat.LogCatStop
' logs.Append(StackTrace)
' Subs.revisaBD
' Subs.errorLog.ExecNonQuery2("INSERT INTO errores(fecha, error) VALUES (?,?)", Array As Object (Subs.fechaKMT(DateTime.now), logs))
' StartActivity(errorManager)
' Return True
'End Sub
'******************************************************************************
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
' Dim errorLog As SQL
Dim c As Cursor
Private p_principal As Panel
Private l_titulo As Label
Private svScroll As ScrollView
Private etText As EditText
Private c_continuar As Button
Private p_botones As Panel
Private b_salir As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("errorManager")
End Sub
Sub Activity_Resume
Dim elError As String = ""
Dim laFecha As String = ""
' svScroll.Initialize(500dip)
' Activity.AddView(svScroll, 0, 300, 100%x, 80%y)
p_principal.Height = Activity.Height
p_principal.Width = Activity.Width
svScroll.Width = Round(p_principal.Width * 0.9)
svScroll.Left = Round(p_principal.Width/2)-Round(svScroll.Width/2)
p_botones.Left = Round(p_principal.Width/2)-Round(p_botones.Width/2)
p_botones.Top = Activity.Height - (p_botones.Height + 80)
etText.Initialize("")
svScroll.Panel.AddView(etText, 0, 0, 90%x, 80%y)
etText.InputType = etText.INPUT_TYPE_NONE
etText.Gravity = Gravity.TOP
etText.SingleLine = False
etText.Wrap = False
' Dim lblText, edtText As StringBuilder
Dim lbl As Label
lbl.Initialize("")
Activity.AddView(lbl, 0, 300, 100%x, 100%y) 'ignore
etText.Text = ""
Subs.revisaBD
c = Subs.errorLog.ExecQuery("select * from errores order by fecha desc limit 1")
If c.RowCount > 0 Then
c.Position = 0
elError = c.GetString("error")
laFecha = c.GetString("fecha")
etText.Text = elError
End If
c.Close
Dim usuario As String = "XXXXX"
' c = Starter.skmt.ExecQuery("select usuario from usuarioa")
' If c.RowCount > 0 Then
' c.Position = 0
' usuario = c.GetString("USUARIO")
' End If
' Log("++++++" & Starter.logsStr)
' etText.Text = etText.Text & Starter.logsStr
' lbl.TextSize = etText.TextSize
' lbl.Text = etText.Text
' Dim su As StringUtils
' Dim edheight As Int = su.MeasureMultilineTextHeight(lbl, lbl.Text)
' lbl.RemoveView
' etText.Height = edheight
' svScroll.Panel.Height = edheight
svScroll.Height = Round(Activity.Height * 0.9)
' Log(edheight)
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "guardaErrores"
cmd.Parameters = Array As Object(laFecha, usuario, laFecha, elError)
Log($"Mandamos: ${Subs.fechaKMT(DateTime.Now)}, |${usuario}|, ${Subs.fechaKMT(DateTime.Now)}"$)
Starter.reqManager.ExecuteCommand(cmd,"guardaErrores")
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub JobDone(Job As HttpJob)
Log("errorManager - JobDone")
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
LogColor("JobDone: '" & Starter.reqManager.HandleJob(Job).tag & "' - Registros: " & Starter.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110
If Job.JobName = "DBRequest" Then
Dim result As DBResult = Starter.reqManager.HandleJob(Job)
If result.Tag = "guardaErrores" Then 'query tag
For Each records() As Object In result.Rows
For Each k As String In result.Columns.Keys
Log("GuardaErrores: " & k & ": " & records(result.Columns.Get(k)))
Next
Next
End If
End If
End If
Job.Release
End Sub
Private Sub c_continuar_Click
' Subs.iniciaActividad("Principal")
' B4XPages.ShowPage("Principal")
End Sub
Private Sub b_salir_Click
cierraActividades
End Sub
Sub cierraActividades
Log("closing activities")
Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("finishAffinity", Null)
End Sub

View File

@@ -122,6 +122,10 @@ Private Sub b_inicio_Click
' B4XPages.ShowPage ("Principal") ' B4XPages.ShowPage ("Principal")
End Sub End Sub
Private Sub b_inicio_LongClick
Private X As Int = "A"
End Sub
Sub JobDone (Job As HttpJob) Sub JobDone (Job As HttpJob)
If Job.Success = False Then If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True) ToastMessageShow("Error: " & Job.ErrorMessage, True)
@@ -133,7 +137,7 @@ Sub JobDone (Job As HttpJob)
If result.Tag = "usuario" Then 'query tag If result.Tag = "usuario" Then 'query tag
For Each records() As Object In result.Rows For Each records() As Object In result.Rows
For Each k As String In result.Columns.Keys For Each k As String In result.Columns.Keys
Log(result.Tag & ": " & k & ": " & records(result.Columns.Get(k))) ' Log(result.Tag & ": " & k & ": " & records(result.Columns.Get(k)))
Next Next
If records(result.Columns.Get ("USUARIO")) = "OKActivo" Then If records(result.Columns.Get ("USUARIO")) = "OKActivo" Then
Starter.almacen = records(result.Columns.Get ("CAT_LO_AGENCIA")) Starter.almacen = records(result.Columns.Get ("CAT_LO_AGENCIA"))
@@ -174,10 +178,10 @@ Sub JobDone (Job As HttpJob)
If perfil = 3 Then If perfil = 3 Then
CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS")
B4XPages.ShowPage("Principal") B4XPages.ShowPage("Principal")
Log("AQUI ANDO") ' Log("AQUI ANDO")
Else If perfil = 2 Then Else If perfil = 2 Then
CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS")
Log("AQUI ACA") ' Log("AQUI ACA")
B4XPages.ShowPage("Supervisor") B4XPages.ShowPage("Supervisor")
End If End If
Else If Starter.trabaja = 0 Then Else If Starter.trabaja = 0 Then