コード例 #1
0
        private static void AdicionarDespesaDeViagem(List<DespesaTotalizadorDTO> despesas, long despesaDeViagem)
        {
            DespesaTotalizadorDTO despesaDeViagemDTO = new DespesaTotalizadorDTO();
            despesaDeViagemDTO.NomeDespesa = "Despesa De Viagem";

            if (despesaDeViagem != null)
                despesaDeViagemDTO.ValorTotalDespesa = despesaDeViagem;
            else
                despesaDeViagemDTO.ValorTotalDespesa = 0;

            despesas.Add(despesaDeViagemDTO);
        }
コード例 #2
0
        public void PreencherOrcamentos(IList<Orcamento.Domain.Orcamento> listaOrcamentos)
        {
            List<object> objetos = new List<object>();
            List<DespesaTotalizadorDTO> despesas = new List<DespesaTotalizadorDTO>();

            var despesaDeViagem =
                listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.Viagem && a.VersaoFinal).Sum(c => c.ValorTotal);
            var despesasOperacionais =
                listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.DespesaOperacional && a.VersaoFinal).GroupBy(
                    a => a.DespesasOperacionais);

            foreach (
                var despesa in
                    despesasOperacionais.Select(a => a).Where(i => i.Key != null).GroupBy(
                        b => b.Key.GroupBy(c => c.Conta)).ToList())
            {
                foreach (var item in despesa)
                {
                    foreach (var item1 in item)
                    {
                        foreach (var item2 in item1.DespesasOperacionais)
                        {
                            if (despesas.Exists(d => d.Id == item2.Conta.Id))
                            {
                                despesas.Where(d => d.Id == item2.Conta.Id).FirstOrDefault().ValorTotalDespesa +=
                                    item2.Valor;
                            }
                            else
                            {
                                DespesaTotalizadorDTO despesaDto = new DespesaTotalizadorDTO();

                                despesaDto.ValorTotalDespesa = item2.Valor;
                                despesaDto.NomeDespesa = item2.Conta.Nome;
                                despesaDto.Id = item2.Conta.Id;

                                despesas.Add(despesaDto);
                            }

                        }

                    }
                }

            }

            var contas = this.SetorSelecionado.CentrosDeCusto.GroupBy(c => c.Contas.GroupBy(u => u)).ToList();

            var contasFiltradas =
                contas.Where(c => c.All(b => despesas.All(d => d.Id != b.Id))).GroupBy(c => c.GroupBy(u => u)).ToList();

            foreach (var conta in contasFiltradas)
            {
                foreach (var conta1 in conta)
                {
                    foreach (var item in conta1)
                    {
                        foreach (var item1 in item.Contas)
                        {
                            if (despesas.Exists(d => d.Id == item1.Id))
                                continue;

                            DespesaTotalizadorDTO despesaDto = new DespesaTotalizadorDTO();
                            despesaDto.NomeDespesa = item1.Nome;
                            despesaDto.ValorTotalDespesa = 0;
                            despesaDto.Id = item1.Id;

                            despesas.Add(despesaDto);
                        }

                    }
                }
            }

            if (SetorSelecionado.GetType() == typeof(Setor))
            {
                //  AdicionarDespesaDeViagem(despesas, despesaDeViagem);
                DespesaTotalizadorDTO ViagemHospedagem = new DespesaTotalizadorDTO();
                ViagemHospedagem.NomeDespesa = "VIAGEM/HOSPEDAGEM";
                if (despesaDeViagem > 0)
                {
                    ViagemHospedagem.ValorTotalDespesa = listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.Viagem && a.VersaoFinal).Sum(a => a.Despesas.Sum(d => d.ValorTotalPassagem + d.ValorTotalDiaria));
                    despesas.Where(d => d.NomeDespesa == "CONDUCAO (TAXI,METRO,ONIBUS E TREM)").FirstOrDefault().ValorTotalDespesa += listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.Viagem && a.VersaoFinal).Sum(a => a.Despesas.Sum(d => d.ValorTotalTaxi));
                    despesas.Where(d => d.NomeDespesa == "LANCHES E REFEICOES").FirstOrDefault().ValorTotalDespesa += listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.Viagem && a.VersaoFinal).Sum(a => a.Despesas.Sum(d => d.ValorTotalRefeicao));
                }
                else
                    ViagemHospedagem.ValorTotalDespesa = 0;

                despesas.Add(ViagemHospedagem);

            }

            Despesas = despesas;

            rptOrcamentos.DataSource = Despesas.OrderBy(x => x.NomeDespesa);
            rptOrcamentos.DataBind();
        }