public ActionResult BuscarVeiculoPorPlaca(string placa, string origem = null) { this.CarregaComboModelo(); this.CarregaComboFabricante(); ViewBag.OrigemFormulario = origem; Models.VeiculoModel veiculo = new Models.VeiculoModel(); veiculo.Placa = placa; return(View("../Cadastrar/Veiculo", veiculo)); }
// GET: Venda/Comprar public ActionResult Index() { this.FormaPagamento(); Models.CompraModel comprar = new Models.CompraModel(); Models.VeiculoModel veiculo = (Models.VeiculoModel)Session["Veiculo"]; comprar.Veiculo = veiculo; return(View(comprar)); }
// GET: Vender public ActionResult Index() { this.FormaPagamento(); Models.VendaModel venda = new Models.VendaModel(); Models.VeiculoModel veiculo = (Models.VeiculoModel)Session["Veiculo"]; venda.Veiculo = veiculo; return View(venda); }
public ActionResult PesquisarVeiculo(string placa, string controlador = null) { if (string.IsNullOrWhiteSpace(placa)) { ModelState.AddModelError(string.Empty, "Informe a placa do veículo!"); return(controlador == null?View("Index") : View($"{controlador}/Index")); } else if (!Veiculos.Util.Validacao.EPlacaValidar(placa)) { ModelState.AddModelError(string.Empty, "Placa do veículo informada está em formato incorreto!"); return(controlador == null?View("Index") : View($"{controlador}/Index")); } Veiculos.Ioc.Service.Service <Ioc.Core.Data.Veiculo> serviceVeiculo = new Ioc.Service.Service <Ioc.Core.Data.Veiculo>(); Ioc.Core.Data.Veiculo veiculo = serviceVeiculo.Buscar(m => m.Placa == placa); if (veiculo == null || veiculo.Id == 0) { var cadastrarController = DependencyResolver.Current.GetService <CadastrarController>(); cadastrarController.ControllerContext = new ControllerContext(this.Request.RequestContext, cadastrarController); var result = cadastrarController.BuscarVeiculoPorPlaca(placa, "Comprar"); return(result); } var v = new Models.VeiculoModel() { Id = veiculo.Id, Ano = veiculo.AnoFabricacao, Chassi = veiculo.Chassi, Cilindradas = veiculo.Cilindradas, Placa = veiculo.Placa, IdModelo = veiculo.Modelo.Id, DescricaoModelo = veiculo.Modelo.Descricao, IdFabricante = veiculo.Modelo.Fabricante.Id, DescricaoFabricante = veiculo.Modelo.Fabricante.Descricao }; Models.CompraModel compra = new Models.CompraModel(); compra.Veiculo = v; this.FormaPagamento(); Session.Remove("Veiculo"); Session["Veiculo"] = v; return(controlador == null?View() : View($"{controlador}/Index", compra)); }
public ActionResult RegistrarVenda(Models.VendaModel model) { foreach (var erro in ModelState.Where(e => e.Key.StartsWith("Veiculo"))) { erro.Value.Errors.Clear(); } if (!ModelState.IsValid) { this.FormaPagamento(); Models.VeiculoModel veiculo = (Models.VeiculoModel)Session["Veiculo"]; model.Veiculo = veiculo; return View("Index", model); } Ioc.Core.Data.Venda venda = new Ioc.Core.Data.Venda() { Data = model.Data, Comissao = model.Comissao, Desconto = model.Desconto, IdStatusVenda = 3, IdUsuario = int.Parse(User.Identity.GetUserId().ToString()), ValorTotal = model.Pagamentos.Sum(f => f.Quantia), IdVeiculo = model.Veiculo.Id, Obs = model.Obs, }; Veiculos.Ioc.Service.Service<Ioc.Core.Data.Venda> servicoVenda = new Ioc.Service.Service<Ioc.Core.Data.Venda>(); venda = servicoVenda.Inserir(venda); if (venda.Id > 0) { Veiculos.Ioc.Service.Service<Ioc.Core.Data.PartePagamento> servicoPP = new Ioc.Service.Service<Ioc.Core.Data.PartePagamento>(); foreach (var pag in model.Pagamentos) { Ioc.Core.Data.PartePagamento pp = new Ioc.Core.Data.PartePagamento() { Quantia = pag.Quantia, IdFormaPagamento = pag.IdFormaPagamento, IdVenda = venda.Id }; if (pag.IdCompra > 0) pp.IdCompra = pag.IdCompra; servicoPP.Inserir(pp); } if (User.IsInRole("Gerente")) { StatusAtualizacao.VeiculoAtualizar(new Ioc.Core.Data.Veiculo() { Id = model.Veiculo.Id }, StatusAtualizacao.StatusVeiculo.NaoPertenceLoja); foreach (var pag in model.Pagamentos.Where(f => f.IdCompra > 0)) { Veiculos.Ioc.Service.Service<Ioc.Core.Data.Compra> servicoCompra = new Ioc.Service.Service<Ioc.Core.Data.Compra>(); var compra = servicoCompra.Buscar(pag.IdCompra); StatusAtualizacao.VeiculoAtualizar(new Ioc.Core.Data.Veiculo() { Id = compra.IdVeiculo }, StatusAtualizacao.StatusVeiculo.NaoPertenceLoja); } StatusAtualizacao.VendaAtualizar(venda, StatusAtualizacao.StatusVenda.Autorizada); return RedirectToAction("Home").WithSuccess("Venda salva com sucesso!"); } else { StatusAtualizacao.VeiculoAtualizar(new Ioc.Core.Data.Veiculo() { Id = model.Veiculo.Id }, StatusAtualizacao.StatusVeiculo.EmProcessoVenda); foreach (var pag in model.Pagamentos.Where(f => f.IdCompra > 0)) { Veiculos.Ioc.Service.Service<Ioc.Core.Data.Compra> servicoCompra = new Ioc.Service.Service<Ioc.Core.Data.Compra>(); var compra = servicoCompra.Buscar(pag.IdCompra); StatusAtualizacao.VeiculoAtualizar(new Ioc.Core.Data.Veiculo() { Id = compra.IdVeiculo }, StatusAtualizacao.StatusVeiculo.EmProcessoVenda); } StatusAtualizacao.VendaAtualizar(venda, StatusAtualizacao.StatusVenda.AguardandoAutorizacao); return RedirectToAction("Home").WithInfo("Aguardando autorização do gerente."); } } return View("Index", model); }
public ActionResult Pesquisar(string placa, string controlador, string acao) { if (string.IsNullOrWhiteSpace(placa)) { ModelState.AddModelError(string.Empty, "Informe a placa do veículo!"); return(View("Placa")); } else if (!Veiculos.Util.Validacao.EPlacaValidar(placa)) { ModelState.AddModelError(string.Empty, "Placa do veículo informada está em formato incorreto!"); return(View("Placa")); } Veiculos.Ioc.Service.Service <Ioc.Core.Data.Veiculo> service = new Ioc.Service.Service <Ioc.Core.Data.Veiculo>(); Ioc.Core.Data.Veiculo veiculo = veiculo = service.Buscar(m => m.Placa == placa); if (veiculo == null || veiculo.Id == 0) { if (controlador.Equals("Vender")) { return(View("Placa").WithInfo("Veículo não localizado!")); } var cadastrarController = DependencyResolver.Current.GetService <CadastrarController>(); cadastrarController.ControllerContext = new ControllerContext(this.Request.RequestContext, cadastrarController); var result = cadastrarController.BuscarVeiculoPorPlaca(placa, controlador); return(result); } //Registrar Compra: Fluxo Alternativo (2): o veículo está cadastrado no sistema e está com status diferente de NÃO PERTENCE À LOJA. else if (veiculo != null && veiculo.Id > 0 && controlador.Equals("Comprar") && veiculo.IdStatusVeiculo != 3) { return(View("Placa").WithInfo("Operação não é permitida, pois o veículo já pertence à loja!")); } //Registrar venda: Fluxo Alternativo (2): veículo não está cadastrado no sistema ou seu status é NÃO PERTENCE À LOJA. else if (veiculo != null && veiculo.Id > 0 && controlador.Equals("Vender") && veiculo.IdStatusVeiculo == 3) { return(View("Placa").WithInfo("Operação não é permitida, pois o veículo não pertence à loja!")); } //Registrar venda: Fluxo Alternativo (2): veículo está com status EM PROCESSO DE VENDA. else if (veiculo != null && veiculo.Id > 0 && controlador.Equals("Vender") && veiculo.IdStatusVeiculo == 2) { return(View("Placa").WithInfo("Veículo está sendo negociado em outra transação!")); } var v = new Models.VeiculoModel() { Id = veiculo.Id, Ano = veiculo.AnoFabricacao, Chassi = veiculo.Chassi, Cilindradas = veiculo.Cilindradas, Placa = veiculo.Placa, IdModelo = veiculo.Modelo.Id, DescricaoModelo = veiculo.Modelo.Descricao, IdFabricante = veiculo.Modelo.Fabricante.Id, DescricaoFabricante = veiculo.Modelo.Fabricante.Descricao, Imagem = (HttpPostedFileBase) new MemoryPostedFile(veiculo.Foto) }; Session.Remove("Veiculo"); Session["Veiculo"] = v; return(RedirectToAction(acao, controlador)); }