activacion geocerca y foto para encuestas

This commit is contained in:
cvaldes1201
2024-08-01 23:47:18 -06:00
parent f1588e47b9
commit 633afc2c2f
8 changed files with 605 additions and 72 deletions

View File

@@ -374,7 +374,7 @@ Sub Class_Globals
Private p_m4 As Panel
Dim impresoraConectada As Boolean = False
Dim errorImpresora As Int = 0
Dim idencuestaaguardar As String
'Encuestas
Private botonPresionado As Int
Private encuestaRes As String
@@ -408,6 +408,15 @@ Sub Class_Globals
Private l_geopass As Label
Dim reqManager As DBRequestManager
Private camEx As CameraExClass
Dim frontCamera As Boolean = False
Private p_cam As Panel
Dim nombrefoto As String = "0"
Private p_camara As Panel
Private teclado As IME
Dim fototomada As String
Private b_foto As Button
End Sub
'You can add more parameters here.
@@ -487,6 +496,8 @@ Sub B4XPage_Appear
skmt.Initialize(ruta,"kmt.db", True)
reqManager.Initialize(Me, Starter.server)
p_camara.Width = Root.Width
p_camara.Height = Root.Height
S2=B4XPages.MainPage.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
S2.Position =0
@@ -642,11 +653,11 @@ Sub B4XPage_Appear
B_IMP.Visible = False
End If
' Log(distance)
If (ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "87") And distance > 100 Then
gest.Visible = False
Tels.Visible = False
' ToastMessageShow("aaa", False)
End If
'
' Log(Subs.InvSuficientePromoEsp)
' Log(Subs.traemontoprod)
@@ -774,7 +785,11 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
l_total.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = 0
Else
l_total.Text =NumberFormat2((s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")),0,2,2,False)
End If
total_cliente = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
m_lat = "0"
If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT")
@@ -817,7 +832,11 @@ Sub B4XPage_Appear
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
Log(s.GetString("TOTAL_CLIE"))
l_total.Text = s.GetString("TOTAL_CLIE")
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = 0
Else
l_total.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False)
End If
total_cliente = s.GetString("TOTAL_CLIE")
m_lat = "0"
If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT")
@@ -844,6 +863,24 @@ Sub B4XPage_Appear
'AQUI TERMINA
c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'")
If c.RowCount > 0 Then
c.Position = 0
Dim geo As String = c.GetString("CAT_VA_VALOR")
End If
c.Close
Log(geo)
If geo = "0" Then
gest.Visible = True
Tels.Visible = True
Log("AQUI")
Else If geo = "1" And distance > 100 Then
gest.Visible = False
Tels.Visible = False
' ToastMessageShow("aaa", False)
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -870,21 +907,27 @@ Sub GPS_LocationChanged (Location1 As Location)
c = skmt.ExecQuery("SELECT HABILITADO FROM GPS")
If c.RowCount > 0 Then
c.Position = 0
Dim habi = c.GetString("HABILITADO")
Dim habi As String = c.GetString("HABILITADO")
End If
c.Close
c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'")
If c.RowCount > 0 Then
c.Position = 0
Dim geo As String = c.GetString("CAT_VA_VALOR")
End If
c.Close
If gest.IsInitialized And Tels.IsInitialized Then
If ALMACEN <> "32" And ALMACEN <> "33" Then
If geo = "0" Then
gest.Visible = True
Tels.Visible = True
Else If ALMACEN = "32" And ALMACEN = "33" Then
Else If geo = "1" Then
gest.Visible = False
Tels.Visible = False
End If
End If
If ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "87" Then
If geo = "1" Then
If distance < 100 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
@@ -1809,6 +1852,10 @@ Private Sub B4XPage_CloseRequest As ResumableSub
cuest.ocultPanelPregunta
If p_encuesta.Visible Then
p_encuesta.Visible = False
Else iF p_camara.Visible Then
Return False
' p_camara.Visible = False
' StopCamera2
else If p_pregunta1.Visible Then
p_pregunta1.Visible = False
Else if SV_ENCUESTA.Visible Then
@@ -4197,13 +4244,19 @@ Sub Cuestionario
enc.Position = i
Log($"POSICION = ${enc.Position}"$)
If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then
If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then 'esto es para la foto
If logger Then Log("Pregunta tipo 5")
id_encuesta = enc.GetString("CAT_EP_ID")
idencuestaaguardar = enc.GetString("CAT_EP_ID")
LogColor(idencuestaaguardar,Colors.Blue)
TOMAR_FOTO = 1
CURSOR_FOTO = i
LogColor("PREGUNTA TIPO 5 SALIMOS", Colors.Red)
Exit
InitializeCamera2
p_camara.Visible = True
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
@@ -4248,6 +4301,9 @@ Sub Cuestionario
Log($"IndicePreg = ${indicePregunta}"$)
i = indicePregunta
Log($"I = ${i}"$)
If enc.GetString("CAT_EP_RES2_PRED") = "null" Or enc.GetString("CAT_EP_RES2_PRED") = Null Then
Exit
End If
End If
ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then ' Tipo 3 opciones.
Log("Pregunta tipo 2")
@@ -4500,4 +4556,112 @@ Sub cuest_preguntaContestada(m As Map)
B4XPage_Appear
' Case 6
End Select
End Sub
End Sub
'tomar foto
Private Sub InitializeCamera2
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
If resultC Then
camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
frontCamera = camEx.Front
Log("inicializamos Camara")
Else
ToastMessageShow("No permission!!!", True)
End If
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("conpermisos para escritura")
' Else
' ToastMessageShow("No permission!!!", True)
' End If
'
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("conpermisos para escritura")
' Else
' ToastMessageShow("No permission!!!", True)
' End If
End Sub
Sub Camera1_Ready (Success As Boolean)
Log("Camara ready")
If Success Then
camEx.SetJpegQuality(90)
camEx.SetContinuousAutoFocus
camEx.CommitParameters
camEx.StartPreview
Log(camEx.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", True)
Log("Cannot open camera")
End If
End Sub
Sub Camera1_PictureTaken (Data()As Byte)
Log("tome foto")
Dim filename As String = DateTime.Now & "GUNA.jpg"
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/guna")
Dir = "/guna"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
camEx.SavePictureToFile(Data, Dirp&Dir, filename)
Log(Dirp&Dir &" ALGO BONITO COMO UN COLOR PARA GUERRA "& filename)
camEx.StartPreview 'restart preview
' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
p_camara.Visible = False
Log(filename)
If filename <> "0" Then
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 300, 450, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, True)
img.WriteToStream(out, 100, "PNG")
out.Close
Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$
B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_FOTO, HE_FECHA, HE_TIPO, HE_LAT, HE_LON,HE_RES) VALUES (?,?,?,?,?,?,?)", Array As Object(la_cuenta.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, filename), fecha, idencuestaaguardar, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,"FOTO"))
End If
StopCamera2
' nombrefoto = "0"
ocultaPanelEncuesta
End Sub
Private Sub p_camara_Click
End Sub
Private Sub b_foto_Click
camEx.TakePicture
p_camara.Visible = False
' StopCamera2
End Sub
Private Sub StopCamera2
' Capturing = False
If camEx.IsInitialized Then
camEx.Release
End If
End Sub