예제 #1
0
 public ReporteDiarioDTO(long agenteId
     , DateTime fechaBuscar
     , Horario horario
     ,Novedad novedad
     , ComisionServicio comision
     , Lactancia lactancia
     ,RelojDefectuoso reloj)
 {
     AgenteId = agenteId;
     FechaReporte = fechaBuscar;
     _reporteServicio = new ReporteServicio();
     _agente = _reporteServicio.BuscarPorId(AgenteId);
     _horario = horario;
     _accesos = _reporteServicio.obtenerAccesos(AgenteId, fechaBuscar);
     _toleraciaLlegadaTarde = _reporteServicio.obtenerMinutosLlegadaTarde();
     _toleraciaAusente = _reporteServicio.obtenerMinutosAusentes();
     _minutosLactancia = _reporteServicio.obtenerMinutosLactancia();
     _lactancia = lactancia;
     _novedad = novedad;
     _comision = comision;
     _reloj = reloj;
     if (_novedad!=null)
     {
         _tipoNovedad = new TipoNovedad();
         _tipoNovedad = _reporteServicio.obtenerTipo(_novedad.Id);
     }
 }
예제 #2
0
        private string nombreDia(DateTime fechaBuscar)
        {
            using (var _context = new ModeloBometricoContainer())
            {
                var          _horario = new AccesoDatos.Horario();
                PropertyInfo dia      = _horario.GetType().GetProperty("Lunes");

                return(dia.Name);
            }
        }
예제 #3
0
        /// <summary>
        /// Fabián Quirós Masís
        /// 07/10/2018
        /// Efecto: devuelve una lista de Horario según solictud de teletrabajo
        /// Requiere: id Solicitud
        /// Modifica: -
        /// Devuelve: Lista de Horario
        /// </summary>
        /// <returns> List<Horario> </returns>
        public List <Horario> getHorarios(int idSolicitud)
        {
            List <Horario> listaHorarios = new List <Horario>();

            SqlConnection sqlConnection = conexion.conexionTeletrabajo();

            String consulta = @"SELECT HO.id_horario,HO.hora_entrada,HO.hora_salidad,HO.tipo_jornada,HO.otros_senalamientos
                                                  ,HO.lunes,HO.martes,HO.miercoles,HO.jueves,HO.viernes,HO.sabado,HO.domingo      
                                            FROM Teletrabajo.dbo.Horario HO INNER JOIN SolicitudTeletrabajo ST ON HO.id_horario = ST.id_horario
                                            WHERE ST.id_solicitud = @id_solicitud and HO.activo = @activo";

            SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection);

            sqlCommand.Parameters.AddWithValue("@id_solicitud", idSolicitud);
            sqlCommand.Parameters.AddWithValue("@activo", true);

            SqlDataReader reader;

            sqlConnection.Open();
            reader = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                Horario horario = new Horario
                {
                    idHorario          = Convert.ToInt16(reader["id_horario"].ToString()),
                    lunes              = Convert.ToBoolean(reader["lunes"].ToString()),
                    martes             = Convert.ToBoolean(reader["martes"].ToString()),
                    miercoles          = Convert.ToBoolean(reader["miercoles"].ToString()),
                    jueves             = Convert.ToBoolean(reader["jueves"].ToString()),
                    viernes            = Convert.ToBoolean(reader["viernes"].ToString()),
                    sabado             = Convert.ToBoolean(reader["sabado"].ToString()),
                    domingo            = Convert.ToBoolean(reader["domingo"].ToString()),
                    tipoJornada        = reader["tipo_jornada"].ToString(),
                    horaEntrada        = reader["hora_entrada"].ToString(),
                    horaSalidad        = reader["hora_salidad"].ToString(),
                    otrosSenalamientos = reader["otros_senalamientos"].ToString(),
                };

                listaHorarios.Add(horario);
            }

            sqlConnection.Close();

            return(listaHorarios);
        }
예제 #4
0
        /// <summary>
        /// Fabián Quirós Masís
        /// 07/10/2018
        /// Efecto: elimina un horario asociado a una solicitud de teletrabajo
        /// Requiere: Horario,  usuario
        /// Modifica: Horario
        /// Devuelve: -
        /// </summary>
        /// <returns> - </returns>
        public void eliminarHorario(Horario horario, String usuario)
        {
            SqlConnection sqlConnection = conexion.conexionTeletrabajo();

            String consulta = @"UPDATE dbo.Horario
                                               SET activo = @activo
                                            WHERE id_horario = @id_horario";

            SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection);

            sqlCommand.Parameters.AddWithValue("@id_horario", horario.idHorario);
            sqlCommand.Parameters.AddWithValue("@activo", false);

            sqlConnection.Open();
            sqlCommand.ExecuteReader();
            sqlConnection.Close();

            bitacora.insertarBitacoraAccion("Eliminar", "Horario", horario.idHorario, 0, usuario);
        }
