Ejemplo n.º 1
0
        /// <summary>
        /// Análise do extrato de um Projeto por ano, com previsões onde não existem valores reais.
        /// </summary>
        /// <param name="rubricaMeses">Detalhes dos meses das Rúbricas do Projeto.</param>
        /// <param name="inicioPlanejado">Início planejado de um projeto.</param>
        /// <param name="terminoPlanejado">Término planejado de um projeto.</param>
        /// <returns>Extrato do Projeto.</returns>
        public ExtratoProjetoDto GerarExtratoProjeto(List <RubricaMesDto> rubricaMeses, DateTime inicioPlanejado,
                                                     DateTime terminoPlanejado)
        {
            ExtratoProjetoDto extratoProjetoDto = new ExtratoProjetoDto
            {
                Total = new OrcamentoDespesas(),
                Anos  = new Dictionary <string, List <Object> >()
            };

            foreach (int anoPlanejado in ListarAnosPlanejados(inicioPlanejado, terminoPlanejado))
            {
                GerarCalendarioExtratoProjetoVazio(extratoProjetoDto, anoPlanejado);

                foreach (CsMesDomain mes in ListarMeses())
                {
                    IEnumerable <RubricaMesDto> mesComRubricas = FiltrarMesComRubricas(rubricaMeses, anoPlanejado,
                                                                                       (int)mes);

                    if (!VerificarExistenciaCustos(rubricaMeses, anoPlanejado, (int)mes))
                    {
                        continue;
                    }

                    PreencherExtratoProjeto(extratoProjetoDto, mesComRubricas, mes, anoPlanejado);
                }
            }

            return(extratoProjetoDto);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Preenche as propriedades do objeto Detalhamento
        /// </summary>
        /// <param name="extratoProjetoDto">Objeto extratoProjetoDto</param>
        /// <param name="mesComRubricas">Objetos RubricaMesDto</param>
        /// <param name="mes">mês de que se fala</param>
        /// <param name="anoPlanejado">ano de que se fala</param>
        private void PreencherExtratoProjeto(ExtratoProjetoDto extratoProjetoDto, IEnumerable <RubricaMesDto> mesComRubricas,
                                             CsMesDomain mes,
                                             int anoPlanejado)
        {
            Decimal orcamentoDesenvolvimento = CalcularOrcamentoDesenvolvimento(mesComRubricas);
            Custo   despesasDesenvolvimento  = CalcularDespesasDesenvolvimento(mesComRubricas);

            Decimal orcamentoAdministrativo = CalcularOrcamentoAdministrativo(mesComRubricas);
            Custo   despesasAdministrativas = CalcularDespesasAdministrativas(mesComRubricas);

            Custo resultadoMensal = (orcamentoAdministrativo + orcamentoDesenvolvimento) -
                                    despesasAdministrativas - despesasDesenvolvimento;

            extratoProjetoDto.Total.Acumulado += resultadoMensal;

            String anoPlanejadoString = Convert.ToString(anoPlanejado);

            int mesJavascript = SelecionarMesJavascript(mes);

            extratoProjetoDto.Anos[anoPlanejadoString][mesJavascript] = new OrcamentoDespesas
            {
                OrcamentoAprovadoAdministracao   = orcamentoAdministrativo,
                OrcamentoAprovadoDesenvolvimento = orcamentoDesenvolvimento,
                DespesasAdministrativas          = despesasAdministrativas,
                DespesasDesenvolvimento          = despesasDesenvolvimento,
                ResultadoMensal = resultadoMensal,
                Acumulado       = extratoProjetoDto.Total.Acumulado
            };

            extratoProjetoDto.Total.OrcamentoAprovadoAdministracao   += orcamentoAdministrativo;
            extratoProjetoDto.Total.OrcamentoAprovadoDesenvolvimento += orcamentoDesenvolvimento;
            extratoProjetoDto.Total.DespesasAdministrativas          += despesasAdministrativas;
            extratoProjetoDto.Total.DespesasDesenvolvimento          += despesasDesenvolvimento;
            extratoProjetoDto.Total.ResultadoMensal = extratoProjetoDto.Total.Acumulado;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gera um calendario vazio para ser utilizado no detalhamento do Extrato do Projeto
        /// na tela de Análise Crítica por Projeto.
        /// OBS: Este refactor tem como objetivo deixar o código mais legível. Ainda há a
        /// necessidade de discutir melhorias no modelo das entidades e retorno dos dados para WebAPI
        /// </summary>
        /// <param name="extratoProjetoDto">Objeto ExtratoProjetoDto</param>
        /// <param name="anoPlanejado">Ano de interesse</param>
        private void GerarCalendarioExtratoProjetoVazio(ExtratoProjetoDto extratoProjetoDto, int anoPlanejado)
        {
            string anoPlanejadoString = Convert.ToString(anoPlanejado);

            if (!extratoProjetoDto.Anos.ContainsKey(anoPlanejadoString))
            {
                extratoProjetoDto.Anos[anoPlanejadoString] = new List <Object>();
            }

            foreach (int mes in Enum.GetValues(typeof(CsMesDomain)))
            {
                extratoProjetoDto.Anos[anoPlanejadoString].Add(new Object());
            }
        }