public IList<OrcamentoPessoalDTO> Obter(NovoOrcamentoPessoal orcamentoPessoal) { this.Departamento = orcamentoPessoal.Departamento; Orcamento = orcamentoPessoal; var orcamentosPessoaisDTO = new List<OrcamentoPessoalDTO>(); var grupoDeContasDTO = new List<GrupoDeContaDTO>(); foreach (var grupoDeConta in orcamentoPessoal.CentroDeCusto.GrupoDeContas) { var grupoDeContaDTO = ObterGrupoDeContaDTOInicializado(grupoDeConta); foreach (var conta in grupoDeConta.Contas) AdicionarDespesas(grupoDeContaDTO, conta, orcamentoPessoal.CentroDeCusto); CalcularTotalizadorGrupoDeConta(grupoDeContaDTO); grupoDeContasDTO.Add(grupoDeContaDTO); } var orcamentoPessoalDTO = new OrcamentoPessoalDTO(); CalcularTotalizadorDoOrcamento(orcamentoPessoalDTO, grupoDeContasDTO); orcamentosPessoaisDTO.Add(orcamentoPessoalDTO); return orcamentosPessoaisDTO; }
private void CalcularTotalizadorDoOrcamento(OrcamentoPessoalDTO orcamentoPessoalDTO, List<GrupoDeContaDTO> grupoDeContasDTO) { orcamentoPessoalDTO.GruposDeConta = new List<GrupoDeContaDTO>(); orcamentoPessoalDTO.GruposDeConta.AddRange(grupoDeContasDTO); orcamentoPessoalDTO.TotaisOrcamentoMensal = new List<TotalOrcamentoMensalDTO>(); for (int i = 1; i < 13; i++) { int i1 = i; var despesas = grupoDeContasDTO.SelectMany(x => x.DespesasGrupoDeConta.Where(y => y.Mes == i)); if (despesas.Any()) { //double valor = 0; //foreach (var despesa in despesas) //{ // valor += despesa.Valor; //} var valor = despesas.Sum(a => a.Valor); orcamentoPessoalDTO.TotaisOrcamentoMensal.Add(new TotalOrcamentoMensalDTO { Mes = i, Valor = valor }); } } AdicionarZeroOsTotaisDeOrcamentoComGruposDeContasComContasSemDespesas(orcamentoPessoalDTO); //double valortotal = 0; //foreach (var totalmensal in orcamentoPessoalDTO.TotaisOrcamentoMensal) //{ // valortotal += totalmensal.Valor; //} var valortotal = orcamentoPessoalDTO.TotaisOrcamentoMensal.Sum(a => a.Valor); orcamentoPessoalDTO.TotalOrcamento = valortotal; }
private void AdicionarZeroOsTotaisDeOrcamentoComGruposDeContasComContasSemDespesas(OrcamentoPessoalDTO orcamentoPessoalDTO) { var quantidadeDeMesesComDespesa = orcamentoPessoalDTO.TotaisOrcamentoMensal.Count; if (quantidadeDeMesesComDespesa < 12) { quantidadeDeMesesComDespesa++; for (var i = quantidadeDeMesesComDespesa; i < 13; i++) orcamentoPessoalDTO.TotaisOrcamentoMensal.Add(new TotalOrcamentoMensalDTO { Mes = quantidadeDeMesesComDespesa, Valor = 0 }); } }