Esempio n. 1
0
        public async Task <IActionResult> ObtenerFormatoSolicitudPagoXId([FromQuery(Name = "formatoSolicitudPagoId")] int formatoSolicitudPagoId)
        {
            FormatoSolicitudPagoDto formato = null;

            try
            {
                valorPciId = User.FindFirst(ClaimTypes.Role).Value;
                if (!string.IsNullOrEmpty(valorPciId))
                {
                    pciId = int.Parse(valorPciId);
                }
                formato = await _repo.ObtenerFormatoSolicitudPagoXId(formatoSolicitudPagoId);

                if (formato != null)
                {
                    var CantidadMaxima = _planPagoRepository.ObtenerCantidadMaximaPlanPago(formato.Cdp.Crp, pciId);

                    formato.CantidadMaxima         = CantidadMaxima;
                    formato.ValorPagadoFechaActual = formato.Cdp.ValorTotal - formato.Cdp.SaldoActual;

                    FormatoCausacionyLiquidacionPagos formatoCausacion = await _procesoLiquidacion.ObtenerFormatoSolicitudPago(formato.PlanPagoId, pciId, formato.BaseCotizacion, formato.ActividadEconomica.Id);

                    formato.AportePension    = formatoCausacion.AportePension;
                    formato.AporteSalud      = formatoCausacion.AporteSalud;
                    formato.RiesgoLaboral    = formatoCausacion.RiesgoLaboral;
                    formato.FondoSolidaridad = formatoCausacion.FondoSolidaridad;

                    var pagosRealizados = await _repo.ObtenerPagosRealizadosXCompromiso(formato.Cdp.Crp, pciId);

                    if (pagosRealizados != null)
                    {
                        var listaOrdenPago = from pr in pagosRealizados
                                             group pr by pr.OrdenPago into g
                                             select new
                        {
                            name = g.Key
                        };

                        formato.NumeroPagoFechaActual = listaOrdenPago.Count();
                        formato.PagosRealizados       = pagosRealizados;
                    }
                }
                return(Ok(formato));
            }
            catch (Exception)
            {
                throw;
            }

            throw new Exception($"No se pudo obtener la lista de relaciones contables");
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public async Task <IActionResult> ObtenerSeguridadSocialParaSolicitudPago([FromQuery(Name = "planPagoId")] int planPagoId,
                                                                                  [FromQuery(Name = "valorBaseCotizacion")] decimal valorBaseCotizacion,
                                                                                  [FromQuery(Name = "actividadEconomicaId")] int?actividadEconomicaId)
        {
            FormatoCausacionyLiquidacionPagos formato = null;

            try
            {
                valorPciId = User.FindFirst(ClaimTypes.Role).Value;
                if (!string.IsNullOrEmpty(valorPciId))
                {
                    pciId = int.Parse(valorPciId);
                }
                formato = await _procesoLiquidacion.ObtenerFormatoSolicitudPago(planPagoId, pciId, valorBaseCotizacion, actividadEconomicaId);
            }
            catch (Exception)
            {
                throw;
            }
            return(base.Ok(formato));
        }
Esempio n. 4
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);
        }
Esempio n. 5
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);
        }