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

@@ -181,6 +181,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
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_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)") 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_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")
Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT")
Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
@@ -518,6 +519,45 @@ Sub JobDone(Job As HttpJob)
IMEI = "" IMEI = ""
End If End If
End If End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "geopass" Then 'query tag
For Each records() As Object In result.Rows
Dim cuenta As String = records(result.Columns.Get("CUENTA"))
Next
If cuenta = "1" Then
p_validacion.Visible = False
B4XSwitch2.Value = True
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1))
et_codigo.Text = ""
Private c2 As Cursor = skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info")
c2.Position = 0
Private rutades As String = c2.GetString("CAT_CL_RUTA")
c2.Close
Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
c2.Position = 0
Private almacendes As String = c2.GetString("ID_ALMACEN")
c2.Close
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "delete_geoPass_GUNA"
Log(Subs.traeAlmacen&", "& Subs.traeRuta)
cmd.Parameters = Array As Object( almacendes,rutades)
reqManager.ExecuteCommand(cmd , "traeGeoPass")
Else If cuenta = "0" Then
MsgboxAsync("Codigo incorrecto","Atención")
p_validacion.Visible = False
B4XSwitch2.Value = False
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
et_codigo.Text = ""
End If
End If
End If
If Job.JobName = "DBRequest" Then If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job) Dim result As DBResult = reqManager.HandleJob(Job)
@@ -770,6 +810,7 @@ Private Sub B4XSwitch1_ValueChanged (Value As Boolean)
End Sub End Sub
Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean) Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean)
c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CARGA_DIA")) c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CARGA_DIA"))
If c.RowCount > 0 Then If c.RowCount > 0 Then
c.Position = 0 c.Position = 0
@@ -806,30 +847,58 @@ Private Sub b_cancelarcodigo_Click
End Sub End Sub
Private Sub b_aceptar_Click Private Sub b_aceptar_Click
c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =? ", Array As String("pasword")) If et_codigo.Text <> "" Then
Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
Log(c.GetString("CAT_VA_VALOR"))
If c.GetString("CAT_VA_VALOR") = et_codigo.Text Then
p_validacion.Visible = False
B4XSwitch2.Value = True Private c2 As Cursor = skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info")
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1)) c2.Position = 0
et_codigo.Text = "" Private rutades As String = c2.GetString("CAT_CL_RUTA")
Else If c.GetString("CAT_VA_VALOR") <> et_codigo.Text Then c2.Close
MsgboxAsync("Codigo incorrecto","Atención")
p_validacion.Visible = False Private c2 As Cursor = skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
B4XSwitch2.Value = False c2.Position = 0
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) Private almacendes As String = c2.GetString("ID_ALMACEN")
et_codigo.Text = "" c2.Close
End If
Else If c.RowCount = 0 Then Dim cmd As DBCommand
MsgboxAsync("Codigo incorrecto","Atención") cmd.Initialize
cmd.Name = "select_geoPass_GUNA"
cmd.Parameters = Array As Object(et_codigo.Text, almacendes, rutades)
reqManager.ExecuteQuery(cmd , 0, "geopass")
Else If et_codigo.Text = "" Then
MsgboxAsync("Ingresa un codigo","Atención")
p_validacion.Visible = False p_validacion.Visible = False
B4XSwitch2.Value = False B4XSwitch2.Value = False
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
et_codigo.Text = ""
End If End If
' c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =? ", Array As String("pasword"))
' Log(c.RowCount)
' If c.RowCount > 0 Then
' c.Position = 0
' Log(c.GetString("CAT_VA_VALOR"))
' If c.GetString("CAT_VA_VALOR") = et_codigo.Text Then
'
' p_validacion.Visible = False
'
' B4XSwitch2.Value = True
' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(1))
' et_codigo.Text = ""
' Else If c.GetString("CAT_VA_VALOR") <> et_codigo.Text Then
' MsgboxAsync("Codigo incorrecto","Atención")
' p_validacion.Visible = False
' B4XSwitch2.Value = False
' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
' et_codigo.Text = ""
' End If
' Else If c.RowCount = 0 Then
' MsgboxAsync("Codigo incorrecto","Atención")
' p_validacion.Visible = False
' B4XSwitch2.Value = False
' skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
' End If
End Sub End Sub

View File

