public ro_nomina_x_horas_extras_Info get_info(int IdEmpresa, int IdHorasExtras)
        {
            try
            {
                ro_nomina_x_horas_extras_Info info = new ro_nomina_x_horas_extras_Info();

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

                    info = new ro_nomina_x_horas_extras_Info
                    {
                        IdEmpresa          = Entity.IdEmpresa,
                        IdHorasExtras      = Entity.IdHorasExtras,
                        IdNomina_Tipo      = Entity.IdNominaTipo,
                        IdNomina_TipoLiqui = Entity.IdNominaTipoLiqui,
                        IdPeriodo          = Entity.IdPeriodo,
                    };
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public ActionResult Anular(int IdNomina_Tipo, int IdNomina_TipoLiqui, int IdPeriodo, int IdHorasExtras)
        {
            #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
            cargar_combos(IdNomina_Tipo, IdNomina_TipoLiqui);
            IdEmpresa = Convert.ToInt32(Session["IdEmpresa"]);
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();
            model = bus_horas_extras.get_info(IdEmpresa, IdHorasExtras);
            if (model != null)
            {
                model.lst_nomina_horas_extras = bus_hora_extra_detalle.get_list(model.IdEmpresa, model.IdHorasExtras);
            }
            ro_nomina_x_horas_extras_det_Info_list.set_list(model.lst_nomina_horas_extras, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession);

            var lst_empleado = bus_empleado.get_list_combo(Convert.ToInt32(SessionFixed.IdEmpresa));
            empleado_info_list.set_list(lst_empleado, Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            return(View(model));
        }
        public bool modificarDB(ro_nomina_x_horas_extras_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_nomina_x_horas_extras Entity = Context.ro_nomina_x_horas_extras.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdHorasExtras == info.IdHorasExtras);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdNominaTipo      = info.IdNomina_Tipo;
                    Entity.IdNominaTipoLiqui = info.IdNomina_TipoLiqui;
                    Entity.IdPeriodo         = info.IdPeriodo;
                    Entity.IdUsuarioUltMod   = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod      = info.Fecha_UltMod = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 4
0
        public ActionResult EditingDelete_apro([ModelBinder(typeof(DevExpressEditorsBinder))] ro_nomina_x_horas_extras_det_Info info_det)
        {
            ro_nomina_x_horas_extras_det_Info_list.DeleteRow(Convert.ToInt32(info_det.Secuencia), Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();

            model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_aprobacion_horas_extras_det", model));
        }
Ejemplo n.º 5
0
        public ActionResult GridViewPartial_horas_extras_det()
        {
            cargar_combos_detalle();
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();

            model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_horas_extras_det", model));
        }
Ejemplo n.º 6
0
        public ActionResult Nuevo()
        {
            cargar_combos(0, 0);
            ro_nomina_x_horas_extras_Info info = new ro_nomina_x_horas_extras_Info();

            info.lst_nomina_horas_extras = new List <ro_nomina_x_horas_extras_det_Info>();
            return(View(info));
        }
 public bool aprobacionHE(ro_nomina_x_horas_extras_Info info)
 {
     try
     {
         return(bus_detalle.aprobarHE(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 8
0
        public ActionResult EditingUpdate_apro([ModelBinder(typeof(DevExpressEditorsBinder))] ro_nomina_x_horas_extras_det_Info info_det)
        {
            if (ModelState.IsValid)
            {
                ro_nomina_x_horas_extras_det_Info_list.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();

            model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_aprobacion_horas_extras_det", model));
        }
 public bool anularDB(ro_nomina_x_horas_extras_Info info)
 {
     try
     {
         return(odata.anularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 10
0
 public ActionResult Anular(ro_nomina_x_horas_extras_Info model)
 {
     model.IdEmpresa = Convert.ToInt32(Session["IdEmpresa"]);
     model.IdUsuario = Session["IdUsuario"].ToString();
     if (!bus_horas_extras.anularDB(model))
     {
         cargar_combos(model.IdNomina_Tipo, model.IdNomina_TipoLiqui);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 11
0
 public ActionResult Modificar(ro_nomina_x_horas_extras_Info model)
 {
     model.IdEmpresa = Convert.ToInt32(Session["IdEmpresa"]);
     model.IdUsuario = Session["IdUsuario"].ToString();
     model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(model.IdTransaccionSession);
     if (!bus_horas_extras.modificarDB(model))
     {
         cargar_combos(model.IdNomina_Tipo, model.IdNomina_TipoLiqui);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 12
0
 public ActionResult Nuevo(ro_nomina_x_horas_extras_Info model)
 {
     model.IdHorasExtras           = bus_horas_extras.get_info(model.IdEmpresa, model.IdNomina_Tipo, model.IdNomina_TipoLiqui, model.IdPeriodo).IdHorasExtras;
     model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(model.IdTransaccionSession);
     if (bus_horas_extras.guardarDB(model))
     {
         return(RedirectToAction("Index"));
     }
     else
     {
         cargar_combos(model.IdNomina_Tipo, model.IdNomina_TipoLiqui);
         return(View(model));
     }
 }
Ejemplo n.º 13
0
        public ActionResult EditingAddNew([ModelBinder(typeof(DevExpressEditorsBinder))] ro_nomina_x_horas_extras_det_Info info_det)
        {
            info_det.time_entrada1 = new TimeSpan(info_det.time_entrada1_date.Hour, info_det.time_entrada1_date.Minute, info_det.time_entrada1_date.Second);
            info_det.time_salida1  = new TimeSpan(info_det.time_salida1_date.Hour, info_det.time_salida1_date.Minute, info_det.time_salida1_date.Second);
            if (ModelState.IsValid)
            {
                ro_nomina_x_horas_extras_det_Info_list.AddRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();

            model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_horas_extras_det", model));
        }
Ejemplo n.º 14
0
        public JsonResult get_horas_extras(int IdEmpresa = 0, int IdNomina = 0, int IdNomina_Tipo = 0, int IdPeriodo = 0, decimal IdTransaccionSession = 0)
        {
            ro_nomina_x_horas_extras_Info model = new ro_nomina_x_horas_extras_Info();

            model.IdEmpresa          = IdEmpresa;
            model.IdNomina_Tipo      = IdNomina;
            model.IdNomina_TipoLiqui = IdNomina_Tipo;
            model.IdPeriodo          = IdPeriodo;
            bus_horas_extras.ProcesarHorasExtras(model);
            model = bus_horas_extras.get_info(model.IdEmpresa, model.IdNomina_Tipo, model.IdNomina_TipoLiqui, model.IdPeriodo);
            model.lst_nomina_horas_extras = bus_hora_extra_detalle.get_list(model.IdEmpresa, model.IdHorasExtras);
            ro_nomina_x_horas_extras_det_Info_list.set_list(model.lst_nomina_horas_extras, IdTransaccionSession);
            return(Json("", JsonRequestBehavior.AllowGet));
        }
 public bool Procesar(ro_nomina_x_horas_extras_Info info)
 {
     try
     {
         using (Entities_rrhh Context = new Entities_rrhh())
         {
             Context.spRo_nomina_calculo_he(info.IdEmpresa, info.IdNomina_Tipo, info.IdNomina_TipoLiqui, info.IdPeriodo, info.IdUsuario, " ");
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public bool guardarDB(ro_nomina_x_horas_extras_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    var detalle = Context.ro_nomina_x_horas_extras_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdHorasExtras == info.IdHorasExtras);
                    Context.ro_nomina_x_horas_extras_det.RemoveRange(detalle);
                    foreach (var item in info.lst_nomina_horas_extras)
                    {
                        ro_nomina_x_horas_extras_det content_det = new ro_nomina_x_horas_extras_det()
                        {
                            IdEmpresa                 = info.IdEmpresa,
                            IdHorasExtras             = info.IdHorasExtras,
                            IdEmpleado                = item.IdEmpleado,
                            IdCalendario              = item.IdCalendario,
                            IdTurno                   = item.IdTurno,
                            IdHorario                 = item.IdHorario,
                            FechaRegistro             = item.FechaRegistro,
                            time_entrada1             = item.time_entrada1,
                            time_entrada2             = item.time_entrada2,
                            time_salida1              = item.time_salida1,
                            time_salida2              = item.time_salida2,
                            hora_extra25              = item.hora_extra25,
                            hora_extra50              = item.hora_extra50,
                            hora_extra100             = item.hora_extra100,
                            Valor25                   = Math.Round(((item.Sueldo_base / 240) * 1.25) * item.hora_extra25, 2),
                            Valor50                   = Math.Round(((item.Sueldo_base / 240) * 1.5) * item.hora_extra50, 2),
                            Valor100                  = Math.Round(((item.Sueldo_base / 240) * 2) * item.hora_extra100, 2),
                            Sueldo_base               = item.Sueldo_base,
                            hora_atraso               = item.hora_atraso,
                            hora_temprano             = item.hora_temprano,
                            hora_trabajada            = item.hora_trabajada,
                            es_HorasExtrasAutorizadas = item.es_HorasExtrasAutorizadas
                        };
                        Context.ro_nomina_x_horas_extras_det.Add(content_det);
                    }
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 17
0
 public ActionResult Aprobar(ro_nomina_x_horas_extras_Info model)
 {
     model.IdEmpresa = Convert.ToInt32(Session["IdEmpresa"]);
     model.IdUsuario = Session["IdUsuario"].ToString();
     model.lst_nomina_horas_extras = ro_nomina_x_horas_extras_det_Info_list.get_list(model.IdTransaccionSession);
     foreach (var item in model.lst_nomina_horas_extras)
     {
         item.IdSucursal = Convert.ToInt32(SessionFixed.IdSucursal);
     }
     if (!bus_horas_extras.aprobacionHE(model))
     {
         cargar_combos(info.IdNomina_Tipo, info.IdNomina_TipoLiqui);
         cargar_combos(model.IdNomina_Tipo, model.IdNomina_TipoLiqui);
         return(View(model));
     }
     return(RedirectToAction("Index2"));
 }
Ejemplo n.º 18
0
 public ActionResult Nuevo(ro_nomina_x_horas_extras_Info model)
 {
     if (model == null)
     {
         return(View(model));
     }
     model.IdEmpresa = Convert.ToInt32(Session["IdEmpresa"].ToString());
     if (bus_horas_extras.guardarDB(model))
     {
         return(RedirectToAction("Index"));
     }
     else
     {
         cargar_combos(model.IdNomina_Tipo, model.IdNomina_TipoLiqui);
         return(View(model));
     }
 }
 public bool modificarDB(ro_nomina_x_horas_extras_Info info)
 {
     try
     {
         if (odata.Procesar(info))
         {
             return(bus_detalle.calcular_horas_extras(info.IdEmpresa, info.IdNomina_Tipo, info.IdNomina_TipoLiqui, info.IdPeriodo));
         }
         else
         {
             return(false);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 20
0
        public ActionResult Nuevo()
        {
            #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

            cargar_combos(0, 0);
            ro_nomina_x_horas_extras_Info info = new ro_nomina_x_horas_extras_Info();
            info.IdTransaccionSession    = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            info.lst_nomina_horas_extras = new List <ro_nomina_x_horas_extras_det_Info>();
            info.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
            return(View(info));
        }
Ejemplo n.º 21
0
        public ActionResult GridViewPartial_aprobacion_horas_extras_det(int IdNomina_Tipo = 0, int IdNomina_TipoLiqui = 0, int IdPeriodo = 0, int IdHorasExtras = 0)
        {
            cargar_combos_detalle();
            info                         = new ro_nomina_x_horas_extras_Info();
            info.IdEmpresa               = Convert.ToInt32(Session["IdEmpresa"].ToString());
            info.IdHorasExtras           = IdHorasExtras;
            info.lst_nomina_horas_extras = bus_hora_extra_detalle.get_list_x_extado_aprobacion(info.IdEmpresa, info.IdHorasExtras, false);
            if (info.lst_nomina_horas_extras.Count() > 0)
            {
                Session["ro_nomina_x_horas_extras_det_Info"] = info.lst_nomina_horas_extras;
            }
            else
            {
                info.lst_nomina_horas_extras = Session["ro_nomina_x_horas_extras_det_Info"] as List <ro_nomina_x_horas_extras_det_Info>;
                if (info.lst_nomina_horas_extras == null)
                {
                    info.lst_nomina_horas_extras = new List <ro_nomina_x_horas_extras_det_Info>();
                }
            }

            return(PartialView("_GridViewPartial_aprobacion_horas_extras_det", info));
        }
        public bool anularDB(ro_nomina_x_horas_extras_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_nomina_x_horas_extras Entity = Context.ro_nomina_x_horas_extras.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdHorasExtras == info.IdHorasExtras);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.Estado          = info.Estado = "I";
                    Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    Entity.Fecha_UltAnu    = info.Fecha_UltAnu = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool aprobarHE(ro_nomina_x_horas_extras_Info info)
        {
            try
            {
                odata = new ro_nomina_x_horas_extras_det_Data();
                ro_periodo_Bus  bus_periodo  = new ro_periodo_Bus();
                ro_periodo_Info info_periodo = new ro_periodo_Info();
                info_periodo = bus_periodo.get_info(info.IdEmpresa, info.IdPeriodo);

                odata.Modificar_estado_aprobacion(info.IdHorasExtras, 1);
                lst_horas_extras_aprobar = odata.get_lst_horas_extras_aprobar(info.IdEmpresa, info.IdNomina_Tipo, info.IdNomina_TipoLiqui, info.IdPeriodo);
                foreach (var item in lst_horas_extras_aprobar)
                {
                    if (item.Valor25 > 0)
                    {
                        ro_empleado_novedad_Info info_novedad = new ro_empleado_novedad_Info();
                        info_novedad.IdEmpresa          = info.IdEmpresa;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.IdNomina_Tipo      = info.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = info.IdNomina_TipoLiqui;
                        info_novedad.IdPeriodo          = info.IdPeriodo;
                        info_novedad.TotalValor         = item.Valor25;
                        info_novedad.Observacion        = "Hora extra al 25 % corrspondiente al periodo " + info.IdPeriodo.ToString();
                        info_novedad.Fecha_Transac      = DateTime.Now;
                        info_novedad.IdUsuario          = info.IdUsuario;
                        info_novedad.Fecha            = info_periodo.pe_FechaFin;
                        info_novedad.Fecha_PrimerPago = info_periodo.pe_FechaFin;
                        info_novedad.Estado           = "A";
                        info_novedad.lst_novedad_det  = new List <ro_empleado_novedad_det_Info>();
                        ro_empleado_novedad_det_Info info_det = new ro_empleado_novedad_det_Info();
                        info_det.IdEmpresa         = info.IdEmpresa;
                        info_det.IdEmpleado        = item.IdEmpleado;
                        info_det.IdNomina_tipo     = info.IdNomina_Tipo;
                        info_det.IdNomina_Tipo_Liq = info.IdNomina_TipoLiqui;
                        info_det.IdPeriodo         = info.IdPeriodo;
                        info_det.Valor             = item.Valor25;
                        info_det.FechaPago         = info_periodo.pe_FechaFin;
                        info_det.Estado            = "A";
                        info_det.IdRubro           = "7";
                        info_det.Observacion       = "Hora extra al 25 % corrspondiente al periodo " + info.IdPeriodo.ToString();

                        info_novedad.lst_novedad_det.Add(info_det);
                        bus_novedad.guardarDB(info_novedad);
                    }
                    if (item.Valor50 > 0)
                    {
                        ro_empleado_novedad_Info info_novedad = new ro_empleado_novedad_Info();
                        info_novedad.IdEmpresa          = info.IdEmpresa;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.IdNomina_Tipo      = info.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = info.IdNomina_TipoLiqui;
                        info_novedad.IdPeriodo          = info.IdPeriodo;
                        info_novedad.TotalValor         = item.Valor50;
                        info_novedad.Observacion        = "Hora extra al 50 % corrspondiente al periodo " + info.IdPeriodo.ToString();
                        info_novedad.Fecha_Transac      = DateTime.Now;
                        info_novedad.IdUsuario          = info.IdUsuario;
                        info_novedad.Fecha            = info_periodo.pe_FechaFin;
                        info_novedad.Fecha_PrimerPago = info_periodo.pe_FechaFin;
                        info_novedad.Estado           = "A";
                        info_novedad.lst_novedad_det  = new List <ro_empleado_novedad_det_Info>();
                        ro_empleado_novedad_det_Info info_det = new ro_empleado_novedad_det_Info();
                        info_det.IdEmpresa         = info.IdEmpresa;
                        info_det.IdEmpleado        = item.IdEmpleado;
                        info_det.IdNomina_tipo     = info.IdNomina_Tipo;
                        info_det.IdNomina_Tipo_Liq = info.IdNomina_TipoLiqui;
                        info_det.IdPeriodo         = info.IdPeriodo;
                        info_det.Valor             = item.Valor50;
                        info_det.FechaPago         = info_periodo.pe_FechaFin;
                        info_det.Estado            = "A";
                        info_det.IdRubro           = "8";
                        info_det.Observacion       = "Hora extra al 50 % corrspondiente al periodo " + info.IdPeriodo.ToString();

                        info_novedad.lst_novedad_det.Add(info_det);

                        bus_novedad.guardarDB(info_novedad);
                    }
                    if (item.Valor100 > 0)
                    {
                        ro_empleado_novedad_Info info_novedad = new ro_empleado_novedad_Info();
                        info_novedad.IdEmpresa          = info.IdEmpresa;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.IdNomina_Tipo      = info.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = info.IdNomina_TipoLiqui;
                        info_novedad.IdPeriodo          = info.IdPeriodo;
                        info_novedad.TotalValor         = item.Valor100;
                        info_novedad.Observacion        = "Hora extra al 100 % corrspondiente al periodo " + info.IdPeriodo.ToString();
                        info_novedad.Fecha_Transac      = DateTime.Now;
                        info_novedad.IdUsuario          = info.IdUsuario;
                        info_novedad.Fecha            = info_periodo.pe_FechaFin;
                        info_novedad.Fecha_PrimerPago = info_periodo.pe_FechaFin;
                        info_novedad.Estado           = "A";
                        info_novedad.lst_novedad_det  = new List <ro_empleado_novedad_det_Info>();
                        ro_empleado_novedad_det_Info info_det = new ro_empleado_novedad_det_Info();
                        info_det.IdEmpresa         = info.IdEmpresa;
                        info_det.IdEmpleado        = item.IdEmpleado;
                        info_det.IdNomina_tipo     = info.IdNomina_Tipo;
                        info_det.IdNomina_Tipo_Liq = info.IdNomina_TipoLiqui;
                        info_det.IdPeriodo         = info.IdPeriodo;
                        info_det.Valor             = item.Valor100;
                        info_det.FechaPago         = info_periodo.pe_FechaFin;
                        info_det.Estado            = "A";
                        info_det.IdRubro           = "9";
                        info_det.Observacion       = "Hora extra al 100 % corrspondiente al periodo " + info.IdPeriodo.ToString();

                        info_novedad.lst_novedad_det.Add(info_det);

                        bus_novedad.guardarDB(info_novedad);
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool AprobarHE(ro_nomina_x_horas_extras_Info info)
        {
            try
            {
                ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data();
                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);
                ro_nomina_x_horas_extras_det_Data odata = new ro_nomina_x_horas_extras_det_Data();
                ro_periodo_Data bus_periodo             = new ro_periodo_Data();
                ro_periodo_Info info_periodo            = new ro_periodo_Info();
                info_periodo = bus_periodo.get_info(info.IdEmpresa, info.IdPeriodo);
                //var  lst_horas_extras_aprobar = odata.get_lst_horas_extras_aprobar(info.IdEmpresa, info.IdNomina_Tipo, info.IdNomina_TipoLiqui, info.IdPeriodo);
                using (Entities_rrhh content = new Entities_rrhh())
                {
                    var ro_rubro_calculados = content.ro_rubros_calculados.FirstOrDefault(s => s.IdEmpresa == info.IdEmpresa);
                    if (ro_rubro_calculados == null)
                    {
                        return(false);
                    }
                    var ro_horas_extras = content.ro_nomina_x_horas_extras.FirstOrDefault(s => s.IdEmpresa == info.IdEmpresa && s.IdHorasExtras == info.IdHorasExtras);
                    if (ro_horas_extras == null)
                    {
                        return(false);
                    }
                    ro_horas_extras.Estado = "P";

                    foreach (var item in info.lst_nomina_horas_extras)
                    {
                        if (item.Valor25 > 0)
                        {
                            IdNovedad++;
                            ro_empleado_Novedad info_novedad_25 = new ro_empleado_Novedad()
                            {
                                IdNovedad          = IdNovedad,
                                IdEmpresa          = info.IdEmpresa,
                                IdSucursal         = item.IdSucursal,
                                IdEmpleado         = item.IdEmpleado,
                                IdNomina_Tipo      = info.IdNomina_Tipo,
                                IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                                Observacion        = "Hora extra al 25 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                Fecha_Transac      = DateTime.Now,
                                IdUsuario          = info.IdUsuario,
                                Fecha  = item.FechaRegistro.Date,
                                Estado = "A"
                            };
                            content.ro_empleado_Novedad.Add(info_novedad_25);
                            ro_empleado_novedad_det info_det_25 = new ro_empleado_novedad_det()
                            {
                                IdEmpresa   = info.IdEmpresa,
                                IdNovedad   = IdNovedad,
                                Secuencia   = 1,
                                Valor       = Math.Round(item.Valor25, 2),
                                FechaPago   = info_periodo.pe_FechaFin,
                                IdRubro     = "7",
                                Observacion = "Hora extra al 25 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                EstadoCobro = "PEN"
                            };
                            content.ro_empleado_novedad_det.Add(info_det_25);
                        }
                        ;


                        if (item.Valor50 > 0)
                        {
                            IdNovedad++;
                            ro_empleado_Novedad info_novedad_50 = new ro_empleado_Novedad()
                            {
                                IdNovedad          = IdNovedad,
                                IdSucursal         = item.IdSucursal,
                                IdEmpresa          = info.IdEmpresa,
                                IdEmpleado         = item.IdEmpleado,
                                IdNomina_Tipo      = info.IdNomina_Tipo,
                                IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                                Observacion        = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                Fecha_Transac      = DateTime.Now,
                                IdUsuario          = info.IdUsuario,
                                Fecha  = item.FechaRegistro.Date,
                                Estado = "A"
                            };
                            content.ro_empleado_Novedad.Add(info_novedad_50);
                            ro_empleado_novedad_det info_det_50 = new ro_empleado_novedad_det()
                            {
                                IdEmpresa   = info.IdEmpresa,
                                IdNovedad   = IdNovedad,
                                Secuencia   = 1,
                                Valor       = Math.Round(item.Valor50, 2),
                                FechaPago   = info_periodo.pe_FechaFin,
                                IdRubro     = "8",
                                Observacion = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                EstadoCobro = "PEN"
                            };
                            content.ro_empleado_novedad_det.Add(info_det_50);
                        }
                        ;

                        if (item.hora_extra100 > 0)
                        {
                            IdNovedad++;
                            ro_empleado_Novedad info_novedad_100 = new ro_empleado_Novedad()
                            {
                                IdNovedad          = IdNovedad,
                                IdSucursal         = item.IdSucursal,
                                IdEmpresa          = info.IdEmpresa,
                                IdEmpleado         = item.IdEmpleado,
                                IdNomina_Tipo      = info.IdNomina_Tipo,
                                IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                                Observacion        = "Hora extra al 50 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                Fecha_Transac      = DateTime.Now,
                                IdUsuario          = info.IdUsuario,
                                Fecha  = item.FechaRegistro.Date,
                                Estado = "A"
                            };
                            content.ro_empleado_Novedad.Add(info_novedad_100);
                            ro_empleado_novedad_det info_det_100 = new ro_empleado_novedad_det()
                            {
                                IdEmpresa   = info.IdEmpresa,
                                IdNovedad   = IdNovedad,
                                Secuencia   = 1,
                                Valor       = Math.Round(item.Valor100, 2),
                                FechaPago   = info_periodo.pe_FechaFin,
                                IdRubro     = "8",
                                Observacion = "Hora extra al 100 % correspondiente al periodo " + info.IdPeriodo.ToString(),
                                EstadoCobro = "PEN"
                            };
                            content.ro_empleado_novedad_det.Add(info_det_100);
                        }
                        ;
                    }
                    content.SaveChanges();
                    odata.Modificar_estado_aprobacion(info.IdHorasExtras, 1);
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }