Exemplo n.º 1
0
        private List <ParametroLiquidacionTercero> obtenerListaParametroLiquidacionTercero(IList <ParametroLiquidacionTerceroDto> lista)
        {
            List <ParametroLiquidacionTercero> listaCDP  = new List <ParametroLiquidacionTercero>();
            ParametroLiquidacionTercero        nuevoItem = null;

            var listaTercero = _context.Tercero.ToList();

            foreach (var item in lista)
            {
                nuevoItem                        = new ParametroLiquidacionTercero();
                nuevoItem.Afc                    = item.Afc;
                nuevoItem.AportePension          = item.AportePension;
                nuevoItem.AporteSalud            = item.AporteSalud;
                nuevoItem.BaseAporteSalud        = item.BaseAporteSalud;
                nuevoItem.Dependiente            = item.Dependiente;
                nuevoItem.FondoSolidaridad       = item.FondoSolidaridad;
                nuevoItem.HonorarioSinIva        = item.HonorarioSinIva;
                nuevoItem.InteresVivienda        = item.InteresVivienda;
                nuevoItem.MedicinaPrepagada      = item.MedicinaPrepagada;
                nuevoItem.ModalidadContrato      = item.ModalidadContrato;
                nuevoItem.PensionVoluntaria      = item.PensionVoluntaria;
                nuevoItem.RiesgoLaboral          = item.RiesgoLaboral;
                nuevoItem.TarifaIva              = item.TarifaIva;
                nuevoItem.TipoCuentaXPagarId     = item.TipoCuentaXPagarId;
                nuevoItem.TipoDocumentoSoporteId = item.TipoDocumentoSoporteId;
                nuevoItem.TipoIva                = item.TipoIva;
                nuevoItem.TipoPago               = item.TipoPago;

                //Tercero
                if (item.TipoDocumentoIdentidadId > 0 &&
                    !string.IsNullOrEmpty(item.IdentificacionTercero))
                {
                    var tercero = listaTercero
                                  .Where(c => c.TipoIdentificacion == item.TipoDocumentoIdentidadId)
                                  .Where(c => c.NumeroIdentificacion == item.IdentificacionTercero)
                                  .FirstOrDefault();
                    if (tercero != null)
                    {
                        nuevoItem.TerceroId = tercero.TerceroId;
                    }
                }

                listaCDP.Add(nuevoItem);
            }


            return(listaCDP);
        }