@@ -374,7 +374,7 @@ Sub Class_Globals
Private p_m4 As Panel Private p_m4 As Panel
Dim impresoraConectada As Boolean = False Dim impresoraConectada As Boolean = False
Dim errorImpresora As Int = 0 Dim errorImpresora As Int = 0
Dim idencuestaaguardar As String
'Encuestas 'Encuestas
Private botonPresionado As Int Private botonPresionado As Int
Private encuestaRes As String Private encuestaRes As String
@@ -408,6 +408,15 @@ Sub Class_Globals
Private l_geopass As Label Private l_geopass As Label
Dim reqManager As DBRequestManager 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 End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -487,6 +496,8 @@ Sub B4XPage_Appear
skmt.Initialize(ruta,"kmt.db", True) skmt.Initialize(ruta,"kmt.db", True)
reqManager.Initialize(Me, Starter.server) 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=B4XPages.MainPage.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
S2.Position =0 S2.Position =0
@@ -642,11 +653,11 @@ Sub B4XPage_Appear
B_IMP.Visible = False B_IMP.Visible = False
End If End If
' Log(distance) ' 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.InvSuficientePromoEsp)
' Log(Subs.traemontoprod) ' Log(Subs.traemontoprod)
@@ -774,7 +785,11 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1") l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2") l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO") 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") total_cliente = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
m_lat = "0" m_lat = "0"
If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT") 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") l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO") TELEFONO = c.GetString("CAT_CL_TELEFONO")
Log(s.GetString("TOTAL_CLIE")) 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") total_cliente = s.GetString("TOTAL_CLIE")
m_lat = "0" m_lat = "0"
If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT") If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT")
@@ -844,6 +863,24 @@ Sub B4XPage_Appear
'AQUI TERMINA '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 End Sub
Sub GPS_LocationChanged (Location1 As Location) Sub GPS_LocationChanged (Location1 As Location)
@@ -870,21 +907,27 @@ Sub GPS_LocationChanged (Location1 As Location)
c = skmt.ExecQuery("SELECT HABILITADO FROM GPS") c = skmt.ExecQuery("SELECT HABILITADO FROM GPS")
If c.RowCount > 0 Then If c.RowCount > 0 Then
c.Position = 0 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 End If
c.Close c.Close
If gest.IsInitialized And Tels.IsInitialized Then If gest.IsInitialized And Tels.IsInitialized Then
If ALMACEN <> "32" And ALMACEN <> "33" Then If geo = "0" Then
gest.Visible = True gest.Visible = True
Tels.Visible = True Tels.Visible = True
Else If ALMACEN = "32" And ALMACEN = "33" Then Else If geo = "1" Then
gest.Visible = False gest.Visible = False
Tels.Visible = False Tels.Visible = False
End If End If
End If End If
If ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "87" Then If geo = "1" Then
If distance < 100 Then If distance < 100 Then
LA_GEO.TextColor = Colors.Blue LA_GEO.TextColor = Colors.Blue
Tels.Visible = True Tels.Visible = True
@@ -1809,6 +1852,10 @@ Private Sub B4XPage_CloseRequest As ResumableSub
cuest.ocultPanelPregunta cuest.ocultPanelPregunta
If p_encuesta.Visible Then If p_encuesta.Visible Then
p_encuesta.Visible = False p_encuesta.Visible = False
Else iF p_camara.Visible Then
Return False
' p_camara.Visible = False
' StopCamera2
else If p_pregunta1.Visible Then else If p_pregunta1.Visible Then
p_pregunta1.Visible = False p_pregunta1.Visible = False
Else if SV_ENCUESTA.Visible Then Else if SV_ENCUESTA.Visible Then
@@ -4197,13 +4244,19 @@ Sub Cuestionario
enc.Position = i enc.Position = i
Log($"POSICION = ${enc.Position}"$) 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") If logger Then Log("Pregunta tipo 5")
id_encuesta = enc.GetString("CAT_EP_ID") id_encuesta = enc.GetString("CAT_EP_ID")
idencuestaaguardar = enc.GetString("CAT_EP_ID")
LogColor(idencuestaaguardar,Colors.Blue)
TOMAR_FOTO = 1 TOMAR_FOTO = 1
CURSOR_FOTO = i CURSOR_FOTO = i
LogColor("PREGUNTA TIPO 5 SALIMOS", Colors.Red) 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 ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then ' Tipo SI/NO
If logger Then Log("Pregunta tipo 3") If logger Then Log("Pregunta tipo 3")
botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta
@@ -4248,6 +4301,9 @@ Sub Cuestionario
Log($"IndicePreg = ${indicePregunta}"$) Log($"IndicePreg = ${indicePregunta}"$)
i = indicePregunta i = indicePregunta
Log($"I = ${i}"$) 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 End If
ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then ' Tipo 3 opciones. ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 2 Then ' Tipo 3 opciones.
Log("Pregunta tipo 2") Log("Pregunta tipo 2")
@@ -4500,4 +4556,112 @@ Sub cuest_preguntaContestada(m As Map)
B4XPage_Appear B4XPage_Appear
' Case 6 ' Case 6
End Select 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

