mirror of
https://github.com/KeymonSoft/Mariana_Censos.git
synced 2026-04-20 06:09:18 +00:00
26/2/23 - Cuestionario para clientes
- Se agregó el cuestionario popup al entrar a un cliente. - FALTA PONERLO EN LOS CLIENTES NUEVOS
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user