Exemplo n.º 1
0
        public static bool ActualizarEmpleado(Tbempleados Emp)
        {
            bool Result = false;

            using (remuneracionesContext db = new remuneracionesContext())
            {
                db.Tbempleados.Update(Emp);
                db.SaveChanges();
                Result = true;
            }

            return(Result);
        }
Exemplo n.º 2
0
        public static bool DarDeBajaempleado(Tbempleados Emp)
        {
            bool Result = false;

            using (remuneracionesContext db = new remuneracionesContext())
            {
                Emp.EstaDisponible = false;
                db.Tbempleados.Update(Emp);
                db.SaveChanges();
                Result = true;
            }

            return(Result);
        }
Exemplo n.º 3
0
        public static int AgregarEmpDesdeExcel(List <List <string> > ExcelEmp, remuneracionesContext db)
        {
            int Result = 0;

            ExcelEmp.RemoveAt(0);
            List <Tbempleados> EmpleadoToEmpresa = new List <Tbempleados>();


            FichaEmpresa ObjEmpresa = new FichaEmpresa();

            ObjEmpresa.RazonSocial           = "TestEmpresa";
            ObjEmpresa.lstEmpleados          = EmpleadoToEmpresa;
            ObjEmpresa.Comuna                = 1;
            ObjEmpresa.Direccion             = "Barca 2560";
            ObjEmpresa.Principal             = true;
            ObjEmpresa.Rut                   = "13519830-7";
            ObjEmpresa.TipoEmpresa           = 1;
            ObjEmpresa.Giro                  = "Venta de weas";
            ObjEmpresa.RepresentanteLegal    = "PedritoVega";
            ObjEmpresa.RutRepresentanteLegal = "19507432-1";
            ObjEmpresa.Vigente               = true;
            ObjEmpresa.FormaPagoGratif       = 1;
            ObjEmpresa.FormPagoMoviColacion  = 1;

            foreach (List <string> Columna in ExcelEmp)
            {
                string AFPExcel = Columna[23];

                var AFPempleado = db.AfpModel.SingleOrDefault(AFP => AFP.NombreAfp == AFPExcel);

                string Rut          = Columna[0];
                string Nombre       = Columna[1];
                string Apellido     = Columna[2];
                string Nacionalidad = Columna[7];
                int    Telefono     = Convert.ToInt32(Columna[9]);
                string Cargo        = Columna[17]; //La idea es que Cargo sea un int

                decimal SueldoBase   = Convert.ToDecimal(Columna[30]);
                decimal Movilizacion = Convert.ToDecimal(Columna[31]);
                decimal Colacion     = Convert.ToDecimal(Columna[32]);

                CargosModel CargoACrear = new CargosModel()
                {
                    Nombre = Cargo, Detalle = "Sin Detalle"
                };
                db.CargosModel.Add(CargoACrear);
                db.SaveChanges();

                DateTime FechaNacimiento = Utiles.ToDD_MM_AAAA_Multi(Columna[3]);

                SueldoEmpleado ObjSueldo = new SueldoEmpleado
                {
                    SueldoBase        = SueldoBase,
                    AsignMovilizacion = Movilizacion,
                    AsignColacion     = Colacion
                };

                ContratoEmpleado ObjContrato = new ContratoEmpleado
                {
                    Cargo = CargoACrear
                };

                PrevisionEmpleado ObjPrevision = new PrevisionEmpleado();
                if (AFPempleado != null)
                {
                    ObjPrevision.AFP = AFPempleado;
                }

                Tbempleados EmpleadoAInsertar = new Tbempleados
                {
                    Rut             = Rut,
                    Nombre          = Nombre,
                    Apellido        = Apellido,
                    FechaNacimiento = FechaNacimiento,
                    Nacionalidad    = Nacionalidad,
                    Telefono        = Telefono,
                    SueldoEmp       = ObjSueldo,
                    ContratoEmp     = ObjContrato,
                    PrevisionEmp    = ObjPrevision,
                    EmpresaEmpleado = ObjEmpresa
                };

                EmpleadoToEmpresa.Add(EmpleadoAInsertar);
            }

            db.FichaEmpresa.Add(ObjEmpresa);
            db.Tbempleados.AddRange(EmpleadoToEmpresa);
            Result = db.SaveChanges();

            return(Result);
        }
