_ Se agregó el modulo de Cuestionario desde Guna.

This commit is contained in:
2024-05-17 01:17:56 -06:00
parent a2f036d7f7
commit bad642477c
9 changed files with 381 additions and 26 deletions

View File

@@ -151,6 +151,19 @@ Sub Class_Globals
Dim bandera As Int
Dim errorImpresora As Int = 0
Dim cuest As C_Cuestionario
Private p_encuesta As Panel
Private l_txtEncuesta As Label
Private b_encuesta_1 As Button
Private b_encuesta_2 As Button
Private b_encuesta_3 As Button
Private l_titEncuesta As Label
Private ImageView11 As ImageView
Private b_encuesta_continuar As Button
Private et_encuesta As EditText
Dim indicePregunta As Int
Private botonPresionado As Int
Private encuestaRes As String
Dim TOMAR_FOTO As String
End Sub
Sub initialize
@@ -208,6 +221,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
indicePregunta = 0
If TOMAR_FOTO <> 0 Then Cuestionario
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MARCAS"))
c.Position =0
Private MARCASQ As String = c.GetString("CAT_VA_VALOR")
@@ -221,7 +236,7 @@ Sub B4XPage_Appear
Starter.MAC_IMPRESORA = c.GetString("CAT_VA_VALOR")
End If
If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0"
Log("|" & Starter.MAC_IMPRESORA & "|")
' Log("|" & Starter.MAC_IMPRESORA & "|")
Printer1.Initialize(Me, "Printer1")
BT_QR.Enabled = False
@@ -306,7 +321,7 @@ Sub B4XPage_Appear
If Printer1.IsConnected = False Then
' Printer1.Connect
Log("1")
' Log("1")
Else
Printer1.DisConnect
Printer1.Connect
@@ -363,7 +378,7 @@ Sub B4XPage_Appear
c.Position =0
perfil = c.GetString("CAT_VA_VALOR")
c.Close
Log(perfil&"-------------------------")
' Log(perfil&"-------------------------")
If perfil = "V-ESPECIAL" Then
c= Starter.skmt.ExecQuery("SELECT CAT_GP_PRECIO, CAT_GP_ID FROM CAT_PRECIOS")
If c.RowCount > 0 Then
@@ -393,6 +408,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub
Sub gest_Click
Log("GEST CLIC")
' Log($"${cuest.encuestaIniciada} - ${cuest.clienteConCuestionario(Subs.traeCliente)}"$)
' If Not(cuest.encuestaIniciada) And Not(cuest.clienteConCuestionario(Subs.traeCliente)) Then
' cuest.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"))
@@ -462,11 +478,15 @@ Sub gest_Click
' If Subs.traeCliente = 0 Then Starter.tipov = "ABORDO"
' B4XPages.ShowPage("Productos")
' End If
Starter.tipov = "PREVENTA"
B4XPages.ShowPage("Productos")
Log($"TOMAR_FOTO = ${TOMAR_FOTO}"$)
If TOMAR_FOTO = 0 Then
Cuestionario
Else
Starter.tipov = "PREVENTA"
B4XPages.ShowPage("Productos")
' StartActivity(colonia2)
cuestionario
' Cuestionario
End If
End Sub
Sub Tels_Click
@@ -1285,11 +1305,15 @@ Sub B_VENTA_Click
' Starter.tipov = "VENTA"
' B4XPages.ShowPage("Productos")
' End If
Starter.tipov = "VENTA"
Log($"TOMAR_FOTO = ${TOMAR_FOTO}"$)
If TOMAR_FOTO = 0 Then
Cuestionario
Else
Starter.tipov = "VENTA"
' StartActivity(colonia2)
B4XPages.ShowPage("Productos")
cuestionario
B4XPages.ShowPage("Productos")
' Cuestionario
End If
End Sub
Sub b_factura_Click
@@ -1464,7 +1488,7 @@ Sub StartPrinter
End If
End Sub
Sub cuestionario
Sub cuestionario2
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -1574,7 +1598,7 @@ Sub B_E_NEXT_Click
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, E_RES_E.Text ,sDate & sTime,c.GetString("CAT_EP_ID")))
Starter.tipov = "VENTA"
'TOMAR_FOTO = 1
cuestionario
Cuestionario
'StartActivity(colonia2)
End Sub
@@ -1591,7 +1615,7 @@ Sub b_chk_e_Click
End If
Starter.tipov = "VENTA"
'TOMAR_FOTO = 1
cuestionario
Cuestionario
End Sub
Private Sub cb_pregunta1_SelectedIndexChanged (Index As Int)
@@ -1804,3 +1828,312 @@ Sub cuest_preguntaContestada(m As Map)
' Case 6
End Select
End Sub
'Esta subrutina muestra las encuestas.
Sub Cuestionario
Log("########################################################")
Log("Entramos a Cuestionario")
Private logger As Boolean = True
b_encuesta_continuar.Visible = False
et_encuesta.Visible = False
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$
CUANTOS = 0
' indicePregunta = 0
If logger Then Log($"Tomar_Foto = ${TOMAR_FOTO}"$)
If TOMAR_FOTO = 0 Then
s = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)")
s.Position= 0
CUANTOS = s.GetString("CUANTOS")
Private CUANTOS2 As Int = 0
' s = Starter.skmt.ExecQuery("select COUNT(*) AS CUANTOS2 from HIST_ENCUESTA2 where HE_CLIENTE In (Select cuenta from cuentaa)")
' s.Position = 0
' CUANTOS2 = s.GetString("CUANTOS2")
' If logger Then LogColor($"Hist:encuesta=${CUANTOS}, hist_encuesta2 = ${CUANTOS2}"$, Colors.Magenta)
End If
If logger Then Log(CUANTOS & "|" & CUANTOS2)
If CUANTOS = 0 And CUANTOS2 = 0 Then
Private enc As Cursor = Starter.skmt.ExecQuery("SELECT CAT_EP_ID, CAT_EP_IDTIPOPREGUNTA, CAT_CE_DESCRIPCION, CAT_EP_PREGUNTA, CAT_EP_RES1_PRED, CAT_EP_RES2_PRED, CAT_EP_RES3_PRED, CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)")
If enc.RowCount > 0 Then
enc.position = 0
If logger Then Log($"CAT_EP_ID=${enc.GetString("CAT_EP_ID")}"$)
Private listaPreguntas As List
listaPreguntas.Initialize
For j = 0 To enc.RowCount - 1 'Ponemos en una lista los ID de las preguntas.
enc.Position = j
listaPreguntas.Add(enc.GetString("CAT_EP_ID"))
Next
If logger Then Log(listaPreguntas)
enc.position = 0
For i = 0 To enc.RowCount - 1
i = indicePregunta
Log("####################################################")
Log($"i = ${i}, indicePregunta = ${indicePregunta}"$)
' enc.Position = i
' If logger Then Log($"ROWCOUNT: ${enc.RowCount}"$)
' If logger Then Log($"tipo: ${enc.GetString("CAT_EP_IDTIPOPREGUNTA")}"$)
If logger Then Log($"Tipo: ${enc.GetString("CAT_EP_IDTIPOPREGUNTA")}, CAT_EP_ID=${enc.GetString("CAT_EP_ID")}, CAT_EP_PREGUNTA=${enc.GetString("CAT_EP_PREGUNTA")}"$)
If enc.GetString("CAT_EP_IDTIPOPREGUNTA") <> 4 And indicePregunta <> 0 Then
Log(333)
indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) + 1 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos.
i = indicePregunta
Log($"i = ${i}"$)
End If
If logger Then Log($"i = ${i}, indicePregunta: "$ & indicePregunta & ", TIPO: " & enc.GetString("CAT_EP_IDTIPOPREGUNTA"))
' Log($"Tomar_Foto = ${TOMAR_FOTO}"$)
If logger Then Log($"EncuestaRes = ${encuestaRes}"$)
If logger Then Log(listaPreguntas)
If TOMAR_FOTO = 1 Then
If CURSOR_FOTO + 1 > enc.RowCount -1 Then
TOMAR_FOTO = 0
Exit
Else
i = CURSOR_FOTO + 1
End If
If logger Then Log($"i = ${i}"$)
TOMAR_FOTO = 0
End If
If i > (enc.RowCount - 1) Then Exit ' Si se contestó la ultima pregunta, entonces salimos.
' indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos.
' i = indicePregunta
enc.Position = i
' Log($"POSICION = ${enc.Position}"$)
If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then
If logger Then Log("Pregunta tipo 5")
id_encuesta = enc.GetString("CAT_EP_ID")
TOMAR_FOTO = 1
CURSOR_FOTO = i
Exit
ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then ' Tipo SI/NO
If logger Then Log("Pregunta tipo 3")
botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta
l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION")
l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA")
Subs.centraEtiqueta(l_txtEncuesta, Root.Width)
muestraBoton(b_encuesta_1,"SI", enc.GetString("CAT_EP_ID"), centroPantalla-350, 580, 300, 160)
muestraBoton(b_encuesta_2, "NO", enc.GetString("CAT_EP_ID"), centroPantalla+50, 580, 300, 160)
muestraEncuesta
Log("Esperamos respuesta")
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta
Sleep(0)
Loop
If logger Then Log("encuestaRes: " & encuestaRes)
If logger Then LogColor($"Guardamos tipo 3 : ${encuestaRes}"$, Colors.Green)
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
ocultaPanelEncuesta
ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 4 Then
If logger Then Log("Pregunta tipo 4")
botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta
l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION")
l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA")
If logger Then Log(enc.GetString("CAT_EP_PREGUNTA"))
Subs.centraEtiqueta(l_txtEncuesta, Root.Width)
muestraBoton(b_encuesta_1,"SI", enc.GetString("CAT_EP_ID"), centroPantalla-350, 580, 300, 160)
muestraBoton(b_encuesta_2, "NO", enc.GetString("CAT_EP_ID"), centroPantalla+50, 580, 300, 160)
muestraEncuesta
Log("Esperamos respuesta")
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta
Sleep(0)
Loop
If logger Then Log("encuestaRes: " & encuestaRes)
If logger Then LogColor($"Guardamos tipo 4 : ${encuestaRes}"$, Colors.Green)
If encuestaRes = "SI" Then
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, "SI", fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_RES1_PRED")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos.
i = indicePregunta
Log($"i = ${i}, IndicePreg = ${indicePregunta}"$)
else if encuestaRes = "NO" Then
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, "NO", fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_RES2_PRED")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos.
i = indicePregunta
Log($"i = ${i}, IndicePreg = ${indicePregunta}"$)
End If
If i = enc.RowCount - 1 Then
i = i - 1
End If
ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then ' Tipo 3 opciones.
Log("Pregunta tipo 2")
botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta.
l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION")
l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA")
If logger Then Log(enc.GetString("CAT_EP_PREGUNTA"))
muestraBoton(b_encuesta_1, enc.GetString("CAT_EP_RES1_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 580, 500, 160)
muestraBoton(b_encuesta_2, enc.GetString("CAT_EP_RES2_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 740, 500, 160)
muestraBoton(b_encuesta_3, enc.GetString("CAT_EP_RES3_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 900, 500, 160)
muestraEncuesta
Log("Esperamos respuesta")
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta.
Sleep(0)
Loop
Log("encuestaRes: " & encuestaRes)
If logger Then LogColor($"Guardamos tipo 2 : ${encuestaRes}"$, Colors.Green)
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
Log($"CAT_EP_ID: ${enc.GetString("CAT_EP_ID")}, listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) = ${listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID"))} "$)
indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos.
i = indicePregunta
Log($"i = ${i}"$)
ocultaPanelEncuesta
ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 6 Then
If logger Then Log("Pregunta tipo 6")
Panel10.Visible = True
l_chk_e.Text = enc.GetString("CAT_EP_PREGUNTA")
Chk_1.Checked = False
chk_2.Checked = False
chk_3.Checked = False
Chk_1.Text = enc.GetString("CAT_EP_RES1_PRED")
chk_2.Text = enc.GetString("CAT_EP_RES2_PRED")
chk_3.Text = enc.GetString("CAT_EP_RES3_PRED")
chk_1_valor = enc.GetString("CAT_EP_RES1_PRED")
chk_2_valor = enc.GetString("CAT_EP_RES2_PRED")
chk_3_valor = enc.GetString("CAT_EP_RES3_PRED")
Chk_1.Tag = enc.GetString("CAT_EP_ID")
chk_2.Tag = enc.GetString("CAT_EP_ID")
chk_3.Tag = enc.GetString("CAT_EP_ID")
TOMAR_FOTO = 1
CURSOR_FOTO = i
Exit
ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 1 Then
Log("Pregunta tipo 1")
botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta
l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION")
l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA")
If logger Then Log(enc.GetString("CAT_EP_PREGUNTA") &"|"&enc.GetString("CAT_EP_ORDEN_PREGUNTA"))
Subs.centraEditText(et_encuesta, Root.Width)
et_encuesta.Visible = True
b_encuesta_continuar.Enabled = False
Private bTop = et_encuesta.Top + 130
muestraBoton(b_encuesta_continuar,"Continuar", enc.GetString("CAT_EP_ID"), centroPantalla-250, bTop, 500, 160)
muestraEncuesta
Log("Esperamos respuesta")
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta
Sleep(0)
Loop
Log($"Respuesta: ${encuestaRes}"$)
If logger Then LogColor($"Guardamos tipo 1 : ${encuestaRes}"$, Colors.Green)
Starter.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
ocultaPanelEncuesta
Else
' Starter.tipov = "VENTA"
B4XPages.ShowPage("productos")
End If
Next
enc.Close
Else
' Starter.tipov = "VENTA"
B4XPages.ShowPage("productos")
End If
Else
' Starter.tipov = "VENTA"
B4XPages.ShowPage("productos")
End If
End Sub
'Muestra el panel de la encuesta, le da el alto y ancho de la pantalla y la pone en 0,0
Sub muestraEncuesta
Log("Muestra Encuesta")
p_encuesta.Top = 0
p_encuesta.left = 0
p_encuesta.Height = GetDeviceLayoutValues.Height
p_encuesta.Width = GetDeviceLayoutValues.Width
p_encuesta.SetVisibleAnimated(200, True)
p_encuesta.Visible = True
p_encuesta.Elevation = 90 'ignore
p_encuesta.BringToFront
' P_INF_GENERAL.Visible = False
' Log("Panel general="&P_INF_GENERAL.Visible)
End Sub
' Oculta el panel de la encuesta y los botones de la misma.
Sub ocultaPanelEncuesta
' Log("Oculta Encuesta")
b_encuesta_1.Visible = False
b_encuesta_2.Visible = False
b_encuesta_3.Visible = False
p_encuesta.Visible = False
' P_INF_GENERAL.Visible = True
' If logger Then Log("Panel general="&P_INF_GENERAL.Visible)
End Sub
'Regresa el valor de "left" para el centro de la pantalla
Sub centroPantalla As Int
Private anchoPantalla As Int = GetDeviceLayoutValues.Width
Private anchoPantalla As Int = Root.Width
Return anchoPantalla/2
End Sub
Private Sub b_encuesta_1_Click
Log("BOTON 1 CLICK")
Dim btn As Button = Sender
Log("BOTON 1 CLICKED "& " clicked - " & btn.Text & " - " & btn.Tag)
encuestaRes = btn.Text
indicePregunta = btn.Tag
ocultaPanelEncuesta
botonPresionado = 1
End Sub
Private Sub b_encuesta_2_Click
Log("BOTON 2 CLICK")
Dim btn As Button = Sender
Log("BOTON 2 CLICKED "& " clicked - " & btn.Text & " - " & btn.Tag)
encuestaRes = btn.Text
indicePregunta = btn.Tag
ocultaPanelEncuesta
botonPresionado = 1
End Sub
Private Sub b_encuesta_3_Click
Log("BOTON 3 CLICK")
Dim btn As Button = Sender
Log("BOTON 3 CLICKED "& " clicked - " & btn.Text & " - " & btn.Tag)
encuestaRes = btn.Text
indicePregunta = btn.Tag
ocultaPanelEncuesta
botonPresionado = 1
End Sub
Private Sub b_encuesta_continuar_Click
Dim btn As Button = Sender
Log("BOTON CONTINUAR CLICK - " & btn.Text & " - " & btn.Tag)
encuestaRes = et_encuesta.Text
indicePregunta = btn.Tag
et_encuesta.Text = ""
et_encuesta.Visible = False
b_encuesta_continuar.Visible = False
ocultaPanelEncuesta
botonPresionado = 1
End Sub
Private Sub et_encuesta_TextChanged (Old As String, New As String)
' Log($"|${Old}|,|${New}|"$)
If New.Length > 0 Then b_encuesta_continuar.Enabled = True
If New.Length < 1 Then b_encuesta_continuar.Enabled = False
End Sub
'Muestra un boton con las dimensiones, posicion y texto especificados.
Sub muestraBoton (thisButton As Button, theText As String, theTag As String, Left As Int, Top As Int, width As Int, height As Int)
thisButton.Text = theText
thisButton.Tag = theTag
thisButton.Left = Left
thisButton.Top = Top
thisButton.Width = width
thisButton.Height = height
thisButton.Visible = True
End Sub
'Muestra un boton con las dimensiones, posicion y texto especificados.
Sub muestraBotonCentrado (thisButton As Button, theText As String, theTag As String, Top As Int, width As Int, height As Int) 'ignore
Private anchoPantalla As Int
thisButton.Text = theText
thisButton.Tag = theTag
anchoPantalla = GetDeviceLayoutValues.Width
thisButton.Left = (anchoPantalla/2) - (width/2)
thisButton.Top = Top
thisButton.Width = width
thisButton.Height = height
thisButton.Visible = True
End Sub