/*ADICIONA UM PRODUTO NO CARRINHO*/ public bool AdicionarProduto(int stockItemId) { try { CarrinhoDAL carrinhoDAL = new CarrinhoDAL(conStr); EstoqueDAL estoqueDAL = new EstoqueDAL(conStr); //Se o item estiver disponivel, insere o produto no carrinho if (estoqueDAL.dbItemDisponivel(stockItemId)) { //Insere na base carrinhoDAL.dbInserirProduto(ObterCarrinhoAtivo().ID, stockItemId); //Altera o status do produto no estoque para 'IN CART', ou seja, dentro do carrinho //estoqueDAL.dbAlterarStatusProduto(stockItemId, "IN CART"); //Atualiza a sessão AtualizaCarrinho(); return(true); } else { AtualizaCarrinho(); return(false); } } catch (Exception ex) { throw new Exception(ex.Message); } }
/*ATUALIZA A SESSAO DO CARRINHO COM O QUE ESTÁ NA BASE. DEVE SER CHAMADO SEMPRE QUE EXISTIR UMA ALTERAÇÃO NO CARRINHO*/ private void AtualizaCarrinho() { CarrinhoDAL DAL = new CarrinhoDAL(conStr); int idObterCarrinhoAtivo = ObterCarrinhoAtivo().ID; SessaoCarrinho = DAL.dbObterCarrinho(idObterCarrinhoAtivo); }
/*INSERE UM CARRINHO NA BASE, E O COLOCA NA SESSSAO*/ public void CriarCarrinho() { CarrinhoDAL DAL = new CarrinhoDAL(conStr); //Cria um carrinho no banco, retornando o seu ID e armazenando na variavel int idCarrinho = DAL.dbCriarCarrinho(); //Busca do Banco todos os dados deste carrinho e armazena na sessao SessaoCarrinho = DAL.dbObterCarrinho(idCarrinho); }
public CarrinhoController(ApplicationContext context, UserManager <AppIdentityUser> userManager) { this.context = context; this.userManager = userManager; caixaDAL = new CaixaDAL(context); produtoDAL = new ProdutoDAL(context); clienteDAL = new ClienteDAL(context); carrinhoDAL = new CarrinhoDAL(context); historicoDAL = new HistoricoDAL(context); colaboradorDAL = new ColaboradorDAL(context); }
/*RETORNA O CARRINHO ATIVO*/ public Carrinho ObterCarrinhoAtivo() { CarrinhoDAL DAL = new CarrinhoDAL(conStr); if (ExisteCarrinho()) { return(SessaoCarrinho); } else { throw new Exception("ERRO: Não existe carrinho ativo!"); } }
/*ATRELA O CARRINHO AO USUARIO*/ public void AtrelarCarrinho(int userId, int cartId) { try { CarrinhoDAL carrinhoDAL = new CarrinhoDAL(conStr); carrinhoDAL.dbAtrelarUsuario(userId, cartId); //Atualiza a sessão AtualizaCarrinho(); } catch (Exception ex) { throw new Exception(ex.Message); } }
/*REMOVE UM PRODUTO DO CARRINHO*/ public void RemoverProduto(int cartItemId) { try { CarrinhoDAL carrinhoDAL = new CarrinhoDAL(conStr); EstoqueDAL estoqueDAL = new EstoqueDAL(conStr); //Remove o produto do carrinho carrinhoDAL.dbRemoverProduto(ObterCarrinhoAtivo().ID, cartItemId); //Altera o status do produto no estoque para 'AVAILABLE', tendo sido removido do carrinho estoqueDAL.dbAlterarStatusProduto(cartItemId, "AVAILABLE"); //Atualiza a sessão AtualizaCarrinho(); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void CheckoutCarrinho() { CarrinhoDAL carrinhoDAL = new CarrinhoDAL(conStr); TransacaoDAL transacaoDAL = new TransacaoDAL(conStr); EstoqueDAL estoqueDAL = new EstoqueDAL(conStr); try { int idCarrinho = ObterCarrinhoAtivo().ID; int?idCupom = ObterCarrinhoAtivo().Cupom != null?ObterCarrinhoAtivo().Cupom.ID : (int?)null; //Se todos os produtos dentro do carrinho ainda estão disponiveis para a venda if (RevisaoCarrinho()) { //Modifica o status do carrinho para convertido carrinhoDAL.dbAlterarStatus(idCarrinho, "CONVERTED"); //Modifica o status dos items do estoque para vendido foreach (ItemEstoque item in ObterCarrinhoAtivo().Produtos) { estoqueDAL.dbAlterarStatusProduto(item.ID, "SOLD"); } //Insere a transação na base; transacaoDAL.dbInserirTransacao(idCarrinho, ObterCarrinhoAtivo().ValorTotal(), idCupom); } else { //TODO - FUNCAO DE RECUPERACAO DE INTEGRIDADE; //1 - BUSCA OS PRODUTOS QUE ESTÃO VENDIDOS NO CARRINHO; //2 - REMOVE ELES DO CARRINHO //3 - PEDE DESCULPA } } catch (Exception ex) { throw new Exception(ex.Message); } }
/*DEPRECATED - ABANDONA O CARRINHO*/ public void AbandonarCarrinho(int cartId) { CarrinhoDAL carrinhoDAL = new CarrinhoDAL(conStr); EstoqueDAL estoqueDAL = new EstoqueDAL(conStr); try { //Obtem o carrinho Carrinho carrinho = carrinhoDAL.dbObterCarrinho(cartId); //Status do carrinho fica como abandonado carrinhoDAL.dbAbandonarCarrinho(carrinho.ID); //Muda o status dos produtos do carrinho para available novamente foreach (ItemEstoque item in carrinho.Produtos) { estoqueDAL.dbAlterarStatusProduto(item.ID, "AVAILABLE"); } } catch (Exception ex) { throw new Exception(ex.Message); } }