3/1/2023 - Se agregaron campos nuevos y scroll a cliente

- Se agregó el telefono y correo a clienets nuevos y clientes viejos.
- Se agregó un scroll a cliente para que se vean todos los campos!
This commit is contained in:
2024-01-03 16:21:23 -06:00
parent 2a3a701d3c
commit 05b32b3e43
10 changed files with 242 additions and 78 deletions

View File

@@ -132,7 +132,7 @@ Sub Class_Globals
Private l_secuencia As Label
Private l_ruta As Label
Private et_diaSemana As EditText
Private et_giro As EditText
' Private et_giro As EditText
Private lv_diaSemana As ListView
Private et_calle As EditText
Private et_NoExt As EditText
@@ -160,6 +160,11 @@ Sub Class_Globals
Dim clienteAnt As String = ""
Private l_cuestionario As Label
Private b_mapa2 As Button
Private l_tituloCuestionaro As Label
Private cb_diaSemana As B4XComboBox
Dim diasDeLaSemana As List = Array As String("LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO")
Private et_telefono As EditText
Private et_email As EditText
End Sub
'You can add more parameters here.
@@ -206,6 +211,7 @@ Sub B4XPage_Appear
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
sv_clientesDatos.Panel.Height = p_cliente.Height
l_cuestionario.Visible = False
l_tituloCuestionaro.Visible = False
reqManager.Initialize(Me, Starter.server)
lv_colonia.Visible = False
Timer2.Initialize("Timer2", Interval * 1)
@@ -225,7 +231,7 @@ Sub B4XPage_Appear
c.Position=0
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
l_ruta.Text = c.GetString("CAT_CL_RUTA")
et_giro.Text = c.GetString("CAT_CL_GIRO")
' et_giro.Text = c.GetString("CAT_CL_GIRO")
et_diaSemana.Text = c.GetString("CAT_CL_DIASEMANA")
l_secuencia.text = c.GetString("CAT_CL_SECUENCIA")
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
@@ -233,6 +239,8 @@ Sub B4XPage_Appear
et_direccion.Text = c.GetString("CAT_CL_CALLE1")
et_colonia.Text = ""
et_colonia.Text = c.GetString("CAT_CL_COLONIA")
et_telefono.Text = c.GetString("CAT_CL_TELEFONO")
et_email.Text = c.GetString("CAT_CL_EMAIL")
et_estado.Text = c.GetString("CAT_CL_EDO")
desdeBD = True
et_cp.Text = c.GetString("CAT_CL_CP")
@@ -261,21 +269,15 @@ Sub B4XPage_Appear
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
cs.color(Colors.black).Append(cuest.GetString("Q_PREGUNTA")).popall.Append(CRLF).Append(" " & cuest.GetString("Q_RESPUESTA")).Append(CRLF).popall
Next
l_cuestionario.Text = cs
l_cuestionario.Visible = True
l_tituloCuestionaro.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.
@@ -304,8 +306,10 @@ Sub B4XPage_Appear
End If
Dim losGiros As List = Subs.traeGirosLista
cb_giro.SetItems(losGiros)
cb_giro.SelectedIndex = losGiros.IndexOf(c.GetString("CAT_CL_GIRO"))
cb_giro.SelectedIndex = losGiros.IndexOf(c.GetString("CAT_CL_GIRO").As(String).ToUpperCase)
cb_giro.mBase.Width = et_diaSemana.Width
cb_diaSemana.SetItems(diasDeLaSemana)
cb_diaSemana.SelectedIndex = diasDeLaSemana.IndexOf(c.GetString("CAT_CL_DIASEMANA"))
' Log("|"&c.GetString("CAT_CL_GIRO")&"|")
c.Close
camposModificados.Clear
@@ -314,9 +318,12 @@ Sub B4XPage_Appear
'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("CON ENCUESTA: " & q.clienteConCuestionario(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"))
l_cuestionario.Height = su.MeasureMultilineTextHeight(l_cuestionario, l_cuestionario.Text)
ajustaTamano
If Not(q.encuestaIniciada) And Not(q.clienteConCuestionario(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
@@ -375,8 +382,8 @@ Private Sub b_guardaCambios_Click
Log(camposModificados)
If CLIENTE_ACTIVO = "Inactivo" Or CLIENTE_ACTIVO = "Cerrado Permanente" Then l_secuencia.Text = "0"
If CLIENTE_ACTIVO = "Cerrado Permanente" Then CLIENTE_ACTIVO = "Cerrado permanente confirmado"
B4XPages.MainPage.skmt.ExecNonQuery($"UPDATE kmt_info set CAT_CL_CODIGO = '${la_cuenta.text}', CAT_CL_CEDIS = '${Subs.traeAlmacen}', CAT_CL_LAT = '${l_lat.text}', CAT_CL_LONG = '${l_lon.text}', CAT_CL_SECUENCIA = '${l_secuencia.text}', CAT_CL_RUTA = '${l_ruta.text}', CAT_CL_DIASEMANA = '${et_diaSemana.text}', CAT_CL_GIRO = '${cb_giro.SelectedItem}', CAT_CL_NOMBRE = '${Subs.escapeSQLString(E_NOMBRE_C.text)}', CAT_CL_ATIENDE1 = '${et_atiende.text}', CAT_CL_CALLE = '${Subs.escapeSQLString(et_calle.text)}', CAT_CL_NOINT = '${et_NoInt.text}', CAT_CL_NOEXT = '${et_NoExt.text}', CAT_CL_CALLE1 = '${Subs.escapeSQLString(et_direccion.text)}', CAT_CL_CRUCE1 = '${E_ENTRE1.text}', CAT_CL_CALLE2 = '${E_ENTRE_2.text}', CAT_CL_CP = '${et_cp.text}', CAT_CL_COLONIA = '${et_colonia.text}', CAT_CL_MUNI = '${et_municipio.text}', CAT_CL_EDO = '${et_estado.text}', CAT_CL_ESTATUS = '${CLIENTE_ACTIVO}', gestion = 11, CAT_CL_FECHA_CAPTURA = '${sDate & " " & sTime}', CAT_CL_ENVIO_PENDIENTE = 1, LAT_CENSADOR = '${B4XPages.MainPage.lat_gps}', LON_CENSADOR = '${B4XPages.MainPage.lon_gps}', ESTATUS_ORIGINAL = '${cb_activo.tag}', CAMPOS_MODIFICADOS = '${Subs.list2string(camposModificados)}' where CAT_CL_CODIGO In (select cuenta from cuentaa)"$)
Log($"CAT_CL_CODIGO = '${la_cuenta.text}', CAT_CL_CEDIS = '${Subs.traeAlmacen}', CAT_CL_LAT = '${l_lat.text}', CAT_CL_LONG = '${l_lon.text}', CAT_CL_SECUENCIA = '${l_secuencia.text}', CAT_CL_RUTA = '${l_ruta.text}', CAT_CL_DIASEMANA = '${et_diaSemana.text}', CAT_CL_GIRO = '${cb_giro.SelectedItem}', CAT_CL_NOMBRE = '${E_NOMBRE_C.text}', CAT_CL_ATIENDE1 = '${et_atiende.text}', CAT_CL_CALLE = '${et_calle.text}', CAT_CL_NOINT = '${et_NoInt.text}', CAT_CL_NOEXT = '${et_NoExt.text}', CAT_CL_CALLE1 = '${et_direccion.text}', CAT_CL_CRUCE1 = '${E_ENTRE1.text}', CAT_CL_CALLE2 = '${E_ENTRE_2.text}', CAT_CL_CP = '${et_cp.text}', CAT_CL_COLONIA = '${et_colonia.text}', CAT_CL_MUNI = '${et_municipio.text}', CAT_CL_EDO = '${et_estado.text}', CAT_CL_ESTATUS = '${CLIENTE_ACTIVO}', gestion = 11"$)
B4XPages.MainPage.skmt.ExecNonQuery($"UPDATE kmt_info set CAT_CL_CODIGO = '${la_cuenta.text}', CAT_CL_CEDIS = '${Subs.traeAlmacen}', CAT_CL_LAT = '${l_lat.text}', CAT_CL_LONG = '${l_lon.text}', CAT_CL_SECUENCIA = '${l_secuencia.text}', CAT_CL_RUTA = '${l_ruta.text}', CAT_CL_DIASEMANA = '${cb_diaSemana.SelectedItem}', CAT_CL_GIRO = '${cb_giro.SelectedItem}', CAT_CL_NOMBRE = '${Subs.escapeSQLString(E_NOMBRE_C.text)}', CAT_CL_ATIENDE1 = '${et_atiende.text}', CAT_CL_CALLE = '${Subs.escapeSQLString(et_calle.text)}', CAT_CL_NOINT = '${et_NoInt.text}', CAT_CL_NOEXT = '${et_NoExt.text}', CAT_CL_CALLE1 = '${Subs.escapeSQLString(et_direccion.text)}', CAT_CL_CRUCE1 = '${E_ENTRE1.text}', CAT_CL_CALLE2 = '${E_ENTRE_2.text}', CAT_CL_CP = '${et_cp.text}', CAT_CL_COLONIA = '${et_colonia.text}', CAT_CL_MUNI = '${et_municipio.text}', CAT_CL_EDO = '${et_estado.text}', CAT_CL_ESTATUS = '${CLIENTE_ACTIVO}', gestion = 11, CAT_CL_FECHA_CAPTURA = '${sDate & " " & sTime}', CAT_CL_ENVIO_PENDIENTE = 1, LAT_CENSADOR = '${B4XPages.MainPage.lat_gps}', LON_CENSADOR = '${B4XPages.MainPage.lon_gps}', ESTATUS_ORIGINAL = '${cb_activo.tag}', CAT_CL_TELEFONO = '${et_telefono.Text}', CAT_CL_EMAIL = '${et_email.Text}', CAMPOS_MODIFICADOS = '${Subs.list2string(camposModificados)}' where CAT_CL_CODIGO In (select cuenta from cuentaa)"$)
Log($"CAT_CL_CODIGO = '${la_cuenta.text}', CAT_CL_CEDIS = '${Subs.traeAlmacen}', CAT_CL_LAT = '${l_lat.text}', CAT_CL_LONG = '${l_lon.text}', CAT_CL_SECUENCIA = '${l_secuencia.text}', CAT_CL_RUTA = '${l_ruta.text}', CAT_CL_DIASEMANA = '${cb_diaSemana.SelectedItem}', CAT_CL_GIRO = '${cb_giro.SelectedItem}', CAT_CL_NOMBRE = '${E_NOMBRE_C.text}', CAT_CL_ATIENDE1 = '${et_atiende.text}', CAT_CL_CALLE = '${et_calle.text}', CAT_CL_NOINT = '${et_NoInt.text}', CAT_CL_NOEXT = '${et_NoExt.text}', CAT_CL_CALLE1 = '${et_direccion.text}', CAT_CL_CRUCE1 = '${E_ENTRE1.text}', CAT_CL_CALLE2 = '${E_ENTRE_2.text}', CAT_CL_CP = '${et_cp.text}', CAT_CL_COLONIA = '${et_colonia.text}', CAT_CL_MUNI = '${et_municipio.text}', CAT_CL_EDO = '${et_estado.text}', CAT_CL_ESTATUS = '${CLIENTE_ACTIVO}', gestion = 11"$)
' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE, NV_FECHA, NV_USER, NV_MOTIVO, NV_COMM, NV_LAT, NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (clie_id, sDate & sTime, usuario, "CENSOS", CLIENTE_ACTIVO, l_lat.text, l_lon.text))
mandaPendientes
B4XPages.ShowPage("Clientes")
@@ -415,9 +422,9 @@ Sub mandaPendientes
reqManager.ExecuteCommand(cmd, "guaradClienteGeocerca")
cmd.Initialize
cmd.Name = "sp_confirmaCliente"
cmd.Parameters = Array As Object(c.GetString("CAT_CL_CODIGO"), Subs.traeAlmacen, c.GetString("CAT_CL_LAT"), c.GetString("CAT_CL_LONG"), c.GetString("CAT_CL_SECUENCIA"), c.GetString("CAT_CL_RUTA"), c.GetString("CAT_CL_DIASEMANA"), c.GetString("CAT_CL_GIRO"), Subs.escapeSQLString(c.GetString("CAT_CL_NOMBRE")), c.GetString("CAT_CL_ATIENDE1"), c.GetString("CAT_CL_CALLE"), c.GetString("CAT_CL_NOINT"), c.GetString("CAT_CL_NOEXT"), Subs.escapeSQLString(c.GetString("CAT_CL_CALLE1")), c.GetString("CAT_CL_CRUCE1"), c.GetString("CAT_CL_CALLE2"), c.GetString("CAT_CL_CP"), c.GetString("CAT_CL_COLONIA"), c.GetString("CAT_CL_MUNI"), c.GetString("CAT_CL_EDO"), c.GetString("CAT_CL_ESTATUS"), c.GetString("CAT_CL_FECHA_CAPTURA"), sDate, Subs.traeUsuarioDeBD)
Log($"${c.GetString("CAT_CL_CODIGO")}, ${Subs.traeAlmacen}, ${c.GetString("CAT_CL_LAT")}, ${c.GetString("CAT_CL_LONG")}, ${c.GetString("CAT_CL_SECUENCIA")}, ${c.GetString("CAT_CL_RUTA")}, ${c.GetString("CAT_CL_DIASEMANA")}, ${c.GetString("CAT_CL_GIRO")}, ${Subs.escapeSQLString(c.GetString("CAT_CL_NOMBRE"))}, ${c.GetString("CAT_CL_ATIENDE1")}, ${c.GetString("CAT_CL_CALLE")}, ${c.GetString("CAT_CL_NOINT")}, ${c.GetString("CAT_CL_NOEXT")}, ${c.GetString("CAT_CL_CALLE1")}, ${c.GetString("CAT_CL_CRUCE1")}, ${c.GetString("CAT_CL_CALLE2")}, ${c.GetString("CAT_CL_CP")}, ${c.GetString("CAT_CL_COLONIA")}, ${c.GetString("CAT_CL_MUNI")}, ${c.GetString("CAT_CL_EDO")}, ${c.GetString("CAT_CL_ESTATUS")}, ${c.GetString("CAT_CL_FECHA_CAPTURA")}, ${sDate}, ${Subs.traeUsuarioDeBD}"$)
cmd.Name = "sp_confirmaCliente2"
cmd.Parameters = Array As Object(c.GetString("CAT_CL_CODIGO"), Subs.traeAlmacen, c.GetString("CAT_CL_LAT"), c.GetString("CAT_CL_LONG"), c.GetString("CAT_CL_SECUENCIA"), c.GetString("CAT_CL_RUTA"), c.GetString("CAT_CL_DIASEMANA"), c.GetString("CAT_CL_GIRO"), Subs.escapeSQLString(c.GetString("CAT_CL_NOMBRE")), c.GetString("CAT_CL_ATIENDE1"), c.GetString("CAT_CL_CALLE"), c.GetString("CAT_CL_NOINT"), c.GetString("CAT_CL_NOEXT"), Subs.escapeSQLString(c.GetString("CAT_CL_CALLE1")), c.GetString("CAT_CL_CRUCE1"), c.GetString("CAT_CL_CALLE2"), c.GetString("CAT_CL_CP"), c.GetString("CAT_CL_COLONIA"), c.GetString("CAT_CL_MUNI"), c.GetString("CAT_CL_EDO"), c.GetString("CAT_CL_ESTATUS"), c.GetString("CAT_CL_FECHA_CAPTURA"), sDate, Subs.traeUsuarioDeBD, c.GetString("CAT_CL_TELEFONO"), c.GetString("CAT_CL_EMAIL"))
Log($"${c.GetString("CAT_CL_CODIGO")}, ${Subs.traeAlmacen}, ${c.GetString("CAT_CL_LAT")}, ${c.GetString("CAT_CL_LONG")}, ${c.GetString("CAT_CL_SECUENCIA")}, ${c.GetString("CAT_CL_RUTA")}, ${c.GetString("CAT_CL_DIASEMANA")}, ${c.GetString("CAT_CL_GIRO")}, ${Subs.escapeSQLString(c.GetString("CAT_CL_NOMBRE"))}, ${c.GetString("CAT_CL_ATIENDE1")}, ${c.GetString("CAT_CL_CALLE")}, ${c.GetString("CAT_CL_NOINT")}, ${c.GetString("CAT_CL_NOEXT")}, ${c.GetString("CAT_CL_CALLE1")}, ${c.GetString("CAT_CL_CRUCE1")}, ${c.GetString("CAT_CL_CALLE2")}, ${c.GetString("CAT_CL_CP")}, ${c.GetString("CAT_CL_COLONIA")}, ${c.GetString("CAT_CL_MUNI")}, ${c.GetString("CAT_CL_EDO")}, ${c.GetString("CAT_CL_ESTATUS")}, ${c.GetString("CAT_CL_FECHA_CAPTURA")}, ${sDate}, ${Subs.traeUsuarioDeBD}, ${c.GetString("CAT_CL_TELEFONO")}, ${c.GetString("CAT_CL_EMAIL")}"$)
reqManager.ExecuteCommand(cmd , $"confirmaCliente_${c.GetString("CAT_CL_CODIGO")}"$)
cmd.Initialize
@@ -602,7 +609,7 @@ End Sub
Private Sub lv_giro_ItemClick (Position As Int, Value As Object)
' lv_giro.Visible = False
et_giro.Text = Value
' et_giro.Text = Value
End Sub
Private Sub l_cp_LongClick
@@ -689,6 +696,10 @@ Private Sub et_diaSemana_TextChanged (Old As String, New As String)
camposModificados.Add("CAT_CL_DIAS_VISITA")
End Sub
Private Sub cb_diaSemana_SelectedIndexChanged (Index As Int)
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)
@@ -769,17 +780,19 @@ Sub ajustaTamano
' 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
'Private Sub Label9_LongClick
'' Log(b_guardaCambios.Top)
' If l_cuestionario.Visible Then
' l_cuestionario.Visible = False
' l_tituloCuestionaro.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
' l_tituloCuestionaro.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

View File

@@ -139,7 +139,7 @@ Private Sub bAceptarPregunta_Click
End Sub
'Regresa verdadero si el cliente dado tiene cuestionario contestado.
Sub clienteConEncuesta(idCliente As String) As Boolean 'ignore
Sub clienteConCuestionario(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

View File

@@ -54,6 +54,13 @@ Sub Class_Globals
Private et_atiende As EditText
Private et_telefono As EditText
Private et_email As EditText
Private sv_nuevoClienteDatos As ScrollView
Private l_tituloCuestionaro As Label
Private l_cuestionario As Label
Dim q As C_Cuestionario
Dim su As StringUtils
Dim clienteAnt As String = ""
dim cuestionarioTexto as string
End Sub
'You can add more parameters here.
@@ -70,20 +77,39 @@ Private Sub B4XPage_Created (Root1 As B4XView)
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If
sv_nuevoClienteDatos.Width = Root.Width
sv_nuevoClienteDatos.Height = Root.Height
sv_nuevoClienteDatos.Panel.LoadLayout("nuevoClienteDatos")
' Subs.centraBoton(p_botones, p_nuevoCliente.Width)
' skmt.Initialize(ruta,"kmt.db", True)
' p_camara.Height = Root.Height
' p_camara.Width = Root.Width
q.Initialize(Me, "q", Root, B4XPages.MainPage.skmt)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
camposModificados.Initialize
l_cuestionario.Visible = False
l_tituloCuestionaro.Visible = False
et_nombre.Text = ""
et_direccion.Text = ""
et_atiende.Text = ""
et_telefono.Text = ""
et_email.Text = ""
sTime=DateTime.Time(DateTime.Now)
no_cliente= "NC" & sTime & no_ruta
Log(no_cliente)
Log($"CargarCliente: ${cargarCliente}"$)
reqManager.Initialize(Me, Starter.server)
If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
' p_botones.Top = l_cuestionario.top + l_cuestionario.Height + 20dip
p_nuevoCliente.Height = p_botones.Top + p_botones.Height + 20dip
sv_nuevoClienteDatos.Panel.Height = p_nuevoCliente.Height
Dim losGiros As List = Subs.traeGirosLista
cb_giro.SetItems(losGiros)
B_FOTO.Enabled = True
@@ -101,18 +127,18 @@ Sub B4XPage_Appear
elOtroCliente = cc.GetString("CAT_CL_CODIGO")
et_nombre.Text = cc.GetString("CAT_CL_NOMBRE")
et_direccion.Text = cc.GetString("CAT_CL_CALLE1")
et_nombre.Text = cc.GetString("CAT_CL_NOMBRE")
' B_FOTO.Enabled = False
et_atiende.Text = cc.GetString("CAT_CL_NOMBRE")
et_telefono.Text = cc.GetString("CAT_CL_TELEFONO")
et_email.Text = cc.GetString("CAT_CL_EMAIL")
Log($"${losGiros.IndexOf(cc.GetString("CAT_CL_GIRO"))}, ${losGiros}, ${cc.GetString("CAT_CL_GIRO")}"$)
cb_giro.SelectedIndex = losGiros.IndexOf(cc.GetString("CAT_CL_GIRO"))
End If
End If
b_ubicacion.Text = "Buscando ubicación ..."
b_guardar.Visible = False
Subs.panelVisible(p_nuevoCliente, 0, 0)
p_nuevoCliente.Height = Root.Height
p_nuevoCliente.Width = Root.Width
' Subs.panelVisible(p_nuevoCliente, 0, 0)
' p_nuevoCliente.Height = Root.Height
' p_nuevoCliente.Width = Root.Width
' Subs.centraEtiqueta(Label1, Root.Width)
' Subs.centraEtiqueta(l_sinUbicacion, Root.Width)
Subs.centraPanel(p_botones, Root.Width)
@@ -128,7 +154,37 @@ Sub B4XPage_Appear
' cb_giro.
' l_sinUbicacion.Visible = True
CallSubDelayed(Tracker, "StartFLPSmall")
Log($"${B4XPages.MainPage.principal.l_dia.text}, ${Starter.dia_semana}"$)
' Log($"${B4XPages.MainPage.principal.l_dia.text}, ${Starter.dia_semana}"$)
'Revisamos si el cliente actual es diferente del anterior y si es diferente ponemos encuestaIniciada en VERDADERO.
If clienteAnt <> no_cliente Then q.encuestaIniciada = False
clienteAnt = no_cliente
' Log("CON ENCUESTA: " & q.clienteConCuestionario(Subs.traeCliente))
' Log("INICIADA: " & q.encuestaIniciada)
If cargarCliente Then
Log(">>>>>> " & no_cliente)
If l_cuestionario.Visible Then
p_botones.Top = l_cuestionario.Top + l_cuestionario.Height + 20dip
Else
p_botones.Top = l_tituloCuestionaro.Top + 20dip
End If
Private cuest As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario where Q_IDCLIENTE = '${Subs.traeCliente}'"$)
If cuest.RowCount > 0 Then
Log("HAY CUESTIONARIO")
Private cs As CSBuilder
cs.Initialize
For i = 0 To cuest.RowCount - 1
cuest.Position = i
cs.color(Colors.black).Append(cuest.GetString("Q_PREGUNTA")).popall.Append(CRLF).Append(" " & cuest.GetString("Q_RESPUESTA")).Append(CRLF).popall
Next
l_cuestionario.Text = cs
l_cuestionario.Visible = True
l_tituloCuestionaro.Visible = True
l_cuestionario.Height = su.MeasureMultilineTextHeight(l_cuestionario, l_cuestionario.Text)
End If
End If
Log($"${q.encuestaIniciada} | ${cargarCliente}"$)
If Not(q.encuestaIniciada) And Not(cargarCliente) 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"))
ajustaTamano
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -165,23 +221,22 @@ Sub b_guardar_Click
else if B4XPages.MainPage.principal.l_ruta.Text = "0" Then
ToastMessageShow("Es necesario cargar una ruta.", False)
Else
Log("entramos a b_guardar")
' Log("entramos a b_guardar")
Log($"CargarCliente: ${cargarCliente}"$)
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.Timeformat = "HHmmss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$)
' Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$)
'Aqui creamos manualmete la hora con el separador de los 2 puntos porque en algunas versiones de android no respeta el formato "Timeformat = 'HH:mm:ss'"
Private hora As String = sTime.SubString2(0,2)
Private mins As String = sTime.SubString2(2,4)
Private segs As String = sTime.SubString(4)
sTime = hora&":"&mins&":"&segs
Log("////////////// sTime: "&sTime&" ////////////////")
' Log("////////////// sTime: "&sTime&" ////////////////")
c = B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info")
c.Position=0
no_ruta= c.GetString("CAT_CL_RUTA")
no_cliente= "NC" & sTime & no_ruta
If cargarCliente Then no_cliente = elOtroCliente
Log("++ ++ no_cliente = "&no_cliente)
c.Close
@@ -194,7 +249,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, 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))
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, CAT_CL_GIRO) 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, cb_giro.SelectedItem))
End If
B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente))
@@ -391,17 +446,27 @@ Sub mandaPendientesNuevosClientes
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Log(c.GetString("NOM_FOTO"))
cuestionarioTexto = ""
Private cuest As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario where Q_IDCLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$)
If cuest.RowCount > 0 Then
cuest.Position = 0
cuestionarioTexto = cuest.GetString("Q_FECHA")
For cu = 0 To cuest.RowCount - 1
cuestionarioTexto = $"${cuestionarioTexto}|${cuest.GetString("Q_IDPREGUNTA")}|${cuest.GetString("Q_PREGUNTA")}|${cuest.GetString("Q_IDRESPUESTA")}|${cuest.GetString("Q_RESPUESTA")}"$
Next
End If
' Log(c.GetString("NOM_FOTO"))
If c.GetString("NOM_FOTO") <> Null And c.GetString("NOM_FOTO") <> "" And c.GetString("NOM_FOTO") <> "null" Then
Log(File.Exists(Dirp&Dir&Dir2,c.GetString("NOM_FOTO")))
Log($"${Dirp&Dir&Dir2},${c.GetString("NOM_FOTO")}"$)
' Log(File.Exists(Dirp&Dir&Dir2,c.GetString("NOM_FOTO")))
' Log($"${Dirp&Dir&Dir2},${c.GetString("NOM_FOTO")}"$)
fotox = Null
If File.Exists(Dirp&Dir&Dir2,c.GetString("NOM_FOTO")) Then fotox = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir&Dir2,c.GetString("NOM_FOTO")))
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "guardaClienteNuevo_MARDS"
cmd.Name = "guardaClienteNuevo2_MARDS"
' Log(">>>>>>> TMP_CLIENTES_CENSOS")
' TMP_ALMACENID, TMP_RUTA, TMP_USUARIO, TMP_ID_CLIENTE, TMP_NOMBRE, TMP_DOMICILIO, TMP_FECHA_CAPTURA_MOVIL, TMP_FECHA_SINCRONIZACION, TMP_LATITUD, TMP_LONGITUD
cmd.Parameters = Array As Object(Subs.traeAlmacen, c.GetString("CAT_CL_RUTA"), Subs.traeUsuarioDeBD, c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NOMBRE"), c.GetString("CAT_CL_CALLE1"), c.GetString("CAT_CL_FECHA_CAPTURA"), sDateP, c.GetString("CAT_CL_LAT"), c.GetString("CAT_CL_LONG"), fotox, elGiro, Starter.dia_semana)
cmd.Parameters = Array As Object(Subs.traeAlmacen, c.GetString("CAT_CL_RUTA"), Subs.traeUsuarioDeBD, c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NOMBRE"), c.GetString("CAT_CL_CALLE1"), c.GetString("CAT_CL_FECHA_CAPTURA"), sDateP, c.GetString("CAT_CL_LAT"), c.GetString("CAT_CL_LONG"), fotox, elGiro, Starter.dia_semana, c.GetString("CAT_CL_TELEFONO"), c.GetString("CAT_CL_EMAIL"), cuestionarioTexto)
' Log($"${c.GetString("CAT_CL_CODIGO")}, ${Subs.traeAlmacen}, ${c.GetString("CAT_CL_LAT")}, ${c.GetString("CAT_CL_LONG")}, ${c.GetString("CAT_CL_SECUENCIA")}, ${c.GetString("CAT_CL_RUTA")}, ${c.GetString("CAT_CL_DIASEMANA")}, ${c.GetString("CAT_CL_GIRO")}, ${c.GetString("CAT_CL_NOMBRE")}, ${c.GetString("CAT_CL_ATIENDE1")}, ${c.GetString("CAT_CL_CALLE")}, ${c.GetString("CAT_CL_NOINT")}, ${c.GetString("CAT_CL_NOEXT")}, ${c.GetString("CAT_CL_CALLE1")}, ${c.GetString("CAT_CL_CRUCE1")}, ${c.GetString("CAT_CL_CALLE2")}, ${c.GetString("CAT_CL_CP")}, ${c.GetString("CAT_CL_COLONIA")}, ${c.GetString("CAT_CL_MUNI")}, ${c.GetString("CAT_CL_EDO")}, ${c.GetString("CAT_CL_ESTATUS")}, ${c.GetString("CAT_CL_FECHA_CAPTURA")}, ${sDate}, ${Subs.traeUsuarioDeBD}"$)
reqManager.ExecuteCommand(cmd , $"guardaClienteNuevo_${c.GetString("CAT_CL_CODIGO")}"$)
@@ -426,4 +491,83 @@ End Sub
Private Sub et_direccion_TextChanged (Old As String, New As String)
camposModificados.Add("CAT_CL_CALLE1")
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)
Log($">>>>>>> PREGUNTA ${m.Get("idPregunta")}"$)
' 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"
B4XPages.MainPage.skmt.ExecNonQuery($"delete from CUESTIONARIO where Q_IDCLIENTE = '${Subs.traeCliente}' and Q_IDPREGUNTA = '${m.Get("idPregunta")}'"$)
B4XPages.MainPage.skmt.ExecNonQuery($"insert into CUESTIONARIO (Q_IDCLIENTE, Q_IDPREGUNTA, Q_PREGUNTA, Q_IDRESPUESTA, Q_RESPUESTA, Q_FECHA) values ('${no_cliente}', '${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")
p_botones.Top = l_cuestionario.Top + l_cuestionario.Height + 20
Else
Log("INVisible")
p_botones.Top = b_ubicacion.Top + b_ubicacion.Height + 20
End If
p_nuevoCliente.Height = p_botones.Top + 350
sv_nuevoClienteDatos.Panel.Height = p_nuevoCliente.Height
' Log("xx: " & sv_clientesDatos.Panel.Height)
End Sub

View File

@@ -233,6 +233,7 @@ Sub Class_Globals
Dim l_visitados As Label
Dim l_total As Label
Dim mapTiempos As Map
Private cs As CSBuilder
End Sub
'You can add more parameters here.
@@ -379,9 +380,11 @@ Sub B4XPage_Appear
l_ruta.Text = "0"
l_dia.Text = "NINGUNA"
If f.RowCount > 0 Then
cs.Initialize
f.Position = 0
l_ruta.Text = f.GetString("CAT_CL_RUTA")
l_dia.Text = f.GetString("CAT_CL_DIASEMANA")
l_ruta.Text = cs.Append("RUTA ").Color(Colors.RGB(165, 42, 42)).Append(f.GetString("CAT_CL_RUTA")).pop.Append(" CARGADA").popall
cs.Initialize
l_dia.Text = cs.Append("DÍA CARGADO: ").Bold.Append(f.GetString("CAT_CL_DIASEMANA")).PopAll
End If
f.Close
c.Close
@@ -399,6 +402,7 @@ Sub B4XPage_Appear
B4XPages.MainPage.usuario = usuario
c.Close
CallSub(Starter, "ENVIA_ULTIMA_GPS")
' B4XPages.MainPage.nuevoCliente.mandaPendientesNuevosClientes
End Sub
Sub b_subir_Click
@@ -1039,6 +1043,7 @@ Sub hacer_ped_Click
End Sub
Sub nvo_cliente_Click
B4XPages.MainPage.nuevoCliente.cargarCliente = False
B4XPages.ShowPage("NuevoCliente")
End Sub

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -257,25 +257,26 @@ 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
File331=nuevoClienteDatos.bal
File332=Nvo Cliente.jpg
File333=palomita_verde.png
File334=pedido.bal
File335=planfia_logo.png
File336=principal.bal
File337=proditem.bal
File338=productos.bal
File339=promociones.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
File340=resdia.bal
File341=ResDia.jpg
File342=salma.jpg
File343=salma.png
File344=senial.jpg
File345=sync.png
File346=tache_rojo.png
File347=ticketsdia.bal
File348=Tiendita.jpg
File349=verde.png
File35=marker-azul-17.png
File36=marker-azul-18.png
File37=marker-azul-19.png
@@ -624,6 +625,7 @@ FileGroup345=Default Group
FileGroup346=Default Group
FileGroup347=Default Group
FileGroup348=Default Group
FileGroup349=Default Group
FileGroup35=Default Group
FileGroup36=Default Group
FileGroup37=Default Group
@@ -743,7 +745,7 @@ Module6=C_Cuestionario
Module7=C_Mapas
Module8=C_NuevoCliente
Module9=C_Principal
NumberOfFiles=348
NumberOfFiles=349
NumberOfLibraries=30
NumberOfModules=16
Version=12.5
@@ -751,7 +753,7 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: Mariana Censos
#VersionCode: 1
#VersionName: 3.12.21
#VersionName: 4.01.03
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -41,14 +41,14 @@ ModuleClosedNodes13=3,5
ModuleClosedNodes14=
ModuleClosedNodes15=63,64,65,67,68
ModuleClosedNodes16=4,5,6,10,13,17,18,19
ModuleClosedNodes2=
ModuleClosedNodes2=2
ModuleClosedNodes3=
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
ModuleClosedNodes4=6,7,10,11,13,14,15,16,17,18,20,21,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=6,9,11,12,13,14,16,17,18
ModuleClosedNodes8=6,9,11,12,13,14,16,17
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
NavigationStack=C_Cliente,B4XPage_Appear,263,5,C_Cliente,B4XPage_CloseRequest,369,0,C_Cliente,b_guardaCambios_Click,381,6,C_Cliente,p_cliente_Click,392,0,C_Cliente,q_preguntaContestada,725,0,Visual Designer,clienteDatos.bal,-100,6,Main,Process_Globals,21,0,C_Cliente,mandaPendientes,416,0,Visual Designer,principal.bal,-100,6,C_Principal,B4XPage_Appear,378,6
SelectedBuild=0
VisibleModules=2,14,6,9,4,5,15,8,7,16
VisibleModules=2,14,6,9,4,8,5,15,7,16