View File

@@ -117,7 +117,7 @@ Sub B4XPage_Appear
s5.Position = 0 s5.Position = 0
L_TOTAL.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False)
@@ -128,7 +128,7 @@ Sub B4XPage_Appear
Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0 s.Position=0
L_TOTAL.Text = s.GetString("TOTAL_CLIE") L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False)
s.Close s.Close
End If End If

View File

@@ -304,6 +304,7 @@ End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
p_principal.Visible = True p_principal.Visible = True
HORAINGRESO ="000000" HORAINGRESO ="000000"
Btn_Ubicar.Left = (Root.Width/2) - (Btn_Ubicar.Width/2) Btn_Ubicar.Left = (Root.Width/2) - (Btn_Ubicar.Width/2)
' B4XPages.MainPage.reqManager.Initialize(Me, B4XPages.MainPage.SERVER) ' B4XPages.MainPage.reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
@@ -558,15 +559,15 @@ Sub Subir_Click
End If End If
c.Close c.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON FROM HIST_ENCUESTA") c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON, HE_FOTO FROM HIST_ENCUESTA")
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
c.Position=i c.Position=i
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "insert_encuesta_GUNA" cmd.Name = "insert_encuesta2_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 '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"), "") 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"), "", c.GetBlob("HE_FOTO"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa") B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_noventa")
Next Next
End If End If
@@ -605,20 +606,20 @@ Sub Subir_Click
cuantos_pedido = D.GetString("CUANTOS_PEDIDO") cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close d.Close
'CUESTIONARIO ' 'CUESTIONARIO
c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) ' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$)
Private rutaActual As String = Subs.traeRuta ' Private rutaActual As String = Subs.traeRuta
If c.RowCount > 0 Then ' If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1 ' For i = 0 To c.RowCount - 1
c.Position = i ' c.Position = i
Dim cmd As DBCommand ' Dim cmd As DBCommand
cmd.Initialize ' cmd.Initialize
cmd.Name = "insert_CUESTIONARIO_GUNA" ' cmd.Name = "insert_CUESTIONARIO_GUNA"
cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) ' cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario") ' B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_cuestionario")
Next ' Next
End If ' End If
c.Close ' c.Close
' NOVENTA ' NOVENTA
c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA")
@@ -767,7 +768,9 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("GEOCERCA"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
CARGA = "CARGAR" CARGA = "CARGAR"
img2.Visible =True img2.Visible =True
L_P_1.Visible = True L_P_1.Visible = True
@@ -1057,7 +1060,7 @@ Sub JobDone(Job As HttpJob)
If n = "OKActivo" Then If n = "OKActivo" Then
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "select_ruta_GV2_70_2" cmd.Name = "select_ruta_GV2_70_5"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text) cmd.Parameters = Array As Object(ALMACEN,e_ruta.text)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta")
'Log("Usuario guardado en BD es 'Valido'") 'Log("Usuario guardado en BD es 'Valido'")
@@ -1287,8 +1290,10 @@ Sub JobDone(Job As HttpJob)
For Each records() As Object In RESULT.Rows For Each records() As Object In RESULT.Rows
Dim latitud As String = records(RESULT.Columns.Get("CAT_AL_LATITUD")) Dim latitud As String = records(RESULT.Columns.Get("CAT_AL_LATITUD"))
Dim longitud As String = records(RESULT.Columns.Get("CAT_AL_LONGITUD")) Dim longitud As String = records(RESULT.Columns.Get("CAT_AL_LONGITUD"))
Dim GEOCERCA As String = records(RESULT.Columns.Get("CAT_AL_GEOCERCA"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LATITUD",latitud)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LATITUD",latitud))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LONGITUD",longitud)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LONGITUD",longitud))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("GEOCERCA",GEOCERCA))
Next Next
' If Starter.marcaCel <> "Sony" Then ToastMessageShow(" Historico Marcas" , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow(" Historico Marcas" , True)
End If End If
@@ -1926,6 +1931,7 @@ Sub e_ruta_EnterPressed
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
B4XPage_Appear B4XPage_Appear
End If End If
End If End If
@@ -2191,7 +2197,7 @@ Sub resdia_Click
s5.Position = 0 s5.Position = 0
L_REAL.Text = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") L_REAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False)
@@ -2202,7 +2208,7 @@ Sub resdia_Click
Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO ") Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO ")
s.Position=0 s.Position=0
L_REAL.Text = s.GetString("TOTAL_CLIE") L_REAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False)
s.Close s.Close
End If End If

