public SaldoContribuicoesFaelceEntidade(FichaFinanceiraEntidade saldos, IndiceValoresEntidade cota)
        {
            Cota = cota.VALOR_IND;

            QtCotaParticipante  = saldos.QTD_COTA_RP_PARTICIPANTE ?? 0;
            QtCotaPatrocinadora = saldos.QTD_COTA_RP_EMPRESA ?? 0;
            QtCotaPortabilidade = saldos.QTD_COTA_RP_PORTABILIDADE ?? 0;

            ContribParticipante  = QtCotaParticipante * Cota;
            ContribPatrocinadora = QtCotaPatrocinadora * Cota;
            ContribPortabilidade = QtCotaPortabilidade * Cota;

            ContribTotal = ContribParticipante + ContribPatrocinadora + ContribPortabilidade;
            QtCotaTotal  = QtCotaParticipante + QtCotaPatrocinadora + QtCotaPortabilidade;

            Referencia = cota.DT_IND;
        }
Пример #2
0
        private void ParseDatas(FichaFinanceiraEntidade contrib)
        {
            var mes = Convert.ToInt32(contrib.MES_REF);

            if (mes == 13)
            {
                contrib.DataReferencia = new DateTime(Convert.ToInt32(contrib.ANO_REF), 12, 1);
                contrib.DecimoTerceiro = true;
            }
            else
            {
                contrib.DataReferencia = new DateTime(Convert.ToInt32(contrib.ANO_REF), Convert.ToInt32(contrib.MES_REF), 1);
            }

            if (Convert.ToInt32(contrib.MES_COMP) == 13)
            {
                contrib.DataCompetencia = new DateTime(Convert.ToInt32(contrib.ANO_COMP), 12, 1);
                contrib.DecimoTerceiro  = true;
            }
            else
            {
                contrib.DataCompetencia = new DateTime(Convert.ToInt32(contrib.ANO_COMP), Convert.ToInt32(contrib.MES_COMP), 1);
            }
        }
Пример #3
0
        public override List <FichaFinanceiraEntidade> BuscarResumoAnosPorFundacaoPlanoInscricao(string CD_FUNDACAO, string CD_PLANO, string NUM_INSCRICAO)
        {
            var fichaFinanceira = base.BuscarResumoAnosPorFundacaoPlanoInscricao(CD_FUNDACAO, CD_PLANO, NUM_INSCRICAO).ToList();

            // Converte valores antigos para Real
            fichaFinanceira.ForEach(ff =>
            {
                ff.CONTRIB_PARTICIPANTE = ConverterValorReal((ff.CONTRIB_PARTICIPANTE.HasValue ? ff.CONTRIB_PARTICIPANTE.Value : 0), ff.MES_REF, ff.ANO_REF);
                ff.CONTRIB_EMPRESA      = ConverterValorReal((ff.CONTRIB_EMPRESA.HasValue ? ff.CONTRIB_EMPRESA.Value : 0), ff.MES_REF, ff.ANO_REF);
            });

            // Agrupa todas as contribuições por ano
            var grupoFicha = fichaFinanceira
                             .GroupBy(x => x.ANO_REF)
                             .Select(x => new {
                ANO_REF = x.Key,
                Items   = x.ToList()
            })
                             .ToList();

            // Busca a lista de fundos para filtrar as contribuições
            var listaFundos = new List <FundoContribEntidade>();

            if (CD_PLANO == "0002") // Se for plano Reforço
            {
                var fundoContrib  = new FundoContribProxy().BuscarPorFundacaoPlanoFundo(CD_FUNDACAO, CD_PLANO, "1");
                var fundoContrib2 = new FundoContribProxy().BuscarPorFundacaoPlanoFundo(CD_FUNDACAO, CD_PLANO, "2");
                var fundoContrib3 = new FundoContribProxy().BuscarPorFundacaoPlanoFundo(CD_FUNDACAO, CD_PLANO, "3");

                listaFundos = fundoContrib.Concat(fundoContrib2).Concat(fundoContrib3).ToList();
            }
            else if (CD_PLANO == "0003")
            {
                //var fundoContrib4 = new FundoContribProxy().BuscarPorFundacaoPlanoFundo(CD_FUNDACAO, CD_PLANO, "4");
                var fundoContrib6 = new FundoContribProxy().BuscarPorFundacaoPlanoFundo(CD_FUNDACAO, CD_PLANO, "6");

                listaFundos = fundoContrib6;
            }

            // Apura todas as contribuições
            var resumo = new List <FichaFinanceiraEntidade>();

            foreach (var grupo in grupoFicha)
            {
                var apuracao = new FichaFinanceiraEntidade
                {
                    ANO_REF = grupo.ANO_REF,
                    QTD_COTA_RP_PARTICIPANTE = 0M,
                    QTD_COTA_RP_EMPRESA      = 0M,
                    CONTRIB_PARTICIPANTE     = 0M,
                    CONTRIB_EMPRESA          = 0M
                };

                foreach (var contribuicao in grupo.Items)
                {
                    // Filtra as contribuições por fundo
                    if (listaFundos.Any(fundo => fundo.CD_TIPO_CONTRIBUICAO == contribuicao.CD_TIPO_CONTRIBUICAO) || CD_PLANO == "0001")
                    {
                        // Cotas
                        if (contribuicao.QTD_COTA_RP_PARTICIPANTE.HasValue)
                        {
                            if (contribuicao.CD_OPERACAO == "C")
                            {
                                apuracao.QTD_COTA_RP_PARTICIPANTE += (decimal)contribuicao.QTD_COTA_RP_PARTICIPANTE;
                            }
                            else
                            {
                                apuracao.QTD_COTA_RP_PARTICIPANTE -= (decimal)contribuicao.QTD_COTA_RP_PARTICIPANTE;
                            }
                        }

                        if (contribuicao.QTD_COTA_RP_EMPRESA.HasValue)
                        {
                            if (contribuicao.CD_OPERACAO == "C")
                            {
                                apuracao.QTD_COTA_RP_EMPRESA += (decimal)contribuicao.QTD_COTA_RP_EMPRESA;
                            }
                            else
                            {
                                apuracao.QTD_COTA_RP_EMPRESA -= (decimal)contribuicao.QTD_COTA_RP_EMPRESA;
                            }
                        }

                        // Valores
                        if (contribuicao.CONTRIB_PARTICIPANTE.HasValue)
                        {
                            if (contribuicao.CD_OPERACAO == "C")
                            {
                                apuracao.CONTRIB_PARTICIPANTE += (decimal)contribuicao.CONTRIB_PARTICIPANTE;
                            }
                            else
                            {
                                apuracao.CONTRIB_PARTICIPANTE -= (decimal)contribuicao.CONTRIB_PARTICIPANTE;
                            }
                        }

                        if (contribuicao.CONTRIB_EMPRESA.HasValue)
                        {
                            if (contribuicao.CD_OPERACAO == "C")
                            {
                                apuracao.CONTRIB_EMPRESA += (decimal)contribuicao.CONTRIB_EMPRESA;
                            }
                            else
                            {
                                apuracao.CONTRIB_EMPRESA -= (decimal)contribuicao.CONTRIB_EMPRESA;
                            }
                        }
                    }
                }

                apuracao.TOTAL_CONTRIB = apuracao.CONTRIB_PARTICIPANTE + apuracao.CONTRIB_EMPRESA;
                apuracao.QTD_COTA      = apuracao.QTD_COTA_RP_PARTICIPANTE + apuracao.QTD_COTA_RP_EMPRESA;

                resumo.Add(apuracao);
            }

            return(resumo);
        }