public IActionResult _UsarCodigoPartial(string cod) { CodigoPromocional codigo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod && !c.Inativo, c => c).FirstOrDefault(); CodigoPromocionalModel vm = null; if (codigo == null) { ViewData["Error"] = "O código não existe."; } else { if (codigo.UsosRestantes <= 0) { ViewData["Error"] = "Esse código expirou. Tente outro código. \n"; } else { _vh = new CodigoPromocionalViewHelper { Entidades = new Dictionary <string, object> { [typeof(CodigoPromocional).Name] = codigo } }; vm = (CodigoPromocionalModel)_vh.ViewModel; } } return(PartialView("../CarrinhoCompra/PartialViews/_UsarCodigoPartial", vm)); }
public IActionResult _EditarCodigoPromoPartial(string cod) { ViewBag.Operacao = "edit"; CodigoPromocional codigoPromo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod, c => c).FirstOrDefault(); return(PartialView("../Admin/PartialViews/_ConfigCodigoPromoPartial", codigoPromo)); }
protected override void ToViewModel() { CodigoPromocional cupom = (CodigoPromocional)Entidades[typeof(CodigoPromocional).Name]; CodigoPromocionalModel vm = new CodigoPromocionalModel { Codigo = cupom.Codigo.ToString(), Valor = cupom.Valor }; _viewModel = vm; }
public IActionResult InativarReativarCodigoPromo(string cod) { CodigoPromocional codigoPromo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod, c => c).FirstOrDefault(); codigoPromo.Inativo = !codigoPromo.Inativo; string msg = _facade.Editar(codigoPromo); if (!String.IsNullOrEmpty(msg)) { TempData["Alert"] = msg; } return(RedirectToAction(nameof(ConfigLoja))); }
public IActionResult UsarCodigo(string cod) { Cliente clienteDb = GetClienteDb(); Pedido pedido = GetPedidoNaoFinalizado(clienteDb); CodigoPromocional codigo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod && !c.Inativo, c => c).FirstOrDefault(); string msg = ""; if (codigo == null) { TempData["Alert"] = "Código inválido. \n"; } else { if (codigo.UsosRestantes <= 0) { TempData["Alert"] = "Esse código expirou. Tente outro código. \n"; } else { pedido.CodigoPromocional = codigo; if (pedido.CartaoPedidos.Where(c => c.Valor > pedido.CodigoPromocional.Valor).Count() > 0) { pedido.CartaoPedidos.Where(c => c.Valor > pedido.CodigoPromocional.Valor).First().Valor -= pedido.CodigoPromocional.Valor; } else { pedido.CartaoPedidos = new List <CartaoPedido> { new CartaoPedido { Cartao = clienteDb.Cartoes.Where(c => c.EFavorito && !c.Inativo).FirstOrDefault(), Valor = pedido.ValorTotal } }; } msg = _facade.Editar(pedido); } } if (msg != "") { TempData["Alert"] = msg; } return(RedirectToAction(nameof(FinalizarCompra))); }
public IActionResult EditarCodigoPromo(CodigoPromocional cod) { CodigoPromocional codDb = _facade.GetEntidade(cod); codDb.Valor = codDb.Valor; codDb.UsosRestantes = cod.UsosRestantes; string msg = _facade.Editar(codDb); if (!String.IsNullOrEmpty(msg)) { TempData["Alert"] = msg; } return(RedirectToAction(nameof(ConfigLoja))); }
public IActionResult AdicionarCodigoPromo(CodigoPromocional cod) { if (_facade.Query <CodigoPromocional>(c => c.Codigo == cod.Codigo, c => c).Count() > 0) { TempData["Alert"] = "Um código promocional com o código " + cod.Codigo + " já existe. Favor usar outro."; return(RedirectToAction(nameof(ConfigLoja))); } string msg = _facade.Cadastrar(cod); if (!String.IsNullOrEmpty(msg)) { TempData["Alert"] = msg; } return(RedirectToAction(nameof(ConfigLoja))); }
public IActionResult Comprar() { Cliente clienteDb = GetClienteDb(); Pedido p = GetPedidoNaoFinalizado(clienteDb); Carrinho c = GetCarrinho(); if (p == null) { TempData["Alert"] = "Ocorreu um erro. Tente novamente\n."; return(RedirectToAction(nameof(FinalizarCompra))); } IEnumerable <Livro> livros = p.LivrosPedidos.Select(l => l.Livro).Distinct(); p.ValorTotal = p.CalcularValorTotal(); if (p.Cupom != null || p.CodigoPromocional != null) { Cupom cupom = p.Cupom ?? new Cupom { Valor = 0 }; CodigoPromocional codigo = p.CodigoPromocional ?? new CodigoPromocional { Valor = 0 }; if (cupom.Valor + codigo.Valor >= p.ValorTotal) { foreach (var cupomCliente in clienteDb.Cupons) { if (cupomCliente.Valor + codigo.Valor < p.ValorTotal) { TempData["Alert"] = "Você possui um cupom de troca que não ultrapassa o valor máximo. Use ele ao invés do atual!\n."; return(RedirectToAction(nameof(FinalizarCompra))); } } var diferenca = cupom.Valor + codigo.Valor - p.ValorTotal; if (diferenca > 0) { addCupom(clienteDb, diferenca); } } } //Cupom if (p.Cupom != null) { p.Cupom.Inativo = true; } //Codigo if (p.CodigoPromocional != null) { p.CodigoPromocional.UsosRestantes -= 1; if (p.CodigoPromocional.UsosRestantes == 0) { p.CodigoPromocional.Inativo = true; } } //Atualização estoque foreach (var livro in livros) { var quantiaPedido = p.LivrosPedidos.Where(l => l.LivroId == livro.Id).Count(); livro.EstoqueBloqueado -= quantiaPedido; livro.Estoque -= quantiaPedido; //Inativação Automática de Livros fora de estoque if (livro.Estoque <= 0) { livro.Inativo = true; livro.Inativacoes.Add(new Inativacao { CategoriaId = 1, LivroId = livro.Id }); } } p.Status = StatusPedidos.Processamento; string msg = _facade.Editar(p); //Limpar Carrinho (feito decrescente pois estou removendo da lista) msg += _facade.Deletar(c); if (msg != "") { TempData["Alert"] = msg; } return(RedirectToAction("Loja", "Livros")); }
protected override void ToViewModel() { PaginaFinalizarCompraModel vm = new PaginaFinalizarCompraModel(); Endereco endereco = (Endereco)Entidades[typeof(Endereco).Name]; IDictionary <CartaoCredito, double> cartoes = (IDictionary <CartaoCredito, double>)Entidades[typeof(IDictionary <CartaoCredito, double>).Name]; Cupom cupom = null; CodigoPromocional codigoPromo = null; if (Entidades.ContainsKey(typeof(Cupom).Name)) { cupom = (Cupom)Entidades[typeof(Cupom).Name]; } if (Entidades.ContainsKey(typeof(CodigoPromocional).Name)) { codigoPromo = (CodigoPromocional)Entidades[typeof(CodigoPromocional).Name]; } Carrinho carrinho = (Carrinho)Entidades[typeof(Carrinho).Name]; CarrinhoViewHelper carrinhoVh = new CarrinhoViewHelper { Entidades = new Dictionary <string, object> { [typeof(Carrinho).Name] = carrinho } }; vm.Pedido = (CarrinhoModel)carrinhoVh.ViewModel; DetalhesEnderecoViewHelper enderecoVh = new DetalhesEnderecoViewHelper { Entidades = new Dictionary <string, object> { [typeof(Endereco).Name] = endereco } }; vm.Endereco = (DetalhesEnderecoModel)enderecoVh.ViewModel; DetalhesCartaoViewHelper cartaoVh = new DetalhesCartaoViewHelper(); foreach (var entry in cartoes) { cartaoVh.Entidades = new Dictionary <string, object> { [typeof(CartaoCredito).Name] = entry.Key }; vm.Cartoes[(DetalhesCartaoModel)cartaoVh.ViewModel] = entry.Value; } if (cupom != null) { CupomViewHelper cupomVh = new CupomViewHelper { Entidades = new Dictionary <string, object> { [typeof(Cupom).Name] = cupom } }; vm.Cupom = (CupomModel)cupomVh.ViewModel; vm.Pedido.PrecoTotal -= vm.Cupom.Valor; } if (codigoPromo != null) { CodigoPromocionalViewHelper codigoVh = new CodigoPromocionalViewHelper { Entidades = new Dictionary <string, object> { [typeof(CodigoPromocional).Name] = codigoPromo } }; vm.CodigoPromo = (CodigoPromocionalModel)codigoVh.ViewModel; vm.Pedido.PrecoTotal -= vm.CodigoPromo.Valor; } vm.Frete = (double)Entidades[nameof(Pedido.Frete)]; _viewModel = vm; }
public IActionResult _InativarReativarCodigoPromoPartial(string cod) { CodigoPromocional codigoPromo = _facade.Query <CodigoPromocional>(c => c.Codigo == cod, c => c).FirstOrDefault(); return(PartialView("../Admin/PartialViews/_InativarReativarCodigoPartial", codigoPromo)); }