From 633afc2c2fe4d1a0a92ab3d4dd953accaae8a574 Mon Sep 17 00:00:00 2001 From: cvaldes1201 Date: Thu, 1 Aug 2024 23:47:18 -0600 Subject: [PATCH] activacion geocerca y foto para encuestas --- B4A/B4XMainPage.bas | 109 ++++++++++--- B4A/C_Cliente.bas | 194 +++++++++++++++++++++-- B4A/C_Nota.bas | 4 +- B4A/C_Principal.bas | 46 +++--- B4A/CameraExClass.bas | 290 ++++++++++++++++++++++++++++++++++ B4A/Files/cliente.bal | Bin 44529 -> 45729 bytes B4A/Guna Vistas V3.1.b4a | 21 +-- B4A/Guna Vistas V3.1.b4a.meta | 13 +- 8 files changed, 605 insertions(+), 72 deletions(-) create mode 100644 B4A/CameraExClass.bas diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index b97f422..d67f61e 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -181,6 +181,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_AVISO_GIRO (HEAV_CLIENTE TEXT, HEAV_MODULO TEXT, HEAV_AVISO TEXT, HEAV_GIRO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_LAT TEXT, HE_LON TEXT)") Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT") + Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB") Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") @@ -518,6 +519,45 @@ Sub JobDone(Job As HttpJob) IMEI = "" End If End If + + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + If result.Tag = "geopass" Then 'query tag + For Each records() As Object In result.Rows + Dim cuenta As String = records(result.Columns.Get("CUENTA")) + Next + If cuenta = "1" Then + p_validacion.Visible = False + B4XSwitch2.Value = True + skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1)) + et_codigo.Text = "" + + Private c2 As Cursor = skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info") + c2.Position = 0 + Private rutades As String = c2.GetString("CAT_CL_RUTA") + c2.Close + + Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") + c2.Position = 0 + Private almacendes As String = c2.GetString("ID_ALMACEN") + c2.Close + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "delete_geoPass_GUNA" + Log(Subs.traeAlmacen&", "& Subs.traeRuta) + cmd.Parameters = Array As Object( almacendes,rutades) + reqManager.ExecuteCommand(cmd , "traeGeoPass") + + Else If cuenta = "0" Then + MsgboxAsync("Codigo incorrecto","Atención") + p_validacion.Visible = False + B4XSwitch2.Value = False + skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) + et_codigo.Text = "" + End If + End If + End If If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) @@ -770,6 +810,7 @@ Private Sub B4XSwitch1_ValueChanged (Value As Boolean) End Sub Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean) + c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CARGA_DIA")) If c.RowCount > 0 Then c.Position = 0 @@ -806,30 +847,58 @@ Private Sub b_cancelarcodigo_Click End Sub Private Sub b_aceptar_Click - c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =? ", Array As String("pasword")) - Log(c.RowCount) - If c.RowCount > 0 Then - c.Position = 0 - Log(c.GetString("CAT_VA_VALOR")) - If c.GetString("CAT_VA_VALOR") = et_codigo.Text Then - - p_validacion.Visible = False + If et_codigo.Text <> "" Then - B4XSwitch2.Value = True - skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1)) - et_codigo.Text = "" - Else If c.GetString("CAT_VA_VALOR") <> et_codigo.Text Then - MsgboxAsync("Codigo incorrecto","Atención") - p_validacion.Visible = False - B4XSwitch2.Value = False - skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) - et_codigo.Text = "" - End If - Else If c.RowCount = 0 Then - MsgboxAsync("Codigo incorrecto","Atención") + Private c2 As Cursor = skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info") + c2.Position = 0 + Private rutades As String = c2.GetString("CAT_CL_RUTA") + c2.Close + + Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") + c2.Position = 0 + Private almacendes As String = c2.GetString("ID_ALMACEN") + c2.Close + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_geoPass_GUNA" + cmd.Parameters = Array As Object(et_codigo.Text, almacendes, rutades) + reqManager.ExecuteQuery(cmd , 0, "geopass") + + Else If et_codigo.Text = "" Then + + MsgboxAsync("Ingresa un codigo","Atención") p_validacion.Visible = False B4XSwitch2.Value = False skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) + et_codigo.Text = "" + End If +' c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =? ", Array As String("pasword")) +' Log(c.RowCount) +' If c.RowCount > 0 Then +' c.Position = 0 +' Log(c.GetString("CAT_VA_VALOR")) +' If c.GetString("CAT_VA_VALOR") = et_codigo.Text Then +' +' p_validacion.Visible = False +' +' B4XSwitch2.Value = True +' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1)) +' et_codigo.Text = "" +' Else If c.GetString("CAT_VA_VALOR") <> et_codigo.Text Then +' MsgboxAsync("Codigo incorrecto","Atención") +' p_validacion.Visible = False +' B4XSwitch2.Value = False +' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) +' et_codigo.Text = "" +' End If +' Else If c.RowCount = 0 Then +' MsgboxAsync("Codigo incorrecto","Atención") +' p_validacion.Visible = False +' B4XSwitch2.Value = False +' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) +' End If + End Sub \ No newline at end of file diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 30ac4cf..d06a4d6 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -374,7 +374,7 @@ Sub Class_Globals Private p_m4 As Panel Dim impresoraConectada As Boolean = False Dim errorImpresora As Int = 0 - + Dim idencuestaaguardar As String 'Encuestas Private botonPresionado As Int Private encuestaRes As String @@ -408,6 +408,15 @@ Sub Class_Globals Private l_geopass As Label Dim reqManager As DBRequestManager + Private camEx As CameraExClass + Dim frontCamera As Boolean = False + Private p_cam As Panel + Dim nombrefoto As String = "0" + Private p_camara As Panel + Private teclado As IME + Dim fototomada As String + Private b_foto As Button + End Sub 'You can add more parameters here. @@ -487,6 +496,8 @@ Sub B4XPage_Appear skmt.Initialize(ruta,"kmt.db", True) reqManager.Initialize(Me, Starter.server) + p_camara.Width = Root.Width + p_camara.Height = Root.Height S2=B4XPages.MainPage.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") S2.Position =0 @@ -642,11 +653,11 @@ Sub B4XPage_Appear B_IMP.Visible = False End If ' Log(distance) - If (ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "87") And distance > 100 Then - gest.Visible = False - Tels.Visible = False -' ToastMessageShow("aaa", False) - End If + + + +' + ' Log(Subs.InvSuficientePromoEsp) ' Log(Subs.traemontoprod) @@ -774,7 +785,11 @@ Sub B4XPage_Appear l_atiende.Text = c.GetString("CAT_CL_ATIENDE1") l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") TELEFONO = c.GetString("CAT_CL_TELEFONO") - l_total.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") + If s.GetString("TOTAL_CLIE") = Null Then + l_total.Text = 0 + Else + l_total.Text =NumberFormat2((s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")),0,2,2,False) + End If total_cliente = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") m_lat = "0" If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT") @@ -817,7 +832,11 @@ Sub B4XPage_Appear l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") TELEFONO = c.GetString("CAT_CL_TELEFONO") Log(s.GetString("TOTAL_CLIE")) - l_total.Text = s.GetString("TOTAL_CLIE") + If s.GetString("TOTAL_CLIE") = Null Then + l_total.Text = 0 + Else + l_total.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False) + End If total_cliente = s.GetString("TOTAL_CLIE") m_lat = "0" If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT") @@ -844,6 +863,24 @@ Sub B4XPage_Appear 'AQUI TERMINA + c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'") + If c.RowCount > 0 Then + c.Position = 0 + Dim geo As String = c.GetString("CAT_VA_VALOR") + End If + c.Close + Log(geo) + If geo = "0" Then + gest.Visible = True + Tels.Visible = True + Log("AQUI") + Else If geo = "1" And distance > 100 Then + gest.Visible = False + Tels.Visible = False +' ToastMessageShow("aaa", False) + End If + + End Sub Sub GPS_LocationChanged (Location1 As Location) @@ -870,21 +907,27 @@ Sub GPS_LocationChanged (Location1 As Location) c = skmt.ExecQuery("SELECT HABILITADO FROM GPS") If c.RowCount > 0 Then c.Position = 0 - Dim habi = c.GetString("HABILITADO") + Dim habi As String = c.GetString("HABILITADO") + End If + c.Close + c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'") + If c.RowCount > 0 Then + c.Position = 0 + Dim geo As String = c.GetString("CAT_VA_VALOR") End If c.Close If gest.IsInitialized And Tels.IsInitialized Then - If ALMACEN <> "32" And ALMACEN <> "33" Then + If geo = "0" Then gest.Visible = True Tels.Visible = True - Else If ALMACEN = "32" And ALMACEN = "33" Then + Else If geo = "1" Then gest.Visible = False Tels.Visible = False End If End If - If ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "87" Then + If geo = "1" Then If distance < 100 Then LA_GEO.TextColor = Colors.Blue Tels.Visible = True @@ -1809,6 +1852,10 @@ Private Sub B4XPage_CloseRequest As ResumableSub cuest.ocultPanelPregunta If p_encuesta.Visible Then p_encuesta.Visible = False + Else iF p_camara.Visible Then + Return False +' p_camara.Visible = False +' StopCamera2 else If p_pregunta1.Visible Then p_pregunta1.Visible = False Else if SV_ENCUESTA.Visible Then @@ -4197,13 +4244,19 @@ Sub Cuestionario enc.Position = i Log($"POSICION = ${enc.Position}"$) - If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then + If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then 'esto es para la foto If logger Then Log("Pregunta tipo 5") id_encuesta = enc.GetString("CAT_EP_ID") + idencuestaaguardar = enc.GetString("CAT_EP_ID") + LogColor(idencuestaaguardar,Colors.Blue) TOMAR_FOTO = 1 CURSOR_FOTO = i LogColor("PREGUNTA TIPO 5 SALIMOS", Colors.Red) - Exit + + InitializeCamera2 + p_camara.Visible = True + + ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then ' Tipo SI/NO If logger Then Log("Pregunta tipo 3") botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta @@ -4248,6 +4301,9 @@ Sub Cuestionario Log($"IndicePreg = ${indicePregunta}"$) i = indicePregunta Log($"I = ${i}"$) + If enc.GetString("CAT_EP_RES2_PRED") = "null" Or enc.GetString("CAT_EP_RES2_PRED") = Null Then + Exit + End If End If ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then ' Tipo 3 opciones. Log("Pregunta tipo 2") @@ -4500,4 +4556,112 @@ Sub cuest_preguntaContestada(m As Map) B4XPage_Appear ' Case 6 End Select -End Sub \ No newline at end of file +End Sub + + +'tomar foto + +Private Sub InitializeCamera2 + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA) + Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean) + If resultC Then + camEx.Initialize(p_cam, frontCamera, Me, "Camera1") + frontCamera = camEx.Front + Log("inicializamos Camara") + Else + ToastMessageShow("No permission!!!", True) + End If +' 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!!!", 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!!!", 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) + Log("tome foto") + Dim filename As String = DateTime.Now & "GUNA.jpg" + Dim Dirp As String = File.DirInternal + Dim Dir As String + Dim Dir2 As String + Try + File.MakeDir(Dirp,"/guna") + Dir = "/guna" + 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) + Log(Dirp&Dir &" ALGO BONITO COMO UN COLOR PARA GUERRA "& 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(filename) + + + If filename <> "0" Then + Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 300, 450, True) + Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, True) + img.WriteToStream(out, 100, "PNG") + out.Close + Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$ + B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_FOTO, HE_FECHA, HE_TIPO, HE_LAT, HE_LON,HE_RES) VALUES (?,?,?,?,?,?,?)", Array As Object(la_cuenta.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, filename), fecha, idencuestaaguardar, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,"FOTO")) + End If + StopCamera2 +' nombrefoto = "0" + ocultaPanelEncuesta +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 diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas index 1361f39..1e7da00 100644 --- a/B4A/C_Nota.bas +++ b/B4A/C_Nota.bas @@ -117,7 +117,7 @@ Sub B4XPage_Appear s5.Position = 0 - L_TOTAL.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") + L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False) @@ -128,7 +128,7 @@ Sub B4XPage_Appear Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") s.Position=0 - L_TOTAL.Text = s.GetString("TOTAL_CLIE") + L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False) s.Close End If diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 97a118f..7a55f75 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -304,6 +304,7 @@ End Sub Sub B4XPage_Appear p_principal.Visible = True + HORAINGRESO ="000000" Btn_Ubicar.Left = (Root.Width/2) - (Btn_Ubicar.Width/2) ' B4XPages.MainPage.reqManager.Initialize(Me, B4XPages.MainPage.SERVER) @@ -558,15 +559,15 @@ Sub Subir_Click End If c.Close - c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON FROM HIST_ENCUESTA") + c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON, HE_FOTO FROM HIST_ENCUESTA") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i Dim cmd As DBCommand cmd.Initialize - cmd.Name = "insert_encuesta_GUNA" + cmd.Name = "insert_encuesta2_GUNA" 'TMP_HE_CLIE, TMP_HE_RES, TMP_HE_FECHA, TMP_HE_TIPO, TMP_HE_IDALMACEN, TMP_HE_RUTA, TMP_HE_LONGITUD, TMP_HE_LATITUD, TMP_HE_EXISTE - cmd.Parameters = Array As Object(C.GetString("HE_CLIE"), C.GetString("HE_RES"), C.GetString("HE_FECHA"), c.GetString("HE_TIPO"), Subs.traeAlmacen, Subs.traeRuta, c.GetString("HE_LAT"), c.GetString("HE_LON"), "") + cmd.Parameters = Array As Object(C.GetString("HE_CLIE"), C.GetString("HE_RES"), C.GetString("HE_FECHA"), c.GetString("HE_TIPO"), Subs.traeAlmacen, Subs.traeRuta, c.GetString("HE_LAT"), c.GetString("HE_LON"), "", c.GetBlob("HE_FOTO")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") Next End If @@ -605,20 +606,20 @@ Sub Subir_Click cuantos_pedido = D.GetString("CUANTOS_PEDIDO") d.Close - 'CUESTIONARIO - c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) - Private rutaActual As String = Subs.traeRuta - If c.RowCount > 0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "insert_CUESTIONARIO_GUNA" - cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario") - Next - End If - c.Close +' 'CUESTIONARIO +' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) +' Private rutaActual As String = Subs.traeRuta +' If c.RowCount > 0 Then +' For i = 0 To c.RowCount - 1 +' c.Position = i +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_CUESTIONARIO_GUNA" +' cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) +' B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario") +' Next +' End If +' c.Close ' NOVENTA c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") @@ -767,7 +768,9 @@ Sub cargar_Click B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) + B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("GEOCERCA")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) CARGA = "CARGAR" img2.Visible =True L_P_1.Visible = True @@ -1057,7 +1060,7 @@ Sub JobDone(Job As HttpJob) If n = "OKActivo" Then Dim cmd As DBCommand cmd.Initialize - cmd.Name = "select_ruta_GV2_70_2" + cmd.Name = "select_ruta_GV2_70_5" cmd.Parameters = Array As Object(ALMACEN,e_ruta.text) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") 'Log("Usuario guardado en BD es 'Valido'") @@ -1287,8 +1290,10 @@ Sub JobDone(Job As HttpJob) For Each records() As Object In RESULT.Rows Dim latitud As String = records(RESULT.Columns.Get("CAT_AL_LATITUD")) Dim longitud As String = records(RESULT.Columns.Get("CAT_AL_LONGITUD")) + Dim GEOCERCA As String = records(RESULT.Columns.Get("CAT_AL_GEOCERCA")) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LATITUD",latitud)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LONGITUD",longitud)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("GEOCERCA",GEOCERCA)) Next ' If Starter.marcaCel <> "Sony" Then ToastMessageShow(" Historico Marcas" , True) End If @@ -1926,6 +1931,7 @@ Sub e_ruta_EnterPressed B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) B4XPage_Appear End If End If @@ -2191,7 +2197,7 @@ Sub resdia_Click s5.Position = 0 - L_REAL.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") + L_REAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False) @@ -2202,7 +2208,7 @@ Sub resdia_Click Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO ") s.Position=0 - L_REAL.Text = s.GetString("TOTAL_CLIE") + L_REAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False) s.Close End If diff --git a/B4A/CameraExClass.bas b/B4A/CameraExClass.bas new file mode 100644 index 0000000..1743551 --- /dev/null +++ b/B4A/CameraExClass.bas @@ -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 + + + diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index ba5738ecb179027ab182a2fa80ab7c7bb5edf717..37af2eb6f718c031e872a477ccc100b4dd861992 100644 GIT binary patch delta 1327 zcmZA1OHWfl7zW^((nCC_G-yTa1uV7}5mYW-XzQ&aUh#tB1-z9576l8f$j*>rOk6_X zbK{DzQG$tS(?7rtjbUNJ!o+CY7-NhJ|AF5ea_k!yZ|9l$rZYX0&iV7%vGCpD)`SpR zg%Ad}6SM9Wqnt629Lh{&3Tvxnx~gZBgXSo`b^3i9?4CJp>g!Gqr^Y5y#dpq1DNXvM z{nE;~;H2g9K(3Y*;M8!ofrH>Ww)G8ew{t?AFlPri06#Mfe(X^fRBQYffL~4;11iozc^uc zxa|a=1fK$*2A=_+1)l?VfzN|4uyghiU4+6Va5wle_zJiOd=-2Rd>wqF1_787O{mtyKo`>Xz>Kzw2F`4|L4QSLB}RbT08C^duH?cqPf1kkRE3 zqKe0KFFjoh$}hCA7@>`Ek1HXCsN;f+J7~71fqqW*P`+go#YUR-zV5tBmD(tuZns9? zhkepVg_nN%mh@0!-V<8k3F^A()%;=Y;Nun5rK{MYhI#+~RD`r?k6fZceV7u@t0?$F zmp{ntZKZ6JLDf^H!*Bh}#%J~-{{I#cVyjwBZKB>n@(q2gjnMC?zFF-VR6}0-Nmglj SGDu%v8#FVmsi?COQv3y!{+~Gj delta 1006 zcmYk)xl+PV7>41K0EH-0ii-P!EAIP_`;IHFAYxP$F)~``4xCZ0z)Ns)2R2rAcFx#2 z7B*Vh`hg^T#XEWaoSexrdH9fj-eiYO2=SCFgdNALJIC|m`-{bsgFy{NVo@c2tvE1v z{o%M03nap-sw7fd(zE_)bxKk&`D^>q3UJbe3Q-X%Ms9Kmxs+T6TaXo%qY6}ss>s#k z8rZnLHfv3IvV*9j4fSvXYD7)sX0n&uLT)9uk=x-8)QP&%*8YcXTIeD7lKaU0nk$vQG@&tL3JVl-+&yZ)ya~W%?Pccsm3*<%e5_y^IC$ErK$!p|w z@`eza`SzQ%5Fl^C#*ecN@1R|@N8Tp~$szIqIcyr=|Ii$Sh>(w91s$Uk@+mn=J|myQ oF?50A$oT0lVdG`gly%L1D@iUrKkwD4OK#tN^83b?$tp|Y56nhcC;$Ke diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 42624b0..ea4241c 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -157,7 +157,7 @@ Library6=byteconverter Library7=camera Library8=compressstrings Library9=core -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~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\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~'//////////////////////////////////////////////////////~\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~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText() +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~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\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~'//////////////////////////////////////////////////////~\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~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE) Module1=appUpdater Module10=C_NoVenta Module11=C_NuevoCliente @@ -167,14 +167,15 @@ Module14=C_Productos Module15=C_Promos Module16=C_TicketsDia Module17=C_UpdateAvailable -Module18=DBRequestManager -Module19=EscPosPrinter +Module18=CameraExClass +Module19=DBRequestManager Module2=B4XMainPage -Module20=FirebaseMessaging -Module21=MAPA_RUTAS -Module22=Starter -Module23=Subs -Module24=Tracker +Module20=EscPosPrinter +Module21=FirebaseMessaging +Module22=MAPA_RUTAS +Module23=Starter +Module24=Subs +Module25=Tracker Module3=BatteryUtilities Module4=C_Cliente Module5=C_Clientes @@ -184,13 +185,13 @@ Module8=C_Mapas Module9=C_Nota NumberOfFiles=62 NumberOfLibraries=33 -NumberOfModules=24 +NumberOfModules=25 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna V3.1 #VersionCode: 1 - #VersionName: 4.07.27.EP + #VersionName: 4.07.31.EP_d 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index 3398818..783e683 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -16,6 +16,7 @@ ModuleBookmarks21= ModuleBookmarks22= ModuleBookmarks23= ModuleBookmarks24= +ModuleBookmarks25= ModuleBookmarks3= ModuleBookmarks4= ModuleBookmarks5= @@ -41,6 +42,7 @@ ModuleBreakpoints21= ModuleBreakpoints22= ModuleBreakpoints23= ModuleBreakpoints24= +ModuleBreakpoints25= ModuleBreakpoints3= ModuleBreakpoints4= ModuleBreakpoints5= @@ -62,10 +64,11 @@ ModuleClosedNodes18= ModuleClosedNodes19= ModuleClosedNodes2= ModuleClosedNodes20= -ModuleClosedNodes21=3,4 -ModuleClosedNodes22=1 -ModuleClosedNodes23= +ModuleClosedNodes21= +ModuleClosedNodes22=3,4 +ModuleClosedNodes23=1 ModuleClosedNodes24= +ModuleClosedNodes25= ModuleClosedNodes3= ModuleClosedNodes4= ModuleClosedNodes5=7 @@ -73,6 +76,6 @@ ModuleClosedNodes6=8,9,10 ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,Impresion,2023,0,C_Cliente,B_IMP_Click,2014,6,C_Principal,Subir_Click,584,6,C_Cliente,Impresion2,2189,2,Diseñador Visual,cliente.bal,-100,3,C_Cliente,CB4_P8_M3_CheckedChange,4118,0,C_Cuestionario,Class_Globals,0,0,C_Principal,Class_Globals,0,0,C_Cliente,Cuestionario,4193,0,C_Cliente,gest_Click,1082,0 +NavigationStack=C_Cliente,GPS_LocationChanged,947,0,B4XMainPage,B4XSwitch2_ValueChanged,766,6,B4XMainPage,Entrar_Click,416,0,C_Cliente,b_geopass_Click,1062,0,C_Cliente,JobDone,1108,0,C_Principal,e_ruta_EnterPressed,1926,1,C_Principal,cargar_Click,766,1,C_Principal,Subir_Click,752,0,C_Principal,JobDone,1033,4,B4XMainPage,JobDone,525,6 SelectedBuild=0 -VisibleModules=22,2,23,13,14,4,6,9,12,5 +VisibleModules=23,2,24,13,14,4,6,9,12,5