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)