Exemplo n.º 4
0
        public static LiquidacionEmpleado ObtenerLiquidacionEmpleado(int IdEmp, remuneracionesContext db)
        {
            if (IdEmp <= 0)
            {
                return(null);
            }

            var Liquidacion = new LiquidacionEmpleado();

            try
            {
                //Falta listar los topes y tramos.
                //Tope Gratificacion
                //Tope Seguro de cesantia
                //Tope Imposiciones -> al parecer tiene que ver con las afp o con todos los descuentos
                //Tope Salud
                //Si es fonasa calcular por el 7%
                //calcular monto AFP
                //Seguro de Cesantia


                //----- GRATIFICACION -----
                //Existen calculos de gratificaciones del articulo 50 y el articulo 47
                //----- CONTRATOS --------
                //----- LOS PLAZOS DE TODOS LOS CONTRATOS VAN EN LA CLAUSULA NOVENA DE LOS ARTICULOS ------------------
                //contrato individual y contrato colectivo Articulo 6 indiviual -> empleador a trabajador
                //Colectivo de uno o más empleadores con una o más organizaciones sindicales
                //Contrato por plazo: Plazo fijo, indefinido
                //Contrato por obra o faena Articulo 10 bis
                //Contrato por jornada parcial Articulo 40 bis
                //Contratos Especiales Articulos  77 al 152
                //------SALUD-------
                //Cuando calculamos salud aveces hay montos adicionales por reglas que desconozco
                //Es Isapre -> (Pueden ser muchas) o Fonasa que está aislado y con sus reglas
                //Isapre tiene más beneficios pero es más costoso y cada isapre tiene sus montos y reglas además de reglas estantard para cada una
                //Fonasa es más economico y más barato pero con más problemas de atención y menos beneficios.
                //Se puede definir como Fonasa para el sector(publico) y Isapre (Privado)
                //Si estás en fonasa te asignan un tramo el que indicara tu nivel de cobertura dependiendo del sueldo tendrás más cobertura o no siempre será el 7% de tu sueldo
                //En Isapre si puedes elegir
                //Fonasa en fijo Isapre es dinamico
                //IMPORTANTE Si tienes y Isapre y el 7% de tu sueldo llega a un monto que cubre tu plan de isapre solo se descuenta ese 7% en caso
                //Que el 7% de tu sueldo no cubra el plan de la isapre a la que perteneces entonces se cobrará adicional
                //Considerar Seguro de vida...

                //DESCUENTOS
                //Además de la AFP hay que considerar cosas como el S.I.S = Seguro de invalidez y sobrevivencia.
                //Considerar Aguinaldo
                //Considerar anticipo
                //Considerar APV
                //Cuota sindical
                //Impuesto Unico

                //CALCULO IMPUESTO UNICO
                // Any IPU = "Impuesto Unico"
                //1.- Revisar la tabla proveida por el SII
                //2.- Revisar el tramo en el que está el trabajador
                //3.- Calcular antes el imponible tributable F(Total Imponible - Descuentos)
                //------ VARIABLES CALCULO IMPUESTO UNICO --------
                //1.- F((Imponible tributable * Factor(Es el exento de la tabla IPU)) - Monto Rebaja)
                // simplificado ((ImponibleT * Exento) - MontoRebaja)


                List <RentasTopasImpModel> TopesRentasImponibles = db.RentasTopasImpModel.ToList();

                decimal AFPTope       = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.AFP && x.EstaActiva == true).UFCLP;
                decimal IPSTope       = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.IPS && x.EstaActiva == true).UFCLP;
                decimal SCesantiaTope = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.SEGURO_CESANTIA && x.EstaActiva == true).UFCLP;

                List <RentasMinImponibles> rentasMinImponibles = db.RentasMinImponibles.ToList();


                List <AFCModel> AFCRules = db.AFCModel.Where(x => x.EstaActivo == true).ToList();

                UTMModel UTM          = db.UTMModel.SingleOrDefault(x => x.EstaActiva == true);
                IMMModel SueldoMinimo = db.IMMModel.SingleOrDefault(x => x.EstaActiva == true);
                UFModel  UF           = db.UFModel.SingleOrDefault(x => x.EstaActiva == true);

                IndicadoresEconomicos Indicadores = new IndicadoresEconomicos()
                {
                    UF           = UF,
                    UTM          = UTM,
                    SueldoMinimo = SueldoMinimo
                };

                int CantidadHorasTrabajadas = 0;

                Liquidacion.indicadoresEco = Indicadores;

                var LstHaberImponible   = new List <HaberImponible>();
                var LstHaberNoImponible = new List <HaberNoImponible>();
                var LstDescuentos       = new List <DescuentosLiquidacion>();

                Tbempleados ObjEmpleado = db.Tbempleados.Include(e => e.EmpresaEmpleado)
                                          .Include(s => s.SueldoEmp)
                                          .Include(c => c.ContratoEmp)
                                          .ThenInclude(cargo => cargo.Cargo)
                                          .Include(p => p.PrevisionEmp)
                                          .ThenInclude(a => a.AFP)
                                          .SingleOrDefault(Emp => Emp.Id == IdEmp);


                InfoEmpleadoEmpresa InfoEmp = new InfoEmpleadoEmpresa()
                {
                    EmpleadoId           = ObjEmpleado.Id.ToString(),
                    NombreEmpleado       = ObjEmpleado.Nombre,
                    RutEmpleado          = ObjEmpleado.Rut,
                    CargoEmpleado        = ObjEmpleado.ContratoEmp.Cargo.Nombre,
                    FechaIngresoEmpleado = ObjEmpleado.FechaCreacion.ToString("dd-MM-yyyy"),
                    RazonSocialEmpresa   = ObjEmpleado.EmpresaEmpleado.RazonSocial,
                    RutEmpresa           = ObjEmpleado.EmpresaEmpleado.Rut,
                    DireccionEmpresa     = ObjEmpleado.EmpresaEmpleado.Direccion
                };

                List <ImpuestoUnico> InfoImpuestoUnicoActual = db.ImpuestoUnico.Where(x => x.EstaActiva == true).ToList();

                AfpModel         AFP      = ObjEmpleado.PrevisionEmp.AFP;
                ContratoEmpleado Contrato = ObjEmpleado.ContratoEmp;
                CantidadHorasTrabajadas = Contrato.HorasDeJornada;


                if (ObjEmpleado != null)
                {
                    var HyDemp = ServiciosHyD.ObtenerHyDEmpleado(IdEmp, db);

                    if (HyDemp.Item1.Count() <= 0 || HyDemp.Item2.Count() <= 0)
                    {
                        return(null);
                    }

                    LstHaberImponible = HyDemp.Item1.Where(x => x.Categoria_id == CategoriaHaberes.IMPONIBLE)
                                        .Select(x => new HaberImponible
                    {
                        NombreHaber = x.Nombre,
                        MontoHaber  = x.ValorCalculo
                    }).ToList();

                    LstHaberNoImponible = HyDemp.Item1.Where(x => x.Categoria_id == CategoriaHaberes.NOIMPONIBLE)
                                          .Select(x => new HaberNoImponible
                    {
                        NombreHaber = x.Nombre,
                        MontoHaber  = x.ValorCalculo
                    }).ToList();

                    LstDescuentos = HyDemp.Item2.Select(x => new DescuentosLiquidacion
                    {
                        NombreDescuento = x.Nombre,
                        MontoDescuento  = x.ValorCalculo
                    }).ToList();

                    decimal CalculoDescuentoAFP = CalculosLiquidacion.CalculoAFPIndefinido(AFP.DependientesTasaAfp, ObjEmpleado.SueldoEmp.SueldoBase, AFPTope);
                    string  DescuentoAFPNombre  = CalculosLiquidacion.VistaPorcentajeLiquidacion(AFP.DependientesTasaAfp, CalculoDescuentoAFP, AFP.NombreAfp);

                    //Busca el registro del descuento AFP y updatea el monto
                    LstDescuentos.Where(x => x.NombreDescuento == AFP.NombreAfp)
                    .Select(x =>
                    {
                        x.NombreDescuento = DescuentoAFPNombre;
                        x.MontoDescuento  = CalculoDescuentoAFP;
                        return(x);
                    }).ToList();

                    //verificar si hay que calcularla o se deja directamente así
                    decimal MontoGratificacion = CalculosLiquidacion.CalcularGratificacionLegal(ObjEmpleado.SueldoEmp.SueldoBase, 0, 0, db);
                    var     GratificacionLegal = new HaberImponible()
                    {
                        NombreHaber = "Gratificación",
                        MontoHaber  = MontoGratificacion
                    };
                    LstHaberImponible.Add(GratificacionLegal);

                    decimal TotalHaberesImponibles = LstHaberImponible.Sum(x => x.MontoHaber);
                    decimal TotalHaberesNoImp      = LstHaberNoImponible.Sum(x => x.MontoHaber);

                    decimal TotalDescuentoCesantia = CalculosLiquidacion.CalculoSeguroDeCesantia(TotalHaberesImponibles, AFCRules.FirstOrDefault().FinanciamientoEmpleado, SCesantiaTope);
                    var     DescuentoCesantia      = new DescuentosLiquidacion()
                    {
                        NombreDescuento = "Seguro de Cesantia",
                        MontoDescuento  = TotalDescuentoCesantia
                    };
                    LstDescuentos.Add(DescuentoCesantia);

                    decimal TotalDescuentoSalud = CalculosLiquidacion.CalculoFonasa(TotalHaberesImponibles);
                    if (ObjEmpleado.PrevisionEmp.IsapreId > 0 && ObjEmpleado.PrevisionEmp.MontoPactadoIsapre > 0)
                    {
                        decimal MontoIsapre = 0;

                        MontoIsapre = CalculosLiquidacion.ProcesarMontoPactadoIsapre(ObjEmpleado.PrevisionEmp, UF.Valor);

                        if (MontoIsapre > TotalDescuentoSalud)
                        {
                            decimal MontoAdicional = 0;
                            MontoAdicional = CalculosLiquidacion.MontoIsapreAdicional(TotalDescuentoSalud, MontoIsapre);

                            var DescuentoIsapre = new DescuentosLiquidacion()
                            {
                                NombreDescuento = "Isapre",
                                MontoDescuento  = TotalDescuentoSalud
                            };

                            var DescuentosAdicional = new DescuentosLiquidacion()
                            {
                                NombreDescuento = "Adicional",
                                MontoDescuento  = MontoAdicional
                            };

                            LstDescuentos.Add(DescuentoIsapre);
                            LstDescuentos.Add(DescuentosAdicional);
                        }
                        else if (TotalDescuentoSalud >= MontoIsapre)
                        {
                            var DescuentosSaludIsapre = new DescuentosLiquidacion()
                            {
                                NombreDescuento = "Isapre",
                                MontoDescuento  = TotalDescuentoSalud
                            };
                            LstDescuentos.Add(DescuentosSaludIsapre);
                        }
                    }
                    else
                    {
                        var DescuentoSaludFonasa = new DescuentosLiquidacion()
                        {
                            NombreDescuento = "Fonasa",
                            MontoDescuento  = TotalDescuentoSalud
                        };
                        LstDescuentos.Add(DescuentoSaludFonasa);
                    }

                    decimal TotalDescuentos          = LstDescuentos.Sum(x => x.MontoDescuento);
                    decimal TotalImponibleTributable = CalculosLiquidacion.CalcularImponibleTributable(TotalHaberesImponibles, TotalDescuentos);

                    bool    EstaAfectaAimp     = CalculosLiquidacion.EstaAfectaAimpuestos(InfoImpuestoUnicoActual, TotalImponibleTributable);
                    decimal TotalImpuestoUnico = 0;

                    if (EstaAfectaAimp)
                    {
                        TotalImpuestoUnico = CalculosLiquidacion.CalculoImpuestoUnico(InfoImpuestoUnicoActual, TotalImponibleTributable);
                    }

                    if (TotalImpuestoUnico > 0)
                    {
                        var DescuentoImpuestoUnico = new DescuentosLiquidacion()
                        {
                            NombreDescuento = "Impuesto Único",
                            MontoDescuento  = TotalImpuestoUnico
                        };
                        LstDescuentos.Add(DescuentoImpuestoUnico);
                    }

                    decimal TotalHaberes = TotalHaberesImponibles + TotalHaberesNoImp;

                    Liquidacion.MesLiquidacion      = Utiles.obtenerNombreMes(DateTime.Now.Month);
                    Liquidacion.InfoEmpleado        = InfoEmp;
                    Liquidacion.lstHaberImponible   = LstHaberImponible;
                    Liquidacion.lstHaberNoImponible = LstHaberNoImponible;
                    Liquidacion.HorasTrabajadas     = ObjEmpleado.ContratoEmp.HorasDeJornada;
                    Liquidacion.indicadoresEco      = Indicadores;
                    Liquidacion.lstDescuentos       = LstDescuentos;
                    Liquidacion.FechaLiquidacion    = DateTime.Now.ToString("dd-MM-yyyy");
                    Liquidacion.TotalHaberes        = TotalHaberes;
                    Liquidacion.TotalDescuentos     = TotalDescuentos;
                    Liquidacion.TotalHaberesImp     = TotalHaberesImponibles;
                    Liquidacion.TotalHaberesNoImp   = TotalHaberesNoImp;
                    Liquidacion.TotalLiquido        = TotalHaberes - TotalDescuentos;
                }
            }
            catch (Exception ex)
            {
                return(null);
            }


            return(Liquidacion);
        }
