Files
Mariana_Censos/B4A/C_NuevoCliente.bas

608 lines
26 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim rp As RuntimePermissions
Dim g As GPS
Dim ruta As String
Dim c As Cursor
Dim reqManager As DBRequestManager
Dim ime As IME
Dim CANCELA As Button
Dim b_guardar As Button
Dim cuenta As String
Dim usuario As String
Dim sDate,sTime As String
Dim no_cliente As String
Dim no_ruta As String
Dim r_4 As RadioButton
Dim et_nombre As EditText
Dim tgl As Toggle
' Private l_sinUbicacion As Label
Private p_nuevoCliente As Panel
Private Label1 As Label
Private p_botones As Panel
Private p_cam As Panel
Private p_camara As Panel
Private b_foto_inci As Button
Private camEx2 As CameraExClass2
Dim frontCamera As Boolean = False
Dim fototomada As String
Dim ALMACEN As String
Private Panel1 As Panel
Private Button1 As Button
Private et_direccion As EditText
Private b_ubicacion As Button
Dim elGiro As String = ""
Private lv_giro As ListView
Private l_giro As Label
Private et_giro As EditText
Private cb_giro As B4XComboBox
Dim logger As Boolean = False
Dim cargarCliente As Boolean = False
Private B_FOTO As Button
Dim elOtroCliente As String = ""
Dim camposModificados As List
Dim mandarTodo As Boolean = False
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.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("nuevocliente")
ruta = File.DirInternal
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
rp.CheckAndRequest(rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
' camEx2.Initialize(p_cam, frontCamera, Me, "Camera1")
' frontCamera = camEx2.Front
' If logger Then Log("inicializamos Camara")
Else
ToastMessageShow("Sin permisos de camara!!!", True)
End If
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 = ""
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
If cargarCliente Then
Log("Cargamos cliente")
Private cf As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from HIST_FOTO_CLIENTE where codigo In (Select cuenta from cuentaa)"$)
Private cc As Cursor = B4XPages.MainPage.skmt.ExecQuery("select * from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
Log(cc.RowCount)
If cc.RowCount > 0 Then
cc.Position = 0
fototomada = ""
If cf.RowCount > 0 Then
cf.Position = 0
fototomada = cf.GetString("NOM_FOTO")
End If
Log($"${cc.GetString("CAT_CL_CODIGO")}, ${cf.RowCount}, ${fototomada}"$)
elOtroCliente = cc.GetString("CAT_CL_CODIGO")
et_nombre.Text = cc.GetString("CAT_CL_NOMBRE")
et_direccion.Text = cc.GetString("CAT_CL_CALLE1")
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
Else
sTime=DateTime.Time(DateTime.Now)
no_cliente= "NC" & sTime & no_ruta
B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente))
Log(no_cliente)
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.centraEtiqueta(Label1, Root.Width)
' Subs.centraEtiqueta(l_sinUbicacion, Root.Width)
Subs.centraPanel(p_botones, Root.Width)
' E_NOMBRE.Left = Round(Root.Width/2)-(E_NOMBRE.Width/2)
If B4XPages.MainPage.lat_gps <> "0.0" Then
b_guardar.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar.
' l_sinUbicacion.Visible = False
End If
Subs.centraPanel(Panel1, Root.Width)
b_guardar.Enabled = False
' Log(losGiros.IndexOf("ABARROTES"))
' cb_giro.SelectedIndex = losGiros.IndexOf("ABARROTES")
' cb_giro.
' l_sinUbicacion.Visible = True
CallSubDelayed(Tracker, "StartFLPSmall")
' 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
q.encuestaIniciada = False
q.ocultPanelPregunta
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 hayCuestionario As Boolean = False
Private cuest As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario where Q_IDCLIENTE = '${Subs.traeCliente}'"$)
If cuest.RowCount > 0 Then
Log("HAY CUESTIONARIO")
hayCuestionario = True
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($"${(Not(q.encuestaIniciada) And Not(cargarCliente))} | ${Not(hayCuestionario)}"$)
If (Not(q.encuestaIniciada) And Not(cargarCliente)) Or (Not(hayCuestionario)) Then
Log("Mostramos encuesta")
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 If
ajustaTamano
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' LogColor($"LATITUD= ${B4XPages.MainPage.lat_gps}"$, Colors.Red)
b_ubicacion.TextColor = Colors.Gray
Sleep(200)
b_ubicacion.TextColor = Colors.red
If B4XPages.MainPage.lat_gps <> "0.0" Then
b_guardar.Enabled = True 'Si hay ubicaccion, mostramos el boton de guardar.
' l_sinUbicacion.Visible = True
b_ubicacion.Text = $"Precisión del GPS: ${Round2(Location1.Accuracy,1)} mts."$
End If
End Sub
Sub flp_LocationChanged (Location1 As Location)
Log("FLP LOC CHANGED")
End Sub
Sub CANCELA_Click
B4XPages.ShowPage("Principal")
fototomada = ""
et_nombre.Text = ""
et_direccion.Text = ""
et_atiende.Text = ""
et_telefono.Text = ""
et_email.Text = ""
CallSubDelayed(Tracker, "StartFLP")
End Sub
Sub b_guardar_Click
Log("|" & fototomada & "|" & et_nombre.Text & "|" & et_direccion.Text & "|" & cb_giro.SelectedItem)
If et_nombre.Text = "" Or fototomada = "null" Or fototomada = Null Or fototomada = "" Or et_direccion.Text = "" Or cb_giro.SelectedItem = "SELECCIONA UNA OPCION" Then
ToastMessageShow("Se tienen que llenar todos los campos y tomar la foto para continuar" , True)
else if B4XPages.MainPage.principal.l_ruta.Text = "0" Then
ToastMessageShow("Es necesario cargar una ruta.", False)
Else
' 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} ////////////////"$)
'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&" ////////////////")
c = B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info")
c.Position=0
no_ruta= c.GetString("CAT_CL_RUTA")
If cargarCliente Then no_cliente = elOtroCliente
Log("++ ++ no_cliente = "&no_cliente)
c.Close
DateTime.DateFormat = "dd/MM/yyyy HH:mm:ss"
Private DateNC As String = DateTime.Date(DateTime.Now)
If cargarCliente Then
camposModificados = Subs.RemoveDuplicates(camposModificados)
B4XPages.MainPage.skmt.ExecNonQuery($"UPDATE kmt_info set CAT_CL_CODIGO = '${no_cliente}', CAT_CL_CEDIS = '${Subs.traeAlmacen}', CAT_CL_TELEFONO = '${et_telefono.text}', CAT_CL_EMAIL = '${et_email.text}', CAT_CL_ATIENDE1 = '${et_atiende.Text}',
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, 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_telefono.Text, et_atiende.Text, et_email.Text, cb_giro.SelectedItem))
End If
ALMACEN = Subs.traeAlmacen
' If fototomada <> "" And fototomada <> Null Then
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA, NOM_FOTO, ENVIO_PENDIENTE) VALUES(?,?,?,?,1)", Array As Object(no_cliente, ALMACEN, no_ruta, fototomada))
Log($"${no_cliente}, ${ALMACEN}, ${no_ruta}, ${fototomada}"$)
' End If
mandaPendientesNuevosClientes
cargarCliente = False
B4XPages.ShowPage("Principal")
fototomada = ""
et_nombre.Text = ""
et_direccion.Text = ""
End If
End Sub
Private Sub p_nuevoCliente_Click
End Sub
Private Sub b_foto_inci_Click
b_guardar.Enabled = False
camEx2.TakePicture
p_camara.Visible = False
' StopCamera2
End Sub
Private Sub InitializeCamera2
rp.CheckAndRequest(rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result Then
camEx2.Initialize(p_cam, frontCamera, Me, "Camera1")
frontCamera = camEx2.Front
If logger Then Log("inicializamos Camara")
Else
ToastMessageShow("Sin permisos de camara!!!", True)
End If
' rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("Con permisos para escritura")
' Else
' ToastMessageShow("Sin permisos de escritura externa.", True)
' End If
'
' rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
' If Result Then
' Log("Con permisos de lectura")
' Else
' ToastMessageShow("Sin permisos de lectura externa!", True)
' End If
End Sub
Sub Camera1_Ready (Success As Boolean)
If logger Then Log("Camara ready")
If Success Then
camEx2.SetJpegQuality(90)
camEx2.SetContinuousAutoFocus
camEx2.CommitParameters
camEx2.StartPreview
If logger Then Log(camEx2.GetPreviewSize)
Else
ToastMessageShow("Cannot open camera.", True)
Log("Cannot open camera")
End If
End Sub
Sub Camera1_PictureTaken (Data()As Byte)
If logger Then Log("tome foto")
Dim filename As String = fototomada
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/promotoriakmts")
Dir = "/promotoriakmts"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
If logger Then Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir2 = ""
If logger Then Log("creado en raiz")
End Try
camEx2.SavePictureToFile(Data, Dirp&Dir, filename)
camEx2.StartPreview 'restart preview
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 400, 550, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
' ImageView8.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto7)
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
If logger Then Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
p_camara.Visible = False
StopCamera2
b_guardar.Enabled = True
End Sub
Private Sub StopCamera2
' Capturing = False
If logger Then Log("ENTRAMOS STOPCAMERA2")
If logger Then Log(camEx2.IsInitialized)
If camEx2.IsInitialized Then
If logger Then Log("RELEASE CAMERA")
camEx2.Release
End If
End Sub
Private Sub B_FOTO_Click
DateTime.DateFormat="ddMMyyyyHHmmss"
ime.HideKeyboard
InitializeCamera2
Subs.centraPanel(p_cam, Root.Width)
Subs.panelVisible(p_camara, 0, 0)
p_camara.Width = Root.Width
Subs.centraBoton(b_foto_inci, Root.Width)
fototomada = DateTime.Now & "_cliente.jpg"
Log(fototomada)
End Sub
Sub B4XPage_CloseRequest As ResumableSub
Log("CloseRequest NC")
StopCamera2
q.ocultPanelPregunta
CallSubDelayed(Tracker, "StartFLP")
If q.panelSombra.IsInitialized Then
Log(1)
q.panelSombra.Visible = False
End If
If p_camara.Visible Then
Log(2)
p_camara.Visible = False
Else
Log(3)
If Starter.dondeestoy = "1" Then
StartActivity(MAPA_RUTAS)
Else
Log("AQUI")
B4XPages.ShowPage("Principal")
End If
End If
Return False
End Sub
Private Sub b_ubicacion_Click
ToastMessageShow("Buscando ubicación", False)
b_ubicacion.Text = "Buscando ubicación ..."
CallSubDelayed(Tracker, "StartFLPSmall")
End Sub
Sub JobDone(Job As HttpJob)
Log(Job.Success)
If Job.Success = False Then
ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
'Modificamos la bandera de pendiente en kmt_info
If resultado.Tag.As(String).IndexOf("guardaClienteNuevo_") > -1 Then
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+1)
' Log($"Cliente: ${cliente}"$)
B4XPages.MainPage.skmt.ExecNonQuery($"update kmt_info set CAT_CL_ENVIO_PENDIENTE = 0 where CAT_CL_CODIGO = '${cliente}'"$)
Log($"Cliente: ${cliente} - PENDIENTE A CERO"$)
B4XPages.MainPage.skmt.ExecNonQuery($"update HIST_FOTO_CLIENTE set ENVIO_PENDIENTE = 0 where CODIGO = '${cliente}'"$)
Subs.logJobDoneResultados(resultado)
End If
'Modificamos la bandera de pendiente en fotos
If resultado.Tag.As(String).IndexOf("insertFotoCN_") > -1 Then
Subs.logJobDoneResultados(resultado)
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+1)
Log($"Cliente: ${cliente} - PENDIENTE A CERO"$)
B4XPages.MainPage.skmt.ExecNonQuery($"update HIST_FOTO_CLIENTE set ENVIO_PENDIENTE = 0 where CODIGO = '${cliente}'"$)
End If
End If
Job.Release
End If
End Sub
Sub mandaPendientesNuevosClientes
'Enviamos Pendientes
DateTime.DateFormat = "dd/MM/yyyy HH:mm:ss"
reqManager.Initialize(Me, Starter.server)
Private sDateP As String = DateTime.Date(DateTime.Now)
' c = B4XPages.MainPage.skmt.ExecQuery("SELECT * from kmt_info where CAT_CL_CODIGO like 'NC%' and CAT_CL_ENVIO_PENDIENTE = '1'")
c = B4XPages.MainPage.skmt.ExecQuery("Select kmt_info.*, nom_foto from kmt_info left join HIST_FOTO_CLIENTE on cat_cl_codigo = codigo where CAT_CL_CODIGO like 'NC%' and CAT_CL_ENVIO_PENDIENTE = '1'")
If mandarTodo Then c = B4XPages.MainPage.skmt.ExecQuery("Select kmt_info.*, nom_foto from kmt_info left join HIST_FOTO_CLIENTE on cat_cl_codigo = codigo where CAT_CL_CODIGO like 'NC%'")
Log($"Cliente Nuevo PENDIENTE: ${c.RowCount}"$)
Dim fotox() As Byte
Dim cmd As DBCommand
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Dir = "/promotoriakmts"
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
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
cuest.Position = cu
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")}"$)
fotox = Null
' Log($"${Dirp}${Dir}${Dir2},${c.GetString("NOM_FOTO")}"$)
If c.GetString("NOM_FOTO")<> Null And c.GetString("NOM_FOTO")<> "null" And 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 = "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, c.GetString("CAT_CL_TELEFONO"), c.GetString("CAT_CL_EMAIL"), cuestionarioTexto, c.GetString("CAT_CL_ATIENDE1"))
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}"$)
LogColor(c.GetString("CAT_CL_CODIGO"),Colors.DarkGray)
reqManager.ExecuteCommand(cmd , $"guardaClienteNuevo_${c.GetString("CAT_CL_CODIGO")}"$)
cmd.Initialize
cmd.Name = "guardaClientesNuevosMods_MARDS"
cmd.Parameters = Array As Object(Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeAlmacen, c.GetString("CAT_CL_RUTA"), Subs.traeCliente, c.GetString("CAMPOS_MODIFICADOS"))
Log($"${Subs.traeUsuarioDeBD}, ${Subs.traeAlmacen}, ${Subs.traeAlmacen}, ${c.GetString("CAT_CL_RUTA")}, ${Subs.traeCliente}, ${c.GetString("CAMPOS_MODIFICADOS")}"$)
reqManager.ExecuteCommand(cmd , $"guardaClientesNuevosMods_${c.GetString("CAT_CL_CODIGO")}"$)
' End If
Next
End If
End Sub
Private Sub cb_giro_SelectedIndexChanged (Index As Int)
elGiro = cb_giro.SelectedItem
camposModificados.Add("CAT_CL_GIRO")
End Sub
Private Sub et_nombre_TextChanged (Old As String, New As String)
camposModificados.Add("CAT_CL_NOMBRE")
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