- Se puso geocerca en almacen 32 y 33

- Se completo el codigo de las encuestas, ya se descarga el historico y si ya se contesto la encuesta, ya no la vuelve a mostrar.
This commit is contained in:
2024-04-16 16:22:18 -06:00
parent a073c2e8a4
commit bf8dab1993
7 changed files with 85 additions and 44 deletions

View File

@@ -172,7 +172,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA2(HE_CLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_CLIENTE (HEC_CLIENTE TEXT, HEC_MODULO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_AVISO_GIRO (HEAV_CLIENTE TEXT, HEAV_MODULO TEXT, HEAV_AVISO TEXT, HEAV_GIRO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_LAT TEXT, HE_LON TEXT)")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P10" en la tabla
c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P10'")
c.Position = 0

View File

@@ -401,6 +401,7 @@ Sub Class_Globals
Private l_txtEncuesta As Label
Private l_titEncuesta As Label
Private ImageView11 As ImageView
Dim distance As Long
End Sub
'You can add more parameters here.
@@ -506,7 +507,7 @@ Sub B4XPage_Appear
If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then
L_QR.TEXT = "SIN CODIGO"
L_QR.TextColor = Colors.Red
gest.VISIBLE = True
If ALMACEN <> "32" And ALMACEN <> "33" And ALMACEN <> 6 Then gest.VISIBLE = True
BT_QR.Visible = True
Else
L_QR.TEXT = c.GetString("CAT_CL_NUM_SERIEFISICO")
@@ -639,41 +640,57 @@ Sub B4XPage_Appear
Else If c.RowCount = 0 Then
B_IMP.Visible = False
End If
' Log(distance)
If (ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "6") And distance > 100 Then
gest.Visible = False
' ToastMessageShow("aaa", False)
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
End If
Dim l1, l2 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then
Dim l1, l2 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$)
l2.Initialize2(m_lat, m_lon)
l2.Initialize2(m_lat, m_lon)
BT_QR.Enabled = True
LA_GPS.TextColor = Colors.Blue
LA_GPS.Text = "CON UBICACION GPS"
B_GPS.Enabled = True
'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
gest.Visible = True
If distance < 100 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
gest.Visible = True
Else
LA_GEO.TextColor = Colors.Red
If ALMACEN = "1" Then
Tels.Visible = False
gest.Visible = True
BT_QR.Enabled = True
LA_GPS.TextColor = Colors.Blue
LA_GPS.Text = "CON UBICACION GPS"
B_GPS.Enabled = True
'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
If ALMACEN <> "32" And ALMACEN <> "33" And ALMACEN <> 6 Then gest.Visible = True
If ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "6" Then
If distance < 100 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
gest.Visible = True
ToastMessageShow("DENTRO de rango GPS", False)
Else
LA_GEO.TextColor = Colors.Red
If ALMACEN = "1" Then
Tels.Visible = False
gest.Visible = True
End If
End If
End If
End If
LA_GEO.Text= $"$1.2{distance/1000} kms"$
' 19.4846431, -99.1458691 -> Keymon
If LA_GEO.IsInitialized Then LA_GEO.Text= $"$1.2{distance/1000} kms"$
If distance > 100 Then ToastMessageShow("Fuera de rango GPS", False)
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")
@@ -1960,7 +1977,7 @@ Sub b_like_Click
b_like.Visible = False
Tar.Visible = False
Tels.Visible = False
gest.Visible = False
gest.Visible = False ' : ToastMessageShow("bbbb", False)
b_venta.Visible = False
Guardar.Visible = False
End Sub
@@ -2788,14 +2805,12 @@ Private Sub B_GALLINA_Click
b_like.Visible = False
Tar.Visible = False
Tels.Visible = False
gest.Visible = False
gest.Visible = False ': ToastMessageShow("ccc", False)
b_venta.Visible = False
Guardar.Visible = False
HIST.Visible = False
End Sub
' P5 M1
Private Sub p6_TextChanged (Old As String, New As String)
If p6.Text.Length > 2 Then
@@ -3478,6 +3493,7 @@ Sub Cuestionario
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
Log($"Tomar_Foto = ${TOMAR_FOTO}"$)
@@ -3491,6 +3507,7 @@ Sub Cuestionario
CUANTOS2 = s.GetString("CUANTOS2")
If logger Then LogColor($"Hist:encuesta=${CUANTOS}, hist_encuesta2 = ${CUANTOS2}"$, Colors.Magenta)
End If
Log(CUANTOS & "|" & CUANTOS2)
If CUANTOS = 0 And CUANTOS2 = 0 Then
Private enc As Cursor = B4XPages.MainPage.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
@@ -3547,7 +3564,7 @@ Sub Cuestionario
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta
Sleep(0)
Loop
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes,sDate & sTime,enc.GetString("CAT_EP_ID")))
B4XPages.MainPage.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
Log("Pregunta tipo 4")
@@ -3563,12 +3580,12 @@ Sub Cuestionario
Loop
Log("encuestaRes: " & encuestaRes)
If encuestaRes = "SI" Then
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI", sDate & sTime, enc.GetString("CAT_EP_ID")))
B4XPages.MainPage.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.
Log($"IndicePreg = ${indicePregunta}"$)
i = indicePregunta
else if encuestaRes = "NO" Then
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO", sDate & sTime, enc.GetString("CAT_EP_ID")))
B4XPages.MainPage.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.
Log($"IndicePreg = ${indicePregunta}"$)
i = indicePregunta
@@ -3590,7 +3607,7 @@ Sub Cuestionario
Sleep(0)
Loop
Log($"Guardamos tipo 2 : ${encuestaRes}"$)
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, sDate & sTime, enc.GetString("CAT_EP_ID")))
B4XPages.MainPage.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") = 6 Then
Log("Pregunta tipo 6")
@@ -3625,7 +3642,7 @@ Sub Cuestionario
Do Until botonPresionado = 1 'Esperamos que respondan la pregunta
Sleep(0)
Loop
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes,sDate & sTime,enc.GetString("CAT_EP_ID")))
B4XPages.MainPage.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"