Exemplo n.º 5
0
        public static bool InsertarEmpleado(FichaEmpleadoRequestModel NuevoEmp, remuneracionesContext db)
        {
            bool Result = false;


            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    Tbempleados        InsertEmpleado         = new Tbempleados();
                    SueldoEmpleado     InsertEmpleadoSueldo   = new SueldoEmpleado();
                    ContratoEmpleado   InsertEmpleadoContrato = new ContratoEmpleado();
                    PrevisionEmpleado  InsertEmpleadoPrevi    = new PrevisionEmpleado();
                    List <Tbempleados> LstEmpleados           = new List <Tbempleados>();

                    FichaEmpresa ObjEmpresa = new FichaEmpresa();
                    ObjEmpresa.RazonSocial           = "TestEmpresa";
                    ObjEmpresa.lstEmpleados          = LstEmpleados;
                    ObjEmpresa.Comuna                = 1;
                    ObjEmpresa.Direccion             = "Barca 2560";
                    ObjEmpresa.Principal             = true;
                    ObjEmpresa.Rut                   = "13519830-7";
                    ObjEmpresa.TipoEmpresa           = 1;
                    ObjEmpresa.Giro                  = "Venta";
                    ObjEmpresa.RepresentanteLegal    = "PedritoVega";
                    ObjEmpresa.RutRepresentanteLegal = "19507432-1";
                    ObjEmpresa.Vigente               = true;
                    ObjEmpresa.FormaPagoGratif       = 1;
                    ObjEmpresa.FormPagoMoviColacion  = 1;
                    ObjEmpresa.UsuarioEmpresaId      = 1;

                    InsertEmpleado.EstaDisponible  = Convert.ToBoolean(NuevoEmp.EstaVigente);
                    InsertEmpleado.Nombre          = NuevoEmp.Nombre;
                    InsertEmpleado.Apellido        = NuevoEmp.Apellido;
                    InsertEmpleado.Rut             = NuevoEmp.Rut;
                    InsertEmpleado.Nacionalidad    = NuevoEmp.Nacionalidad;
                    InsertEmpleado.Email           = NuevoEmp.EmailPersonal;
                    InsertEmpleado.Direccion       = NuevoEmp.NumCasa + "  " + NuevoEmp.Departamento + "  " + NuevoEmp.Calle;
                    InsertEmpleado.Sexo            = Convert.ToInt32(NuevoEmp.Sexo);
                    InsertEmpleado.Telefono        = Convert.ToInt32(NuevoEmp.Telefono);
                    InsertEmpleado.FechaNacimiento = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.FechaNacimiento);
                    InsertEmpleado.FechaCreacion   = DateTime.Now;


                    //Contrato
                    InsertEmpleadoContrato.ContratoDesde = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.ContratoDesde);
                    InsertEmpleadoContrato.ContratoHasta = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.ContratoHasta);
                    CargosModel Cargo = new CargosModel();
                    if (NuevoEmp.Cargo != "Selecciona")
                    {
                        Cargo = db.CargosModel.Where(x => x.Id == Convert.ToInt32(NuevoEmp.Cargo)).FirstOrDefault();
                    }
                    InsertEmpleadoContrato.Cargo = Cargo;

                    //Sueldo
                    InsertEmpleadoSueldo.AsignColacion     = Convert.ToDecimal(NuevoEmp.AsignColacion);
                    InsertEmpleadoSueldo.AsignMovilizacion = Convert.ToDecimal(NuevoEmp.AsignMovilizacion);
                    InsertEmpleadoSueldo.SueldoBase        = Convert.ToDecimal(NuevoEmp.SueldoBase);
                    InsertEmpleadoSueldo.CuentaCorriente   = Convert.ToInt32(NuevoEmp.NumCuenta);

                    AfpModel AfpEmpleado = db.AfpModel.SingleOrDefault(x => x.Id == Convert.ToInt32(NuevoEmp.AFPId));

                    //Prevision
                    //ver la posilidad de nulos en las relaciones
                    var isapreObject = new IsapreModel();
                    InsertEmpleadoPrevi.AFPId = AfpEmpleado.Id;
                    if (!string.IsNullOrWhiteSpace(NuevoEmp.IsapreId) && !string.IsNullOrWhiteSpace(NuevoEmp.IsapreTipoMonto))
                    {
                        int TipoMontoPac = Convert.ToInt32(NuevoEmp.IsapreTipoMonto);
                        TipoMontoPactado TipoMontoNuevoEmp = (TipoMontoPactado)TipoMontoPac;
                        InsertEmpleadoPrevi.Tipo               = TipoMontoNuevoEmp;
                        InsertEmpleadoPrevi.IsapreId           = Convert.ToInt32(NuevoEmp.IsapreId);
                        InsertEmpleadoPrevi.MontoPactadoIsapre = Convert.ToDecimal(NuevoEmp.IsapreMonto);
                    }
                    InsertEmpleadoPrevi.Isapre = isapreObject;

                    InsertEmpleado.ContratoEmp  = InsertEmpleadoContrato;
                    InsertEmpleado.SueldoEmp    = InsertEmpleadoSueldo;
                    InsertEmpleado.PrevisionEmp = InsertEmpleadoPrevi;


                    //Registro de haberes y descuentos base.
                    LstEmpleados.Add(InsertEmpleado);

                    db.FichaEmpresa.Add(ObjEmpresa);
                    db.Tbempleados.Add(InsertEmpleado);
                    db.SaveChanges();

                    List <ColeccionHaberes> LsthaberesAregistrar = new List <ColeccionHaberes>()
                    {
                        new ColeccionHaberes()
                        {
                            Nombre = "Sueldo Base", Categoria_id = CategoriaHaberes.IMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.SueldoBase, EmpresaId = ObjEmpresa.Id
                        },
                        new ColeccionHaberes()
                        {
                            Nombre = "Movilizacion", Categoria_id = CategoriaHaberes.NOIMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.AsignMovilizacion, EmpresaId = ObjEmpresa.Id
                        },
                        new ColeccionHaberes()
                        {
                            Nombre = "Colacion", Categoria_id = CategoriaHaberes.NOIMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.AsignColacion, EmpresaId = ObjEmpresa.Id
                        }
                    };
                    //Por Evaluar
                    List <ColeccionDescuentos> LstDescuentosAregistrar = new List <ColeccionDescuentos>()
                    {
                        new ColeccionDescuentos()
                        {
                            Nombre = InsertEmpleadoPrevi.AFP.NombreAfp, ValorCalculo = AfpEmpleado.DependientesTasaAfp, EmpresaId = ObjEmpresa.Id
                        }
                    };

                    db.ColeccionHaberes.AddRange(LsthaberesAregistrar);
                    db.ColeccionDescuentos.AddRange(LstDescuentosAregistrar);
                    db.SaveChanges();


                    var LstHaberesYdescARegistrar = new List <HaberesYDescuentosEmpleado>();
                    foreach (ColeccionHaberes ItemHaber in LsthaberesAregistrar)
                    {
                        var HaberAResgistrar = new HaberesYDescuentosEmpleado()
                        {
                            EmpleadoId        = InsertEmpleado.Id,
                            EmpresaId         = ObjEmpresa.Id,
                            HaberOdescuentoId = ItemHaber.Id,
                            TipoHoD           = TipoHaberODescuento.HABER,
                            Monto             = ItemHaber.ValorCalculo
                        };
                        LstHaberesYdescARegistrar.Add(HaberAResgistrar);
                    }

                    foreach (ColeccionDescuentos ItemDescuento in LstDescuentosAregistrar)
                    {
                        var DescuentoARegistrar = new HaberesYDescuentosEmpleado()
                        {
                            EmpleadoId        = InsertEmpleado.Id,
                            EmpresaId         = ObjEmpresa.Id,
                            HaberOdescuentoId = ItemDescuento.Id,
                            TipoHoD           = TipoHaberODescuento.DESCUENTO,
                            Monto             = Convert.ToDecimal(ItemDescuento.ValorCalculo)
                        };
                        LstHaberesYdescARegistrar.Add(DescuentoARegistrar);
                    }

                    db.HaberesYDescuentosEmpleado.AddRange(LstHaberesYdescARegistrar);
                    db.SaveChanges();

                    dbContextTransaction.Commit();
                    Result = true;
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();
                }
            }



            return(Result);
        }