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; }
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); } }
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); }