View File

@@ -559,15 +559,16 @@ Sub Subir_Click
Next
End If
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA")
c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON FROM HIST_ENCUESTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_encuesta"
cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO"))
cmd.Name = "insert_encuesta_GUNA"
'TMP_HE_CLIE, TMP_HE_RES, TMP_HE_FECHA, TMP_HE_TIPO, TMP_HE_IDALMACEN, TMP_HE_RUTA, TMP_HE_LONGITUD, TMP_HE_LATITUD, TMP_HE_EXISTE
cmd.Parameters = Array As Object(C.GetString("HE_CLIE"), C.GetString("HE_RES"), C.GetString("HE_FECHA"), c.GetString("HE_TIPO"), Subs.traeAlmacen, Subs.traeRuta, c.GetString("HE_LAT"), c.GetString("HE_LON"), "")
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
@@ -869,6 +870,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "carga_encuesta")
cmd.Initialize
cmd.Name = "SELECT_HIST_ENCUESTA_GUNA"
cmd.Parameters = Array As Object( e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "HIST_ENCUESTA2")
If E_RUTA2.text <> "" Then
cmd.Initialize
cmd.Name = "select_cat_clientes_guna_GV2"
@@ -1257,6 +1263,20 @@ Sub JobDone(Job As HttpJob)
End If
End If
'HIST_ENCUESTA2
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "HIST_ENCUESTA2" Then 'query tag
B4XPages.MainPage.skmt.BeginTransaction
For Each records() As Object In RESULT.Rows
Dim HE_CLIENTE As String = records(RESULT.Columns.Get("HE_CLIENTE"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_ENCUESTA2(HE_CLIENTE) VALUES (?)", Array As Object (HE_CLIENTE))
Next
B4XPages.MainPage.skmt.TransactionSuccessful
B4XPages.MainPage.skmt.EndTransaction
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprod" Then 'query tag

View File

@@ -187,7 +187,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Guna V3.1
#VersionCode: 1
#VersionName: 4.04.13 ENC
#VersionName: 4.04.15 ENC
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -70,6 +70,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Cliente,muestraBotonCentrado,3734,1,C_Cliente,B4XPage_Created,449,0,C_Cliente,B4XPage_Appear,454,0,C_Cliente,Class_Globals,9,0,C_Cliente,muestraBoton,3730,0,Visual Designer,cliente.bal,-100,3,C_Cliente,B4XPage_CloseRequest,1399,6,C_Cliente,b_encuesta_1_Click,3675,0,C_Cliente,Cuestionario,3556,6,C_Cliente,gest_Click,686,6
NavigationStack=Tracker,CreateNotification,198,0,C_Principal,cargar_Click,862,0,C_Principal,JobDone,1258,1,C_Cliente,B4XPage_Appear,639,6,Subs,traePromoIdDeBD,1098,0,B4XMainPage,B4XPage_Created,164,0,Main,Globals,24,0,C_Cliente,GPS_LocationChanged,681,6,C_Cliente,CB4_P8_M3_CheckedChange,3480,0,C_Cliente,Cuestionario,3503,5
SelectedBuild=0
VisibleModules=21,2,22,12,13,4,8,11,5,10,17
VisibleModules=21,2,22,12,13,4,8,11,5,10,23

View File

@@ -1114,18 +1114,20 @@ End Sub
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Log(1)
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
Log(2)
End Try
End Sub

View File

@@ -197,7 +197,7 @@ Sub flp_LocationChanged (Location1 As Location)
LogColor(Location1.Latitude, Colors.red)
CallSub2(Starter, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1)
' CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1)
CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1)
' CallSub2(nuevocliente, "GPS_LocationChanged", Location1)
End Sub