コード例 #1
0
        public bool anularDB(ro_horario_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_horario Entity = Context.ro_horario.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdHorario == info.IdHorario);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.Estado = "I";

                    Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    Entity.Fecha_UltAnu    = info.Fecha_UltAnu = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
 public bool guardarDB(ro_horario_Info info)
 {
     try
     {
         using (Entities_rrhh Context = new Entities_rrhh())
         {
             ro_horario Entity = new ro_horario
             {
                 IdEmpresa          = info.IdEmpresa,
                 IdHorario          = get_id(info.IdEmpresa),
                 HoraFin            = info.HoraFin,
                 HoraIni            = info.HoraIni,
                 SalLunch           = info.SalLunch,
                 RegLunch           = info.RegLunch,
                 ToleranciaEnt      = info.ToleranciaEnt,
                 ToleranciaReg_lunh = info.ToleranciaReg_lunh,
                 Descripcion        = info.Descripcion,
                 Estado             = "A",
                 IdUsuario          = info.IdUsuario,
                 Fecha_Transac      = DateTime.Now
             };
             Context.ro_horario.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #3
0
        public bool modificarDB(ro_horario_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_horario Entity = Context.ro_horario.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdHorario == info.IdHorario);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.HoraFin            = info.HoraFin;
                    Entity.HoraIni            = info.HoraIni;
                    Entity.SalLunch           = info.SalLunch;
                    Entity.RegLunch           = info.RegLunch;
                    Entity.ToleranciaEnt      = info.ToleranciaEnt;
                    Entity.ToleranciaReg_lunh = info.ToleranciaReg_lunh;
                    Entity.Descripcion        = info.Descripcion;
                    Entity.IdUsuarioUltMod    = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod       = info.Fecha_UltMod = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #4
0
 public ActionResult Modificar(ro_horario_Info info)
 {
     try
     {
         if (ModelState.IsValid)
         {
             info.IdUsuarioUltMod = SessionFixed.IdUsuario;
             if (!bus_horario.modificarDB(info))
             {
                 return(View(info));
             }
             else
             {
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             return(View(info));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #5
0
 public ActionResult Modificar(ro_horario_Info info)
 {
     try
     {
         if (ModelState.IsValid)
         {
             info.IdEmpresa       = GetIdEmpresa();
             info.IdUsuarioUltMod = Session["IdUsuario"].ToString();
             if (!bus_cargo.modificarDB(info))
             {
                 return(View(info));
             }
             else
             {
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             return(View(info));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #6
0
 public bool anularDB(ro_horario_Info info)
 {
     try
     {
         return(odata.anularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #7
0
 public ActionResult Nuevo()
 {
     try
     {
         ro_horario_Info info = new ro_horario_Info();
         return(View(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #8
0
 public ActionResult Nuevo(int IdEmpresa = 0)
 {
     try
     {
         ro_horario_Info info = new ro_horario_Info();
         info.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
         return(View(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #9
0
 public ActionResult Anular(ro_horario_Info info)
 {
     try
     {
         info.IdUsuarioUltAnu = SessionFixed.IdUsuario;
         if (!bus_horario.anularDB(info))
         {
             return(View(info));
         }
         else
         {
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #10
0
 public ActionResult Anular(ro_horario_Info info)
 {
     try
     {
         info.IdEmpresa       = GetIdEmpresa();
         info.IdUsuarioUltAnu = Session["IdUsuario"].ToString();
         if (!bus_cargo.anularDB(info))
         {
             return(View(info));
         }
         else
         {
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #11
0
        public ActionResult Index()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            ro_horario_Info model = new ro_horario_Info
            {
                IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa),
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
            };

            List <ro_horario_Info> lista = bus_horario.get_list(model.IdEmpresa, true);
            Lista_Horario.set_list(lista, Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            return(View(model));
        }
コード例 #12
0
        public ro_horario_Info get_info(int IdEmpresa, int IdHorario)
        {
            try
            {
                ro_horario_Info info = new ro_horario_Info();

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_horario Entity = Context.ro_horario.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdHorario == IdHorario);
                    if (Entity == null)
                    {
                        return(null);
                    }

                    info = new ro_horario_Info
                    {
                        IdEmpresa          = Entity.IdEmpresa,
                        IdHorario          = Entity.IdHorario,
                        HoraFin            = Entity.HoraFin,
                        HoraIni            = Entity.HoraIni,
                        SalLunch           = Entity.SalLunch,
                        RegLunch           = Entity.RegLunch,
                        ToleranciaEnt      = Entity.ToleranciaEnt,
                        ToleranciaReg_lunh = Entity.ToleranciaReg_lunh,
                        Estado             = Entity.Estado,
                        Descripcion        = Entity.Descripcion
                    };
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #13
0
        public bool calcular_horas_extras(int IdEmpresa, int IdNomina, int IdNominaTipo, int IdPeriodo)
        {
            try
            {
                int             IdHorasExtras = 0;
                ro_horario_Info horarioActual = null;
                ro_turno_Info   info_turno    = null;
                lst_horaio = odata_horario.get_list(IdEmpresa, false);
                lsr_turnos = odata_turno.get_list(IdEmpresa, false);
                lst_nomina_horas_extras = odata.get_lis_calcular_horas_extras(IdEmpresa, IdNomina, IdNominaTipo, IdPeriodo);
                bool banderaHorario = false;
                foreach (var item in lst_nomina_horas_extras)
                {
                    horaExtra25  = 0;
                    horaExtra50  = 0;
                    horaExtra100 = 0;
                    double minutos_lunch = 0;
                    IdHorasExtras = item.IdHorasExtras;
                    // obteniendo el horario por empleado y por idcalendario
                    horarioActual = lst_horaio.Where(v => v.IdHorario == item.IdHorario).FirstOrDefault();
                    // obteniendo el turno por empleado y por idcalendario
                    info_turno = lsr_turnos.Where(v => v.IdTurno == item.IdTurno).FirstOrDefault();
                    if (horarioActual != null && info_turno != null)
                    {
                        #region calculo horas tabajadas
                        //CALCULA LAS HORAS TRABAJADAS
                        if (item.time_salida1 >= item.time_entrada1)
                        {
                            if (item.time_salida1 > item.time_entrada1 && item.time_salida1 < item.time_entrada1)
                            {
                                horaTrabajada = ((TimeSpan)(item.time_salida1 - item.time_entrada1)).TotalHours + ((TimeSpan)(item.time_salida2 - item.time_entrada2)).TotalHours;
                            }
                            else
                            {
                                horaTrabajada = ((TimeSpan)(item.time_salida1 - item.time_entrada1)).TotalHours;
                            }
                        }
                        else
                        {
                            if (item.time_salida1 > item.time_entrada1 && item.time_salida1 < item.time_entrada1)
                            {
                                horaTrabajada = ((TimeSpan)(item.time_salida1 - item.time_entrada1)).TotalHours + ((TimeSpan)(unDia - item.time_entrada1)).TotalHours + ((TimeSpan)item.time_salida2).TotalHours;
                            }
                            else
                            {
                                horaTrabajada = ((TimeSpan)(unDia - item.time_entrada1)).TotalHours + ((TimeSpan)item.time_salida1).TotalHours;
                            }
                        }
                        #endregion
                        #region variables de calculos
                        item.hora_trabajada = horaTrabajada;
                        minutos_lunch       = ((TimeSpan)((TimeSpan)horarioActual.RegLunch) - horarioActual.SalLunch).TotalHours; // obtengo los minutos de descanso
                        //VERIFICAR HORARIO DEL MISMO DIA VS. HORARIO DEL DIA SIGUIENTE
                        if (horarioActual.HoraIni <= horarioActual.HoraFin)                                                       //CORRESPONDE AL MISMO DIA
                        {
                            banderaHorario = false;
                        }
                        else
                        {
                            //CORRESPONDE A PARTE DEL MISMO DIA, Y PARTE DEL DIA SIGUIENTE
                            banderaHorario = true;
                        }
                        int dia_semana = Convert.ToInt32(item.FechaRegistro.DayOfWeek);
                        #endregion
                        #region turno diurno
                        if (banderaHorario == false)//TURNO DIURNO
                        {
                            if ((dia_semana == 7 | dia_semana == 6) && (info_turno.Domingo == false | info_turno.Sabado == false))
                            {
                                item.hora_trabajada = ((TimeSpan)(item.time_salida1 - item.time_entrada1)).TotalHours - ((TimeSpan)(horarioActual.RegLunch - horarioActual.SalLunch)).TotalHours;
                                item.hora_extra100  = item.hora_trabajada;
                            }
                            else
                            {
                                if (item.hora_trabajada > 8)
                                {
                                    //VERIFICA QUE LA SALIDA CORRESPONDA A HORAS EXTRAS DEL MISMO DIA
                                    if (item.time_salida1 > (TimeSpan)horarioActual.HoraFin && item.time_salida1 > item.time_entrada1)
                                    {
                                        //VERIFICA SI TIENE HORAS EXTRAS 100
                                        if (item.time_salida1 > inicioHora100 && item.time_salida1 <= finalHora100)
                                        {
                                            horaExtra100 = ((TimeSpan)(item.time_salida1 - finalHora100)).TotalHours; //TOTAL DE HORAS EXTRAS 100
                                        }
                                        else
                                        {
                                            //VERIFICA SI TIENE HORAS EXTRAS 50%
                                            if (item.time_salida1 > inicioHora50 && item.time_salida1 < finalHora50)
                                            {
                                                horaExtra50       = ((TimeSpan)(item.time_salida1 - (TimeSpan)horarioActual.HoraFin)).TotalHours; //TOTAL DE HORAS EXTRAS 50%
                                                horaExtra50       = horaExtra50 - minutos_lunch;
                                                item.hora_extra50 = horaExtra50;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (item.time_salida1 < (TimeSpan)horarioActual.HoraIni)
                                        {
                                            horaExtra50  = (finalHora50 - (TimeSpan)horarioActual.HoraFin).TotalHours; //TOTAL DE HORAS EXTRAS 50%
                                            horaExtra100 = ((TimeSpan)(item.time_salida1 - inicioHora100)).TotalHours; //TOTAL DE HORAS EXTRAS 100
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                        #region turno nocturno
                        else
                        {
                            //VERIFICA SI ES JORNADA NOCTURNA
                            if (item.time_entrada1 >= inicioHora25 && item.time_entrada1 <= (unDia + finalHora25) && banderaHorario)
                            {
                                horaExtra25 = ((TimeSpan)((unDia + item.time_salida2) - item.time_entrada1)).TotalHours; //TOTAL DE HORAS DE JORNADA NOCTURNA
                            }
                            //CALCULO DE HORAS EXTRAS
                            if (item.time_salida2 > item.time_entrada1 && item.time_salida2 < finalHora50)
                            {
                                horaTrabajada = (((TimeSpan)item.time_salida2).TotalHours - ((TimeSpan)item.time_entrada1).TotalHours);
                            }
                            else
                            {
                                if (item.time_salida1 > inicioHora100)
                                {
                                    horaTrabajada = ((TimeSpan)(unDia + item.time_salida1)).TotalHours - ((TimeSpan)item.time_entrada1).TotalHours;

                                    if (item.time_salida1 > (TimeSpan)horarioActual.HoraFin && item.time_salida1 <= finalHora100)
                                    {
                                        horaExtra100 = ((TimeSpan)(item.time_salida1 - (TimeSpan)horarioActual.HoraFin)).TotalHours;
                                    }
                                    else
                                    {
                                        if (item.time_salida1 > (TimeSpan)horarioActual.HoraFin && item.time_salida1 > inicioHora50 && item.time_salida1 <= finalHora50)
                                        {
                                            horaExtra100 = (inicioHora50 - (TimeSpan)horarioActual.HoraFin).TotalHours;
                                            horaExtra50  = ((TimeSpan)(item.time_salida2 - inicioHora50)).TotalHours;
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                    }

                    item.hora_trabajada = horaTrabajada - minutos_lunch;
                    item.hora_extra25   = horaExtra25;
                    item.hora_extra50   = horaExtra50;
                    item.hora_extra100  = horaExtra100;

                    item.Valor25  = ((item.Sueldo_base / 240) * 1.25) * horaExtra25;
                    item.Valor50  = ((item.Sueldo_base / 240) * 1.5) * horaExtra50;
                    item.Valor100 = ((item.Sueldo_base / 240) * 2) * horaExtra100;
                }
                return(odata.guardarDB(IdEmpresa, IdHorasExtras, lst_nomina_horas_extras));
            }
            catch (Exception)
            {
                throw;
            }
        }