Exemplo n.º 2
0
        public async Task <FormatoCausacionyLiquidacionPagos> ObtenerFormatoSolicitudPago(int planPagoId, int pciId,
                                                                                          decimal valorBaseCotizacion,
                                                                                          int?actividadEconomicaId)
        {
            FormatoCausacionyLiquidacionPagos formato = new FormatoCausacionyLiquidacionPagos();

            try
            {
                var planPagoDto = await _planPagoRepository.ObtenerDetallePlanPagoParaSolicitudPago(planPagoId);

                if (planPagoDto != null)
                {
                    IEnumerable <ParametroGeneral> parametroGenerales = await _repoLista.ObtenerParametrosGenerales();

                    var parametros = parametroGenerales.ToList();

                    ParametroLiquidacionTercero parametroLiquidacion = await _terceroRepository.ObtenerParametroLiquidacionXTercero(planPagoDto.TerceroId, pciId);

                    if (parametroGenerales != null && parametroLiquidacion != null)
                    {
                        if (parametroLiquidacion.ModalidadContrato == (int)ModalidadContrato.ContratoPrestacionServicio)
                        {
                            formato = ObtenerFormatoCausacion_ContratoPrestacionServicio(planPagoDto, parametroLiquidacion, parametros, valorBaseCotizacion);
                        }
                        formato.PlanPagoId = planPagoId;
                    }
                }
                else
                {
                    throw new Exception($"No se pudo obtener información del plan de pago");
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(formato);
        }
Exemplo n.º 3
0
        private FormatoCausacionyLiquidacionPagos CalcularValoresFormatoContratoPrestacionServicio(
            DetallePlanPagoDto planPago,
            ParametroLiquidacionTercero parametroLiquidacion,
            List <ParametroGeneral> parametroGenerales,
            decimal valorBaseCotizacion)
        {
            #region variables

            FormatoCausacionyLiquidacionPagos formato = new FormatoCausacionyLiquidacionPagos();

            decimal valorUvt = 0, valorSMLV = 0;

            decimal PLtarifaIva = 0, PLbaseAporteSalud = 0, PLaporteSalud = 0,
                    PLaportePension = 0, PLriesgoLaboral = 0, PLfondoSolidaridad = 0;

            decimal C1honorario = 0, C2honorarioUvt = 0,
                    C8aporteASalud = 0, C9aporteAPension = 0, C10aporteRiesgoLaboral = 0,
                    C7baseAporteSalud = 0, C11fondoSolidaridad;

            int C2honorarioUvtFinal = 0;

            decimal cuatroSMLV = 0;

            #endregion variables

            #region Parametros de liquidación de tercero

            PLtarifaIva        = parametroLiquidacion.TarifaIva;
            PLbaseAporteSalud  = parametroLiquidacion.BaseAporteSalud;
            PLaporteSalud      = parametroLiquidacion.AporteSalud;
            PLaportePension    = parametroLiquidacion.AportePension;
            PLriesgoLaboral    = parametroLiquidacion.RiesgoLaboral;
            PLfondoSolidaridad = parametroLiquidacion.FondoSolidaridad;

            #endregion Parametros de liquidación de tercero

            #region Parametros Generales

            var parametroUvt  = ObtenerValorDeParametroGeneral(parametroGenerales, valorUVT);
            var parametroSMLV = ObtenerValorDeParametroGeneral(parametroGenerales, salarioMinimo);
            parametroUvt  = parametroUvt.Replace(",", "");
            parametroSMLV = parametroSMLV.Replace(",", "");

            #endregion Parametros Generales

            if (decimal.TryParse(parametroUvt, out valorUvt))
            {
                if (valorUvt > 0)
                {
                    C2honorarioUvt      = C1honorario / valorUvt;
                    C2honorarioUvtFinal = (int)Math.Round(C2honorarioUvt, 0, MidpointRounding.AwayFromZero);
                }
            }

            C7baseAporteSalud      = valorBaseCotizacion;
            C8aporteASalud         = C7baseAporteSalud * (PLaporteSalud);
            C8aporteASalud         = _generalInterface.ObtenerValorRedondeadoAl100XEncima(C8aporteASalud);
            C9aporteAPension       = C7baseAporteSalud * (PLaportePension);
            C9aporteAPension       = this._generalInterface.ObtenerValorRedondeadoAl100XEncima(C9aporteAPension);
            C10aporteRiesgoLaboral = C7baseAporteSalud * (PLriesgoLaboral);
            C10aporteRiesgoLaboral = this._generalInterface.ObtenerValorRedondeadoAl100XEncima(C10aporteRiesgoLaboral);

            if (decimal.TryParse(parametroSMLV, out valorSMLV))
            {
                cuatroSMLV = 4 * valorSMLV;
            }

            #region Fondo de solidaridad

            if (C7baseAporteSalud > cuatroSMLV)
            {
                C11fondoSolidaridad = C7baseAporteSalud * (PLfondoSolidaridad);
                C11fondoSolidaridad = this._generalInterface.ObtenerValorRedondeadoAl100XEncima(C11fondoSolidaridad);
            }
            else
            {
                C11fondoSolidaridad = 0;
            }

            #endregion Fondo de solidaridad

            #region Setear valores a formato

            formato.AporteSalud      = C8aporteASalud;
            formato.AportePension    = C9aporteAPension;
            formato.RiesgoLaboral    = C10aporteRiesgoLaboral;
            formato.FondoSolidaridad = C11fondoSolidaridad;

            #endregion Setear valores a formato

            return(formato);
        }
Exemplo n.º 4
0
        private FormatoCausacionyLiquidacionPagos ObtenerFormatoCausacion_ContratoPrestacionServicio(DetallePlanPagoDto planPago,
                                                                                                     ParametroLiquidacionTercero parametroLiquidacion,
                                                                                                     List <ParametroGeneral> parametroGenerales,
                                                                                                     decimal valorBaseCotizacion)
        {
            #region variables

            FormatoCausacionyLiquidacionPagos formato        = new FormatoCausacionyLiquidacionPagos();
            FormatoCausacionyLiquidacionPagos formatoIgual30 = new FormatoCausacionyLiquidacionPagos();

            #endregion variables

            #region Calcular valores y obtener formato

            formatoIgual30 = CalcularValoresFormatoContratoPrestacionServicio(planPago, parametroLiquidacion, parametroGenerales, valorBaseCotizacion);
            formato        = formatoIgual30;

            #endregion Calcular valores y obtener formato

            return(formato);
        }