diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 9fbb360..3dc4696 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -74,6 +74,10 @@ Sub Class_Globals Private lv_server As ListView Private l_server As Label Private et_server As EditText + + Dim q As C_Cuestionario +' Private bAceptarPregunta As Button +' Dim encuestaIniciada As Boolean = False End Sub Public Sub Initialize @@ -94,7 +98,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) B4XPages.AddPage("Clientes", clientes) cliente.Initialize B4XPages.AddPageAndCreate("Cliente", cliente) -' productos.Initialize +' productos.InitializeQuestionario ' B4XPages.AddPage("Productos", productos) updateAvailable.Initialize B4XPages.AddPage("updateAvailable", updateAvailable) @@ -117,6 +121,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' historico.Initialize ' B4XPages.AddPage("Historico", historico) ruta = Starter.ruta + p_Main.Height = Root.Height ' Subs.borraArribaDe100Errores ' Para Websockets ' Subs.borraArribaDe600RenglonesBitacora ' Para Websockets If File.Exists(ruta, "kmt.db") = False Then @@ -143,6 +148,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GIROS (id TEXT, descripcion TEXT)") ' skmt.ExecNonQuery("drop table kmt_info") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS kmt_info (CAT_CL_FOTO BLOB, CAT_CL_NUM_SERIEFISICO TEXT, CAT_CL_MTOCOMPRA TEXT, CAT_CL_CEDIS TEXT, CAT_CL_LAT TEXT, CAT_CL_LONG TEXT, CAT_CL_FBAJA TEXT, CAT_CL_FALTA TEXT, CAT_CL_CP TEXT, CAT_CL_EDO TEXT, CAT_CL_MUNI TEXT, CAT_CL_COLONIA TEXT, CAT_CL_CALLE2 TEXT, CAT_CL_CALLE1 TEXT, CAT_CL_NOINT TEXT, CAT_CL_NOEXT TEXT, CAT_CL_CALLE TEXT, CAT_CL_EMAIL TEXT, CAT_CL_TELEFONO TEXT, CAT_CL_ATIENTE2 TEXT, CAT_CL_ATIENDE1 TEXT, CAT_CL_NOMBRE TEXT, CAT_CL_GIRO TEXT, CAT_CL_DIAS_VISITA TEXT, CAT_CL_TIPO_RUTA TEXT, CAT_CL_RUTA TEXT, CAT_CL_CODIGO TEXT, gestion NUMERIC, CAT_CL_DIASEMANA TEXT, CAT_CL_SECUENCIA INT)") + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CUESTIONARIO (Q_IDCLIENTE TEXT, Q_IDPREGUNTA TEXT, Q_PREGUNTA TEXT, Q_IDRESPUESTA TEXT, Q_RESPUESTA TEXT, Q_FECHA TEXT)") Subs.agregaColumna("kmt_info", "CAT_CL_CRUCE1", "TEXT") Subs.agregaColumna("kmt_info", "CAT_CL_ESTATUS", "TEXT") Subs.agregaColumna("kmt_info", "CAT_CL_ENVIO_PENDIENTE", "TEXT") @@ -203,8 +209,9 @@ Private Sub B4XPage_Created (Root1 As B4XView) almacen = 0 rutaPreventa = 0 p_appUpdate.Visible = False - + Log(Starter.server) reqManager.Initialize(Me, Starter.server) +' q.Initialize(Me, "q", Root, skmt) End Sub Sub B4XPage_Appear @@ -218,12 +225,12 @@ Sub B4XPage_Appear Else Log("SIN permisos de ubicacion") End If - Log("1") p_Main.Width = Root.Width Dim ph As Phone 'Get Id Device Dim DeviceID As String = ph.GetSettings("android_id").ToUpperCase LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue) server = Starter.server + Log(Starter.server) reqManager.Initialize(Me, Starter.server) tgl.Initialize() If Not(Starter.gps.GPSEnabled) Then @@ -261,7 +268,9 @@ Sub B4XPage_Appear 'Obtenemos el usuario registrado ' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") dameUsuario +' If Not(q.encuestaIniciada) Then q.agregaPregunta("1", "¿Se puede acceder al negocio o está enrejado?", Array As String("No, está enrejado o no se tiene acceso", "Si se pude acceder")) End Sub + 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub Entrar_Click @@ -577,8 +586,8 @@ End Sub Sub i_engrane_Click lv_server.Clear - lv_server.AddSingleLine("http://keymon.lat:1782") - If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782") + lv_server.AddSingleLine("http://keymon.lat:1781") + If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1781") l_server.Text = Starter.server et_server.Text = Starter.server Subs.panelVisible(p_appUpdate,0,0) @@ -587,6 +596,7 @@ End Sub Sub b_guardar_Click p_appUpdate.Visible = False Starter.reqManager.Initialize(Me, et_server.Text) + reqManager.Initialize(Me, et_server.Text) Starter.server = et_server.Text ToastMessageShow("Servidor modificado", False) Subs.panelVisible(p_Main,0,0) @@ -625,3 +635,32 @@ Private Sub b_enviarbd_Click in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION StartActivity(in) End Sub + +'Sub q_preguntaContestada(m As Map) +'' Recibimos el id de la pregunta, el id de la respuesta, el texto de la respuesta y el objeto del panelSombra para poder ocultarlo. +' Log(m) +'' If q.IsInitialized Then Log($"${q.encuestaIniciada}|${q.preguntaActual}"$) +'' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta. +' m.Get("panel").As(Panel).RemoveView 'Quitamos le panel de la pregunta +' DateTime.DateFormat = "yyyyMMdd" +' skmt.ExecNonQuery($"delete from QUESTIONARIO where Q_IDCLIENTE = '${Subs.traeCliente}' and Q_IDPREGUNTA = '${m.Get("idPregunta")}'"$) +' skmt.ExecNonQuery($"insert into QUESTIONARIO (Q_IDCLIENTE, Q_IDPREGUNTA, Q_PREGUNTA, Q_IDRESPUESTA, Q_RESPUESTA, Q_FECHA) values ('${Subs.traeCliente}', '${m.Get("idPregunta")}', '${m.Get("pregunta")}', '${m.Get("idRespuesta")}', '${m.Get("respuesta")}', '${DateTime.Date(DateTime.now)}')"$) +' Select Case m.Get("idPregunta") +' Case "1" +' If m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then +' Log("Tiendajon / Ventana / Kiosko") +' Else if m.Get("respuesta") = "Si se pude acceder" Then +' q.agregaPregunta("2", "¿Tiene al menos 2 pasillos con acceso directo a la mercancía?", Array As String("Si tiene al menos 2 pasillos con acceso directo a la mercancía", "No tiene pasillos o solo uno central")) +' End If +' Case "2" +' If m.Get("respuesta") = "Si tiene al menos 2 pasillos con acceso directo a la mercancía" Then +' Log("Mini-Super") +' else If m.Get("respuesta") = "No tiene pasillos o solo uno central" Then +' q.agregaPregunta("3", "¿Cuenta con enfriador horizontal para venta de perecederos como queso, jamon, crema, etc.?", Array As String("Si", "No tiene enfriador horizontal. ¿El local esta enfocado a venta especializada?")) +' End If +' Case 3 +' Log(">>>>>>>>>> " & q.encuestaIniciada) +' q.encuestaIniciada = False +' Log(">>>>>>>>>> " & q.encuestaIniciada) +' End Select +'End Sub \ No newline at end of file diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 2a7e251..9463c64 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -151,7 +151,15 @@ Sub Class_Globals Dim turnoColor As Int = 1 Dim cd As ColorDrawable Dim camposModificados As List - dim mandarTodo as Boolean = False + Dim mandarTodo As Boolean = False + Private sv_clientesDatos As ScrollView +' Private bAceptarPregunta As Button +' Dim encuestaIniciada As Boolean = False + Dim q As C_Cuestionario + Dim su As StringUtils + Dim clienteAnt As String = "" + Private l_cuestionario As Label + Private b_mapa2 As Button End Sub 'You can add more parameters here. @@ -177,9 +185,18 @@ Private Sub B4XPage_Created (Root1 As B4XView) m_lon = 0 reqManager.Initialize(Me, Starter.server) - + sv_clientesDatos.Width = Root.Width + sv_clientesDatos.Height = Root.Height + sv_clientesDatos.Panel.LoadLayout("clienteDatos") + Subs.centraBoton(b_guardaCambios, p_cliente.Width) + If l_cuestionario.Visible Then + b_guardaCambios.Top = l_cuestionario.Top + l_cuestionario.Height + 20dip + Else + b_guardaCambios.Top = l_cuestionario.Top + 20dip + End If Log("terminamos create") camposModificados.Initialize + q.Initialize(Me, "q", Root, skmt) End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. @@ -187,9 +204,8 @@ End Sub Sub B4XPage_Appear rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA) Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean) - rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) - Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean) - CallSubDelayed(Tracker, "StartFLPSmall") + sv_clientesDatos.Panel.Height = p_cliente.Height + l_cuestionario.Visible = False reqManager.Initialize(Me, Starter.server) lv_colonia.Visible = False Timer2.Initialize("Timer2", Interval * 1) @@ -200,6 +216,7 @@ Sub B4XPage_Appear ToastMessageShow("Es necesario tener el GPS encendido", True) StartActivity(Starter.gps.LocationSettingsIntent) End If + CallSubDelayed(Tracker, "StartFLPSmall") If refrescarCliente Then LogColor("Cargamos cliente de BD", Colors.Magenta) skmt.Initialize(ruta,"kmt.db", True) @@ -240,6 +257,26 @@ Sub B4XPage_Appear l_lat.Text = m_lat l_lon.Text = m_lon End If + Private cuest As Cursor = skmt.ExecQuery($"select * from cuestionario where Q_IDCLIENTE = '${Subs.traeCliente}'"$) + If cuest.RowCount > 0 Then + Private cs As CSBuilder + cs.Initialize + Private cuestText As String + For i = 0 To cuest.RowCount - 1 + cuest.Position = i +' If i = 0 Then + cs.color(Colors.black).Append(cuest.GetString("Q_PREGUNTA")).popall.Append(CRLF).Append(" " & cuest.GetString("Q_RESPUESTA")).Append(CRLF).popall +' Else +' cuestText = cuestText & cs.bold.Append(CRLF).Append(cuest.GetString("Q_PREGUNTA")).pop.Append(CRLF).Append(cuest.GetString("Q_RESPUESTA")).popall +' End If + Next + l_cuestionario.Text = cs + l_cuestionario.Visible = True + End If + + l_cuestionario.Height = su.MeasureMultilineTextHeight(l_cuestionario, l_cuestionario.Text) + + ajustaTamano ' Tracker.FLP.Connect If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos. B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude @@ -269,11 +306,17 @@ Sub B4XPage_Appear cb_giro.SetItems(losGiros) cb_giro.SelectedIndex = losGiros.IndexOf(c.GetString("CAT_CL_GIRO")) cb_giro.mBase.Width = et_diaSemana.Width - Log("|"&c.GetString("CAT_CL_GIRO")&"|") +' Log("|"&c.GetString("CAT_CL_GIRO")&"|") c.Close camposModificados.Clear End If refrescarCliente = False + 'Revisamos si el cliente actual es diferente del anterior y si es diferente ponemos encuestaIniciada en VERDADERO. + If clienteAnt <> Subs.traeCliente Then q.encuestaIniciada = False + clienteAnt = Subs.traeCliente +' Log("CON ENCUESTA: " & q.clienteConEncuesta(Subs.traeCliente)) +' Log("INICIADA: " & q.encuestaIniciada) + If Not(q.encuestaIniciada) And Not(q.clienteConEncuesta(Subs.traeCliente)) Then q.agregaPregunta("1", "¿Se puede acceder al negocio o está enrejado?", Array As String("No, está enrejado o no se tiene acceso", "Si se pude acceder")) End Sub Private Sub Timer2_Tick @@ -303,8 +346,8 @@ Sub GPS_LocationChanged (Location1 As Location) l2.Initialize2(m_lat, m_lon) ' Log($"${Location1.Latitude}, ${Location1.Longitude} - ${Tracker.FLP.GetLastKnownLocation.Latitude}, ${Tracker.FLP.GetLastKnownLocation.Longitude}"$) 'now we need the distance between our location and the target location - Dim distance As Long - distance = l1.DistanceTo(l2) 'the result is in meter +' Dim distance As Long +' distance = l1.DistanceTo(l2) 'the result is in meter B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & " " & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) CallSubDelayed(Tracker, "CreateLocationRequest") @@ -316,7 +359,10 @@ End Sub Private Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed + q.encuestaIniciada = False + q.ocultPanelPregunta ' Return True To close, False To cancel + CallSubDelayed(Tracker, "StartFLP") Return True ' Return False End Sub @@ -641,4 +687,99 @@ End Sub Private Sub et_diaSemana_TextChanged (Old As String, New As String) camposModificados.Add("CAT_CL_DIAS_VISITA") +End Sub + +Sub q_preguntaContestada(m As Map) +' Recibimos el id de la pregunta, el id de la respuesta, el texto de la respuesta y el objeto del panelSombra para poder ocultarlo. + Log(m) +' If q.IsInitialized Then Log($"${q.encuestaIniciada}|${q.preguntaActual}"$) +' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta. + m.Get("panel").As(Panel).RemoveView 'Quitamos le panel de la pregunta + DateTime.DateFormat = "yyyyMMdd" + skmt.ExecNonQuery($"delete from CUESTIONARIO where Q_IDCLIENTE = '${Subs.traeCliente}' and Q_IDPREGUNTA = '${m.Get("idPregunta")}'"$) + skmt.ExecNonQuery($"insert into CUESTIONARIO (Q_IDCLIENTE, Q_IDPREGUNTA, Q_PREGUNTA, Q_IDRESPUESTA, Q_RESPUESTA, Q_FECHA) values ('${Subs.traeCliente}', '${m.Get("idPregunta")}', '${m.Get("pregunta")}', '${m.Get("idRespuesta")}', '${m.Get("respuesta")}', '${DateTime.Date(DateTime.now)}')"$) + Select Case m.Get("idPregunta") + Case "1" + If m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then + Log("Tiendajon / Ventana / Kiosko") + ToastMessageShow("Tiendajon / Ventana / Kiosko", False) + q.agregaPregunta("6", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) + Else if m.Get("respuesta") = "Si se pude acceder" Then + q.agregaPregunta("2", "¿Tiene al menos 2 pasillos con acceso directo a la mercancía?", Array As String("Si tiene al menos 2 pasillos con acceso directo a la mercancía", "No tiene pasillos o solo uno central")) + End If + Case "2" + If m.Get("respuesta") = "Si tiene al menos 2 pasillos con acceso directo a la mercancía" Then + Log("Mini-Super") + ToastMessageShow("Mini-Super", False) + q.agregaPregunta("6", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) + else If m.Get("respuesta") = "No tiene pasillos o solo uno central" Then + q.agregaPregunta("3", "¿Cuenta con enfriador horizontal para venta de perecederos como queso, jamon, crema, etc.?", Array As String("Si", "No tiene enfriador horizontal.")) + End If + Case "3" + Log("|"&m.Get("respuesta")&"|") + If m.Get("respuesta") = "Si" Then + Log("Miscelanea") + ToastMessageShow("Miscelanea", False) + q.agregaPregunta("6", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) + else If m.Get("respuesta") = "No tiene enfriador horizontal." Then + q.agregaPregunta("4", "¿El local esta enfocado a venta especializada?", Array As String("No", "Si")) + End If + Case "4" + If m.Get("respuesta") = "No" Then + Log("Abarrotera") + ToastMessageShow("Abarrotera", False) + q.agregaPregunta("6", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) + else If m.Get("respuesta") = "Si" Then + q.agregaPregunta("5", "¿Cual venta especializada?", Array As String("Carnicería / Pollería", "Cremería", "Depósito / Vinateria", "Dulcería", "Farmacia", "Fonda / Restaurante / Cafetería", "Verdulería")) + End If + Case "5" + Log(m.Get("respuesta")) + ToastMessageShow(m.Get("respuesta"), False) +' If m.Get("respuesta") = "No" Then +' Log("Abarrotera") +' q.agregaPregunta("5", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) +' else If m.Get("respuesta") = "Si" Then + q.agregaPregunta("6", "¿Cuenta con caja de salida para cobro con sistema de computo?", Array As String("Si, tiene sistema de computo para cobro", "No")) +' End If + Case "6" + Log(m.Get("respuesta")) + ToastMessageShow(m.Get("respuesta"), False) + Log(">>>>>>>>>> " & q.encuestaIniciada) + q.encuestaIniciada = False + Log(">>>>>>>>>> " & q.encuestaIniciada) +' Case 6 + End Select +End Sub + +'Ajusta el tamaño del panel de scroll. +Sub ajustaTamano +' Log("xx: " & sv_clientesDatos.Panel.Height) +' Log($"${b_guardaCambios.Top} + 350"$) + If l_cuestionario.Visible Then + Log("visible") + b_guardaCambios.Top = l_cuestionario.Top + l_cuestionario.Height + 20 + Else + Log("INVisible") + b_guardaCambios.Top = b_mapa2.Top + b_mapa2.Height + 20 + End If + + + p_cliente.Height = b_guardaCambios.Top + 350 + sv_clientesDatos.Panel.Height = p_cliente.Height +' Log("xx: " & sv_clientesDatos.Panel.Height) +End Sub + +Private Sub Label9_LongClick +' Log(b_guardaCambios.Top) + If l_cuestionario.Visible Then + l_cuestionario.Visible = False +' b_guardaCambios.Top = b_mapa2.Top + b_mapa2.Height + 20 +' Log($"${b_mapa2.Top} + ${b_mapa2.Height} + 20dip"$) + Else + l_cuestionario.Visible = True +' b_guardaCambios.Top = l_cuestionario.Top + l_cuestionario.Height + 20 +' Log($"${l_cuestionario.Top} + ${l_cuestionario.Height} + 20"$) + End If +' Log(b_guardaCambios.Top) + ajustaTamano End Sub \ No newline at end of file diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index e07f09a..3b4c278 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -177,7 +177,7 @@ Sub clv_clientes_ItemClick (index As Int, Value As Object) DateTime.TimeFormat = "HH:mm:ss" Subs.guardaClienteHoraInicio(value2(0)) B4XPages.MainPage.cliente.refrescarCliente = True - Log(Value) +' Log(Value) If Value.As(String).StartsWith("N") Then B4XPages.MainPage.nuevoCliente.cargarCliente = True B4XPages.ShowPage("NuevoCliente") diff --git a/B4A/C_Cuestionario.bas b/B4A/C_Cuestionario.bas new file mode 100644 index 0000000..cada6de --- /dev/null +++ b/B4A/C_Cuestionario.bas @@ -0,0 +1,153 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.2 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + Private bAceptarPregunta As Button + Dim encuestaIniciada As Boolean = False + Private Root2 As B4XView + Private EventName As String 'ignore + Private CallBack As Object 'ignore + Private vPreguntaActual As String + Private db As SQL + Private clienteAnt As String = "" + Dim panelSombra As Panel 'Panel de sombra. +End Sub + +'You can add more parameters here. +Public Sub Initialize (vCallback As Object, vEventName As String, vRoot As B4XView, skmt As SQL) As Object + Root2 = vRoot + EventName = vEventName + CallBack = vCallback + db = skmt + vPreguntaActual = 0 + Return Me +End Sub + +'This event will be called once, before the page becomes visible. +Private Sub B4XPage_Created (Root1 As B4XView) + Root = Root1 + 'load the layout to Root +End Sub + +'Regresa verdadero o falso dependiendo de si ya se inició la encuesta. +'Sub encuestaIniciada As Boolean +' Return vEncuestaIniciada +'End Sub + +'Regresa el Id de la pregunta actual (read-only). +Sub preguntaActual As String 'ignore + Return vPreguntaActual +End Sub + +'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. + +'Muestra una pregunta con sus posibles respuestas. +' La lista de respuestas puede ser directamente un array p. ej. Array As String("value1", "value2") +' Crear un Sub_Click con el nombre del evento para que reciba un mapa con la respuesta p. ej.: Sub questionario_Click +' Regresa un mapa con: +' idPregunta - El Id especificado de la pregunta. +' pregunta - El texto de la pregunta. +' idRespuesta - Un numero consecutivo empezando en 1 por cada pregunta. +' respuesta - El texto de la respuesta. +' panel - El panel del popup para poder ocultarlo al contestar la pregunta. ( p. ej.: m.Get("panel").As(Panel).Visible = false ) +'########################################### +' Sub questionario_Click +' if m.get("idPregunta") = "1" ..Then .. Else con nuevas preguntas +' End Sub +'########################################### +Sub agregaPregunta(id As String, pregunta As String, respuestas As List) + encuestaIniciada = True + vPreguntaActual = id + bAceptarPregunta.Initialize("bAceptarPregunta") + + Private su As StringUtils + panelSombra.Initialize("pSombra") + Private cd As ColorDrawable + cd.Initialize(Colors.ARGB(125, 98, 98, 98), 0) + panelSombra.Background = cd + Private panelX As Panel 'Panel de la pregunta. + panelX.Initialize("pQuest") + Private lbl As Label 'Etiqueta de la pregunta. + lbl.Initialize("") + lbl.Text = pregunta + lbl.TextSize = 16 + lbl.TextColor = Colors.Black + cd.Initialize2(Colors.white, 20, 1, Colors.Gray) 'Borde y esquinas redondeadas del panel de la pregunta. + panelX.Background = cd + panelSombra.AddView(panelX, 10dip, 0dip, 80%x, 200dip) + Root2.AddView(panelSombra, 0, 0, 100%x, 100%y) 'add the panel to the layout + panelX.AddView(lbl, 20dip, 20dip, (panelX.Width * 0.9), 40dip) 'Agregamos la etiqueta al panel. + lbl.Height = su.MeasureMultilineTextHeight(lbl, lbl.Text) + Private r(respuestas.Size) As RadioButton + For p = 0 To respuestas.Size - 1 + r(p).Initialize("r") + r(p).Text = respuestas.Get(p) + r(p).Tag = CreateMap("id":id, "pregunta":pregunta, "panel":panelSombra, "idRespuesta":p + 1) + panelX.AddView(r(p), 10dip, (70 * (p + 1)), (panelX.Width * 0.9), 10) 'Agegamos el radio al panel. + r(p).Height = su.MeasureMultilineTextHeight(r(p), r(p).Text) + 25 'Calculamos el alto del radio de acuerdo al largo del texto. + Private newTop As Int = lbl.top + lbl.Height + 10 'Si es el primer radio, lo ponemos en top = alto de la "pregunta" + 10. + If p <> 0 Then newTop = r(p - 1).Top + r(p - 1).Height + 5 'Calculamos el Top del radio de acuerdo al top y alto del radio anterior. + r(p).Top = newTop + Next + r(0).Checked = True + bAceptarPregunta.Text = "Continuar" + panelX.AddView(bAceptarPregunta, 10, newTop + r(respuestas.Size - 1).Height + 20, 150dip, 50dip) 'Ponemos el boton de continuar despues del ultimo radio. + bAceptarPregunta.Left = (panelX.Width / 2) - (bAceptarPregunta.Width / 2) + panelX.Height = bAceptarPregunta.Top + bAceptarPregunta.Height + 15dip 'Calculamos el alto del panel de acuerdo al Top del boton. + panelX.left = (Root2.Width / 2) - (panelX.Width / 2) + panelX.top = (Root2.Height / 3) - (panelX.Height / 2) + panelSombra.Width = Root2.Width + panelSombra.Height = Root2.Height + panelSombra.BringToFront +' panelSombra.Elevation = 0 +End Sub + +private Sub preguntaContestada(Success As Map) 'ignore + If SubExists(CallBack, EventName & "_preguntaContestada") Then + CallSubDelayed2(CallBack, EventName & "_preguntaContestada", Success) + End If +End Sub + +private Sub pSombra_Click +End Sub + +private Sub r_CheckedChange(Checked As Boolean) + bAceptarPregunta.tag = CreateMap("idPregunta":Sender.As(RadioButton).tag.As(Map).Get("id").As(String), "pregunta":Sender.As(RadioButton).tag.As(Map).Get("pregunta"), "idRespuesta":Sender.As(RadioButton).tag.As(Map).Get("idRespuesta").As(String), "respuesta":Sender.As(RadioButton).text, "panel":Sender.As(RadioButton).tag.As(Map).Get("panel")) +End Sub + +Private Sub bAceptarPregunta_Click + encuestaIniciada = True + Private m As Map = Sender.As(Button).tag.As(Map) 'Recibimos el id de la pregunta, el id de la respuesta, el texto de la respuesta y el objeto del panelSombra para poder ocultarlo. + preguntaContestada(m) +'' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta. +' m.Get("panel").As(Panel).RemoveView +' If m.Get("idPregunta") = "1" And m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then +' Log("Tiendajon / Ventana / Kiosko") +' else If m.Get("idPregunta") = "1" And m.Get("respuesta") = "Si se pude acceder" Then +' agregaPregunta("2", "¿Tiene al menos 2 pasillos con acceso directo a la mercancía?", Array As String("Si tiene al menos 2 pasillos con acceso directo a la mercancía", "No tiene pasillos o solo uno central")) +' End If +' If m.Get("idPregunta") = "2" And m.Get("respuesta") = "Si tiene al menos 2 pasillos con acceso directo a la mercancía" Then +' Log("Mini-Super") +' else If m.Get("idPregunta") = "2" And m.Get("respuesta") = "No tiene pasillos o solo uno central" Then +' agregaPregunta("3", "¿Cuenta con enfriador horizontal para venta de perecederos como queso, jamon, crema, etc.?", Array As String("Si", "No tiene enfriador horizontal. ¿El local esta enfocado a venta especializada?")) +' End If +End Sub + +'Regresa verdadero si el cliente dado tiene cuestionario contestado. +Sub clienteConEncuesta(idCliente As String) As Boolean 'ignore + Private r As Boolean = False + Private c As Cursor = db.ExecQuery($"select count(*) as q from CUESTIONARIO where Q_IDCLIENTE = '${idCliente}'"$) + c.Position = 0 + If c.GetInt("q") > 0 Then r = True + Return r +End Sub + +'Oculta el anel de la pregunta. +Sub ocultPanelPregunta + If panelSombra.IsInitialized Then panelSombra.RemoveView +End Sub \ No newline at end of file diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index fed6e77..120f5e7 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -51,6 +51,9 @@ Sub Class_Globals Dim elOtroCliente As String = "" Dim camposModificados As List Dim mandarTodo As Boolean = False + Private et_atiende As EditText + Private et_telefono As EditText + Private et_email As EditText End Sub 'You can add more parameters here. @@ -149,6 +152,9 @@ Sub CANCELA_Click fototomada = "" et_nombre.Text = "" et_direccion.Text = "" + et_atiende.Text = "" + et_telefono.Text = "" + et_email.Text = "" CallSubDelayed(Tracker, "StartFLP") End Sub @@ -188,7 +194,7 @@ Sub b_guardar_Click CAT_CL_LAT = '${B4XPages.MainPage.lat_gps}', CAT_CL_LONG = '${B4XPages.MainPage.lon_gps}', CAT_CL_GIRO = '${cb_giro.SelectedItem}', CAT_CL_NOMBRE = '${Subs.escapeSQLString(et_nombre.Text)}', CAT_CL_CALLE1 = '${Subs.escapeSQLString(et_direccion.text)}', CAT_CL_ENVIO_PENDIENTE = 1, LAT_CENSADOR = '${B4XPages.MainPage.lat_gps}', LON_CENSADOR = '${B4XPages.MainPage.lon_gps}', CAMPOS_MODIFICADOS = '${Subs.list2string(camposModificados)}' where CAT_CL_CODIGO In (select cuenta from cuentaa)"$) Else - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO, CAT_CL_RUTA, CAT_CL_NOMBRE, CAT_CL_CALLE1, CAT_CL_LAT, CAT_CL_LONG, CAT_CL_FECHA_CAPTURA, CAT_CL_DIAS_VISITA, LAT_CENSADOR, LON_CENSADOR, CAT_CL_ENVIO_PENDIENTE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1) ", Array As Object (no_cliente, no_ruta, et_nombre.Text, et_direccion.Text, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, DateNC, Starter.dia_semana, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO, CAT_CL_RUTA, CAT_CL_NOMBRE, CAT_CL_CALLE1, CAT_CL_LAT, CAT_CL_LONG, CAT_CL_FECHA_CAPTURA, CAT_CL_DIAS_VISITA, LAT_CENSADOR, LON_CENSADOR, CAT_CL_ENVIO_PENDIENTE, CAT_CL_TELEFONO, CAT_CL_ATIENDE1, CAT_CL_EMAIL) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?) ", Array As Object (no_cliente, no_ruta, et_nombre.Text, et_direccion.Text, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, DateNC, Starter.dia_semana, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, et_atiende.Text, et_telefono.Text, et_email.Text)) End If B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) diff --git a/B4A/C_Questionario.bas b/B4A/C_Questionario.bas new file mode 100644 index 0000000..8e3a192 --- /dev/null +++ b/B4A/C_Questionario.bas @@ -0,0 +1,153 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.2 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + Private bAceptarPregunta As Button + Dim encuestaIniciada As Boolean = False + Private Root2 As B4XView + Private EventName As String 'ignore + Private CallBack As Object 'ignore + Private vPreguntaActual As String + Private db As SQL + Private clienteAnt As String = "" + Dim panelSombra As Panel 'Panel de sombra. +End Sub + +'You can add more parameters here. +Public Sub Initialize (vCallback As Object, vEventName As String, vRoot As B4XView, skmt As SQL) As Object + Root2 = vRoot + EventName = vEventName + CallBack = vCallback + db = skmt + vPreguntaActual = 0 + Return Me +End Sub + +'This event will be called once, before the page becomes visible. +Private Sub B4XPage_Created (Root1 As B4XView) + Root = Root1 + 'load the layout to Root +End Sub + +'Regresa verdadero o falso dependiendo de si ya se inició la encuesta. +'Sub encuestaIniciada As Boolean +' Return vEncuestaIniciada +'End Sub + +'Regresa el Id de la pregunta actual (read-only). +Sub preguntaActual As String 'ignore + Return vPreguntaActual +End Sub + +'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. + +'Muestra una pregunta con sus posibles respuestas. +' La lista de respuestas puede ser directamente un array p. ej. Array As String("value1", "value2") +' Crear un Sub_Click con el nombre del evento para que reciba un mapa con la respuesta p. ej.: Sub questionario_Click +' Regresa un mapa con: +' idPregunta - El Id especificado de la pregunta. +' pregunta - El texto de la pregunta. +' idRespuesta - Un numero consecutivo empezando en 1 por cada pregunta. +' respuesta - El texto de la respuesta. +' panel - El panel del popup para poder ocultarlo al contestar la pregunta. ( p. ej.: m.Get("panel").As(Panel).Visible = false ) +'########################################### +' Sub questionario_Click +' if m.get("idPregunta") = "1" ..Then .. Else con nuevas preguntas +' End Sub +'########################################### +Sub agregaPregunta(id As String, pregunta As String, respuestas As List) + encuestaIniciada = True + vPreguntaActual = id + bAceptarPregunta.Initialize("bAceptarPregunta") + + Private su As StringUtils + panelSombra.Initialize("pSombra") + Private cd As ColorDrawable + cd.Initialize(Colors.ARGB(125, 98, 98, 98), 0) + panelSombra.Background = cd + Private panelX As Panel 'Panel de la pregunta. + panelX.Initialize("pQuest") + Private lbl As Label 'Etiqueta de la pregunta. + lbl.Initialize("") + lbl.Text = pregunta + lbl.TextSize = 16 + lbl.TextColor = Colors.Black + cd.Initialize2(Colors.white, 20, 1, Colors.Gray) 'Borde y esquinas redondeadas del panel de la pregunta. + panelX.Background = cd + panelSombra.AddView(panelX, 10dip, 0dip, 80%x, 200dip) + Root2.AddView(panelSombra, 0, 0, 100%x, 100%y) 'add the panel to the layout + panelX.AddView(lbl, 20dip, 20dip, (panelX.Width * 0.9), 40dip) 'Agregamos la etiqueta al panel. + lbl.Height = su.MeasureMultilineTextHeight(lbl, lbl.Text) + Private r(respuestas.Size) As RadioButton + For p = 0 To respuestas.Size - 1 + r(p).Initialize("r") + r(p).Text = respuestas.Get(p) + r(p).Tag = CreateMap("id":id, "pregunta":pregunta, "panel":panelSombra, "idRespuesta":p + 1) + panelX.AddView(r(p), 10dip, (70 * (p + 1)), (panelX.Width * 0.9), 10) 'Agegamos el radio al panel. + r(p).Height = su.MeasureMultilineTextHeight(r(p), r(p).Text) + 25 'Calculamos el alto del radio de acuerdo al largo del texto. + Private newTop As Int = lbl.top + lbl.Height + 10 'Si es el primer radio, lo ponemos en top = alto de la "pregunta" + 10. + If p <> 0 Then newTop = r(p - 1).Top + r(p - 1).Height + 5 'Calculamos el Top del radio de acuerdo al top y alto del radio anterior. + r(p).Top = newTop + Next + r(0).Checked = True + bAceptarPregunta.Text = "Continuar" + panelX.AddView(bAceptarPregunta, 10, newTop + r(respuestas.Size - 1).Height + 20, 150dip, 50dip) 'Ponemos el boton de continuar despues del ultimo radio. + bAceptarPregunta.Left = (panelX.Width / 2) - (bAceptarPregunta.Width / 2) + panelX.Height = bAceptarPregunta.Top + bAceptarPregunta.Height + 15dip 'Calculamos el alto del panel de acuerdo al Top del boton. + panelX.left = (Root2.Width / 2) - (panelX.Width / 2) + panelX.top = (Root2.Height / 3) - (panelX.Height / 2) + panelSombra.Width = Root2.Width + panelSombra.Height = Root2.Height + panelSombra.BringToFront +' panelSombra.Elevation = 0 +End Sub + +private Sub preguntaContestada(Success As Map) 'ignore + If SubExists(CallBack, EventName & "_preguntaContestada") Then + CallSubDelayed2(CallBack, EventName & "_preguntaContestada", Success) + End If +End Sub + +private Sub pSombra_Click +End Sub + +private Sub r_CheckedChange(Checked As Boolean) + bAceptarPregunta.tag = CreateMap("idPregunta":Sender.As(RadioButton).tag.As(Map).Get("id").As(String), "pregunta":Sender.As(RadioButton).tag.As(Map).Get("pregunta"), "idRespuesta":Sender.As(RadioButton).tag.As(Map).Get("idRespuesta").As(String), "respuesta":Sender.As(RadioButton).text, "panel":Sender.As(RadioButton).tag.As(Map).Get("panel")) +End Sub + +Private Sub bAceptarPregunta_Click + encuestaIniciada = True + Private m As Map = Sender.As(Button).tag.As(Map) 'Recibimos el id de la pregunta, el id de la respuesta, el texto de la respuesta y el objeto del panelSombra para poder ocultarlo. + preguntaContestada(m) +'' m.Get("panel").As(Panel).Visible = False 'Ocultamos el panel de la pregunta. +' m.Get("panel").As(Panel).RemoveView +' If m.Get("idPregunta") = "1" And m.Get("respuesta") = "No, está enrejado o no se tiene acceso" Then +' Log("Tiendajon / Ventana / Kiosko") +' else If m.Get("idPregunta") = "1" And m.Get("respuesta") = "Si se pude acceder" Then +' agregaPregunta("2", "¿Tiene al menos 2 pasillos con acceso directo a la mercancía?", Array As String("Si tiene al menos 2 pasillos con acceso directo a la mercancía", "No tiene pasillos o solo uno central")) +' End If +' If m.Get("idPregunta") = "2" And m.Get("respuesta") = "Si tiene al menos 2 pasillos con acceso directo a la mercancía" Then +' Log("Mini-Super") +' else If m.Get("idPregunta") = "2" And m.Get("respuesta") = "No tiene pasillos o solo uno central" Then +' agregaPregunta("3", "¿Cuenta con enfriador horizontal para venta de perecederos como queso, jamon, crema, etc.?", Array As String("Si", "No tiene enfriador horizontal. ¿El local esta enfocado a venta especializada?")) +' End If +End Sub + +'Regresa verdadero si el cliente dado tiene cuestionario contestado. +Sub clienteConEncuesta(idCliente As String) As Boolean 'ignore + Private r As Boolean = False + Private c As Cursor = db.ExecQuery($"select count(*) as q from QUESTIONARIO where Q_IDCLIENTE = '${idCliente}'"$) + c.Position = 0 + If c.GetInt("q") > 0 Then r = True + Return r +End Sub + +'Oculta el anel de la pregunta. +Sub ocultPanelPregunta + If panelSombra.IsInitialized Then panelSombra.RemoveView +End Sub \ No newline at end of file diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 0d0bff0..09354f2 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Files/clientedatos.bal b/B4A/Files/clientedatos.bal new file mode 100644 index 0000000..84bce05 Binary files /dev/null and b/B4A/Files/clientedatos.bal differ diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index 3178daa..9ce7266 100644 Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ diff --git a/B4A/Mariana Censos.b4a b/B4A/Mariana Censos.b4a index 867297f..1a384b4 100644 --- a/B4A/Mariana Censos.b4a +++ b/B4A/Mariana Censos.b4a @@ -1,351 +1,352 @@ Build1=Default,md_censos.keymon.com.mx File1=alert2.png -File10=engrane_gris.png -File100=marker-azul-77.png -File101=marker-azul-78.png -File102=marker-azul-79.png -File103=marker-azul-8.png -File104=marker-azul-80.png -File105=marker-azul-81.png -File106=marker-azul-82.png -File107=marker-azul-83.png -File108=marker-azul-84.png -File109=marker-azul-85.png -File11=fondo_kmt.jpg -File110=marker-azul-86.png -File111=marker-azul-87.png -File112=marker-azul-88.png -File113=marker-azul-89.png -File114=marker-azul-9.png -File115=marker-azul-90.png -File116=marker-azul-91.png -File117=marker-azul-92.png -File118=marker-azul-93.png -File119=marker-azul-94.png -File12=Hacer pedido.jpg -File120=marker-azul-95.png -File121=marker-azul-96.png -File122=marker-azul-97.png -File123=marker-azul-98.png -File124=marker-azul-99.png -File125=marker-rojo-0.png -File126=marker-rojo-1.png -File127=marker-rojo-10.png -File128=marker-rojo-100.png -File129=marker-rojo-11.png -File13=intmex_logo_192x192.jpg -File130=marker-rojo-12.png -File131=marker-rojo-13.png -File132=marker-rojo-14.png -File133=marker-rojo-15.png -File134=marker-rojo-16.png -File135=marker-rojo-17.png -File136=marker-rojo-18.png -File137=marker-rojo-19.png -File138=marker-rojo-2.png -File139=marker-rojo-20.png -File14=itembuttonblue.png -File140=marker-rojo-21.png -File141=marker-rojo-22.png -File142=marker-rojo-23.png -File143=marker-rojo-24.png -File144=marker-rojo-25.png -File145=marker-rojo-26.png -File146=marker-rojo-27.png -File147=marker-rojo-28.png -File148=marker-rojo-29.png -File149=marker-rojo-3.png -File15=kmt.db -File150=marker-rojo-30.png -File151=marker-rojo-31.png -File152=marker-rojo-32.png -File153=marker-rojo-33.png -File154=marker-rojo-34.png -File155=marker-rojo-35.png -File156=marker-rojo-36.png -File157=marker-rojo-37.png -File158=marker-rojo-38.png -File159=marker-rojo-39.png -File16=login.bal -File160=marker-rojo-4.png -File161=marker-rojo-40.png -File162=marker-rojo-41.png -File163=marker-rojo-42.png -File164=marker-rojo-43.png -File165=marker-rojo-44.png -File166=marker-rojo-45.png -File167=marker-rojo-46.png -File168=marker-rojo-47.png -File169=marker-rojo-48.png -File17=Logo_192x192.jpg -File170=marker-rojo-49.png -File171=marker-rojo-5.png -File172=marker-rojo-50.png -File173=marker-rojo-51.png -File174=marker-rojo-52.png -File175=marker-rojo-53.png -File176=marker-rojo-54.png -File177=marker-rojo-55.png -File178=marker-rojo-56.png -File179=marker-rojo-57.png -File18=logo_mariana.jpeg -File180=marker-rojo-58.png -File181=marker-rojo-59.png -File182=marker-rojo-6.png -File183=marker-rojo-60.png -File184=marker-rojo-61.png -File185=marker-rojo-62.png -File186=marker-rojo-63.png -File187=marker-rojo-64.png -File188=marker-rojo-65.png -File189=marker-rojo-66.png -File19=MainPage.bal -File190=marker-rojo-67.png -File191=marker-rojo-68.png -File192=marker-rojo-69.png -File193=marker-rojo-7.png -File194=marker-rojo-70.png -File195=marker-rojo-71.png -File196=marker-rojo-72.png -File197=marker-rojo-73.png -File198=marker-rojo-74.png -File199=marker-rojo-75.png +File10=engrane.jpg +File100=marker-azul-76.png +File101=marker-azul-77.png +File102=marker-azul-78.png +File103=marker-azul-79.png +File104=marker-azul-8.png +File105=marker-azul-80.png +File106=marker-azul-81.png +File107=marker-azul-82.png +File108=marker-azul-83.png +File109=marker-azul-84.png +File11=engrane_gris.png +File110=marker-azul-85.png +File111=marker-azul-86.png +File112=marker-azul-87.png +File113=marker-azul-88.png +File114=marker-azul-89.png +File115=marker-azul-9.png +File116=marker-azul-90.png +File117=marker-azul-91.png +File118=marker-azul-92.png +File119=marker-azul-93.png +File12=fondo_kmt.jpg +File120=marker-azul-94.png +File121=marker-azul-95.png +File122=marker-azul-96.png +File123=marker-azul-97.png +File124=marker-azul-98.png +File125=marker-azul-99.png +File126=marker-rojo-0.png +File127=marker-rojo-1.png +File128=marker-rojo-10.png +File129=marker-rojo-100.png +File13=Hacer pedido.jpg +File130=marker-rojo-11.png +File131=marker-rojo-12.png +File132=marker-rojo-13.png +File133=marker-rojo-14.png +File134=marker-rojo-15.png +File135=marker-rojo-16.png +File136=marker-rojo-17.png +File137=marker-rojo-18.png +File138=marker-rojo-19.png +File139=marker-rojo-2.png +File14=intmex_logo_192x192.jpg +File140=marker-rojo-20.png +File141=marker-rojo-21.png +File142=marker-rojo-22.png +File143=marker-rojo-23.png +File144=marker-rojo-24.png +File145=marker-rojo-25.png +File146=marker-rojo-26.png +File147=marker-rojo-27.png +File148=marker-rojo-28.png +File149=marker-rojo-29.png +File15=itembuttonblue.png +File150=marker-rojo-3.png +File151=marker-rojo-30.png +File152=marker-rojo-31.png +File153=marker-rojo-32.png +File154=marker-rojo-33.png +File155=marker-rojo-34.png +File156=marker-rojo-35.png +File157=marker-rojo-36.png +File158=marker-rojo-37.png +File159=marker-rojo-38.png +File16=kmt.db +File160=marker-rojo-39.png +File161=marker-rojo-4.png +File162=marker-rojo-40.png +File163=marker-rojo-41.png +File164=marker-rojo-42.png +File165=marker-rojo-43.png +File166=marker-rojo-44.png +File167=marker-rojo-45.png +File168=marker-rojo-46.png +File169=marker-rojo-47.png +File17=login.bal +File170=marker-rojo-48.png +File171=marker-rojo-49.png +File172=marker-rojo-5.png +File173=marker-rojo-50.png +File174=marker-rojo-51.png +File175=marker-rojo-52.png +File176=marker-rojo-53.png +File177=marker-rojo-54.png +File178=marker-rojo-55.png +File179=marker-rojo-56.png +File18=Logo_192x192.jpg +File180=marker-rojo-57.png +File181=marker-rojo-58.png +File182=marker-rojo-59.png +File183=marker-rojo-6.png +File184=marker-rojo-60.png +File185=marker-rojo-61.png +File186=marker-rojo-62.png +File187=marker-rojo-63.png +File188=marker-rojo-64.png +File189=marker-rojo-65.png +File19=logo_mariana.jpeg +File190=marker-rojo-66.png +File191=marker-rojo-67.png +File192=marker-rojo-68.png +File193=marker-rojo-69.png +File194=marker-rojo-7.png +File195=marker-rojo-70.png +File196=marker-rojo-71.png +File197=marker-rojo-72.png +File198=marker-rojo-73.png +File199=marker-rojo-74.png File2=alerta_amarilla.png -File20=Malo.jpg -File200=marker-rojo-76.png -File201=marker-rojo-77.png -File202=marker-rojo-78.png -File203=marker-rojo-79.png -File204=marker-rojo-8.png -File205=marker-rojo-80.png -File206=marker-rojo-81.png -File207=marker-rojo-82.png -File208=marker-rojo-83.png -File209=marker-rojo-84.png -File21=mapa_rutas.bal -File210=marker-rojo-85.png -File211=marker-rojo-86.png -File212=marker-rojo-87.png -File213=marker-rojo-88.png -File214=marker-rojo-89.png -File215=marker-rojo-9.png -File216=marker-rojo-90.png -File217=marker-rojo-91.png -File218=marker-rojo-92.png -File219=marker-rojo-93.png -File22=mapas.bal -File220=marker-rojo-94.png -File221=marker-rojo-95.png -File222=marker-rojo-96.png -File223=marker-rojo-97.png -File224=marker-rojo-98.png -File225=marker-rojo-99.png -File226=marker-verde-0.png -File227=marker-verde-1.png -File228=marker-verde-10.png -File229=marker-verde-100.png -File23=mariana_ico.png -File230=marker-verde-11.png -File231=marker-verde-12.png -File232=marker-verde-13.png -File233=marker-verde-14.png -File234=marker-verde-15.png -File235=marker-verde-16.png -File236=marker-verde-17.png -File237=marker-verde-18.png -File238=marker-verde-19.png -File239=marker-verde-2.png -File24=marker-azul-0.png -File240=marker-verde-20.png -File241=marker-verde-21.png -File242=marker-verde-22.png -File243=marker-verde-23.png -File244=marker-verde-24.png -File245=marker-verde-25.png -File246=marker-verde-26.png -File247=marker-verde-27.png -File248=marker-verde-28.png -File249=marker-verde-29.png -File25=marker-azul-1.png -File250=marker-verde-3.png -File251=marker-verde-30.png -File252=marker-verde-31.png -File253=marker-verde-32.png -File254=marker-verde-33.png -File255=marker-verde-34.png -File256=marker-verde-35.png -File257=marker-verde-36.png -File258=marker-verde-37.png -File259=marker-verde-38.png -File26=marker-azul-10.png -File260=marker-verde-39.png -File261=marker-verde-4.png -File262=marker-verde-40.png -File263=marker-verde-41.png -File264=marker-verde-42.png -File265=marker-verde-43.png -File266=marker-verde-44.png -File267=marker-verde-45.png -File268=marker-verde-46.png -File269=marker-verde-47.png -File27=marker-azul-100.png -File270=marker-verde-48.png -File271=marker-verde-49.png -File272=marker-verde-5.png -File273=marker-verde-50.png -File274=marker-verde-51.png -File275=marker-verde-52.png -File276=marker-verde-53.png -File277=marker-verde-54.png -File278=marker-verde-55.png -File279=marker-verde-56.png -File28=marker-azul-11.png -File280=marker-verde-57.png -File281=marker-verde-58.png -File282=marker-verde-59.png -File283=marker-verde-6.png -File284=marker-verde-60.png -File285=marker-verde-61.png -File286=marker-verde-62.png -File287=marker-verde-63.png -File288=marker-verde-64.png -File289=marker-verde-65.png -File29=marker-azul-12.png -File290=marker-verde-66.png -File291=marker-verde-67.png -File292=marker-verde-68.png -File293=marker-verde-69.png -File294=marker-verde-7.png -File295=marker-verde-70.png -File296=marker-verde-71.png -File297=marker-verde-72.png -File298=marker-verde-73.png -File299=marker-verde-74.png +File20=MainPage.bal +File200=marker-rojo-75.png +File201=marker-rojo-76.png +File202=marker-rojo-77.png +File203=marker-rojo-78.png +File204=marker-rojo-79.png +File205=marker-rojo-8.png +File206=marker-rojo-80.png +File207=marker-rojo-81.png +File208=marker-rojo-82.png +File209=marker-rojo-83.png +File21=Malo.jpg +File210=marker-rojo-84.png +File211=marker-rojo-85.png +File212=marker-rojo-86.png +File213=marker-rojo-87.png +File214=marker-rojo-88.png +File215=marker-rojo-89.png +File216=marker-rojo-9.png +File217=marker-rojo-90.png +File218=marker-rojo-91.png +File219=marker-rojo-92.png +File22=mapa_rutas.bal +File220=marker-rojo-93.png +File221=marker-rojo-94.png +File222=marker-rojo-95.png +File223=marker-rojo-96.png +File224=marker-rojo-97.png +File225=marker-rojo-98.png +File226=marker-rojo-99.png +File227=marker-verde-0.png +File228=marker-verde-1.png +File229=marker-verde-10.png +File23=mapas.bal +File230=marker-verde-100.png +File231=marker-verde-11.png +File232=marker-verde-12.png +File233=marker-verde-13.png +File234=marker-verde-14.png +File235=marker-verde-15.png +File236=marker-verde-16.png +File237=marker-verde-17.png +File238=marker-verde-18.png +File239=marker-verde-19.png +File24=mariana_ico.png +File240=marker-verde-2.png +File241=marker-verde-20.png +File242=marker-verde-21.png +File243=marker-verde-22.png +File244=marker-verde-23.png +File245=marker-verde-24.png +File246=marker-verde-25.png +File247=marker-verde-26.png +File248=marker-verde-27.png +File249=marker-verde-28.png +File25=marker-azul-0.png +File250=marker-verde-29.png +File251=marker-verde-3.png +File252=marker-verde-30.png +File253=marker-verde-31.png +File254=marker-verde-32.png +File255=marker-verde-33.png +File256=marker-verde-34.png +File257=marker-verde-35.png +File258=marker-verde-36.png +File259=marker-verde-37.png +File26=marker-azul-1.png +File260=marker-verde-38.png +File261=marker-verde-39.png +File262=marker-verde-4.png +File263=marker-verde-40.png +File264=marker-verde-41.png +File265=marker-verde-42.png +File266=marker-verde-43.png +File267=marker-verde-44.png +File268=marker-verde-45.png +File269=marker-verde-46.png +File27=marker-azul-10.png +File270=marker-verde-47.png +File271=marker-verde-48.png +File272=marker-verde-49.png +File273=marker-verde-5.png +File274=marker-verde-50.png +File275=marker-verde-51.png +File276=marker-verde-52.png +File277=marker-verde-53.png +File278=marker-verde-54.png +File279=marker-verde-55.png +File28=marker-azul-100.png +File280=marker-verde-56.png +File281=marker-verde-57.png +File282=marker-verde-58.png +File283=marker-verde-59.png +File284=marker-verde-6.png +File285=marker-verde-60.png +File286=marker-verde-61.png +File287=marker-verde-62.png +File288=marker-verde-63.png +File289=marker-verde-64.png +File29=marker-azul-11.png +File290=marker-verde-65.png +File291=marker-verde-66.png +File292=marker-verde-67.png +File293=marker-verde-68.png +File294=marker-verde-69.png +File295=marker-verde-7.png +File296=marker-verde-70.png +File297=marker-verde-71.png +File298=marker-verde-72.png +File299=marker-verde-73.png File3=carrito.png -File30=marker-azul-13.png -File300=marker-verde-75.png -File301=marker-verde-76.png -File302=marker-verde-77.png -File303=marker-verde-78.png -File304=marker-verde-79.png -File305=marker-verde-8.png -File306=marker-verde-80.png -File307=marker-verde-81.png -File308=marker-verde-82.png -File309=marker-verde-83.png -File31=marker-azul-14.png -File310=marker-verde-84.png -File311=marker-verde-85.png -File312=marker-verde-86.png -File313=marker-verde-87.png -File314=marker-verde-88.png -File315=marker-verde-89.png -File316=marker-verde-9.png -File317=marker-verde-90.png -File318=marker-verde-91.png -File319=marker-verde-92.png -File32=marker-azul-15.png -File320=marker-verde-93.png -File321=marker-verde-94.png -File322=marker-verde-95.png -File323=marker-verde-96.png -File324=marker-verde-97.png -File325=marker-verde-98.png -File326=marker-verde-99.png -File327=nota.bal -File328=noventa.bal -File329=nuevocliente.bal -File33=marker-azul-16.png -File330=Nvo Cliente.jpg -File331=palomita_verde.png -File332=pedido.bal -File333=planfia_logo.png -File334=principal.bal -File335=proditem.bal -File336=productos.bal -File337=promociones.bal -File338=resdia.bal -File339=ResDia.jpg -File34=marker-azul-17.png -File340=salma.jpg -File341=salma.png -File342=senial.jpg -File343=sync.png -File344=tache_rojo.png -File345=ticketsdia.bal -File346=Tiendita.jpg -File347=verde.png -File35=marker-azul-18.png -File36=marker-azul-19.png -File37=marker-azul-2.png -File38=marker-azul-20.png -File39=marker-azul-21.png +File30=marker-azul-12.png +File300=marker-verde-74.png +File301=marker-verde-75.png +File302=marker-verde-76.png +File303=marker-verde-77.png +File304=marker-verde-78.png +File305=marker-verde-79.png +File306=marker-verde-8.png +File307=marker-verde-80.png +File308=marker-verde-81.png +File309=marker-verde-82.png +File31=marker-azul-13.png +File310=marker-verde-83.png +File311=marker-verde-84.png +File312=marker-verde-85.png +File313=marker-verde-86.png +File314=marker-verde-87.png +File315=marker-verde-88.png +File316=marker-verde-89.png +File317=marker-verde-9.png +File318=marker-verde-90.png +File319=marker-verde-91.png +File32=marker-azul-14.png +File320=marker-verde-92.png +File321=marker-verde-93.png +File322=marker-verde-94.png +File323=marker-verde-95.png +File324=marker-verde-96.png +File325=marker-verde-97.png +File326=marker-verde-98.png +File327=marker-verde-99.png +File328=nota.bal +File329=noventa.bal +File33=marker-azul-15.png +File330=nuevocliente.bal +File331=Nvo Cliente.jpg +File332=palomita_verde.png +File333=pedido.bal +File334=planfia_logo.png +File335=principal.bal +File336=proditem.bal +File337=productos.bal +File338=promociones.bal +File339=resdia.bal +File34=marker-azul-16.png +File340=ResDia.jpg +File341=salma.jpg +File342=salma.png +File343=senial.jpg +File344=sync.png +File345=tache_rojo.png +File346=ticketsdia.bal +File347=Tiendita.jpg +File348=verde.png +File35=marker-azul-17.png +File36=marker-azul-18.png +File37=marker-azul-19.png +File38=marker-azul-2.png +File39=marker-azul-20.png File4=celltitle.bal -File40=marker-azul-22.png -File41=marker-azul-23.png -File42=marker-azul-24.png -File43=marker-azul-25.png -File44=marker-azul-26.png -File45=marker-azul-27.png -File46=marker-azul-28.png -File47=marker-azul-29.png -File48=marker-azul-3.png -File49=marker-azul-30.png +File40=marker-azul-21.png +File41=marker-azul-22.png +File42=marker-azul-23.png +File43=marker-azul-24.png +File44=marker-azul-25.png +File45=marker-azul-26.png +File46=marker-azul-27.png +File47=marker-azul-28.png +File48=marker-azul-29.png +File49=marker-azul-3.png File5=cliente.bal -File50=marker-azul-31.png -File51=marker-azul-32.png -File52=marker-azul-33.png -File53=marker-azul-34.png -File54=marker-azul-35.png -File55=marker-azul-36.png -File56=marker-azul-37.png -File57=marker-azul-38.png -File58=marker-azul-39.png -File59=marker-azul-4.png -File6=clientes.bal -File60=marker-azul-40.png -File61=marker-azul-41.png -File62=marker-azul-42.png -File63=marker-azul-43.png -File64=marker-azul-44.png -File65=marker-azul-45.png -File66=marker-azul-46.png -File67=marker-azul-47.png -File68=marker-azul-48.png -File69=marker-azul-49.png -File7=clientesItem.bal -File70=marker-azul-5.png -File71=marker-azul-50.png -File72=marker-azul-51.png -File73=marker-azul-52.png -File74=marker-azul-53.png -File75=marker-azul-54.png -File76=marker-azul-55.png -File77=marker-azul-56.png -File78=marker-azul-57.png -File79=marker-azul-58.png -File8=durakelo.png -File80=marker-azul-59.png -File81=marker-azul-6.png -File82=marker-azul-60.png -File83=marker-azul-61.png -File84=marker-azul-62.png -File85=marker-azul-63.png -File86=marker-azul-64.png -File87=marker-azul-65.png -File88=marker-azul-66.png -File89=marker-azul-67.png -File9=engrane.jpg -File90=marker-azul-68.png -File91=marker-azul-69.png -File92=marker-azul-7.png -File93=marker-azul-70.png -File94=marker-azul-71.png -File95=marker-azul-72.png -File96=marker-azul-73.png -File97=marker-azul-74.png -File98=marker-azul-75.png -File99=marker-azul-76.png +File50=marker-azul-30.png +File51=marker-azul-31.png +File52=marker-azul-32.png +File53=marker-azul-33.png +File54=marker-azul-34.png +File55=marker-azul-35.png +File56=marker-azul-36.png +File57=marker-azul-37.png +File58=marker-azul-38.png +File59=marker-azul-39.png +File6=clienteDatos.bal +File60=marker-azul-4.png +File61=marker-azul-40.png +File62=marker-azul-41.png +File63=marker-azul-42.png +File64=marker-azul-43.png +File65=marker-azul-44.png +File66=marker-azul-45.png +File67=marker-azul-46.png +File68=marker-azul-47.png +File69=marker-azul-48.png +File7=clientes.bal +File70=marker-azul-49.png +File71=marker-azul-5.png +File72=marker-azul-50.png +File73=marker-azul-51.png +File74=marker-azul-52.png +File75=marker-azul-53.png +File76=marker-azul-54.png +File77=marker-azul-55.png +File78=marker-azul-56.png +File79=marker-azul-57.png +File8=clientesItem.bal +File80=marker-azul-58.png +File81=marker-azul-59.png +File82=marker-azul-6.png +File83=marker-azul-60.png +File84=marker-azul-61.png +File85=marker-azul-62.png +File86=marker-azul-63.png +File87=marker-azul-64.png +File88=marker-azul-65.png +File89=marker-azul-66.png +File9=durakelo.png +File90=marker-azul-67.png +File91=marker-azul-68.png +File92=marker-azul-69.png +File93=marker-azul-7.png +File94=marker-azul-70.png +File95=marker-azul-71.png +File96=marker-azul-72.png +File97=marker-azul-73.png +File98=marker-azul-74.png +File99=marker-azul-75.png FileGroup1=Default Group FileGroup10=Default Group FileGroup100=Default Group @@ -622,6 +623,7 @@ FileGroup344=Default Group FileGroup345=Default Group FileGroup346=Default Group FileGroup347=Default Group +FileGroup348=Default Group FileGroup35=Default Group FileGroup36=Default Group FileGroup37=Default Group @@ -726,29 +728,30 @@ 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~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\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~) 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~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~ Module1=appUpdater -Module10=CameraExClass2 -Module11=DBRequestManager -Module12=MAPA_RUTAS -Module13=Starter -Module14=Subs -Module15=Tracker +Module10=C_UpdateAvailable +Module11=CameraExClass2 +Module12=DBRequestManager +Module13=MAPA_RUTAS +Module14=Starter +Module15=Subs +Module16=Tracker Module2=B4XMainPage Module3=BatteryUtilities Module4=C_Cliente Module5=C_Clientes -Module6=C_Mapas -Module7=C_NuevoCliente -Module8=C_Principal -Module9=C_UpdateAvailable -NumberOfFiles=347 +Module6=C_Cuestionario +Module7=C_Mapas +Module8=C_NuevoCliente +Module9=C_Principal +NumberOfFiles=348 NumberOfLibraries=30 -NumberOfModules=15 +NumberOfModules=16 Version=12.5 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Mariana Censos #VersionCode: 1 - #VersionName: 3.10.19 + #VersionName: 3.12.21 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Mariana Censos.b4a.meta b/B4A/Mariana Censos.b4a.meta index 5b7e4b1..b094446 100644 --- a/B4A/Mariana Censos.b4a.meta +++ b/B4A/Mariana Censos.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= @@ -34,18 +36,19 @@ ModuleClosedNodes0= ModuleClosedNodes1= ModuleClosedNodes10= ModuleClosedNodes11= -ModuleClosedNodes12=3,5 -ModuleClosedNodes13= -ModuleClosedNodes14=63,64,65,67,68 -ModuleClosedNodes15=9,10,11,13,17,18,19 -ModuleClosedNodes2=2,3,8,9,10,11,12,13,14,15,16,17,18,21,22 +ModuleClosedNodes12= +ModuleClosedNodes13=3,5 +ModuleClosedNodes14= +ModuleClosedNodes15=63,64,65,67,68 +ModuleClosedNodes16=4,5,6,10,13,17,18,19 +ModuleClosedNodes2= ModuleClosedNodes3= -ModuleClosedNodes4=8,10,11,14,16,17,18,19,20,21,22,23,24,25,26,27,28 -ModuleClosedNodes5=4,8,10,11,12,13 +ModuleClosedNodes4=6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,44 +ModuleClosedNodes5= ModuleClosedNodes6= -ModuleClosedNodes7=6,9,11,12,13,14,16,17,18 -ModuleClosedNodes8=3 -ModuleClosedNodes9= -NavigationStack=C_Cliente,JobDone,382,0,C_Cliente,mandaPendientes,378,0,B4XMainPage,JobDone,353,0,C_Principal,e_ruta_EnterPressed,946,3,B4XMainPage,B4XPage_Created,98,0,C_Clientes,Mods,0,0,C_Clientes,clv_clientes_ItemClick,174,0,C_Mapas,Class_Globals,0,0,MAPA_RUTAS,MapFragment1_Ready,249,0,MAPA_RUTAS,OnInfoWindowClickListener1_click,253,2 +ModuleClosedNodes7= +ModuleClosedNodes8=6,9,11,12,13,14,16,17,18 +ModuleClosedNodes9=3 +NavigationStack=C_Cliente,q_preguntaContestada,688,6,B4XMainPage,B4XPage_Created,144,0,C_Cuestionario,clienteConEncuesta,137,0,C_Cliente,Label9_LongClick,763,6,C_Cliente,ajustaTamano,745,6,C_Cuestionario,ocultPanelPregunta,144,0,C_Cuestionario,agregaPregunta,78,0,C_Cliente,B4XPage_Appear,270,6,Visual Designer,clienteDatos.bal,-100,4,C_Cliente,Class_Globals,156,0 SelectedBuild=0 -VisibleModules=2,13,8,4,5,14,7,11,15,6,12 +VisibleModules=2,14,6,9,4,5,15,8,7,16 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 82d269d..b9ebe32 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -18,7 +18,7 @@ Sub Process_Globals Public FLP As FusedLocationProvider ' Private flpStarted As Boolean Dim reqManager As DBRequestManager - Dim server As String = "http://187.189.244.154:1782" + Dim server As String = "http://187.189.244.154:1781" ' Dim server As String = "http://187.189.244.154:1783" ' Dim server As String = "http://10.0.0.205:1782" ' Dim server As String = "http://11.0.0.231:1782" diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas index f4befbd..ed067a3 100644 --- a/B4A/Tracker.bas +++ b/B4A/Tracker.bas @@ -76,13 +76,14 @@ Public Sub Track If Not(FLP.IsInitialized) Then FLP.Initialize("flp") If Not(FLP.IsConnected) Then FLP.Connect If Tracking And actualLR.IsInitialized Then -' Log(actualLR.GetSmallestDisplacement) +' Log("Smallest Displacement: " & actualLR.GetSmallestDisplacement) Return 'Si ya estamos "rastreando" no hacemos nada (return) End If If Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) = False Then Log("Sin permisos de ubicacion") Return Else +' Log("Iniciamos StartFLP") StartFLP 'Iniciamos FusedLocationProvider Tracking = True End If @@ -109,7 +110,7 @@ Public Sub StartFLPSmall Sleep(500) Log("sleeping") Loop - dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida +' dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida FLP.RequestLocationUpdates(CreateLocationRequestSmallD) 'Buscamos ubicacion 2 peticiones ' Log("Buscamos ubicacion Small displacement") ' Log("GPSSmallestDisplacement = " & actualLR.GetSmallestDisplacement)