290
B4A/CameraExClass.bas Normal file
View File

@@ -0,0 +1,290 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=7.01
@EndOfDesignText@
'Class module
'version 1.20
'See this page for the list of constants:
'http://developer.android.com/intl/fr/reference/android/hardware/Camera.Parameters.html
'Note that you should use the constant values instead of the names.
Sub Class_Globals
Private nativeCam As Object
Private cam As Camera
Private r As Reflector
Private target As Object
Private event As String
Public Front As Boolean
Type CameraInfoAndId (CameraInfo As Object, Id As Int)
Type CameraSize (Width As Int, Height As Int)
Private parameters As Object
End Sub
Public Sub Initialize (Panel1 As Panel, FrontCamera As Boolean, TargetModule As Object, EventName As String)
target = TargetModule
event = EventName
Front = FrontCamera
Dim id As Int
id = FindCamera(Front).id
If id = -1 Then
Front = Not(Front) 'try different camera
id = FindCamera(Front).id
If id = -1 Then
ToastMessageShow("No camera found.", True)
Return
End If
End If
cam.Initialize2(Panel1, "camera", id)
End Sub
Private Sub FindCamera (frontCamera As Boolean) As CameraInfoAndId
Dim ci As CameraInfoAndId
Dim cameraInfo As Object
Dim cameraValue As Int
If frontCamera Then cameraValue = 1 Else cameraValue = 0
cameraInfo = r.CreateObject("android.hardware.Camera$CameraInfo")
Dim numberOfCameras As Int = r.RunStaticMethod("android.hardware.Camera", "getNumberOfCameras", Null, Null)
For i = 0 To numberOfCameras - 1
r.RunStaticMethod("android.hardware.Camera", "getCameraInfo", Array As Object(i, cameraInfo), _
Array As String("java.lang.int", "android.hardware.Camera$CameraInfo"))
r.target = cameraInfo
If r.GetField("facing") = cameraValue Then
ci.cameraInfo = r.target
ci.Id = i
Return ci
End If
Next
ci.id = -1
Return ci
End Sub
Private Sub SetDisplayOrientation
r.target = r.GetActivity
r.target = r.RunMethod("getWindowManager")
r.target = r.RunMethod("getDefaultDisplay")
r.target = r.RunMethod("getRotation")
Dim previewResult, result, degrees As Int = r.target * 90
Dim ci As CameraInfoAndId = FindCamera(Front)
r.target = ci.CameraInfo
Dim orientation As Int = r.GetField("orientation")
If Front Then
previewResult = (orientation + degrees) Mod 360
result = previewResult
previewResult = (360 - previewResult) Mod 360
Else
previewResult = (orientation - degrees + 360) Mod 360
result = previewResult
Log(previewResult)
End If
r.target = nativeCam
r.RunMethod2("setDisplayOrientation", previewResult, "java.lang.int")
r.target = parameters
r.RunMethod2("setRotation", result, "java.lang.int")
CommitParameters
End Sub
Private Sub Camera_Ready (Success As Boolean)
If Success Then
r.target = cam
nativeCam = r.GetField("camera")
r.target = nativeCam
parameters = r.RunMethod("getParameters")
SetDisplayOrientation
Else
Log("success = false, " & LastException)
End If
CallSub2(target, event & "_ready", Success)
End Sub
Sub Camera_Preview (Data() As Byte)
If SubExists(target, event & "_preview") Then
CallSub2(target, event & "_preview", Data)
End If
End Sub
Public Sub TakePicture
cam.TakePicture
End Sub
Private Sub Camera_PictureTaken (Data() As Byte)
CallSub2(target, event & "_PictureTaken", Data)
End Sub
Public Sub StartPreview
cam.StartPreview
End Sub
Public Sub StopPreview
cam.StopPreview
End Sub
Public Sub Release
cam.Release
End Sub
'Saves the data received from PictureTaken event
Public Sub SavePictureToFile(Data() As Byte, Dir As String, FileName As String)
Dim out As OutputStream = File.OpenOutput(Dir, FileName, False)
out.WriteBytes(Data, 0, Data.Length)
out.Close
End Sub
Public Sub SetParameter(Key As String, Value As String)
r.target = parameters
r.RunMethod3("set", Key, "java.lang.String", Value, "java.lang.String")
End Sub
Public Sub GetParameter(Key As String) As String
r.target = parameters
Return r.RunMethod2("get", Key, "java.lang.String")
End Sub
Public Sub CommitParameters
Try
r.target = nativeCam
r.RunMethod4("setParameters", Array As Object(parameters), Array As String("android.hardware.Camera$Parameters"))
Catch
ToastMessageShow("Error setting parameters.", True)
Log(LastException)
End Try
End Sub
Public Sub GetColorEffect As String
Return GetParameter("effect")
End Sub
Public Sub SetColorEffect(Effect As String)
SetParameter("effect", Effect)
End Sub
Public Sub GetSupportedPicturesSizes As CameraSize()
r.target = parameters
Dim list1 As List = r.RunMethod("getSupportedPictureSizes")
Dim cs(list1.Size) As CameraSize
For i = 0 To list1.Size - 1
r.target = list1.Get(i)
cs(i).Width = r.GetField("width")
cs(i).Height = r.GetField("height")
Next
Return cs
End Sub
Public Sub SetPictureSize(Width As Int, Height As Int)
r.target = parameters
r.RunMethod3("setPictureSize", Width, "java.lang.int", Height, "java.lang.int")
End Sub
Public Sub SetJpegQuality(Quality As Int)
r.target = parameters
r.RunMethod2("setJpegQuality", Quality, "java.lang.int")
End Sub
Public Sub SetFlashMode(Mode As String)
r.target = parameters
r.RunMethod2("setFlashMode", Mode, "java.lang.String")
End Sub
Public Sub GetFlashMode As String
r.target = parameters
Return r.RunMethod("getFlashMode")
End Sub
Public Sub GetSupportedFlashModes As List
r.target = parameters
Return r.RunMethod("getSupportedFlashModes")
End Sub
Public Sub GetSupportedColorEffects As List
r.target = parameters
Return r.RunMethod("getSupportedColorEffects")
End Sub
Public Sub GetPreviewSize As CameraSize
r.target = parameters
r.target = r.RunMethod("getPreviewSize")
Dim cs As CameraSize
cs.Width = r.GetField("width")
cs.Height = r.GetField("height")
Return cs
End Sub
Public Sub GetPictureSize As CameraSize
r.target = parameters
r.target = r.RunMethod("getPictureSize")
Dim cs As CameraSize
cs.Width = r.GetField("width")
cs.Height = r.GetField("height")
Return cs
End Sub
'Converts a preview image formatted in YUV format to JPEG.
'Note that you should not save every preview image as it will slow down the whole process.
Public Sub PreviewImageToJpeg(data() As Byte, quality As Int) As Byte()
Dim size, previewFormat As Object
r.target = parameters
size = r.RunMethod("getPreviewSize")
previewFormat = r.RunMethod("getPreviewFormat")
r.target = size
Dim width = r.GetField("width"), height = r.GetField("height") As Int
Dim yuvImage As Object = r.CreateObject2("android.graphics.YuvImage", _
Array As Object(data, previewFormat, width, height, Null), _
Array As String("[B", "java.lang.int", "java.lang.int", "java.lang.int", "[I"))
r.target = yuvImage
Dim rect1 As Rect
rect1.Initialize(0, 0, r.RunMethod("getWidth"), r.RunMethod("getHeight"))
Dim out As OutputStream
out.InitializeToBytesArray(100)
r.RunMethod4("compressToJpeg", Array As Object(rect1, quality, out), _
Array As String("android.graphics.Rect", "java.lang.int", "java.io.OutputStream"))
Return out.ToBytesArray
End Sub
Public Sub GetSupportedFocusModes As List
r.target = parameters
Return r.RunMethod("getSupportedFocusModes")
End Sub
Public Sub SetContinuousAutoFocus
Dim modes As List = GetSupportedFocusModes
If modes.IndexOf("continuous-picture") > -1 Then
SetFocusMode("continuous-picture")
Else If modes.IndexOf("continuous-video") > -1 Then
SetFocusMode("continuous-video")
Else
Log("Continuous focus mode is not available")
End If
End Sub
Public Sub SetFocusMode(Mode As String)
r.target = parameters
r.RunMethod2("setFocusMode", Mode, "java.lang.String")
End Sub
Public Sub GetFocusDistances As Float()
Dim F(3) As Float
r.target = parameters
r.RunMethod4("getFocusDistances", Array As Object(F), Array As String("[F"))
Return F
End Sub
'This method should only be called if you need to immediately release the camera.
'For example if you need to start another application that depends on the camera.
Public Sub CloseNow
cam.Release
r.target = cam
r.RunMethod2("releaseCameras", True, "java.lang.boolean")
End Sub
'Calls AutoFocus and then takes the picture if focus was successfull.
Public Sub FocusAndTakePicture
cam.AutoFocus
End Sub
Private Sub Camera_FocusDone (Success As Boolean)
If Success Then
TakePicture
Else
Log("AutoFocus error.")
End If
End Sub

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -16,6 +16,7 @@ ModuleBookmarks21=
ModuleBookmarks22= ModuleBookmarks22=
ModuleBookmarks23= ModuleBookmarks23=
ModuleBookmarks24= ModuleBookmarks24=
ModuleBookmarks25=
ModuleBookmarks3= ModuleBookmarks3=
ModuleBookmarks4= ModuleBookmarks4=
ModuleBookmarks5= ModuleBookmarks5=
@@ -41,6 +42,7 @@ ModuleBreakpoints21=
ModuleBreakpoints22= ModuleBreakpoints22=
ModuleBreakpoints23= ModuleBreakpoints23=
ModuleBreakpoints24= ModuleBreakpoints24=
ModuleBreakpoints25=
ModuleBreakpoints3= ModuleBreakpoints3=
ModuleBreakpoints4= ModuleBreakpoints4=
ModuleBreakpoints5= ModuleBreakpoints5=
@@ -62,10 +64,11 @@ ModuleClosedNodes18=
ModuleClosedNodes19= ModuleClosedNodes19=
ModuleClosedNodes2= ModuleClosedNodes2=
ModuleClosedNodes20= ModuleClosedNodes20=
ModuleClosedNodes21=3,4 ModuleClosedNodes21=
ModuleClosedNodes22=1 ModuleClosedNodes22=3,4
ModuleClosedNodes23= ModuleClosedNodes23=1
ModuleClosedNodes24= ModuleClosedNodes24=
ModuleClosedNodes25=
ModuleClosedNodes3= ModuleClosedNodes3=
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5=7 ModuleClosedNodes5=7
@@ -73,6 +76,6 @@ ModuleClosedNodes6=8,9,10
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=C_Cliente,Impresion,2023,0,C_Cliente,B_IMP_Click,2014,6,C_Principal,Subir_Click,584,6,C_Cliente,Impresion2,2189,2,Diseñador Visual,cliente.bal,-100,3,C_Cliente,CB4_P8_M3_CheckedChange,4118,0,C_Cuestionario,Class_Globals,0,0,C_Principal,Class_Globals,0,0,C_Cliente,Cuestionario,4193,0,C_Cliente,gest_Click,1082,0 NavigationStack=C_Cliente,GPS_LocationChanged,947,0,B4XMainPage,B4XSwitch2_ValueChanged,766,6,B4XMainPage,Entrar_Click,416,0,C_Cliente,b_geopass_Click,1062,0,C_Cliente,JobDone,1108,0,C_Principal,e_ruta_EnterPressed,1926,1,C_Principal,cargar_Click,766,1,C_Principal,Subir_Click,752,0,C_Principal,JobDone,1033,4,B4XMainPage,JobDone,525,6
SelectedBuild=0 SelectedBuild=0
VisibleModules=22,2,23,13,14,4,6,9,12,5 VisibleModules=23,2,24,13,14,4,6,9,12,5