Esempio n. 1
0
def exibe_produto(request, id, slug_do_produto):
    produto = get_object_or_404(Product, id=id)
    carrinho = Carrinho(request)
    qtd = carrinho.get_quantidade_total(produto.id)
    form = QuantidadeForm(initial={'quantidade': qtd, 'id': produto.id})

    return render(request, 'carrinho/exibe_produto.html', {'produto': produto})
Esempio n. 2
0
def remove_produto_carrinho(request):
    form = RemoveProdutoDoCarrinhoForm(request.POST)
    if form.is_valid():
        carrinho = Carrinho(request)
        carrinho.remover(form.cleaned_data['produto_id'])

        return exibe_carrinho(request)
    else:
        #print(form.errors) p/ debug
        raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 3
0
def atualiza_carrinho(request):
    form = QuantidadeForm(request.POST)
    if form.is_valid():
        produto_id = form.cleaned_data['produto_id']
        quantidade = form.cleaned_data['quantidade']

        carrinho = Carrinho(request)
        if (quantidade == 0):
            carrinho.remover(produto_id)
            preco_total = 0.0
        else:
            carrinho.atualiza(produto_id, quantidade)
            preco_total = carrinho.get_preco_total(produto_id)

        qtd = carrinho.get_quantidade_carrinho()
        preco_carrinho = carrinho.get_preco_carrinho()

        print('***** id do produto = ' + produto_id + '  quantidade = ' +
              str(quantidade) + '  preço total do produto = ' +
              str(preco_total))
        print('***** qtd no carrinho = ' + str(qtd) +
              '  valor do carrinho = ' + str(preco_carrinho))

        return render(request, 'carrinho/resposta_ajax.html')
    else:
        raise ValueError(
            'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 4
0
def atualiza_qtd_carrinho(request):
    form = EstoqueForm(request.POST)
    if form.is_valid():
        produto_id = form.cleaned_data['produto_id']
        estoque =  form.cleaned_data['estoque']

        carrinho = Carrinho(request)
        carrinho.alterar(produto_id, estoque)

        return exibe_carrinho(request)
    else:
        # print(form.errors) p/ debug
        raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 5
0
File: views.py Progetto: FBMLJ/web
def exibe_produto(request, id, slug_do_produto):
    produto = get_object_or_404(Produto, id=id)
    carrinho = Carrinho(request)
    qtd = carrinho.get_quantidade_total(id)
    form = QuantidadeForm(initial={
        'quantidade': qtd,
        'produto_id': signer.sign(id)
    })

    return render(request, 'carrinho/exibe_produto.html', {
        'produto': produto,
        'form': form
    })
Esempio n. 6
0
def adicionar_ao_carrinho(request):
    form = QuantidadeForm(request.POST)
    if form.is_valid():
        quantidade = form.cleaned_data['quantidade']
        produto_id = form.cleaned_data['produto_id']

        carrinho = Carrinho(request)
        carrinho.adicionar(produto_id, quantidade)

        return exibe_carrinho(request)
    else:
        print(form.errors)
        raise ValueError(
            'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 7
0
def exibe_carrinho(request):

    carrinho = Carrinho(request)

    lista_de_produtos_no_carrinho = carrinho.get_lista_de_produtos()
    produtos_no_carrinho = []
    valor_do_carrinho = 0
    for item in lista_de_produtos_no_carrinho:
        valor_do_carrinho = valor_do_carrinho + int(item['quantidade']) * Decimal(item['preco'])
        produtos_no_carrinho.append({'produto': item['produto'],
                                     'form': EstoqueForm(initial={'estoque': item['quantidade']})})

    return render(request, 'carrinho/produtos_no_carrinho.html',  {'produtos_no_carrinho': produtos_no_carrinho,
                                                                   'valor_do_carrinho': valor_do_carrinho})
Esempio n. 8
0
def adicionar_ao_carrinho(request):
    form = EstoqueForm(request.POST)
    print("anus")
    if form.is_valid():
        estoque = form.cleaned_data['estoque']
        produto_id = form.cleaned_data['produto_id']

        carrinho = Carrinho(request)
        carrinho.adicionar(produto_id, estoque)

        messages.add_message(request, messages.INFO, 'Produto cadastrado com sucesso.')
        return render(request,"produtos.html")
        #return exibe_carrinho(request)
    else:
        raise ValueError('Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 9
0
def exibe_carrinho(request):
    carrinho = Carrinho(request)
    produtos_no_carrinho = carrinho.get_produtos()

    lista_de_forms = []
    for produto in produtos_no_carrinho:
        lista_de_forms.append(
            QuantidadeForm(initial={
                'quantidade': produto['quantidade'],
                'produto_id': produto['id']
            }))

    valor_do_carrinho = carrinho.get_preco_carrinho()

    return render(
        request, 'carrinho/produtos_no_carrinho.html', {
            'listas': zip(produtos_no_carrinho, lista_de_forms),
            'valor_do_carrinho': valor_do_carrinho
        })
Esempio n. 10
0
def exibe_carrinho(request):
    carrinho = Carrinho(request)

    lista_de_produtos_no_carrinho = carrinho.get_produtos()

    produtos_no_carrinho = []
    lista_de_forms = []
    valor_do_carrinho = 0
    for item in lista_de_produtos_no_carrinho:
        produtos_no_carrinho.append(item['produto'])
        lista_de_forms.append(
            QuantidadeForm(initial={'quantidade': item['quantidade']}))
        valor_do_carrinho = valor_do_carrinho + int(
            item['quantidade']) * Decimal(item['preco'])

    return render(
        request, 'carrinho/produtos_no_carrinho.html', {
            'listas': zip(produtos_no_carrinho, lista_de_forms),
            'valor_do_carrinho': valor_do_carrinho
        })
Esempio n. 11
0
File: views.py Progetto: FBMLJ/web
def lista_produtos(request, slug_da_categoria=None):
    categoria = None
    categorias = Categoria.objects.all().order_by('nome')
    lista_de_produtos = Produto.objects.filter(
        disponivel=True).order_by('nome')
    if slug_da_categoria:
        categoria = get_object_or_404(Categoria, slug=slug_da_categoria)
        lista_de_produtos = lista_de_produtos.filter(
            categoria=categoria).order_by('nome')

    paginator = Paginator(lista_de_produtos, 12)
    pagina = request.GET.get('pagina')
    try:
        produtos = paginator.page(pagina)
    except PageNotAnInteger:
        produtos = paginator.page(1)
    except EmptyPage:
        if request.is_ajax():
            return HttpResponse('')
        produtos = paginator.page(paginator.num_pages)

    carrinho = Carrinho(request)
    lista_de_forms = []
    for produto in produtos:
        qtd = carrinho.get_quantidade_total(produto.id)
        lista_de_forms.append(
            QuantidadeForm(initial={
                'quantidade': qtd,
                'produto_id': signer.sign(produto.id)
            }))

    if request.is_ajax():
        return render(request, 'carrinho/pagina_de_produtos.html',
                      {'listas': zip(produtos, lista_de_forms)})

    return render(
        request, 'carrinho/lista_produtos.html', {
            'categorias': categorias,
            'listas': zip(produtos, lista_de_forms),
            'categoria': categoria
        })
Esempio n. 12
0
def lista_produtos(request, slug_da_categoria=None):
    categoria = None
    categorias = Category.objects.all().order_by('name')
    produtos = Product.objects.filter(available=True).order_by('name')
    if slug_da_categoria:
        categoria = get_object_or_404(Category, slug=slug_da_categoria)
        produtos = produtos.filter(category=categoria).order_by('name')

    carrinho = Carrinho(request)
    lista_de_forms = []
    for produto in produtos:
        qtd = carrinho.get_quantidade_total(produto.id)
        lista_de_forms.append(
            QuantidadeForm(initial={
                'quantidade': qtd,
                'produto_id': produto.id
            }))

    return render(
        request, 'carrinho/lista_produtos.html', {
            'categorias': categorias,
            'listas': zip(produtos, lista_de_forms),
            'categoria': categoria
        })
Esempio n. 13
0
File: views.py Progetto: FBMLJ/web
def atualiza_carrinho(request):
    form = QuantidadeForm(request.POST)
    if form.is_valid():
        produto_id = signer.unsign(form.cleaned_data['produto_id'])
        quantidade = form.cleaned_data['quantidade']

        carrinho = Carrinho(request)
        if (quantidade == 0):
            carrinho.remover(produto_id)
            preco_total = 0.0
        else:
            carrinho.atualiza(produto_id, quantidade)
            preco_total = carrinho.get_preco_total(produto_id)

        qtd = carrinho.get_quantidade_carrinho()
        preco_carrinho = carrinho.get_preco_carrinho()

        print('***** id do produto = ' + produto_id + '  quantidade = ' +
              str(quantidade) + '  preço total do produto = ' +
              str(preco_total))
        print('***** qtd no carrinho = ' + str(qtd) +
              '  valor do carrinho = ' + str(preco_carrinho))

        locale.setlocale(locale.LC_ALL, 'pt_BR')
        preco_carrinho = locale.currency(preco_carrinho, grouping=True)
        preco_total = Decimal(preco_total)
        preco_total = locale.currency(preco_total, grouping=True)

        return JsonResponse({
            'quantidade': qtd,
            'preco_carrinho': preco_carrinho,
            'preco_total': preco_total
        })
    else:
        raise ValueError(
            'Ocorreu um erro inesperado ao adicionar um produto ao carrinho.')
Esempio n. 14
0
def calcula_totais_carrinho(request):
    carrinho = Carrinho(request)
    quantidade = carrinho.get_quantidade_carrinho()
    preco_carrinho = carrinho.get_preco_carrinho()
    return {'quantidade': quantidade, 'preco_carrinho': preco_carrinho}