public void saveOrcamento(Orcamentos orcamento)
        {
            if (orcamento.Status == 1 && !orcamento.IDPedido.HasValue)
            orcamento.IDPedido = OrcamentoDAO.getMaxIDPedido() + 1;

              OrcamentoDAO.saveOrcamento(orcamento);
        }
        public OrcamentoViewModel LoadOrcamentoModel(Orcamentos orcamento)
        {
            var model = new OrcamentoViewModel();
              model.IDOrcamento = orcamento.IDOrcamento;
              model.Cliente = orcamento.IDCliente;
              model.NomeCliente = orcamento.Clientes.Nome;
              model.TipoTransporte = orcamento.TipoTransporte;
              model.CustoTransporte = orcamento.PrecoTransporte;
              model.CotacaoDolar = orcamento.CotacaoDolar;
              model.DataValidade = orcamento.DataValidade;
              model.DataEmissao = orcamento.DataEmissao;
              model.Status = orcamento.Status;
              model.DescricaoStatus = EnumHelper.getEnumDescription((StatusOrcamento)orcamento.Status);
              model.Pagamentos = LoadPagamentosModel(orcamento.PagamentosOrcamento);
              model.FormaPagamento = model.Pagamentos.Count;
              model.Itens = LoadItensModel(orcamento);
              model.ValorTotal = Math.Round(orcamento.ItensOrcamento.Sum(c => c.PrecoUnitario * c.Quantidade * orcamento.CotacaoDolar) + orcamento.PrecoTransporte.GetValueOrDefault(), 2);
              model.ExibeBotaoCriarPedido = orcamento.Status == (int)StatusOrcamento.EmAprovacao && orcamento.Orcamento;
              model.EhServico = orcamento.Servico;
              model.IDPedido = orcamento.IDPedido;

              if (model.EhServico)
            model.urlOrcamento = Url.Action("IndexServico", "Orcamento", new { area = "Financeiro" });
              else
            model.urlOrcamento = Url.Action("Index", "Orcamento", new { area = "Financeiro" });

              return model;
        }
        private OrcamentoViewModel getViewModel(Orcamentos orcamento)
        {
            var model = new OrcamentoViewModel()
            {
                NomeCliente = orcamento.Clientes.Nome,
                IDOrcamento = orcamento.IDOrcamento,
                DataEmissao = orcamento.DataEmissao,
                Status = orcamento.Status,
                ValorTotal = orcamento.ItensOrcamento.Sum(c => c.PrecoUnitario * c.Quantidade)
            };

            return model;
        }
        protected ICollection<PagamentosOrcamento> LoadPagamentosOrcamento(Orcamentos orcamento, List<PagamentoOrcamentoViewModel> pagamentosModel)
        {
            var pagamentosOrcamentoNew = new List<PagamentosOrcamento>();

              foreach (var pagamentoModel in pagamentosModel) {
            var pagamento = orcamento.PagamentosOrcamento.Where(c => c.DataPagamento == pagamentoModel.Data).FirstOrDefault();
            if (pagamento == null)
              pagamento = new PagamentosOrcamento() {
            DataPagamento = pagamentoModel.Data
              };

            pagamento.Preco = pagamentoModel.Preco;
            pagamentosOrcamentoNew.Add(pagamento);
              }

              return pagamentosOrcamentoNew;
        }
 protected Orcamentos LoadOrcamento(Orcamentos orcamento, OrcamentoViewModel model)
 {
     orcamento.IDCliente = model.Cliente.Value;
       orcamento.TipoTransporte = model.TipoTransporte;
       orcamento.PrecoTransporte = model.CustoTransporte;
       orcamento.CotacaoDolar = model.CotacaoDolar.Value;
       orcamento.DataValidade = model.DataValidade.Value;
       orcamento.IDEmpresa = visitor.IDEmpresa;
       orcamento.IDUsuario = visitor.ID;
       orcamento.DataEmissao = DateTime.Now;
       orcamento.Servico = model.EhServico;
       orcamento.PagamentosOrcamento = LoadPagamentosOrcamento(orcamento, model.Pagamentos);
       orcamento.ItensOrcamento = LoadItensOrcamento(orcamento.ItensOrcamento, model.Itens);
       orcamento.Status = (int)StatusOrcamento.EmAprovacao;
       orcamento.Orcamento = true;
       return orcamento;
 }
        protected List<ItemOrcamentoViewModel> LoadItensModel(Orcamentos orcamento)
        {
            var itensModel = new List<ItemOrcamentoViewModel>();

              foreach (var item in orcamento.ItensOrcamento) {
            itensModel.Add(new ItemOrcamentoViewModel() {
              IDEquipamento = item.IDEquipamento,
              PrecoEquipamentoDolar = item.PrecoUnitario,
              Quantidade = item.Quantidade,
              PrecoEquipamentoReal = Math.Round(item.Quantidade * item.PrecoUnitario * orcamento.CotacaoDolar, 2),
              Servicos = GetServicosByEquipamento(item.IDEquipamento)
            });
              }

              return itensModel;
        }