public bool guardarDB(ro_SancionesPorMarcaciones_Info info)
        {
            try
            {
                ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data();

                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);

                int secuancia = 1;
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_SancionesPorMarcaciones entity = new ro_SancionesPorMarcaciones
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdAjuste           = info.IdAjuste = get_id(info.IdEmpresa),
                        IdNomina_Tipo      = info.IdNomina_Tipo,
                        IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                        FechaInicio        = info.FechaInicio, FechaFin = info.FechaFin,
                        Observacion        = info.Observacion,
                        Fecha_Transac      = DateTime.Now,
                        IdUsuario          = info.IdUsuario,
                        Estado             = true,
                        FechaNovedades     = info.FechaNovedades
                    };
                    Context.ro_SancionesPorMarcaciones.Add(entity);
                    foreach (var item in info.detalle)
                    {
                        ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdSucursal    = item.IdSucursal,
                            IdAjuste      = info.IdAjuste,
                            IdCalendario  = item.IdCalendario,
                            IdEmpleado    = item.IdEmpleado,
                            EsHoraIngreso = item.HoraIni,
                            HoraIngreso   = item.time_entrada1,
                            EsHoraSalida  = item.HoraFin,
                            HoraSalio     = item.time_salida1,
                            Minutos       = item.Minutos,
                            FechaRegistro = item.es_fechaRegistro,
                            Secuencia     = secuancia
                        };
                        Context.ro_SancionesPorMarcaciones_det.Add(entity_det);
                        secuancia++;
                    }

                    // agrupnado para obter valor para novedad
                    secuancia = 1;
                    var lista_novedades = (from q in info.detalle
                                           group q by new
                    {
                        q.IdEmpresa,
                        q.IdSucursal,
                        q.IdEmpleado,
                        q.Minutos,
                        q.Sueldo
                    } into Grupo
                                           select new ro_SancionesPorMarcaciones_x_novedad_Info
                    {
                        IdEmpresa = Grupo.Key.IdEmpresa,
                        IdSucursal = Grupo.Key.IdSucursal,
                        IdEmpleado = Grupo.Key.IdEmpleado,
                        Valor = Grupo.Sum(s => s.Minutos),
                        Sueldo = Grupo.Key.Sueldo
                    }).ToList();
                    // grabando novedades
                    foreach (var item in lista_novedades)
                    {
                        ro_empleado_Novedad novedad = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdSucursal         = item.IdSucursal,
                            IdNovedad          = IdNovedad,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                            Observacion        = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10),
                            Fecha         = info.FechaNovedades,
                            Estado        = "A",
                            Fecha_Transac = DateTime.Now,
                            IdUsuario     = info.IdUsuario
                        };
                        Context.ro_empleado_Novedad.Add(novedad);

                        ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdNovedad   = IdNovedad,
                            IdRubro     = "200",
                            Valor       = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60),
                            FechaPago   = info.FechaNovedades,
                            EstadoCobro = "PEN",
                            Observacion = "Novedad generda por proceso del sistema",
                            Secuencia   = 1,
                        };
                        novedad_det.Valor = Math.Round(novedad_det.Valor, 2);
                        Context.ro_empleado_novedad_det.Add(novedad_det);

                        ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdAjuste           = info.IdAjuste,
                            Secuencia          = secuancia,
                            IdNovedad          = novedad.IdNovedad,
                            IdEmpresa_nov      = info.IdEmpresa,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui
                        };
                        Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc);
                        IdNovedad++;
                        secuancia++;
                    }

                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public bool modificarDB(ro_SancionesPorMarcaciones_Info info)
        {
            try
            {
                ro_SancionesPorMarcaciones_x_novedad_Data odata_novedad_x_sanciones = new ro_SancionesPorMarcaciones_x_novedad_Data();
                ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data();
                var lista_novedades_a_eliminar         = odata_novedad_x_sanciones.get_list(info.IdEmpresa, info.IdAjuste).ToList();


                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    #region modificando cabecera
                    ro_SancionesPorMarcaciones entity = Context.ro_SancionesPorMarcaciones.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste).FirstOrDefault();
                    if (entity == null)
                    {
                        return(false);
                    }
                    entity.FechaInicio     = info.FechaInicio;
                    entity.FechaFin        = info.FechaFin;
                    entity.Observacion     = info.Observacion;
                    entity.FechaNovedades  = info.FechaNovedades;
                    entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    entity.Fecha_UltMod    = DateTime.Now;
                    #endregion


                    #region eliminado detalle
                    #region eliminando novedad por sancion
                    var ro_sanciones_det = Context.ro_SancionesPorMarcaciones_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste);
                    Context.ro_SancionesPorMarcaciones_det.RemoveRange(ro_sanciones_det);

                    #endregion
                    #endregion
                    #region eliminando novedad por sancion
                    var ro_novedad_x_sanciones = Context.ro_SancionesPorMarcaciones_x_novedad.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste);
                    Context.ro_SancionesPorMarcaciones_x_novedad.RemoveRange(ro_novedad_x_sanciones);

                    #endregion


                    #region eliminado_novedades

                    foreach (var item in lista_novedades_a_eliminar)
                    {
                        var info_novedad_det = Context.ro_empleado_novedad_det.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad).FirstOrDefault();
                        Context.ro_empleado_novedad_det.Remove(info_novedad_det);

                        var info_novedad = Context.ro_empleado_Novedad.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad && q.IdEmpleado == item.IdEmpleado).FirstOrDefault();
                        Context.ro_empleado_Novedad.Remove(info_novedad);
                    }
                    #endregion

                    #region grabando novedades

                    decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);
                    int     secuancia = 1;

                    foreach (var item in info.detalle)
                    {
                        ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdSucursal    = item.IdSucursal,
                            IdAjuste      = info.IdAjuste,
                            IdCalendario  = item.IdCalendario,
                            IdEmpleado    = item.IdEmpleado,
                            EsHoraIngreso = item.HoraIni,
                            HoraIngreso   = item.time_entrada1,
                            EsHoraSalida  = item.HoraFin,
                            HoraSalio     = item.time_salida1,
                            Minutos       = item.Minutos,
                            FechaRegistro = item.es_fechaRegistro,
                            Secuencia     = secuancia
                        };
                        Context.ro_SancionesPorMarcaciones_det.Add(entity_det);
                        secuancia++;
                    }

                    // agrupnado para obter valor para novedad
                    secuancia = 1;
                    var lista_novedades = (from q in info.detalle
                                           group q by new
                    {
                        q.IdEmpresa,
                        q.IdSucursal,
                        q.IdEmpleado,
                        q.Minutos,
                        q.Sueldo
                    } into Grupo
                                           select new ro_SancionesPorMarcaciones_x_novedad_Info
                    {
                        IdEmpresa = Grupo.Key.IdEmpresa,
                        IdSucursal = Grupo.Key.IdSucursal,
                        IdEmpleado = Grupo.Key.IdEmpleado,
                        Valor = Grupo.Sum(s => s.Minutos),
                        Sueldo = Grupo.Key.Sueldo
                    }).ToList();
                    // grabando novedades
                    foreach (var item in lista_novedades)
                    {
                        ro_empleado_Novedad novedad = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdSucursal         = item.IdSucursal,
                            IdNovedad          = IdNovedad,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                            Observacion        = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10),
                            Fecha         = info.FechaNovedades,
                            Estado        = "A",
                            Fecha_Transac = DateTime.Now,
                            IdUsuario     = info.IdUsuario
                        };
                        Context.ro_empleado_Novedad.Add(novedad);

                        ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdNovedad   = IdNovedad,
                            IdRubro     = "200",
                            Valor       = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60),
                            FechaPago   = info.FechaNovedades,
                            EstadoCobro = "PEN",
                            Observacion = "Novedad generda por proceso del sistema",
                            Secuencia   = 1,
                        };
                        novedad_det.Valor = Math.Round(novedad_det.Valor, 2);
                        Context.ro_empleado_novedad_det.Add(novedad_det);

                        ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdAjuste           = info.IdAjuste,
                            Secuencia          = secuancia,
                            IdNovedad          = novedad.IdNovedad,
                            IdEmpresa_nov      = info.IdEmpresa,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui
                        };
                        Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc);
                        IdNovedad++;
                        secuancia++;
                    }


                    #endregion

                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public bool GuardarDB(ro_HorasProfesores_Info info)
        {
            try
            {
                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);


                using (Entities_rrhh Contex = new Entities_rrhh())
                {
                    ro_HorasProfesores entity = new ro_HorasProfesores
                    {
                        IdEmpresa     = info.IdEmpresa,
                        IdCarga       = info.IdCarga = Get_id(info.IdEmpresa),
                        FechaCarga    = info.FechaCarga.Date,
                        IdPeriodo     = info.IdPeriodo = Convert.ToInt32(info.FechaCarga.Year.ToString() + info.FechaCarga.Month.ToString().PadLeft(2, '0')),
                        Observacion   = info.Observacion,
                        IdNomina      = info.IdNomina,
                        IdNominaTipo  = info.IdNominaTipo,
                        IdUsuario     = info.IdUsuario,
                        Fecha_Transac = DateTime.Now,
                        Estado        = true
                    };
                    Contex.ro_HorasProfesores.Add(entity);

                    foreach (var item in info.detalle)
                    {
                        ro_empleado_Novedad Entity = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdNovedad          = item.IdNovedad = IdNovedad,
                            IdNomina_Tipo      = info.IdNomina,
                            IdNomina_TipoLiqui = info.IdNominaTipo,
                            IdEmpleado         = item.IdEmpleado,
                            Fecha         = info.FechaCarga.Date,
                            IdSucursal    = item.IdSucursal,
                            Observacion   = item.ru_descripcion,
                            Estado        = "A",
                            IdUsuario     = info.IdUsuario,
                            Fecha_Transac = info.Fecha_Transac = DateTime.Now,
                            IdJornada     = item.IdJornada
                        };
                        Contex.ro_empleado_Novedad.Add(Entity);

                        ro_empleado_novedad_det Entity_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdNovedad     = item.IdNovedad,
                            FechaPago     = info.FechaCarga.Date,
                            IdRubro       = item.IdRubro,
                            Valor         = item.Valor,
                            Observacion   = item.Observacion + " del " + info.FechaCarga.Date.ToString().Substring(0, 10),
                            EstadoCobro   = "PEN",
                            CantidadHoras = item.NumHoras,
                            Secuencia     = 1
                        };

                        Contex.ro_empleado_novedad_det.Add(Entity_det);

                        ro_HorasProfesores_det Entity_det_ = new ro_HorasProfesores_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdCarga       = info.IdCarga,
                            IdNovedad     = item.IdNovedad,
                            IdRubro       = item.IdRubro,
                            IdEmpleado    = item.IdEmpleado,
                            Observacion   = item.Observacion,
                            Secuencia     = item.Secuencia,
                            IdEmpresa_nov = info.IdEmpresa,
                            ValorHora     = item.ValorHora,
                            NumHoras      = item.NumHoras,
                            IdSucursal    = item.IdSucursal
                        };
                        Contex.ro_HorasProfesores_det.Add(Entity_det_);
                        IdNovedad++;
                    }
                    Contex.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool guardarDB(ro_NominasPagosCheques_Info info)
        {
            try
            {
                int     secuencia = 1;
                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    var info_rubros_calculados    = Context.ro_rubros_calculados.Where(v => v.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    ro_NominasPagosCheques Entity = new ro_NominasPagosCheques
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdTransaccion      = info.IdTransaccion = Convert.ToInt32(get_id(info.IdEmpresa)),
                        IdNomina_Tipo      = info.IdNomina_Tipo,
                        IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                        IdPeriodo          = info.IdPeriodo,
                        Observacion        = info.Observacion,
                        Estado             = info.Estado = true,
                        IdUsuario          = info.IdUsuario,
                        FechaTransac       = info.FechaTransac = DateTime.Now
                    };
                    Context.ro_NominasPagosCheques.Add(Entity);

                    foreach (var item in info.detalle)
                    {
                        ro_NominasPagosCheques_det Entity_ = new ro_NominasPagosCheques_det
                        {
                            IdEmpresa     = item.IdEmpresa,
                            IdTransaccion = item.IdTransaccion = info.IdTransaccion,
                            IdSucursal    = item.IdSucursal,
                            IdEmpleado    = item.IdEmpleado,
                            Valor         = item.Valor,
                            Secuencia     = secuencia,
                            IdEmpresa_op  = info.IdEmpresa,
                            IdOrdenPago   = item.IdOrdenPago,
                            Secuancia_op  = item.Secuancia_op,
                            IdEmpresa_dc  = item.IdEmpresa_dc,
                            IdTipoCbte    = item.IdTipoCbte,
                            IdCbteCble    = item.IdCbteCble
                        };
                        Context.ro_NominasPagosCheques_det.Add(Entity_);
                        secuencia++;


                        if (info_rubros_calculados != null)
                        {
                            if (info_rubros_calculados.IdRubro_novedad_proceso != null)
                            {
                                ro_empleado_Novedad Entity_nov = new ro_empleado_Novedad
                                {
                                    IdEmpresa          = info.IdEmpresa,
                                    IdSucursal         = item.IdSucursal,
                                    IdNovedad          = IdNovedad,
                                    IdNomina_Tipo      = info.IdNomina_Tipo,
                                    IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                                    IdEmpleado         = Convert.ToInt32(item.IdEmpleado),
                                    Fecha = DateTime.Now.Date,

                                    Observacion   = info.Observacion == null ? "" : info.Observacion,
                                    Estado        = "A",
                                    IdUsuario     = info.IdUsuario,
                                    Fecha_Transac = DateTime.Now
                                };
                                Context.ro_empleado_Novedad.Add(Entity_nov);

                                ro_empleado_novedad_det Entity_nov_det = new ro_empleado_novedad_det
                                {
                                    IdEmpresa   = info.IdEmpresa,
                                    IdNovedad   = IdNovedad,
                                    FechaPago   = DateTime.Now.Date,
                                    IdRubro     = info_rubros_calculados.IdRubro_novedad_proceso,
                                    Valor       = item.Valor,
                                    Observacion = item.Observacion,
                                    EstadoCobro = "PEN",
                                    Secuencia   = 1
                                };
                                Context.ro_empleado_novedad_det.Add(Entity_nov_det);
                                IdNovedad++;
                            }
                        }
                    }

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #5
0
        public bool GuardarDB(ro_EmpleadoNovedadCargaMasiva_Info info)
        {
            try
            {
                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);


                using (Entities_rrhh Contex = new Entities_rrhh())
                {
                    ro_EmpleadoNovedadCargaMasiva entity = new ro_EmpleadoNovedadCargaMasiva
                    {
                        IdEmpresa     = info.IdEmpresa,
                        IdCarga       = info.IdCarga = Get_id(info.IdEmpresa),
                        FechaCarga    = info.FechaCarga.Date,
                        Observacion   = info.Observacion,
                        IdNomina      = info.IdNomina,
                        IdNominaTipo  = info.IdNominaTipo,
                        IdSucursal    = info.IdSucursal,
                        IdRubro       = info.IdRubro,
                        IdUsuario     = info.IdUsuario,
                        Fecha_Transac = DateTime.Now,
                        Estado        = true
                    };
                    Contex.ro_EmpleadoNovedadCargaMasiva.Add(entity);

                    foreach (var item in info.detalle)
                    {
                        ro_empleado_Novedad Entity = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdSucursal         = info.IdSucursal,
                            IdNovedad          = item.IdNovedad = IdNovedad,
                            IdNomina_Tipo      = info.IdNomina,
                            IdNomina_TipoLiqui = info.IdNominaTipo,
                            IdEmpleado         = item.IdEmpleado,
                            Fecha = info.FechaCarga.Date,

                            Observacion   = info.Observacion == null?"":info.Observacion,
                            Estado        = "A",
                            IdUsuario     = info.IdUsuario,
                            Fecha_Transac = info.Fecha_Transac = DateTime.Now
                        };
                        Contex.ro_empleado_Novedad.Add(Entity);

                        ro_empleado_novedad_det Entity_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdNovedad     = item.IdNovedad,
                            FechaPago     = info.FechaCarga.Date,
                            IdRubro       = info.IdRubro,
                            Valor         = item.Valor,
                            Observacion   = item.Observacion,
                            EstadoCobro   = "PEN",
                            Secuencia     = 1,
                            CantidadHoras = item.CantidadHoras
                        };
                        Contex.ro_empleado_novedad_det.Add(Entity_det);

                        ro_EmpleadoNovedadCargaMasiva_det Entity_det_ = new ro_EmpleadoNovedadCargaMasiva_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdCarga       = info.IdCarga,
                            IdNovedad     = item.IdNovedad,
                            IdEmpleado    = item.IdEmpleado,
                            Observacion   = item.Observacion,
                            Secuencia     = item.Secuancia,
                            IdEmpresa_nov = info.IdEmpresa
                        };
                        Contex.ro_EmpleadoNovedadCargaMasiva_det.Add(Entity_det_);
                        IdNovedad++;
                    }
                    Contex.SaveChanges();
                }
                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;
            }
        }