B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=11.8 @EndOfDesignText@ Sub Class_Globals Public Root As B4XView 'ignore Private xui As XUI 'ignore ' Base de datos Dim reqManager As DBRequestManager Dim user As String Dim perfil As String Dim ID_EMP As String Dim formato_suc As String Dim nombre As String Dim lat_suc As String Dim long_suc As String ' Elementos Private b_inicio As Button Private et_user As EditText Private et_pass As EditText Dim sucursal As String Dim suc_nom As String Dim nom_proyec As String Private ImageView5 As ImageView Private b_regresa As Button Private b_actualizar_app As Button Private b_enviarbd As Button Private b_guarda_server As Button Private et_server As EditText Private lv_server As ListView Private p_configuracion As Panel Public Provider As FileProvider Dim horain As String Dim horaout As String Dim horacomin As String Dim horacomout As String Private p_adorno As Panel Private l_version 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 Root1.LoadLayout("login") reqManager.Initialize(Me, Starter.DBReqServer) Provider.Initialize l_version.Text = Application.VersionName End Sub Sub B4XPage_Appear If Starter.muestraProgreso = 1 Then muestraProgreso("Descargando actualización") Starter.muestraProgreso = 0 End If p_configuracion.Width = Root.Width p_configuracion.Height = Root.Height p_configuracion.Visible = False p_adorno.Width = Root.Width * 0.85 p_adorno.Height = Root.Height * 0.80 Log("inicio1") StartService(Tracker) Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) If Result Then StartService(Tracker) Log("Start Tracker") Else ToastMessageShow("Sin permisos para GPS", True) End If Log(Result) ' Dim p As Period ' p.Days = 0 ' p.Hours = 0 ' p.Minutes = 0 ' Dim newDate As Long = DateUtils.AddPeriod(DateTime.Now, p) ' Log(newDate) ' ' ' Verificar si hoy es lunes ' If EsLunes(newDate) Then ' Log("¡Hoy es lunes!") ' Else If EsMartes(newDate) Then ' Log("¡Hoy es Martes!") ' Else If EsMiercoles(newDate) Then ' Log("¡Hoy es Miercoles!") ' Else If Esjueves(newDate) Then ' Log("¡Hoy es jueves!") ' Else If Esviernes(newDate) Then ' Log("¡Hoy es Viernes!") ' Else If Essabado(newDate) Then ' Log("¡Hoy es Sabado!") ' Else If EsDomingo(newDate) Then ' Log("¡Hoy es Domingo!") ' End If End Sub Private Sub b_inicio_Click If et_user.Text <> "" Then Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_usuario_GABICO" cmd.Parameters = Array As Object(et_user.Text, et_pass.Text) reqManager.ExecuteQuery(cmd , 0, "usuario") user = et_user.Text End If Log(Starter.latitud) Log(Starter.longitud) ' B4XPages.ShowPage ("Principal") End Sub Private Sub b_inicio_LongClick Private X As Int = "A" End Sub Sub JobDone (Job As HttpJob) 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) If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "usuario" Then 'query tag For Each records() As Object In result.Rows For Each k As String In result.Columns.Keys ' Log(result.Tag & ": " & k & ": " & records(result.Columns.Get(k))) Next If records(result.Columns.Get ("USUARIO")) = "OKActivo" Then Starter.almacen = records(result.Columns.Get ("CAT_LO_AGENCIA")) nom_proyec = records(result.Columns.Get ("PRO_NOM")) perfil = records(result.Columns.Get ("CAT_LO_PERFIL")) sucursal = records(result.Columns.Get ("CAT_EMP_SUCURSAL")) suc_nom = records(result.Columns.Get ("SUC_NOMBRE")) ID_EMP = records(result.Columns.Get ("CAT_LO_ID")) formato_suc = records(result.Columns.Get ("CAT_SUC_FORMATO")) nombre = records(result.Columns.Get ("CAT_LO_NOMBRE")) lat_suc = records(result.Columns.Get ("CAT_SUC_LATITUD")) long_suc = records(result.Columns.Get ("CAT_SUC_LONGITUD")) user = et_user.Text horain = records(result.Columns.Get ("CAT_EMP_HORA_ENTRA")) horaout = records(result.Columns.Get ("CAT_EMP_HORA_SALE")) horacomin = records(result.Columns.Get ("CAT_EMP_COMIDA_ENTRA")) horacomout = records(result.Columns.Get ("CAT_EMP_COMIDA_SALE")) Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_sitrabaja_GABICO" cmd.Parameters = Array As Object(et_user.Text) reqManager.ExecuteQuery(cmd , 0, "diatraba") Else ToastMessageShow ("Datos incorrectos",True) End If Next If result.Rows.Size = 0 Then ToastMessageShow ("Datos incorrectos",True) End If End If If result.Tag = "diatraba" Then 'query tag For Each records() As Object In result.Rows Starter.trabaja = records(result.Columns.Get("TRABAJA")) Log(Starter.trabaja) If Starter.trabaja = 1 Then If perfil = 3 Then CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") B4XPages.ShowPage("Principal") ' Log("AQUI ANDO") Else If perfil = 2 Then CallSubDelayed(Starter,"ENVIA_ULTIMA_GPS") ' Log("AQUI ACA") B4XPages.ShowPage("Supervisor") End If Else If Starter.trabaja = 0 Then MsgboxAsync("Hoy es día de descanso","Atención") End If Next ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True) End If End If End If End Sub Private Sub B4XPage_CloseRequest As ResumableSub If p_configuracion.Visible = True Then p_configuracion.Visible = False Else B4XPages.ShowPage("login") End If ' Return True Return False End Sub Private Sub ImageView5_Click p_configuracion.Visible = True lv_server.Clear lv_server.AddSingleLine("http://keymon.lat:1783") If et_user.Text = "KMTS1" Then lv_server.AddSingleLine("http://11.0.0.196:1783") ' l_server.Text = Starter.server et_server.Text = Starter.DBReqServer End Sub Private Sub p_configuracion_Click End Sub Private Sub lv_server_ItemClick (Position As Int, Value As Object) Starter.DBReqServer = Value ' l_server.Text = Value et_server.Text = Value Starter.reqManager.Initialize(Me, Value) Log(Value) ToastMessageShow("Servidor modificado", False) End Sub Private Sub b_guarda_server_Click Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",et_server.text)) Starter.DBReqServer = et_server.text Log("Inicializamos reqManager con " & Starter.DBReqServer) reqManager.Initialize(Me, Starter.DBReqServer) CallSubDelayed(Starter, "reinicializaReqManager") p_configuracion.Visible= False End Sub Private Sub b_regresa_Click p_configuracion.Visible = False End Sub Private Sub b_enviarbd_Click ' copiaDB ' Sleep(1000) Dim FileName As String = "kmt.db" 'copy the shared file to the shared folder Log("xxxxxx:"&Provider.SharedFolder) Sleep(1000) File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName) Dim email As Email email.To.Add("soporte@keymonsoft.com") email.Subject = "Envio Base de dados Gabinete" email.Attachments.Add(Provider.GetFileUri(FileName)) ' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment Dim in As Intent = email.GetIntent in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION StartActivity(in) End Sub Private Sub b_actualizar_app_Click StartService(appUpdater) End Sub ' appUpdater - Mostramos el anuncio de que se esta descargando el nuevo apk Sub muestraProgreso(mensaje As String) ProgressDialogShow(mensaje) End Sub ' ' appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk Sub ocultaProgreso ProgressDialogHide End Sub Sub notiLowReturn(title As String, Body As String, id As Int) As Notification 'ignore Private notification As Notification notification.Initialize2(notification.IMPORTANCE_LOW) Log("notiLowReturn: "&title) notification.Icon = "icon" notification.Sound = False notification.Vibrate = False notification.SetInfo(title, Body, Main) notification.Notify(id) ' Log("notiLowReturn SetInfo") Return notification End Sub '' Función para verificar si la fecha actual es un lunes 'Sub EsLunes(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 2 'End Sub ' 'Sub EsMartes(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 3 'End Sub ' 'Sub EsMiercoles(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 4 'End Sub ' 'Sub Esjueves(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 5 'End Sub ' 'Sub Esviernes(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 6 'End Sub ' 'Sub Essabado(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 7 'End Sub ' 'Sub EsDomingo(fecha As Long) As Boolean ' ' Crear un objeto Calendar ' Dim cal As JavaObject ' cal.InitializeNewInstance("java.util.GregorianCalendar", Null) ' ' ' Establecer la fecha actual en el objeto Calendar ' cal.RunMethod("setTimeInMillis", Array(fecha)) ' ' ' Obtener el día de la semana (1 para domingo, 2 para lunes, ..., 7 para sábado) ' Dim diaSemana As Int = cal.RunMethod("get", Array(7)) ' ' ' Verificar si es lunes (día de la semana = 2) ' Return diaSemana = 1 'End Sub