private void PreencherPessoal() { NovosOrcamentosPessoais orcamentosNovos = new NovosOrcamentosPessoais(); Orcamentos orcamentos = new Orcamentos(); OrcamentosPessoal = new List<NovoOrcamentoPessoal>(); OrcamentosDeDespesasOperacionais = new List<Orcamento.Domain.Orcamento>(); var orcamentosOperacionais = orcamentos.ObterOrcamentosFinaisOperacionaisHospitalares(); OrcamentosDeDespesasOperacionais = orcamentosOperacionais; // var orcamentosPessoal = orcamentosNovos.TodosHospitalares(); if (OrcamentosPessoal == null) OrcamentosPessoal = new List<NovoOrcamentoPessoal>(); //var departamentos = new Departamentos(); //var hospitais = departamentos.Todos<Hospital>(); //foreach (var hospital in hospitais) //{ // foreach (var centro in hospital.CentrosDeCusto) // { // var servicoCalculaPessoal = new ServicoGerarOrcamentoPessoalPorCentroDeCusto(); // servicoCalculaPessoal.CentroDeCusto = centro; // servicoCalculaPessoal.Departamento = Departamento; // servicoCalculaPessoal.Gerar(""); // OrcamentosPessoal.Add(servicoCalculaPessoal.Orcamento); // } //} GruposDeConta grupos = new GruposDeConta(); var grupoDeContaPessoal = grupos.ObterPor("Pessoal"); if (receitasNoAno != null) { var DespesasAgrupadas = OrcamentosDeDespesasOperacionais.Select( c => c.DespesasOperacionais.Where( d => grupoDeContaPessoal.Contas.Any(g => g.CodigoDaConta == d.Conta.CodigoDaConta))).ToList(); for (int i = 1; i < 13; i++) { var ltlPessoal = (Literal)divDre.FindControl("ltlPessoal" + i.ToString()); receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorDespesaPessoal = DespesasAgrupadas.Sum(d1 => d1.Where(d2 => d2.Mes == (MesEnum)i).Sum(despesa => despesa.Valor)); receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorDespesaPessoal += OrcamentosPessoal.Where(o => o.Despesas != null && o.Despesas.Count > 0).Sum( o => o.Despesas.Sum(d => d.Parcelas.Where(p => p.Mes == i).Sum(p1 => p1.Valor))); ltlPessoal.Text = "("; ltlPessoal.Text += ( receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorDespesaPessoal / 1000).ToString("#,###,###,###0"); ltlPessoal.Text += ")"; } ltlPessoalTotal.Text = "("; ltlPessoalTotal.Text += (receitasNoAno.Sum(r => r.ValorDespesaPessoal) / 1000).ToString("#,###,###,###0"); ltlPessoalTotal.Text += ")"; } }