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;
        }
        public ActionResult Create(OrcamentoViewModel model)
        {
            if (!ModelState.IsValid)
            return View(model);

              var orcamento = LoadNewOrcamento(model);
              OrcamentoService.saveOrcamento(orcamento);
              this.addMensagemSucesso("Orçamento criado com sucesso.");
              if (model.EhServico)
            return RedirectToAction("IndexServico");
              return RedirectToAction("Index");
        }
 public ActionResult Create(bool? servico)
 {
     OrcamentoViewModel model = new OrcamentoViewModel();
       model.CotacaoDolar = CambioServices.GetTaxaCambioDolar();
       model.Itens.Add(new ItemOrcamentoViewModel());
       model.EhServico = servico.GetValueOrDefault();
       if(servico.GetValueOrDefault())
     model.urlOrcamento = Url.Action("IndexServico", "Orcamento", new { area = "Financeiro" });
       else
     model.urlOrcamento = Url.Action("Index", "Orcamento", new { area = "Financeiro" });
       prepareModelLists(model);
       return View(model);
 }
 private void DePara(OrcamentoViewModel view)
 {
     this.Cliente = view.Cliente;
     this.CotacaoDolar = view.CotacaoDolar;
     this.CustoTransporte = view.CustoTransporte;
     this.DataEmissao = view.DataEmissao;
     this.DataValidade = view.DataValidade;
     this.Equipamentos = view.Equipamentos;
     this.FormaPagamento = view.FormaPagamento;
     this.FormasPagamento = view.FormasPagamento;
     this.IDOrcamento = view.IDOrcamento;
     this.Itens = view.Itens;
     this.NomeCliente = view.NomeCliente;
     this.Pagamentos = view.Pagamentos;
     this.Status = view.Status;
     this.TiposTransporte = view.TiposTransporte;
     this.TipoTransporte = view.TipoTransporte;
     this.ValorTotal = view.ValorTotal;
 }
 public OrcamentoBoletoViewModel(OrcamentoViewModel view, bool isSelected)
 {
     DePara(view);
     this.IsSelected = isSelected;
 }
 public OrcamentoBoletoViewModel(OrcamentoViewModel view)
 {
     DePara(view);
 }
        public ActionResult RenderPaymentConditions(double valorTotal, double formaPagamento)
        {
            OrcamentoViewModel model = new OrcamentoViewModel();
              model.Pagamentos = GeneratePaymentItens(valorTotal, formaPagamento);

              return PartialView("_ListPagamentos", model);
        }
        public ActionResult Edit(int id, OrcamentoViewModel model)
        {
            if (!ModelState.IsValid)
            return View(model);

              var orcamento = OrcamentoService.getOrcamento(id);
              if (orcamento == null) {
            this.addMensagemErro("Orçamento não encontrado.");
            return RedirectToAction("Index");
              }

              orcamento = LoadOrcamento(orcamento, model);
              OrcamentoService.saveOrcamento(orcamento);
              this.addMensagemSucesso("Orçamento alterado com sucesso.");

              if (model.EhServico)
            return RedirectToAction("IndexServico");

              return RedirectToAction("Index");
        }
        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;
        }
 public OrcamentoBoletoViewModel(OrcamentoViewModel view, bool isSelected)
 {
     DePara(view);
     this.IsSelected = isSelected;
 }
 public OrcamentoBoletoViewModel(OrcamentoViewModel view)
 {
     DePara(view);
 }
        protected void prepareModelLists(OrcamentoViewModel model)
        {
            Dictionary<String, object> dictHtmlAtt = new Dictionary<string, object>();
              dictHtmlAtt.Add("data-value", 0.0);
              dictHtmlAtt.Add("data-min-value", 0.0);
              dictHtmlAtt.Add("data-max-value", 0.0);

              ExtendedSelectListItem firstItem = new ExtendedSelectListItem() { Value = "", Text = "", htmlAttributes = dictHtmlAtt };
              model.Equipamentos = EquipamentoService.getEquipamentos(1).Select(c => {
            double precoMedio = Math.Round((c.PrecoMaximo + c.PrecoMinimo) / 2, 2);
            dictHtmlAtt = new Dictionary<string, object>();
            dictHtmlAtt.Add("data-value", precoMedio);
            dictHtmlAtt.Add("data-min-value", c.PrecoMinimo);
            dictHtmlAtt.Add("data-max-value", c.PrecoMaximo);
            return new ExtendedSelectListItem() {
              Value = c.IDEquipamento.ToString(),
              Text = c.Descricao,
              htmlAttributes = dictHtmlAtt
            };

              }).ToList();
              model.Equipamentos.Insert(0, firstItem);
              Dictionary<int, String> dictValores = EnumHelper.getDictionaryValueDescription(TiposTransporte.Correios);
              model.TiposTransporte = dictValores.Select(c => new SelectListItem() { Value = c.Key.ToString(), Text = c.Value }).ToList();
              model.TiposTransporte.Insert(0, firstItem);

              model.FormasPagamento.Add(firstItem);
              for (int i = 1; i <= 10; i++) {
            model.FormasPagamento.Add(new SelectListItem() { Text = i + "x", Value = i.ToString() });
              }
        }
 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 Orcamentos LoadNewOrcamento(OrcamentoViewModel model)
 {
     return LoadOrcamento(new Orcamentos(), model);
 }