/*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); } }
/*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); } }
public List<ItemEstoque> ListarItemEstoque() { EstoqueDAL DAL = new EstoqueDAL(conStr); return DAL.dbListarItemsEstoque(); }
/*REVISA, ANTES DE EFETIVAR A TRANSAÇÃO, SE OS PRODUTOS CONTINUAM DISPONIVEIS*/ private bool RevisaoCarrinho() { EstoqueDAL estoqueDAL = new EstoqueDAL(conStr); foreach (ItemEstoque item in ObterCarrinhoAtivo().Produtos) { if (!estoqueDAL.dbItemDisponivel(item.ID)) { return false; } } return true; }
/*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); } }