mirror of
https://github.com/KeymonSoft/Gabinete-Roit.git
synced 2026-04-17 19:37:10 +00:00
1708 lines
58 KiB
QBasic
1708 lines
58 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=11.8
|
|
@EndOfDesignText@
|
|
Sub Class_Globals
|
|
Private Root As B4XView 'ignore
|
|
Private xui As XUI 'ignore
|
|
Private b_checkin As Button
|
|
Private b_checout As Button
|
|
Dim c As Cursor
|
|
Dim cmd As DBCommand
|
|
Dim reqManager As DBRequestManager
|
|
Dim sDate, sTime As String
|
|
Dim g As GPS
|
|
Private B4XImageView1 As B4XImageView
|
|
Private qr As QRGenerator
|
|
Private p_qr As Panel
|
|
Private b_cerrarqr As Button
|
|
Private p_scroll As Panel
|
|
Private ScrollView1 As ScrollView
|
|
Private b_gestion As Button
|
|
|
|
Private camEx2 As CameraExClass2
|
|
Dim frontCamera As Boolean = False
|
|
Private p_cam As Panel
|
|
Dim nombrefoto As String = "0"
|
|
Dim nombrefoto1 As String = "0"
|
|
Private p_camara As Panel
|
|
Private teclado As IME
|
|
Dim fototomada As String
|
|
Dim x As Int = 0
|
|
Private p_general As Panel
|
|
Private p_gestion As Panel
|
|
Dim y As Int = 0
|
|
Private iv_gestion As ImageView
|
|
Private iv_ine As ImageView
|
|
Private cb_estatus As B4XComboBox
|
|
Dim itemselect As String
|
|
Private b_finalizar As Button
|
|
Private b_cancelar As Button
|
|
Private et_nombre As EditText
|
|
Private et_telefono As EditText
|
|
Private et_correo As EditText
|
|
Private et_curp As EditText
|
|
Private Panel1 As Panel
|
|
Private p_inci As Panel
|
|
Private p_inci2 As Panel
|
|
Private et_observaciones As EditText
|
|
Private et_comentarios As EditText
|
|
Private bu As BatteryUtilities
|
|
Dim batterystatus(11) As Int
|
|
Dim bateria As Int
|
|
Dim m_lat, m_lon As String
|
|
Private Label1 As Label
|
|
Dim distance As Long
|
|
Private b_cancelafoto As Button
|
|
Private b_comidain As Button
|
|
Private b_comidaout As Button
|
|
Dim mensaje As String
|
|
Dim donde As String
|
|
Dim donde1 As String
|
|
Dim donde2 As String
|
|
Dim donde3 As String
|
|
Private p_validacion As Panel
|
|
Private b_aceptar As Button
|
|
Private et_codigo As EditText
|
|
Private b_cancelarcodigo As Button
|
|
Private l_codigo As Label
|
|
Private b_gestionadas As Button
|
|
Private p_trabajadas As Panel
|
|
Private l_trabajdas As Label
|
|
Private cb_rechazadas As CheckBox
|
|
Private cb_aprobadas As CheckBox
|
|
Private clv_gestionadas As CustomListView
|
|
Private l_nombre As Label
|
|
Private l_estatus As Label
|
|
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
|
|
Root.LoadLayout("Principal")
|
|
reqManager.Initialize(Me, Starter.DBReqServer)
|
|
g.Initialize("GPS")
|
|
qr.Initialize(B4XImageView1.mBase.Width)
|
|
Panel1.Width = Root.Width
|
|
Panel1.Height = Root.Height
|
|
p_camara.Width = Root.Width
|
|
p_camara.Height = Root.Height
|
|
p_validacion.Width = Root.Width
|
|
p_validacion.Height = Root.Height
|
|
ScrollView1.height = Root.Height - p_general.Height
|
|
p_scroll.height = Root.Height - p_general.Height
|
|
p_trabajadas.height = Root.Height - p_general.Height
|
|
End Sub
|
|
|
|
Private Sub B4XPage_Appear
|
|
CheckAndRequestNotificationPermission
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If g.GPSEnabled=False Then
|
|
Dim Resultado As Int= -3
|
|
Do While Resultado=-3
|
|
Resultado = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case Resultado
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
' Log("ENTRE")
|
|
StartService(Tracker)
|
|
|
|
m_lat = "0"
|
|
m_lon = "0"
|
|
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
|
|
|
|
End If
|
|
m_lat = B4XPages.MainPage.login.lat_suc
|
|
m_lon = B4XPages.MainPage.login.long_suc
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
Log(sDate&" "&B4XPages.MainPage.login.user)
|
|
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM CHECADO WHERE FECHA LIKE ? AND USUARIO = ?",Array As String(sDate, B4XPages.MainPage.login.user))
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
If c.GetString("ESTATUS") = "ENTRADA" Then
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = True
|
|
b_comidaout.Visible = False
|
|
Else If c.GetString("ESTATUS") = "SALIDA A COMER" Then
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = True
|
|
Else If c.GetString("ESTATUS") = "REGRESO DE COMER" Then
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = False
|
|
Else If c.GetString("ESTATUS") = "SALIDA" Then
|
|
b_checkin.visible = True
|
|
b_checout.visible = False
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = False
|
|
End If
|
|
Else If c.RowCount = 0 Then
|
|
b_checkin.visible = True
|
|
b_checout.visible = False
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = False
|
|
End If
|
|
|
|
'' CallSubDelayed(Tracker, "StartFLPSmall")
|
|
If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
|
|
Starter.latitud = Tracker.FLP.GetLastKnownLocation.Latitude
|
|
Starter.longitud = Tracker.FLP.GetLastKnownLocation.Longitude
|
|
' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
|
|
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
|
|
' Log("hice esto")
|
|
End If
|
|
|
|
bu.Initialize
|
|
batterystatus = bu.BatteryInformation
|
|
bateria = batterystatus(0)
|
|
ajustaTamano2
|
|
|
|
Wait For (CheckAndRequestNotificationPermission) Complete (HasPermission As Boolean)
|
|
If HasPermission Then
|
|
Log("Con permisos de notificación")
|
|
Else
|
|
ToastMessageShow("No permission to show notification", True)
|
|
End If
|
|
End If
|
|
|
|
If b_checkin.Visible Then
|
|
b_gestion.Visible = False
|
|
b_gestionadas.Visible = False
|
|
Else
|
|
b_gestion.Visible = True
|
|
b_gestionadas.Visible = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
'Make sure that targetSdkVersion >= 33
|
|
Private Sub CheckAndRequestNotificationPermission As ResumableSub
|
|
Dim p As Phone
|
|
If p.SdkVersion < 33 Then Return True
|
|
Dim ctxt As JavaObject
|
|
ctxt.InitializeContext
|
|
Dim targetSdkVersion As Int = ctxt.RunMethodJO("getApplicationInfo", Null).GetField("targetSdkVersion")
|
|
If targetSdkVersion < 33 Then Return True
|
|
Dim NotificationsManager As JavaObject = ctxt.RunMethod("getSystemService", Array("notification"))
|
|
Dim NotificationsEnabled As Boolean = NotificationsManager.RunMethod("areNotificationsEnabled", Null)
|
|
If NotificationsEnabled Then Return True
|
|
Dim rp As RuntimePermissions
|
|
rp.CheckAndRequest(rp.PERMISSION_POST_NOTIFICATIONS)
|
|
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.
|
|
Return Result
|
|
End Sub
|
|
|
|
Sub GPS_LocationChanged (Location1 As Location)
|
|
' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
|
|
If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
|
|
Starter.latitud = Tracker.FLP.GetLastKnownLocation.Latitude
|
|
Starter.longitud= Tracker.FLP.GetLastKnownLocation.Longitude
|
|
' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
|
|
End If
|
|
|
|
If m_lat = Null Or m_lat = "" Then m_lat = 0
|
|
If m_lon = Null Or m_lon = "" Then m_lon = 0
|
|
|
|
Dim l1, l2 As Location
|
|
l1.Initialize2(Starter.latitud, Starter.longitud)
|
|
' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$)
|
|
l2.Initialize2(m_lat, m_lon)
|
|
|
|
' If Label1.IsInitialized Then
|
|
' Label1.Text = Starter.latitud & ", "& Starter.longitud
|
|
' End If
|
|
'now we need the distance between our location and the target location
|
|
|
|
distance = l1.DistanceTo(l2) 'the result is in meter
|
|
' Log(distance)
|
|
If distance < 200 Then
|
|
' If b_gestion.IsInitialized Then
|
|
' b_gestion.Enabled = True
|
|
' End If
|
|
Else If distance > 201 Then
|
|
' If b_gestion.IsInitialized Then
|
|
' b_gestion.Enabled = False
|
|
' End If
|
|
End If
|
|
|
|
' If Location1.IsInitialized And Location1.Accuracy > 200 Then
|
|
'
|
|
' End If
|
|
|
|
CallSubDelayed(Tracker, "CreateLocationRequest")
|
|
End Sub
|
|
|
|
Private Sub b_checout_Click
|
|
If b_comidaout.Visible = False Then
|
|
If p_scroll.Visible = False Then
|
|
If horasalida Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
Log("validar")
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM HIST_CHECADO WHERE FECHA LIKE ? AND USUARIO = ?",Array As String(sDate, B4XPages.MainPage.login.user))
|
|
Log(c.RowCount)
|
|
If c.RowCount < 6 Then
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
botonout
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes hacer mas registros","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
Else If donde1 = "1" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el CHECK-OUT."
|
|
|
|
End If
|
|
Else If donde1 = "2" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el CHECK-OUT."
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
MsgboxAsync("Necesitas acabar la gestion actual.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Necesitas hacer la entrada de comida.","Atención")
|
|
End If
|
|
End Sub
|
|
|
|
Sub botonout
|
|
g.Start(0,0)
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
|
|
C = Starter.skmt.ExecQuery("SELECT * FROM CHECADO")
|
|
If c.RowCount = 0 Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "ENTRADA", sDate &" " &sTime))
|
|
Else
|
|
c.Position = 0
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(c.GetString("USUARIO"),c.GetString("ID_EMP"),c.GetString("PERFIL"),c.GetString("PROYECTO"),c.GetString("SUCURSAL"),c.GetString("ESTATUS"),c.GetString("FECHA")))
|
|
End If
|
|
Starter.skmt.ExecNonQuery("delete from CHECADO")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "SALIDA", sDate &" " &sTime))
|
|
|
|
b_checkin.visible = True
|
|
b_checout.visible = False
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = False
|
|
MsgboxAsync("Check-out enviado con exito","Atención")
|
|
Mandaout
|
|
End Sub
|
|
|
|
Sub Mandaout
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_check_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.ID_EMP, Starter.almacen, sDate &" " &sTime,"MOVIL", "SALIDA", B4XPages.MainPage.login.user, B4XPages.MainPage.login.sucursal, Starter.latitud, Starter.longitud)
|
|
reqManager.ExecuteCommand(cmd , "check")
|
|
B4XPage_Appear
|
|
End Sub
|
|
|
|
Sub horasalida As Boolean
|
|
|
|
Dim p As Period
|
|
p.Hours = 0
|
|
p.Minutes = 0
|
|
Dim newDate As Long = DateUtils.AddPeriod(DateTime.Now, p)
|
|
Log(newDate)
|
|
Log(DateUtils.TicksToString(newDate))
|
|
|
|
Dim p2 As Period
|
|
p2.Hours = 1
|
|
p2.Minutes = 0
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha2 As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba2() As String = Regex.Split(" ",fecha2)
|
|
LogColor(prueba2(0),Colors.red)
|
|
Dim prueba3 As String = prueba2(0) &" "&B4XPages.MainPage.login.horaout&":00"
|
|
LogColor(prueba3,Colors.Red)
|
|
Dim ticks2 As Long = DateTime.DateParse(prueba3)
|
|
LogColor(ticks2,Colors.red)
|
|
LogColor(DateTime.Date(ticks2),Colors.red)
|
|
Dim timeToCheck2 As Long = DateUtils.AddPeriod(ticks2, p2)
|
|
LogColor(DateUtils.TicksToString(timeToCheck2),Colors.red)
|
|
|
|
DateTime.TimeFormat = "hhmm"
|
|
Dim p3 As Period
|
|
p3.Hours = 0
|
|
p3.Minutes = 0
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba1() As String = Regex.Split(" ",fecha)
|
|
Log(prueba1(0))
|
|
Dim prueba As String = prueba1(0) &" "&B4XPages.MainPage.login.horaout&":00"
|
|
LogColor(prueba,Colors.Red)
|
|
Dim ticks As Long = DateTime.DateParse(prueba)
|
|
Log(ticks)
|
|
Dim timeToCheck As Long = DateUtils.AddPeriod(ticks, p3)
|
|
Log(DateUtils.TicksToString(timeToCheck))
|
|
|
|
If newDate >= timeToCheck And newDate <= timeToCheck2 Then
|
|
donde1 = "0"
|
|
Log("0")
|
|
Return True
|
|
Else If newDate > timeToCheck2 Then
|
|
donde1 = "1"
|
|
Log("1")
|
|
mensaje = "La hora maxima para hacer el check-out ha terminado, ingresa el codigo"
|
|
Return False
|
|
Else If newDate < timeToCheck Then
|
|
donde1 = "2"
|
|
Log("2")
|
|
mensaje = "Aun no es tu horario de salida, ingresa el codigo"
|
|
Return False
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub b_checkin_Click
|
|
|
|
If horaentrada Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM HIST_CHECADO WHERE FECHA LIKE ? AND USUARIO = ?",Array As String(sDate, B4XPages.MainPage.login.user))
|
|
Log(c.RowCount)
|
|
If c.RowCount < 6 Then
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
botoncheck
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes hacer mas registros","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
Else If donde2 = "1" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el CHECK-IN."
|
|
|
|
End If
|
|
Else If donde2 = "2" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el CHECK-IN."
|
|
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Sub botoncheck
|
|
g.Start(0,0)
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
|
|
C = Starter.skmt.ExecQuery("SELECT * FROM CHECADO")
|
|
If c.RowCount = 0 Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "ENTRADA", sDate &" " &sTime))
|
|
Else
|
|
c.Position = 0
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(c.GetString("USUARIO"),c.GetString("ID_EMP"),c.GetString("PERFIL"),c.GetString("PROYECTO"),c.GetString("SUCURSAL"),c.GetString("ESTATUS"),c.GetString("FECHA")))
|
|
End If
|
|
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = True
|
|
b_comidaout.Visible = False
|
|
Starter.skmt.ExecNonQuery("delete from CHECADO")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "ENTRADA", sDate &" " &sTime))
|
|
Mandacheck
|
|
MsgboxAsync("Check-in enviado con exito","Atención")
|
|
End Sub
|
|
|
|
Sub Mandacheck
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_check_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.ID_EMP, Starter.almacen, sDate &" " &sTime,"MOVIL", "ENTRADA", B4XPages.MainPage.login.user, B4XPages.MainPage.login.sucursal, Starter.latitud, Starter.longitud)
|
|
reqManager.ExecuteCommand(cmd , "check")
|
|
B4XPage_Appear
|
|
End Sub
|
|
|
|
Sub horaentrada As Boolean
|
|
|
|
Dim p As Period
|
|
p.Hours = 0
|
|
p.Minutes = 0
|
|
Dim newDate As Long = DateUtils.AddPeriod(DateTime.Now, p)
|
|
Log(newDate)
|
|
Log(DateUtils.TicksToString(newDate))
|
|
|
|
Dim p2 As Period
|
|
p2.Hours = 0
|
|
p2.Minutes = 20
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha2 As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba2() As String = Regex.Split(" ",fecha2)
|
|
LogColor(prueba2(0),Colors.red)
|
|
Dim prueba3 As String = prueba2(0) &" "&B4XPages.MainPage.login.horain&":00"
|
|
LogColor(prueba3,Colors.Red)
|
|
Dim ticks2 As Long = DateTime.DateParse(prueba3)
|
|
LogColor(ticks2,Colors.red)
|
|
LogColor(DateTime.Date(ticks2),Colors.red)
|
|
Dim timeToCheck2 As Long = DateUtils.AddPeriod(ticks2, p2)
|
|
LogColor(DateUtils.TicksToString(timeToCheck2),Colors.red)
|
|
|
|
DateTime.TimeFormat = "hhmm"
|
|
Dim p3 As Period
|
|
p3.Hours = 0
|
|
p3.Minutes = -30
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba1() As String = Regex.Split(" ",fecha)
|
|
Log(prueba1(0))
|
|
Dim prueba As String = prueba1(0) &" "&B4XPages.MainPage.login.horain&":00"
|
|
LogColor(prueba,Colors.Red)
|
|
Dim ticks As Long = DateTime.DateParse(prueba)
|
|
Log(ticks)
|
|
Dim timeToCheck As Long = DateUtils.AddPeriod(ticks, p3)
|
|
Log(DateUtils.TicksToString(timeToCheck))
|
|
|
|
If newDate >= timeToCheck And newDate < timeToCheck2 Then
|
|
donde2 = "0"
|
|
Return True
|
|
Else If newDate > timeToCheck2 Then
|
|
donde2 = "1"
|
|
mensaje = "La tolerancia del check-in paso, por favor, ingresa el codigo"
|
|
Return False
|
|
Else If newDate < timeToCheck Then
|
|
donde2 = "1"
|
|
mensaje = "Aun no es tu horario de entrada, ingresa el codigo"
|
|
Return False
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub ImageView2_Click
|
|
If b_comidaout.Visible = False Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM CHECADO WHERE USUARIO = ? AND FECHA LIKE ?",Array As String( B4XPages.MainPage.login.user, sDate))
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Log(c.GetString("ESTATUS"))
|
|
If c.GetString("ESTATUS") = "ENTRADA" Or c.GetString("ESTATUS") = "SALIDA A COMER" Or c.GetString("ESTATUS") = "REGRESO DE COMER" Then
|
|
|
|
If p_gestion.IsInitialized And p_gestion.Visible = True Then
|
|
p_gestion.Visible = False
|
|
p_qr.Visible = True
|
|
p_qr.BringToFront
|
|
Else
|
|
p_qr.Visible = True
|
|
End If
|
|
|
|
If p_trabajadas.IsInitialized And p_trabajadas.Visible = True Then
|
|
Log("PANEL TRABAJADAS INVISIBLE")
|
|
p_trabajadas.Visible = False
|
|
p_qr.Visible = True
|
|
p_qr.BringToFront
|
|
Else
|
|
p_qr.Visible = True
|
|
End If
|
|
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
Dim SenderFilter As Object = Starter.skmt.ExecQueryAsync("SQL", "SELECT ID_EMP, USUARIO, PROYECTO, SUCURSAL FROM CHECADO", Null)
|
|
Wait For (SenderFilter) SQL_QueryComplete (Success As Boolean, rs As ResultSet)
|
|
Dim texto As String=""
|
|
If Success Then
|
|
Do While rs.NextRow
|
|
texto="QR"&";"&rs.GetString("ID_EMP")&";"&B4XPages.MainPage.login.nombre&";"&rs.GetString("USUARIO")&";"&rs.GetString("PROYECTO")&";"&rs.GetString("SUCURSAL")&";"& (sDate &" "& sTime)&";"&(Starter.latitud &", "&Starter.longitud&";"&B4XPages.MainPage.login.formato_suc&";"&B4XPages.MainPage.login.nom_proyec&";"&B4XPages.MainPage.login.lat_suc&";"&B4XPages.MainPage.login.long_suc)
|
|
Loop
|
|
rs.Close
|
|
Else
|
|
Log(LastException)
|
|
End If
|
|
Log("Crear QR")
|
|
CrearQR(texto)
|
|
Else
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes generar el QR durate la hora de comida","Atención")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub CrearQR(texto As String)
|
|
B4XImageView1.Clear
|
|
If texto.Length>0 Then
|
|
B4XImageView1.SetBitmap(qr.Create(texto))
|
|
Log("QR Creado ->"&texto)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub b_cerrarqr_Click
|
|
B4XImageView1.Clear
|
|
If y = 1 Then
|
|
p_qr.Visible = False
|
|
p_gestion.Visible = True
|
|
p_gestion.BringToFront
|
|
Else
|
|
p_qr.Visible = False
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub b_gestion_Click
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
Log(sDate&" "&B4XPages.MainPage.login.user)
|
|
If b_comidaout.Visible = False Then
|
|
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM CHECADO WHERE USUARIO = ? AND FECHA LIKE ?",Array As String( B4XPages.MainPage.login.user, sDate))
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Log(c.GetString("ESTATUS"))
|
|
If c.GetString("ESTATUS") = "ENTRADA" Or c.GetString("ESTATUS") = "SALIDA A COMER" Or c.GetString("ESTATUS") = "REGRESO DE COMER" Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
MsgboxAsync("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
p_trabajadas.Visible= False
|
|
p_scroll.Visible = True
|
|
ScrollView1.Visible = True
|
|
|
|
ScrollView1.Panel.LoadLayout("gestion")
|
|
ScrollView1.Panel.Height = p_gestion.Height
|
|
|
|
p_scroll.BringToFront
|
|
y = 1
|
|
x = 1
|
|
InitializeCamera2
|
|
p_camara.Visible = True
|
|
b_gestion.Enabled = False
|
|
p_gestion.Visible = True
|
|
|
|
nombrefoto = "0"
|
|
nombrefoto1 = "0"
|
|
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
itemselect = ""
|
|
|
|
Dim Items As List
|
|
Items.Initialize
|
|
Items.Clear
|
|
Items.Add("SELECCIONA UNA OPCION ")
|
|
Items.Add("APROBADO")
|
|
Items.Add("RECHAZADO")
|
|
Items.Add("INTERMITENCIA")
|
|
Items.Add("NO CONCLUIDO")
|
|
cb_estatus.SetItems(Items)
|
|
itemselect = "SELECCIONA UNA OPCION"
|
|
p_inci.Visible = False
|
|
ajustaTamano
|
|
End If
|
|
End If
|
|
Else
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes hacer gestiones durate la hora de comida","Atención")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
'tomar foto
|
|
|
|
Private Sub InitializeCamera2
|
|
Starter.rp.CheckAndRequest(Starter.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
|
|
Log("inicializamos Camara")
|
|
Else
|
|
ToastMessageShow("No permission!!!", True)
|
|
End If
|
|
End Sub
|
|
|
|
Sub Camera1_Ready (Success As Boolean)
|
|
Log("Camara ready")
|
|
If Success Then
|
|
camEx2.SetJpegQuality(90)
|
|
camEx2.SetContinuousAutoFocus
|
|
camEx2.CommitParameters
|
|
camEx2.StartPreview
|
|
Log(camEx2.GetPreviewSize)
|
|
Else
|
|
ToastMessageShow("Cannot open camera.", True)
|
|
Log("Cannot open camera")
|
|
End If
|
|
End Sub
|
|
|
|
Sub Camera1_PictureTaken (Data()As Byte)
|
|
If x = 1 Then
|
|
DateTime.DateFormat="ddMMyyyyHHmmss"
|
|
nombrefoto = DateTime.Now & "_FOTO1.jpg"
|
|
teclado.HideKeyboard
|
|
fototomada = nombrefoto
|
|
Else If x = 2 Then
|
|
DateTime.DateFormat="ddMMyyyyHHmmss"
|
|
nombrefoto1 = DateTime.Now & "_FOTO2.jpg"
|
|
teclado.HideKeyboard
|
|
fototomada = nombrefoto1
|
|
End If
|
|
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,"/GABINETE")
|
|
Dir = "/GABINETE"
|
|
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
|
|
|
|
camEx2.SavePictureToFile(Data, Dirp&Dir, filename)
|
|
camEx2.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(nombrefoto)
|
|
Log(nombrefoto1)
|
|
|
|
If nombrefoto <> "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
|
|
iv_ine.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto)
|
|
End If
|
|
|
|
If nombrefoto1 <> "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, False)
|
|
img.WriteToStream(out, 100, "PNG")
|
|
out.Close
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto1)
|
|
End If
|
|
|
|
StopCamera2
|
|
|
|
End Sub
|
|
|
|
Private Sub p_camara_Click
|
|
|
|
End Sub
|
|
|
|
Private Sub b_foto_Click
|
|
camEx2.TakePicture
|
|
p_camara.Visible = False
|
|
' StopCamera2
|
|
End Sub
|
|
|
|
Private Sub StopCamera2
|
|
' Capturing = False
|
|
If camEx2.IsInitialized Then
|
|
camEx2.Release
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub iv_gestion_Click
|
|
x = 2
|
|
InitializeCamera2
|
|
p_camara.Visible = True
|
|
b_gestion.Enabled = False
|
|
End Sub
|
|
|
|
Private Sub cb_estatus_SelectedIndexChanged (Index As Int)
|
|
itemselect = cb_estatus.SelectedItem
|
|
Log(itemselect)
|
|
If itemselect = "RECHAZADO" Then
|
|
p_inci.Visible = True
|
|
ajustaTamano
|
|
Else If itemselect = "INTERMITENCIA" Or itemselect = "NO CONCLUIDO" Then
|
|
p_inci.Visible = True
|
|
p_inci2.Visible = True
|
|
ajustaTamano
|
|
Else
|
|
p_inci.Visible = False
|
|
p_inci2.Visible = False
|
|
ajustaTamano
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub b_cancelar_Click
|
|
et_nombre.Text = ""
|
|
et_telefono.Text = ""
|
|
et_correo.Text = ""
|
|
et_curp.Text = ""
|
|
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
cb_estatus.SelectedIndex = 0
|
|
p_scroll.Visible = False
|
|
p_gestion.Visible = False
|
|
b_gestion.Enabled = True
|
|
nombrefoto1 = "0"
|
|
nombrefoto = "0"
|
|
itemselect = ""
|
|
et_comentarios.Text = ""
|
|
et_observaciones.Text = ""
|
|
|
|
End Sub
|
|
|
|
Sub ajustaTamano
|
|
If p_inci.visible And p_inci2.Visible Then
|
|
Log("visible 1 y 2")
|
|
p_inci2.Top = p_inci.Top + p_inci.Height
|
|
b_cancelar.Top = p_inci2.Top + p_inci2.Height + 35
|
|
b_finalizar.Top = p_inci2.Top + p_inci2.Height + 35
|
|
Else If p_inci.Visible And p_inci2.visible = False Then
|
|
Log("visible 1")
|
|
b_cancelar.Top = p_inci.Top + p_inci.Height + 35
|
|
b_finalizar.Top = p_inci.Top + p_inci.Height + 35
|
|
Else If p_inci2.Visible And p_inci.Visible = False Then
|
|
Log("visible 2")
|
|
p_inci2.top = iv_ine.Top + iv_ine.Height + 35
|
|
b_cancelar.Top = p_inci2.Top + p_inci2.Height + 35
|
|
b_finalizar.Top = p_inci2.Top + p_inci2.Height + 35
|
|
Else
|
|
Log("Invisible 1 y 2")
|
|
b_cancelar.Top = iv_ine.Top + iv_ine.Height + 45
|
|
b_finalizar.Top = iv_ine.Top + iv_ine.Height + 45
|
|
End If
|
|
p_gestion.Height = b_cancelar.Top + 150
|
|
ScrollView1.Panel.Height = p_gestion.Height
|
|
End Sub
|
|
|
|
Sub ajustaTamano2
|
|
p_general.Height = b_gestion.Top + 200
|
|
p_scroll.Top = p_general.Top + p_general.Height
|
|
p_scroll.Height = Root.Height - p_general.Height
|
|
|
|
p_trabajadas.Top = p_general.Top + p_general.Height
|
|
p_trabajadas.Height = Root.Height - p_general.Height
|
|
|
|
p_qr.Top = p_general.Top + p_general.Height
|
|
|
|
ScrollView1.Height = p_scroll.Height
|
|
' ScrollView1.Top = p_general.Top + p_general.Height
|
|
|
|
End Sub
|
|
|
|
Private Sub b_finalizar_Click
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
Dim Dirp As String = File.DirInternal
|
|
Dim Dir As String
|
|
Dim Dir2 As String
|
|
Try
|
|
File.MakeDir(Dirp,"/GABINETE")
|
|
Dir = "/GABINETE"
|
|
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
|
|
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
|
|
If itemselect = "SELECCIONA UNA OPCION" Then
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
Else If itemselect = "APROBADO" Then
|
|
If et_nombre.Text <> "" Then
|
|
If et_telefono.Text <> "" Then
|
|
If et_correo.Text <> "" Then
|
|
If et_curp.Text <> "" And et_curp.Text.Length = 18 Then
|
|
If nombrefoto <> "0" Then
|
|
If nombrefoto1 <> "0" Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PROMOTORIA(HIST_PM_FECHA, HIST_PR_NOMBRE,HIST_PR_TELEFONO, HIST_PR_CORREO, HIST_PR_CURP, HIST_PR_INE, HIST_PR_ESTATUS, HIST_PR_EVIDENCIA, HIST_PR_IDPROYECTO, HIST_PR_NOMBREPROYECTO, HIST_PR_IDSUCURSAL, HIST_PR_NOMBRESUCURSAL, HIST_PR_USUARIO, HIST_PR_LATITUD, HIST_PR_LONGITUD, HIST_PR_BATERIA,ENVIADO) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",Array As Object((sDate & " " & sTime), et_nombre.Text, et_telefono.Text, et_correo. Text, et_curp.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto),itemselect,File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto1),Starter.almacen,B4XPages.MainPage.login.nom_proyec,B4XPages.MainPage.login.sucursal,B4XPages.MainPage.login.suc_nom,B4XPages.MainPage.login.user, Starter.latitud, Starter.longitud, bateria,0))
|
|
mandaPendientes
|
|
et_nombre.Text = ""
|
|
et_telefono.Text = ""
|
|
et_correo.Text = ""
|
|
et_curp.Text = ""
|
|
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
cb_estatus.SelectedIndex = 0
|
|
p_scroll.Visible = False
|
|
p_gestion.Visible = False
|
|
b_gestion.Enabled = True
|
|
nombrefoto1 = "0"
|
|
nombrefoto = "0"
|
|
itemselect = ""
|
|
|
|
b_gestion.Enabled = True
|
|
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura un CURP valido.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else If itemselect = "RECHAZADO" Then
|
|
If et_nombre.Text <> "" Then
|
|
If et_telefono.Text <> "" Then
|
|
If et_correo.Text <> "" Then
|
|
If et_curp.Text <> "" And et_curp.Text.Length = 18 Then
|
|
If nombrefoto <> "0" Then
|
|
If nombrefoto1 <> "0" Then
|
|
If et_observaciones.Text <> "" Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PROMOTORIA(HIST_PM_FECHA, HIST_PR_NOMBRE,HIST_PR_TELEFONO, HIST_PR_CORREO, HIST_PR_CURP, HIST_PR_INE, HIST_PR_ESTATUS, HIST_PR_EVIDENCIA, HIST_PR_OBSERVACIONES, HIST_PR_IDPROYECTO, HIST_PR_NOMBREPROYECTO, HIST_PR_IDSUCURSAL, HIST_PR_NOMBRESUCURSAL, HIST_PR_USUARIO, HIST_PR_LATITUD, HIST_PR_LONGITUD, HIST_PR_BATERIA,ENVIADO) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",Array As Object((sDate & " " & sTime), et_nombre.Text, et_telefono.Text, et_correo. Text, et_curp.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto),itemselect,File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto1), et_observaciones.Text,Starter.almacen,B4XPages.MainPage.login.nom_proyec,B4XPages.MainPage.login.sucursal,B4XPages.MainPage.login.suc_nom,B4XPages.MainPage.login.user, Starter.latitud, Starter.longitud, bateria,0))
|
|
mandaPendientes
|
|
et_nombre.Text = ""
|
|
et_telefono.Text = ""
|
|
et_correo.Text = ""
|
|
et_curp.Text = ""
|
|
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
cb_estatus.SelectedIndex = 0
|
|
p_scroll.Visible = False
|
|
p_gestion.Visible = False
|
|
b_gestion.Enabled = True
|
|
nombrefoto1 = "0"
|
|
nombrefoto = "0"
|
|
itemselect = ""
|
|
et_observaciones.Text = ""
|
|
|
|
b_gestion.Enabled = True
|
|
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura un CURP valido.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else If itemselect = "INTERMITENCIA" Or itemselect = "NO CONCLUIDO" Then
|
|
If et_nombre.Text <> "" Then
|
|
If et_telefono.Text <> "" Then
|
|
If et_correo.Text <> "" Then
|
|
If et_curp.Text <> "" And et_curp.Text.Length = 18 Then
|
|
If nombrefoto <> "0" Then
|
|
If nombrefoto1 <> "0" Then
|
|
If et_observaciones.Text <> "" Then
|
|
If et_comentarios.Text <> "" Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PROMOTORIA(HIST_PM_FECHA, HIST_PR_NOMBRE,HIST_PR_TELEFONO, HIST_PR_CORREO, HIST_PR_CURP, HIST_PR_INE, HIST_PR_ESTATUS, HIST_PR_EVIDENCIA, HIST_PR_OBSERVACIONES, HIST_PR_COMENTARIOERROR, HIST_PR_IDPROYECTO, HIST_PR_NOMBREPROYECTO, HIST_PR_IDSUCURSAL, HIST_PR_NOMBRESUCURSAL, HIST_PR_USUARIO, HIST_PR_LATITUD, HIST_PR_LONGITUD, HIST_PR_BATERIA, ENVIADO) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",Array As Object((sDate & " " & sTime), et_nombre.Text, et_telefono.Text, et_correo. Text, et_curp.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto),itemselect,File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto1), et_observaciones.Text, et_comentarios.Text, Starter.almacen,B4XPages.MainPage.login.nom_proyec,B4XPages.MainPage.login.sucursal,B4XPages.MainPage.login.suc_nom,B4XPages.MainPage.login.user, Starter.latitud, Starter.longitud, bateria,0))
|
|
mandaPendientes
|
|
et_nombre.Text = ""
|
|
et_telefono.Text = ""
|
|
et_correo.Text = ""
|
|
et_curp.Text = ""
|
|
iv_ine.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
iv_gestion.Bitmap = LoadBitmap(File.DirAssets,"camara.png")
|
|
cb_estatus.SelectedIndex = 0
|
|
p_scroll.Visible = False
|
|
p_gestion.Visible = False
|
|
b_gestion.Enabled = True
|
|
nombrefoto1 = "0"
|
|
nombrefoto = "0"
|
|
itemselect = ""
|
|
et_comentarios.Text = ""
|
|
et_observaciones.Text = ""
|
|
|
|
b_gestion.Enabled = True
|
|
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura las fotos.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Captura un CURP valido.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
Else
|
|
MsgboxAsync("Completa todo el formulario.","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub mandaPendientes
|
|
Log("MandaPendientes")
|
|
'PEDIDO (Pendientes)
|
|
c=Starter.skmt.ExecQuery("SELECT HIST_PM_FECHA, HIST_PR_NOMBRE,HIST_PR_TELEFONO, HIST_PR_CORREO, HIST_PR_CURP, HIST_PR_INE, HIST_PR_ESTATUS, HIST_PR_EVIDENCIA, HIST_PR_OBSERVACIONES, HIST_PR_COMENTARIOERROR, HIST_PR_IDPROYECTO, HIST_PR_NOMBREPROYECTO, HIST_PR_IDSUCURSAL, HIST_PR_NOMBRESUCURSAL, HIST_PR_USUARIO, HIST_PR_LATITUD, HIST_PR_LONGITUD, HIST_PR_BATERIA FROM HIST_PROMOTORIA WHERE ENVIADO <> 1")
|
|
Log($"GESTIONES PENDIENTES: ${c.RowCount}"$)
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount -1
|
|
c.Position=i
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_GESTION_GABICO"
|
|
cmd.Parameters = Array As Object(c.GetString("HIST_PM_FECHA"), c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_TELEFONO"), c.GetString("HIST_PR_CORREO"), c.GetString("HIST_PR_CURP"), c.GetBlob("HIST_PR_INE"), c.GetString("HIST_PR_ESTATUS"),c.GetBlob("HIST_PR_EVIDENCIA"), c.GetString("HIST_PR_OBSERVACIONES"), c.GetString("HIST_PR_COMENTARIOERROR"), c.GetString("HIST_PR_IDPROYECTO"), c.GetString("HIST_PR_NOMBREPROYECTO"), c.GetString("HIST_PR_IDSUCURSAL"), c.GetString("HIST_PR_NOMBRESUCURSAL"), c.GetString("HIST_PR_USUARIO"), c.GetString("HIST_PR_LATITUD"), c.GetString("HIST_PR_LONGITUD"), c.GetString("HIST_PR_BATERIA"))
|
|
reqManager.ExecuteCommand(cmd , $"ins_gestionPendientes_head_${c.GetString("HIST_PR_NOMBRE")}"$)
|
|
Next
|
|
End If
|
|
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)
|
|
If resultado.Tag.As(String).IndexOf("ins_gestionPendientes_head_") > -1 Then
|
|
Private cliente As String= resultado.Tag
|
|
cliente = cliente.SubString(cliente.IndexOf("_")+24)
|
|
Log($"Cliente1:${cliente}"$)
|
|
For Each records() As Object In resultado.Rows
|
|
For Each k As String In resultado.Columns.Keys
|
|
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
|
|
Next
|
|
Next
|
|
Starter.skmt.ExecNonQuery($"UPDATE HIST_PROMOTORIA set ENVIADO = 1 where HIST_PR_NOMBRE = '${cliente}'"$)
|
|
End If
|
|
|
|
|
|
If resultado.Tag = "CODIGO" Then 'query tag
|
|
For Each records() As Object In resultado.Rows
|
|
'
|
|
Dim codigo As String = records(resultado.Columns.Get("TMP_CD_CODIGO"))
|
|
If codigo = et_codigo.Text Then
|
|
Log("SI ENVIE CODIGO")
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "delete_codigo_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.user, et_codigo.Text)
|
|
reqManager.ExecuteCommand(cmd, "delete")
|
|
|
|
If l_codigo.Text = "Ingresa el codigo para el CHECK-OUT." Then
|
|
botonout
|
|
Else If l_codigo.Text = "Ingresa el codigo para el CHECK-IN." Then
|
|
botoncheck
|
|
Else If l_codigo.Text = "Ingresa el codigo para el REGRESO DE COMER." Then
|
|
botoncomidaentrada
|
|
Else If l_codigo.Text = "Ingresa el codigo para la SALIDA A COMER." Then
|
|
botoncomidasalida
|
|
End If
|
|
|
|
|
|
b_cancelarcodigo_Click
|
|
Else
|
|
ToastMessageShow ("Codigo incorrecto",True)
|
|
End If
|
|
Next
|
|
If resultado.Rows.Size = 0 Then
|
|
ToastMessageShow ("Codigo incorrecto",True)
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub p_scroll_Click
|
|
MsgboxAsync("asdsadas","atencion")
|
|
End Sub
|
|
|
|
Private Sub et_comentarios_TextChanged (Old As String, New As String)
|
|
If New.Length > 400 Then
|
|
et_comentarios.Text = Old
|
|
End If
|
|
ajustaTamano2
|
|
End Sub
|
|
|
|
Private Sub et_observaciones_TextChanged (Old As String, New As String)
|
|
If New.Length > 200 Then
|
|
et_observaciones.Text = Old
|
|
End If
|
|
ajustaTamano2
|
|
End Sub
|
|
|
|
Private Sub et_curp_TextChanged (Old As String, New As String)
|
|
If New.Length > 20 Then
|
|
et_curp.Text = Old
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub et_correo_TextChanged (Old As String, New As String)
|
|
If New.Length > 150 Then
|
|
et_correo.Text = Old
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub et_telefono_TextChanged (Old As String, New As String)
|
|
If New.Length > 25 Then
|
|
et_telefono.Text = Old
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub et_nombre_TextChanged (Old As String, New As String)
|
|
If New.Length > 250 Then
|
|
et_nombre.Text = Old
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub b_cancelafoto_Click
|
|
p_camara.Visible = False
|
|
StopCamera2
|
|
End Sub
|
|
|
|
Private Sub iv_ine_Click
|
|
x = 1
|
|
InitializeCamera2
|
|
p_camara.Visible = True
|
|
b_gestion.Enabled = False
|
|
End Sub
|
|
|
|
Private Sub b_comidaout_Click
|
|
If horaentradacomer Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
Log("validar")
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM HIST_CHECADO WHERE FECHA LIKE ? AND USUARIO = ?",Array As String(sDate, B4XPages.MainPage.login.user))
|
|
Log(c.RowCount)
|
|
If c.RowCount < 6 Then
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
botoncomidaentrada
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes hacer mas registros","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
Else If donde3 = "1" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el REGRESO DE COMER."
|
|
|
|
End If
|
|
Else If donde3 = "2" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para el REGRESO DE COMER."
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub botoncomidaentrada
|
|
g.Start(0,0)
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
|
|
C = Starter.skmt.ExecQuery("SELECT * FROM CHECADO")
|
|
If c.RowCount = 0 Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "REGRESO DE COMER", sDate &" " &sTime))
|
|
Else
|
|
c.Position = 0
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(c.GetString("USUARIO"),c.GetString("ID_EMP"),c.GetString("PERFIL"),c.GetString("PROYECTO"),c.GetString("SUCURSAL"),c.GetString("ESTATUS"),c.GetString("FECHA")))
|
|
End If
|
|
Starter.skmt.ExecNonQuery("delete from CHECADO")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "REGRESO DE COMER", sDate &" " &sTime))
|
|
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = False
|
|
MsgboxAsync("Regreso de comer enviado con exito","Atención")
|
|
Mandacomidaout
|
|
End Sub
|
|
|
|
Sub Mandacomidaout
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_check_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.ID_EMP, Starter.almacen, sDate &" " &sTime,"MOVIL", "REGRESO DE COMER", B4XPages.MainPage.login.user, B4XPages.MainPage.login.sucursal, Starter.latitud, Starter.longitud)
|
|
reqManager.ExecuteCommand(cmd , "check")
|
|
B4XPage_Appear
|
|
End Sub
|
|
|
|
Sub horaentradacomer As Boolean
|
|
|
|
C = Starter.skmt.ExecQuery("SELECT * FROM CHECADO")
|
|
If c.RowCount > 0 Then
|
|
|
|
c.Position = 0
|
|
|
|
DateTime.DateFormat = "dd/MM/yyyy HH:mm"
|
|
Dim p As Period
|
|
p.Hours = 0
|
|
p.Minutes = 0
|
|
Dim newDate As Long = DateUtils.AddPeriod(DateTime.Now, p)
|
|
Log(newDate)
|
|
Log(DateUtils.TicksToString(newDate))
|
|
|
|
Dim p2 As Period
|
|
p2.Hours = 1
|
|
p2.Minutes = 0
|
|
DateTime.DateFormat = "dd/MM/yyyy HH:mm"
|
|
Dim prueba3 As String = c.GetString("FECHA")
|
|
LogColor(prueba3.SubString2(0,16),Colors.Red)
|
|
Dim ticks2 As Long = DateTime.DateParse(prueba3.SubString2(0,16))
|
|
LogColor(ticks2,Colors.red)
|
|
LogColor(DateTime.Date(ticks2),Colors.red)
|
|
Dim timeToCheck2 As Long = DateUtils.AddPeriod(ticks2, p2)
|
|
LogColor(DateUtils.TicksToString(timeToCheck2),Colors.red)
|
|
|
|
Dim p2 As Period
|
|
p2.Hours = 1
|
|
p2.Minutes = 10
|
|
DateTime.DateFormat = "dd/MM/yyyy HH:mm"
|
|
Dim prueba As String = c.GetString("FECHA")
|
|
LogColor(prueba.SubString2(0,16),Colors.Red)
|
|
Dim ticks As Long = DateTime.DateParse(prueba3.SubString2(0,16))
|
|
LogColor(ticks,Colors.red)
|
|
LogColor(DateTime.Date(ticks2),Colors.red)
|
|
Dim timeToCheck As Long = DateUtils.AddPeriod(ticks, p2)
|
|
LogColor(DateUtils.TicksToString(timeToCheck),Colors.red)
|
|
|
|
If newDate >= timeToCheck2 And newDate < timeToCheck Then
|
|
donde3 = "0"
|
|
Return True
|
|
Else If newDate > timeToCheck Then
|
|
mensaje = "Tu horario de regreso ya paso, ingresa el codigo"
|
|
donde3 = "1"
|
|
Return False
|
|
Else If newDate < timeToCheck2 Then
|
|
mensaje = "Tu hora de comida aun no se cumple, ingresa el codigo"
|
|
donde3 = "2"
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub b_comidain_Click
|
|
If p_scroll.Visible = False Then
|
|
Log("Cumple panel invisible")
|
|
If horasalidacomer Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
Msgbox("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
Log("validar")
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM HIST_CHECADO WHERE FECHA LIKE ? AND USUARIO = ?",Array As String(sDate, B4XPages.MainPage.login.user))
|
|
Log(c.RowCount)
|
|
If c.RowCount < 6 Then
|
|
If g.GPSEnabled=False Then
|
|
Dim result As Int= -3
|
|
Do While result=-3
|
|
result = Msgbox2("Habilitar el GPS", "Atencion","ACEPTAR","", "",LoadBitmap(File.DirAssets,"alert2.png"))
|
|
Select Case result
|
|
Case DialogResponse.POSITIVE
|
|
MsgboxAsync("Habilitar el GPS", "Atencion")
|
|
StartActivity(g.LocationSettingsIntent)
|
|
Case DialogResponse.NEGATIVE
|
|
|
|
B4XPage_Appear
|
|
End Select
|
|
Loop
|
|
Else
|
|
botoncomidasalida
|
|
End If
|
|
Else
|
|
MsgboxAsync("No puedes hacer mas registros","Atención")
|
|
End If
|
|
End If
|
|
End If
|
|
Else If donde = "1" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para la SALIDA A COMER."
|
|
|
|
End If
|
|
Else If donde = "2" Then
|
|
Msgbox2Async(mensaje,"Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png"),False)
|
|
Wait For Msgbox_Result (result As Int)
|
|
If result = DialogResponse.POSITIVE Then
|
|
|
|
p_validacion.Visible = True
|
|
l_codigo.Text = "Ingresa el codigo para la SALIDA A COMER."
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
MsgboxAsync("Necesitas acabar la gestion actual.","Atención")
|
|
End If
|
|
End Sub
|
|
|
|
Sub botoncomidasalida
|
|
g.Start(0,0)
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
|
|
C = Starter.skmt.ExecQuery("SELECT * FROM CHECADO")
|
|
If c.RowCount = 0 Then
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "SALIDA A COMER", sDate &" " &sTime))
|
|
Else
|
|
c.Position = 0
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(c.GetString("USUARIO"),c.GetString("ID_EMP"),c.GetString("PERFIL"),c.GetString("PROYECTO"),c.GetString("SUCURSAL"),c.GetString("ESTATUS"),c.GetString("FECHA")))
|
|
End If
|
|
Starter.skmt.ExecNonQuery("delete from CHECADO")
|
|
Starter.skmt.ExecNonQuery2("INSERT INTO CHECADO(USUARIO, ID_EMP, PERFIL, PROYECTO, SUCURSAL, ESTATUS, FECHA) VALUES(?,?,?,?,?,?,?)", Array As String(B4XPages.MainPage.login.user, B4XPages.MainPage.login.ID_EMP,B4XPages.MainPage.login.perfil, Starter.almacen, B4XPages.MainPage.login.sucursal, "SALIDA A COMER", sDate &" " &sTime))
|
|
|
|
b_checkin.visible = False
|
|
b_checout.visible = True
|
|
b_comidain.Visible = False
|
|
b_comidaout.Visible = True
|
|
MsgboxAsync("Salida a comer enviada con exito","Atención")
|
|
Mandacomidain
|
|
End Sub
|
|
|
|
Sub Mandacomidain
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate=DateTime.Date(DateTime.Now)
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sTime=DateTime.Time(DateTime.Now)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_check_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.ID_EMP, Starter.almacen, sDate &" " &sTime,"MOVIL", "SALIDA A COMER", B4XPages.MainPage.login.user, B4XPages.MainPage.login.sucursal, Starter.latitud, Starter.longitud)
|
|
reqManager.ExecuteCommand(cmd , "check")
|
|
B4XPage_Appear
|
|
End Sub
|
|
|
|
Sub horasalidacomer As Boolean
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim p As Period
|
|
p.Hours = 0
|
|
p.Minutes = 0
|
|
Dim newDate As Long = DateUtils.AddPeriod(DateTime.Now, p)
|
|
Log(newDate)
|
|
Log(DateUtils.TicksToString(newDate))
|
|
|
|
Dim p2 As Period
|
|
p2.Hours = 1
|
|
p2.Minutes = 0
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha2 As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba2() As String = Regex.Split(" ",fecha2)
|
|
LogColor(prueba2(0),Colors.red)
|
|
Dim prueba3 As String = prueba2(0) &" "&B4XPages.MainPage.login.horacomin&":00"
|
|
LogColor(prueba3,Colors.Red)
|
|
Dim ticks2 As Long = DateTime.DateParse(prueba3)
|
|
LogColor(ticks2,Colors.red)
|
|
LogColor(DateTime.Date(ticks2),Colors.red)
|
|
Dim timeToCheck2 As Long = DateUtils.AddPeriod(ticks2, p2)
|
|
LogColor(DateUtils.TicksToString(timeToCheck2),Colors.red)
|
|
|
|
DateTime.TimeFormat = "hhmm"
|
|
Dim p3 As Period
|
|
p3.Hours = 0
|
|
p3.Minutes = 0
|
|
DateTime.DateFormat = "MM/dd/yyyy HH:mm"
|
|
Dim fecha As String = DateTime.Date(DateTime.Now)
|
|
Dim prueba1() As String = Regex.Split(" ",fecha)
|
|
Log(prueba1(0))
|
|
Dim prueba As String = prueba1(0) &" "&B4XPages.MainPage.login.horacomin&":00"
|
|
LogColor(prueba,Colors.Red)
|
|
Dim ticks As Long = DateTime.DateParse(prueba)
|
|
Log(ticks)
|
|
Dim timeToCheck As Long = DateUtils.AddPeriod(ticks, p3)
|
|
Log(DateUtils.TicksToString(timeToCheck))
|
|
|
|
If newDate >= timeToCheck And newDate < timeToCheck2 Then
|
|
donde = "0"
|
|
Return True
|
|
Else If newDate > timeToCheck2 Then
|
|
donde = "1"
|
|
mensaje = "Tu horario de comida ya paso, ingresa el codigo"
|
|
Return False
|
|
Else If newDate < timeToCheck Then
|
|
donde = "2"
|
|
mensaje = "Aun no es tu horario de comida, ingresa el codigo"
|
|
Return False
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub b_aceptar_Click
|
|
mandacodigo
|
|
End Sub
|
|
|
|
Private Sub p_validacion_Click
|
|
|
|
End Sub
|
|
|
|
Private Sub b_cancelarcodigo_Click
|
|
et_codigo.Text = ""
|
|
p_validacion.Visible = False
|
|
End Sub
|
|
|
|
Sub mandacodigo
|
|
If et_codigo.Text <> "" Then
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "select_codigo_GABICO"
|
|
cmd.Parameters = Array As Object(B4XPages.MainPage.login.user, et_codigo.Text)
|
|
reqManager.ExecuteQuery(cmd , 0, "CODIGO")
|
|
Else If et_codigo.Text = "" Then
|
|
ToastMessageShow("No has ingresado ningun codigo",True)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub b_gestionadas_Click
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
sDate="%" & DateTime.Date(DateTime.Now) & "%"
|
|
Log(sDate&" "&B4XPages.MainPage.login.user)
|
|
If p_scroll.Visible = False Then
|
|
C = Starter.skmt.ExecQuery2("SELECT * FROM CHECADO WHERE USUARIO = ? AND FECHA LIKE ?",Array As String( B4XPages.MainPage.login.user, sDate))
|
|
If c.RowCount > 0 Then
|
|
c.Position = 0
|
|
Log(c.GetString("ESTATUS"))
|
|
If c.GetString("ESTATUS") = "ENTRADA" Or c.GetString("ESTATUS") = "SALIDA A COMER" Or c.GetString("ESTATUS") = "REGRESO DE COMER" Then
|
|
If Not(Subs.IsConnectedToInternet) Then
|
|
MsgboxAsync("Habilita los datos del celular","Atención")
|
|
B4XPage_Appear
|
|
Else
|
|
If distance > 200 Then
|
|
Log("aqui")
|
|
MsgboxAsync("No estas cerca del punto asignado","Atención")
|
|
Else If distance < 200 Then
|
|
If p_qr.IsInitialized And p_qr.Visible = True Then
|
|
Log("PANEL TRABAJADAS INVISIBLE")
|
|
p_qr.Visible = False
|
|
p_trabajadas.Visible = True
|
|
p_trabajadas.BringToFront
|
|
Else
|
|
p_trabajadas.Visible = True
|
|
End If
|
|
botongestionadas
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
Log(8)
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
Else
|
|
Log(9)
|
|
MsgboxAsync("Por favor hacer el check-in","Atención")
|
|
End If
|
|
|
|
Else
|
|
MsgboxAsync("Necesitas acabar la gestion actual.","Atención")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cb_aprobadas_CheckedChange(Checked As Boolean)
|
|
botongestionadas
|
|
End Sub
|
|
|
|
Private Sub cb_rechazadas_CheckedChange(Checked As Boolean)
|
|
botongestionadas
|
|
End Sub
|
|
|
|
Sub botongestionadas
|
|
c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA")
|
|
If c.RowCount > 0 Then
|
|
If cb_aprobadas.Checked = False And cb_rechazadas.Checked = False Then
|
|
c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA")
|
|
If c.RowCount > 0 Then
|
|
clv_gestionadas.Clear
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
clv_gestionadas.Add(CreateListItem(c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_ESTATUS")),i)
|
|
Next
|
|
c.Close
|
|
Else
|
|
clv_gestionadas.Clear
|
|
End If
|
|
Else If cb_aprobadas.Checked = True And cb_rechazadas.Checked = True Then
|
|
c = Starter.skmt.ExecQuery("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA")
|
|
If c.RowCount > 0 Then
|
|
clv_gestionadas.Clear
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
clv_gestionadas.Add(CreateListItem(c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_ESTATUS")),i)
|
|
Next
|
|
c.Close
|
|
Else
|
|
clv_gestionadas.Clear
|
|
End If
|
|
Else If cb_aprobadas.Checked = True And cb_rechazadas.Checked = False Then
|
|
c = Starter.skmt.ExecQuery2("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA WHERE HIST_PR_ESTATUS = ?", Array As String("APROBADO"))
|
|
If c.RowCount > 0 Then
|
|
clv_gestionadas.Clear
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
clv_gestionadas.Add(CreateListItem(c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_ESTATUS")),i)
|
|
Next
|
|
c.Close
|
|
Else
|
|
clv_gestionadas.Clear
|
|
End If
|
|
Else If cb_aprobadas.Checked = False And cb_rechazadas.Checked = True Then
|
|
c = Starter.skmt.ExecQuery2("SELECT HIST_PR_NOMBRE, HIST_PR_ESTATUS FROM HIST_PROMOTORIA WHERE HIST_PR_ESTATUS <> ?", Array As String("APROBADO"))
|
|
If c.RowCount > 0 Then
|
|
clv_gestionadas.Clear
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position = i
|
|
clv_gestionadas.Add(CreateListItem(c.GetString("HIST_PR_NOMBRE"),c.GetString("HIST_PR_ESTATUS")),i)
|
|
Next
|
|
c.Close
|
|
Else
|
|
clv_gestionadas.Clear
|
|
End If
|
|
End If
|
|
Else
|
|
p_trabajadas.Visible = False
|
|
ToastMessageShow("Aun no hay gestiones",True)
|
|
End If
|
|
End Sub
|
|
|
|
Sub CreateListItem(nombre As String, estatus As String) As Panel
|
|
Dim p As B4XView = xui.CreatePanel("")
|
|
' p.SetLayoutAnimated(0, 0, 0, 1, 180)
|
|
p.LoadLayout("gestiones")
|
|
p.Height= 200dip
|
|
' p.Width = clv_orden.GetBase.Width
|
|
' contenidoorden.Width = Panelchecar.Width
|
|
' lb_numorden.Height = p.Height *0.8
|
|
l_nombre.Text = nombre
|
|
l_estatus.Text = estatus
|
|
' Log(p.Width)
|
|
Return p
|
|
End Sub |