예제 #1
0
        /*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);
            }
        }
예제 #2
0
        /*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);
        }
예제 #3
0
        /*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);
        }
예제 #4
0
 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);
 }
예제 #5
0
        /*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!");
            }
        }
예제 #6
0
        /*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);
            }
        }
예제 #7
0
        /*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);
            }
        }
예제 #8
0
        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);
            }
        }
예제 #9
0
        /*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);
            }
        }