예제 #5
0
        public void AsignarHorarios(List<DetalleHorarioDTO> listahorarios, long agenteId)
        {
            using (var _contexto = new AccesoDatos.ModeloBometricoContainer())
            {
                try
                {
                    var _agente = _contexto.Agentes.Find(agenteId);
                    var fechadeactualizacion = DateTime.Now;

                    foreach (var horario in listahorarios)
                    {
                        //var _horario = _contexto.Agentes.Find(agenteId);
                        var _nuevoHorario = new AccesoDatos.Horario();
                        _nuevoHorario.AgenteId = horario.AgenteId;
                        _nuevoHorario.FechaDesde = horario.FechaDesde;
                        _nuevoHorario.FechaHasta = horario.FechaHasta;
                        _nuevoHorario.HoraEntrada = horario.HoraEntrada;
                        _nuevoHorario.HoraEntradaParcial = horario.HoraEntradaParcial;
                        _nuevoHorario.HoraSalidaParcial = horario.HoraSalidaParcial;
                        _nuevoHorario.HoraSalida = horario.HoraSalida;

                        _nuevoHorario.Lunes = horario.Lunes;
                        _nuevoHorario.Martes = horario.Martes;
                        _nuevoHorario.Miercoles = horario.Miercoles;
                        _nuevoHorario.Jueves = horario.Jueves;
                        _nuevoHorario.Viernes = horario.Viernes;
                        _nuevoHorario.Sabado = horario.Sabado;
                        _nuevoHorario.Domingo = horario.Domingo;
                        _nuevoHorario.FechaActualizacion = fechadeactualizacion;

                        _agente.Horarios.Add(_nuevoHorario);

                    }
                    _contexto.SaveChanges();

                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
예제 #6
0
        public void AsignarHorarios(List <DetalleHorarioDTO> listahorarios, long agenteId)
        {
            using (var _contexto = new AccesoDatos.ModeloBometricoContainer())
            {
                try
                {
                    var _agente = _contexto.Agentes.Find(agenteId);
                    var fechadeactualizacion = DateTime.Now;

                    foreach (var horario in listahorarios)
                    {
                        //var _horario = _contexto.Agentes.Find(agenteId);
                        var _nuevoHorario = new AccesoDatos.Horario();
                        _nuevoHorario.AgenteId           = horario.AgenteId;
                        _nuevoHorario.FechaDesde         = horario.FechaDesde;
                        _nuevoHorario.FechaHasta         = horario.FechaHasta;
                        _nuevoHorario.HoraEntrada        = horario.HoraEntrada;
                        _nuevoHorario.HoraEntradaParcial = horario.HoraEntradaParcial;
                        _nuevoHorario.HoraSalidaParcial  = horario.HoraSalidaParcial;
                        _nuevoHorario.HoraSalida         = horario.HoraSalida;

                        _nuevoHorario.Lunes              = horario.Lunes;
                        _nuevoHorario.Martes             = horario.Martes;
                        _nuevoHorario.Miercoles          = horario.Miercoles;
                        _nuevoHorario.Jueves             = horario.Jueves;
                        _nuevoHorario.Viernes            = horario.Viernes;
                        _nuevoHorario.Sabado             = horario.Sabado;
                        _nuevoHorario.Domingo            = horario.Domingo;
                        _nuevoHorario.FechaActualizacion = fechadeactualizacion;

                        _agente.Horarios.Add(_nuevoHorario);
                    }
                    _contexto.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
예제 #7
0
        public Horario formateoHorarioEntrada(Horario horario,Novedad novedad,ComisionServicio comision, Lactancia lactancia)
        {
            if (novedad!=null)
            {
                if (novedad.HoraDesde!=null&&novedad.HoraHasta!=null)
                {

                    if (horario.HoraEntrada < novedad.HoraDesde)
                    {
                        return horario;
                    }
                    else
                    {
                        if (horario.HoraSalida > novedad.HoraHasta)
                        {
                            horario.HoraEntrada = novedad.HoraHasta;
                            return horario;
                        }
                        else
                        {
                            return horario;
                        }

                    }
                }
                return horario;
            }
            if (comision!=null)
            {
                if (!comision.EsJornadaCompleta)
                {
                    if (horario.HoraEntrada < comision.HoraDesde)
                    {
                        return horario;
                    }
                    else
                    {
                        if (horario.HoraSalida > comision.HoraHasta)
                        {
                            horario.HoraEntrada = comision.HoraHasta;
                            return horario;
                        }
                        else
                        {
                            return horario;
                        }

                    }
                }

                else
                {
                    return horario;
                }
            }
            if (lactancia!=null && lactancia.HoraInicio)
            {
                var minutos = new TimeSpan(0, obtenerMinutosLactancia(), 0);
                horario.HoraEntrada=horario.HoraEntrada.Value.Add(minutos);
                return horario;
            }
            else
            {
                return horario;
            }
        }
예제 #8
0
        private bool TomarValorPropiedad(DateTime fechaBuscar, Horario schedule)
        {
            var horario = schedule;

            if ((bool)schedule.GetType().GetProperty(ConvertirDia(fechaBuscar)).GetValue(horario, null))
            {
                return true;
            }
            return false;
        }
예제 #9
0
        private string nombreDia(DateTime fechaBuscar)
        {
            using (var _context = new ModeloBometricoContainer())
            {
                var _horario = new AccesoDatos.Horario();
                PropertyInfo dia = _horario.GetType().GetProperty("Lunes");

                return dia.Name;

            }
        }
예제 #10
0
 private Horario formateoHoraSalida(Horario horario, Lactancia lactancia)
 {
     if (lactancia!=null)
     {
         if (!lactancia.HoraInicio)
         {
             var minutos = new TimeSpan(0, obtenerMinutosLactancia(), 0);
             horario.HoraSalida = horario.HoraSalida.Value.Subtract(minutos);
             return horario;
         }
     }
     return horario;
 }