From 2d4e8dd2d2b4c11d8fcd32de3f65fa4cfd7427f8 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sat, 23 Mar 2024 16:04:24 -0600 Subject: [PATCH] - SE AGREGO CODIGO PARA EN ELNVIO DE ERRORES --- B4A/C_principal.bas | 107 +++++++++++------------- B4A/Files/errormanager.bal | Bin 0 -> 4280 bytes B4A/Gabinete roit.b4a | 55 ++++++------ B4A/Gabinete roit.b4a.meta | 7 +- B4A/Starter.bas | 17 +++- B4A/Subs.bas | 31 ++++++- B4A/errorManager.bas | 167 +++++++++++++++++++++++++++++++++++++ B4A/login.bas | 10 ++- 8 files changed, 302 insertions(+), 92 deletions(-) create mode 100644 B4A/Files/errormanager.bal create mode 100644 B4A/errorManager.bas diff --git a/B4A/C_principal.bas b/B4A/C_principal.bas index 80ca505..c39b440 100644 --- a/B4A/C_principal.bas +++ b/B4A/C_principal.bas @@ -90,31 +90,23 @@ Private Sub B4XPage_Created (Root1 As B4XView) reqManager.Initialize(Me, Starter.DBReqServer) g.Initialize("GPS") qr.Initialize(B4XImageView1.mBase.Width) - Panel1.Width = Root.Width Panel1.Height = Root.Height p_camara.Width = Root.Width p_camara.Height = Root.Height p_validacion.Width = Root.Width p_validacion.Height = Root.Height - - ScrollView1.height = Root.Height - p_general.Height p_scroll.height = Root.Height - p_general.Height - p_trabajadas.height = Root.Height - p_general.Height - End Sub Private Sub B4XPage_Appear - CheckAndRequestNotificationPermission If Not(Subs.IsConnectedToInternet) Then Msgbox("Habilita los datos del celular","Atención") B4XPage_Appear Else - - If g.GPSEnabled=False Then Dim Resultado As Int= -3 Do While Resultado=-3 @@ -129,8 +121,7 @@ Private Sub B4XPage_Appear End Select Loop Else - - Log("ENTRE") +' Log("ENTRE") StartService(Tracker) m_lat = "0" @@ -172,7 +163,7 @@ Private Sub B4XPage_Appear b_checkin.visible = True b_checout.visible = False b_comidain.Visible = False - b_comidaout.Visible = False + b_comidaout.Visible = False End If '' CallSubDelayed(Tracker, "StartFLPSmall") @@ -181,7 +172,7 @@ Private Sub B4XPage_Appear Starter.longitud = Tracker.FLP.GetLastKnownLocation.Longitude ' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$) GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation) - Log("hice esto") +' Log("hice esto") End If bu.Initialize @@ -471,7 +462,7 @@ Private Sub b_checkin_Click p_validacion.Visible = True l_codigo.Text = "Ingresa el codigo para el CHECK-IN." - End If + End If Else If donde2 = "2" Then Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False) Wait For Msgbox_Result (result As Int) @@ -690,49 +681,49 @@ Private Sub b_gestion_Click c.Position = 0 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 Not(Subs.IsConnectedToInternet) Then - MsgboxAsync("Habilita los datos del celular","Atención") - B4XPage_Appear - Else - If distance > 200 Then - Log("aqui") - MsgboxAsync("No estas cerca del punto asignado","Atención") - Else If distance < 200 Then - p_trabajadas.Visible= False - p_scroll.Visible = True - ScrollView1.Visible = True + If Not(Subs.IsConnectedToInternet) Then + MsgboxAsync("Habilita los datos del celular","Atención") + B4XPage_Appear + Else + If distance > 200 Then + Log("aqui") + MsgboxAsync("No estas cerca del punto asignado","Atención") + Else If distance < 200 Then + p_trabajadas.Visible= False + p_scroll.Visible = True + ScrollView1.Visible = True - ScrollView1.Panel.LoadLayout("gestion") - ScrollView1.Panel.Height = p_gestion.Height + ScrollView1.Panel.LoadLayout("gestion") + ScrollView1.Panel.Height = p_gestion.Height - p_scroll.BringToFront - y = 1 - x = 1 - InitializeCamera2 - p_camara.Visible = True - b_gestion.Enabled = False - p_gestion.Visible = True + p_scroll.BringToFront + y = 1 + x = 1 + InitializeCamera2 + p_camara.Visible = True + b_gestion.Enabled = False + p_gestion.Visible = True - nombrefoto = "0" - nombrefoto1 = "0" - iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png") - iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png") - itemselect = "" + nombrefoto = "0" + nombrefoto1 = "0" + iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png") + iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png") + itemselect = "" - Dim Items As List - Items.Initialize - Items.Clear - Items.Add("SELECCIONA UNA OPCION ") - Items.Add("APROBADO") - Items.Add("RECHAZADO") - Items.Add("INTERMITENCIA") - Items.Add("NO CONCLUIDO") - cb_estatus.SetItems(Items) - itemselect = "SELECCIONA UNA OPCION" - p_inci.Visible = False - ajustaTamano + Dim Items As List + Items.Initialize + Items.Clear + Items.Add("SELECCIONA UNA OPCION ") + Items.Add("APROBADO") + Items.Add("RECHAZADO") + Items.Add("INTERMITENCIA") + Items.Add("NO CONCLUIDO") + cb_estatus.SetItems(Items) + itemselect = "SELECCIONA UNA OPCION" + p_inci.Visible = False + ajustaTamano + End If End If - End If Else MsgboxAsync("Por favor hacer el check-in","Atención") End If @@ -916,7 +907,7 @@ Sub ajustaTamano Log("Invisible 1 y 2") b_cancelar.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 ScrollView1.Panel.Height = p_gestion.Height End Sub @@ -1135,7 +1126,7 @@ Sub mandaPendientes If c.RowCount > 0 Then For i = 0 To c.RowCount -1 c.Position=i - Dim cmd As DBCommand + Dim cmd As DBCommand cmd.Initialize 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")) @@ -1412,7 +1403,7 @@ End Sub Private Sub b_comidain_Click If p_scroll.Visible = False Then - Log("Cumple panel invisible") + Log("Cumple panel invisible") If horasalidacomer Then If Not(Subs.IsConnectedToInternet) Then Msgbox("Habilita los datos del celular","Atención") @@ -1520,8 +1511,8 @@ Sub horasalidacomer As Boolean Log(DateUtils.TicksToString(newDate)) Dim p2 As Period - p2.Hours = 1 - p2.Minutes = 0 + p2.Hours = 1 + p2.Minutes = 0 DateTime.DateFormat = "MM/dd/yyyy HH:mm" Dim fecha2 As String = DateTime.Date(DateTime.Now) Dim prueba2() As String = Regex.Split(" ",fecha2) @@ -1567,7 +1558,7 @@ Sub horasalidacomer As Boolean End Sub Private Sub b_aceptar_Click - mandacodigo + mandacodigo End Sub Private Sub p_validacion_Click @@ -1644,7 +1635,7 @@ Private Sub cb_rechazadas_CheckedChange(Checked As Boolean) botongestionadas End Sub -Sub botongestionadas +Sub botongestionadas c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA") If c.RowCount > 0 Then If cb_aprobadas.Checked = False And cb_rechazadas.Checked = False Then diff --git a/B4A/Files/errormanager.bal b/B4A/Files/errormanager.bal new file mode 100644 index 0000000000000000000000000000000000000000..50d6f7373b0d11e3d8905266c93188303a8d694f GIT binary patch literal 4280 zcmd5;Piz!r6rYvd$_ff!Gi}+)Zg#T&g^cx6&o&2^3A^QeeZkU zd%ySl-fT+Kv>y|i_5glYVl2hT8G%)^f-{_Fqsa+RuT+$GKXj85zHVFILtNfp4FcDx zFLpo^DwaVqCJfgJET^h_^lDE8R#3Iw2f3}FPb#~ANyf@hr!%D!NVIer?R~T-$yGayAslEj3d=fVnl4%zzJ)mghdamtZ6@7)m5F8QRi6 zBcm4{y}U_gkc43c2A^{n8{X#*`dcD7TTv|D z7)~AXR$W=sscvnWUfpx+_POax7tG$DwsfuS`f~i@)zhC(U7Efy@Wqzy?tzQn{hYXZ zTDx-ccYS4F=X=XW&+odq^ZaMyuWjyH*IoML)vnu}@BVRl_iy)U#_`MFe2l}7VK4#1 zFP*8V#~|e=b>A|wdF5Nvj`FfcRG>$-W$FR!+7YoV+eRUka##e^->#af zWCgZZzM}LKI-GeU(Qr1A9=0V`0tr*OZ=eb@+IT>5e=oQ;Cbi?}ovcsdq zMxrMNYL;&yRmM}(Jxh0j?L5U+QvvA`xE1=HvCN>%Q_ISlE(hFL)*Ykl%B`t|A`SPx zX_-Fxx4j#$c9jvL&$|LU+E_>6hIpQ^g7Tp2p}>B$K+aCOo~b-Zr!hUja0#R#8%A~0 zs``Szt!h$cW}qAv*_?CfxKhzg({iR4NbFDDkLT93ERjJ-qRu(bDi>uE2`#c$^#B+{H$NYTv|oXw>G2k>#Ms2Zd<# zyOR;d&6CNrJ0xt*^Bec(Hue#JvSR@NwJkrO23%MN6~RdDeA|-=wgqpWQbA;g@itrTNP) zpN?94;v=ZIhYBstD=X{tOq@Gr|NMIvzgm(9r&(CWmXh9|N|0pYi$KaM^Gh>vl2QZ~ zG5siBofzV86@*k`HQr0udlDvIU6H^`BpOyu1fnbnuzA-rK|t#KdBp=Tg8 zGTIoanb8v%9Zcs*4Dl4^*!Stpo=AgVEx8FVZqV4$QwhoaX^3$s65Lg21c3~MI1_<_ z#=RKJ1rNd&;}K^XrxW5KiPL2R7)(N7D9HK%qL#D2f)Ga&d!pT3V900zW($Nx0)yhW z0@DW{>3+PLfZ2*^mU@!32!oSDTX8kD-c6UI_cA{E!O zwR_NEqp&P<0VDPAJ>&>X_F#0(-nnxpz8H7wAz{TCRO70|j93b_FyaFU!bZl~$_Q{p zo+RH*JtU9m|BMk||IpKes1oESpX4GL@%D%7Tlb5Tc8n-uWiBHY{GOOFz8fRx@GguP lfl1sL<*RZOn#D6BAr)s(4MxyYOsT~&0z2z%bRkL8{sAS`YmEQ^ literal 0 HcmV?d00001 diff --git a/B4A/Gabinete roit.b4a b/B4A/Gabinete roit.b4a index f249767..3dd198c 100644 --- a/B4A/Gabinete roit.b4a +++ b/B4A/Gabinete roit.b4a @@ -1,26 +1,27 @@ Build1=Default,gabinete.keymon.lat File1=alert2.png -File10=gestion.bal -File11=gestion_sup.bal -File12=gestiones.bal -File13=izquierda.png -File14=kmt.db -File15=login.bal -File16=MainPage.bal -File17=mas.png -File18=menos.png -File19=principal.bal +File10=gabinete1.png +File11=gestion.bal +File12=gestion_sup.bal +File13=gestiones.bal +File14=izquierda.png +File15=kmt.db +File16=login.bal +File17=MainPage.bal +File18=mas.png +File19=menos.png File2=atras.png -File20=qr.png -File21=Roit.png -File22=supervisor.bal +File20=principal.bal +File21=qr.png +File22=Roit.png +File23=supervisor.bal File3=camara.png File4=derecha.png File5=engranes.png -File6=frintal.png -File7=from2.png -File8=gabinete.png -File9=gabinete1.png +File6=errormanager.bal +File7=frintal.png +File8=from2.png +File9=gabinete.png FileGroup1=Default Group FileGroup10=Default Group FileGroup11=Default Group @@ -36,6 +37,7 @@ FileGroup2=Default Group FileGroup20=Default Group FileGroup21=Default Group FileGroup22=Default Group +FileGroup23=Default Group FileGroup3=Default Group FileGroup4=Default Group FileGroup5=Default Group @@ -72,14 +74,15 @@ Library6=bitmapcreator Library7=byteconverter Library8=camera 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~~\n~)~\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~~\n~ ~\n~)~\n~~\n~AddManifestText(~\n~~\n~)~\n~~\n~AddManifestText(~\n~~\n~ )~\n~~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~~\n~AddManifestText(~\n~)~\n~~\n~~\n~'End of default text.~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\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()~\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~~\n~)~\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~~\n~ ~\n~)~\n~~\n~AddManifestText(~\n~~\n~)~\n~~\n~AddManifestText(~\n~~\n~ )~\n~~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~~\n~'AddManifestText(~\n~')~\n~~\n~~\n~'End of default text.~\n~~\n~'/////////////////////// App Updating ////////////////~\n~' AddManifestText(~\n~' )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\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()~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~ Module1=appUpdater Module10=DBRequestManager -Module11=login -Module12=QRGenerator -Module13=Starter -Module14=Subs -Module15=Tracker +Module11=errorManager +Module12=login +Module13=QRGenerator +Module14=Starter +Module15=Subs +Module16=Tracker Module2=B4x_Transition Module3=|relative|..\B4XMainPage Module4=BatteryUtilities @@ -88,15 +91,15 @@ Module6=C_supervisor Module7=C_UpdateAvailable Module8=CameraExClass Module9=CameraExClass2 -NumberOfFiles=22 +NumberOfFiles=23 NumberOfLibraries=28 -NumberOfModules=15 +NumberOfModules=16 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Gabinete #VersionCode: 1 - #VersionName: 4.03.05 + #VersionName: 4.03.06 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Gabinete roit.b4a.meta b/B4A/Gabinete roit.b4a.meta index ac83b21..b2303a6 100644 --- a/B4A/Gabinete roit.b4a.meta +++ b/B4A/Gabinete roit.b4a.meta @@ -6,6 +6,7 @@ ModuleBookmarks12= ModuleBookmarks13= ModuleBookmarks14= ModuleBookmarks15= +ModuleBookmarks16= ModuleBookmarks2= ModuleBookmarks3= ModuleBookmarks4= @@ -22,6 +23,7 @@ ModuleBreakpoints12= ModuleBreakpoints13= ModuleBreakpoints14= ModuleBreakpoints15= +ModuleBreakpoints16= ModuleBreakpoints2= ModuleBreakpoints3= ModuleBreakpoints4= @@ -38,6 +40,7 @@ ModuleClosedNodes12= ModuleClosedNodes13= ModuleClosedNodes14= ModuleClosedNodes15= +ModuleClosedNodes16= ModuleClosedNodes2= ModuleClosedNodes3= ModuleClosedNodes4= @@ -46,6 +49,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= 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 -VisibleModules=13,3,11,5,6,10,14,15,12,1 +VisibleModules=14,3,12,5,6,10,15,16,11 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 46f3b3f..dd7970d 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -39,6 +39,9 @@ Sub Process_Globals Dim horacomin As String Dim horacomout As String Dim trabaja As Int + 'Para los Logs + Dim logs As StringBuilder + Private logcat As LogCat End Sub Sub Service_Create @@ -61,8 +64,19 @@ Sub Service_TaskRemoved Timer1.Enabled = False 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 + '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 End Sub @@ -70,7 +84,6 @@ Sub Service_Destroy End Sub - Private Sub Timer1_Tick ' ToastMessageShow("Timer",False) ' If logger Then Log("Siguiente actuaizacion " & DateTime.Time(DateTime.Now + Interval * 1000)) diff --git a/B4A/Subs.bas b/B4A/Subs.bas index ec5cf4e..0f958c7 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -9,7 +9,7 @@ Version=11.8 Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. - + Dim errorLog As SQL 'Requiere la libreria "SQL" End Sub 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("DROP TABLE IF EXISTS HIST_SUPERVISOR") 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 'Genera una notificacion con importancia alta @@ -64,4 +82,15 @@ Sub IsConnectedToInternet As Boolean 'ignore End If ' If logger Then LogColor("Not connected", Colors.red) 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 \ No newline at end of file diff --git a/B4A/errorManager.bas b/B4A/errorManager.bas new file mode 100644 index 0000000..4f043b5 --- /dev/null +++ b/B4A/errorManager.bas @@ -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 \ No newline at end of file diff --git a/B4A/login.bas b/B4A/login.bas index 302d753..151089f 100644 --- a/B4A/login.bas +++ b/B4A/login.bas @@ -122,6 +122,10 @@ Private Sub b_inicio_Click ' B4XPages.ShowPage ("Principal") End Sub +Private Sub b_inicio_LongClick + Private X As Int = "A" +End Sub + Sub JobDone (Job As HttpJob) If Job.Success = False Then ToastMessageShow("Error: " & Job.ErrorMessage, True) @@ -133,7 +137,7 @@ Sub JobDone (Job As HttpJob) If result.Tag = "usuario" Then 'query tag For Each records() As Object In result.Rows 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 If records(result.Columns.Get ("USUARIO")) = "OKActivo" Then Starter.almacen = records(result.Columns.Get ("CAT_LO_AGENCIA")) @@ -174,10 +178,10 @@ Sub JobDone (Job As HttpJob) If perfil = 3 Then CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") B4XPages.ShowPage("Principal") - Log("AQUI ANDO") +' Log("AQUI ANDO") Else If perfil = 2 Then CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") - Log("AQUI ACA") +' Log("AQUI ACA") B4XPages.ShowPage("Supervisor") End If Else If Starter.trabaja = 0 Then