From 05b32b3e4318eca4e74aaf46ad06d901b253a7da Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Wed, 3 Jan 2024 16:21:23 -0600 Subject: [PATCH] =?UTF-8?q?3/1/2023=20-=20Se=20agregaron=20campos=20nuevos?= =?UTF-8?q?=20y=20scroll=20a=20cliente=20-=20Se=20agreg=C3=B3=20el=20telef?= =?UTF-8?q?ono=20y=20correo=20a=20clienets=20nuevos=20y=20clientes=20viejo?= =?UTF-8?q?s.=20-=20Se=20agreg=C3=B3=20un=20scroll=20a=20cliente=20para=20?= =?UTF-8?q?que=20se=20vean=20todos=20los=20campos!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/C_Cliente.bas | 79 ++++++++------ B4A/C_Cuestionario.bas | 2 +- B4A/C_NuevoCliente.bas | 178 +++++++++++++++++++++++++++++--- B4A/C_Principal.bas | 9 +- B4A/Files/clientedatos.bal | Bin 26439 -> 23384 bytes B4A/Files/nuevocliente.bal | Bin 10914 -> 3250 bytes B4A/Files/nuevoclientedatos.bal | Bin 0 -> 10342 bytes B4A/Files/principal.bal | Bin 16443 -> 16450 bytes B4A/Mariana Censos.b4a | 42 ++++---- B4A/Mariana Censos.b4a.meta | 10 +- 10 files changed, 242 insertions(+), 78 deletions(-) create mode 100644 B4A/Files/nuevoclientedatos.bal diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 9463c64..5764fe5 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 \ No newline at end of file +'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 diff --git a/B4A/C_Cuestionario.bas b/B4A/C_Cuestionario.bas index cada6de..3cd1b65 100644 --- a/B4A/C_Cuestionario.bas +++ b/B4A/C_Cuestionario.bas @@ -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 diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index 120f5e7..96a656e 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -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 \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 68b498c..c76ecd1 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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 diff --git a/B4A/Files/clientedatos.bal b/B4A/Files/clientedatos.bal index 84bce050017c623940d35cb96179f9fcdb7d5225..45572087c43ad504f457ffc76915aebd6c939f6b 100644 GIT binary patch literal 23384 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 literal 26439 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 diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index 9ce726640b364d1d9d02b8dee8a0c1bc86b7ea3a..fc6ed09b0b9bb206c5aef66628ae0de30576ea38 100644 GIT binary patch delta 922 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 diff --git a/B4A/Mariana Censos.b4a b/B4A/Mariana Censos.b4a index 1a384b4..647b8c5 100644 --- a/B4A/Mariana Censos.b4a +++ b/B4A/Mariana Censos.b4a @@ -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 diff --git a/B4A/Mariana Censos.b4a.meta b/B4A/Mariana Censos.b4a.meta index b094446..160c353 100644 --- a/B4A/Mariana Censos.b4a.meta +++ b/B4A/Mariana Censos.b4a.meta @@ -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