Example #1
0
        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));
        }
Example #2
0
        // 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));
        }
Example #3
0
        // 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);
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
        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));
        }