public void AddToCart(int id)
        {
            // Retorna o livro do BD
            ShoppingCartId = GetCartId();

            var cartItem = _db.ShoppingCartItems.SingleOrDefault(
                c => c.cart_id == ShoppingCartId &&
                c.livro_id == id);

            if (cartItem == null)
            {
                // necessário instância dessa forma para não ter abiguidade do nome da classe
                Dominio.Livro.Livro livro      = new Dominio.Livro.Livro();
                LivroDAO            livroDAO   = new LivroDAO();
                EstoqueDAO          estoqueDAO = new EstoqueDAO();
                Estoque             estoque    = new Estoque();

                livro.ID         = id;
                estoque.Livro.ID = livro.ID;

                //entidades = commands["CONSULTAR"].execute(livro).Entidades;
                entidades = livroDAO.Consultar(livro);
                livro     = (Dominio.Livro.Livro)entidades.ElementAt(0);

                //entidades = commands["CONSULTAR"].execute(estoque).Entidades;
                entidades = estoqueDAO.Consultar(estoque);
                estoque   = (Estoque)entidades.ElementAt(0);

                // Cria um novo CartItem se não existir
                cartItem = new CartItem
                {
                    item_id      = Guid.NewGuid().ToString(),
                    livro_id     = livro.ID,
                    titulo_livro = livro.Titulo,
                    valor_venda  = estoque.ValorVenda,
                    cart_id      = ShoppingCartId,
                    quantidade   = 1,
                    data_criada  = DateTime.Now
                };

                _db.ShoppingCartItems.Add(cartItem);
            }
            else
            {
                // se o item não existir no carrinho,
                // então adiciona um em quantidade
                cartItem.quantidade++;
            }
            _db.SaveChanges();
        }
예제 #2
0
        public string processar(EntidadeDominio entidade)
        {
            StringBuilder sb = new StringBuilder();

            if (entidade.GetType() == typeof(Estoque))
            {
                Estoque estoque = (Estoque)entidade;
                List <EntidadeDominio> entidades = new List <EntidadeDominio>();

                // verifica se livro foi selecionado
                if (estoque.Livro.ID == 0)
                {
                    sb.Append("ID DO LIVRO É UM CAMPO OBRIGATÓRIO! <br />");
                }
                else
                {
                    Estoque estoqueAux = new Estoque();
                    estoqueAux.Livro.ID = estoque.Livro.ID;
                    EstoqueDAO estoqueDAO = new EstoqueDAO();
                    entidades = estoqueDAO.Consultar(estoqueAux);
                }

                // verifica se quantidade foi informada e se é maior que 0
                if (estoque.Qtde <= 0)
                {
                    sb.Append("QUANTIDADE DE ENTRADA EM ESTOQUE DEVE SER MAIOR QUE ZERO! <br />");
                }
                else
                {
                    if (entidades.Count > 0)
                    {
                        estoque.Qtde += ((Estoque)entidades.ElementAt(0)).Qtde;
                    }
                }

                // verifica se quantidade foi informada e se é maior que 0
                if (estoque.ValorCusto <= 0)
                {
                    sb.Append("VALOR DE CUSTO DEVE SER MAIOR QUE ZERO! <br />");
                }
                else
                {
                    if (entidades.Count > 0)
                    {
                        // verifica se valor de custo que tem no BD é maior que o valor informado
                        if (estoque.ValorCusto < ((Estoque)entidades.ElementAt(0)).ValorCusto)
                        {
                            // se for maior, atribui o valor vindo do BD no valor de custo
                            estoque.ValorCusto = ((Estoque)entidades.ElementAt(0)).ValorCusto;
                        }
                    }

                    entidades = new List <EntidadeDominio>();
                    LivroDAO livroDAO = new LivroDAO();
                    entidades = livroDAO.Consultar(estoque.Livro);

                    if (entidades.Count > 0)
                    {
                        // aplicação da margem de lucro do grupo de precificação
                        estoque.ValorVenda = estoque.ValorCusto + (estoque.ValorCusto * ((Livro)entidades.ElementAt(0)).GrupoPrecificacao.MargemLucro);
                    }
                    else
                    {
                        sb.Append("ERRO NA BUSCA DO GRUPO DE PRECIFICAÇÃO DO LIVRO! <br />");
                    }
                }

                if (estoque.Fornecedor.ID == 0)
                {
                    sb.Append("UM FORNECEDOR DEVE SER SELECIONADO,POIS É UM CAMPO OBRIGATÓRIO! <br />");
                }
            }
            else
            {
                sb.Append("ESTOQUE NÃO PODE SER VALIDADO, POIS ENTIDADE NÃO É ESTOQUE! <br />");
            }

            if (sb.Length != 0)
            {
                return(sb.ToString());
            }

            return(null);
        }