public virtual OrcamentoDeViagem CriarOrcamentoDeViagem(List<Orcamento> orcamentosGerenciamento, Departamento departamento, CentroDeCusto centroDeCusto, int ano) { Contract.Requires(centroDeCusto != null, "Centro de custo não informado."); Contract.Requires(departamento != null, "Departamento não informado."); var viagens = Viagens.Todos().ToList(); var diarias = Diarias.Todos().ToList(); OrcamentoDeViagem orcamento = new OrcamentoDeViagem(departamento, centroDeCusto, ano); orcamento.CriarDespesas(viagens, diarias); if (orcamentosGerenciamento == null) orcamentosGerenciamento = new List<Orcamento>(); GerenciadorDeOrcamentos gerenciador = new GerenciadorDeOrcamentos(); if (!gerenciador.PodeCriarOrcamento(orcamentosGerenciamento, departamento, centroDeCusto, TipoOrcamentoEnum.Viagem)) throw new Exception("Orçamento já tem dez versões"); orcamentosGerenciamento.Add(orcamento); gerenciador.InformarNomeOrcamento(orcamentosGerenciamento, orcamento, departamento, centroDeCusto, TipoOrcamentoEnum.Viagem); foreach (var orcamentoGerenciamento in orcamentosGerenciamento) { Orcamentos.Salvar(orcamentoGerenciamento); } return orcamento; }
public void OrcamentoDeViagemCriadoComDuasCidadesDuasViagensEDuasDiariasDeveTerDespesasCountIgualAQuarentaEOito() { Departamento Ti = new Setor("TI"); var gerenciamentoDeProjetos = new CentroDeCusto("Gerenciamento de Projetos"); var recursosExternos = new Conta("RecursosExternos", new TipoConta{Id = (int)TipoContaEnum.Outros}); var luz = new Conta("Luz", new TipoConta{Id = (int) TipoContaEnum.Outros}); gerenciamentoDeProjetos.AdicionarConta(luz); gerenciamentoDeProjetos.AdicionarConta(recursosExternos); Ti.AdicionarCentroDeCusto(gerenciamentoDeProjetos); var orcamentoDeViagem = new OrcamentoDeViagem(Ti, gerenciamentoDeProjetos, 2014); InserirCidadesTiposTicketETicketEViagem(); InserirDiarias(); InserirViagens(); InserirTipoTickets(); InserirTickets(); orcamentoDeViagem.CriarDespesas(Viagens, Diarias); Assert.IsTrue(orcamentoDeViagem.Despesas.Count == 48); }