示例#1
0
def make_order_view(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    form = OrderForm(request.POST or None)
    categories = Category.objects.all()
    if form.is_valid():
        name = form.cleaned_data['name']
        last_name = form.cleaned_data['last_name']
        phone = form.cleaned_data['phone']
        buying_type = form.cleaned_data['buying_type']
        address = form.cleaned_data['address']
        comments = form.cleaned_data['comments']
        new_order = Order.objects.create(user=request.user,
                                         items=cart,
                                         total=cart.total_cart,
                                         first_name=name,
                                         last_name=last_name,
                                         phone=phone,
                                         address=address,
                                         buying_type=buying_type,
                                         comments=comments)

        del request.session['cart_id']
        del request.session['total']
        return HttpResponseRedirect(reverse('thank_you'))
    return render(request, 'order.html', {'categories': categories})
示例#2
0
def place_order(request):

    #TODO: If the user is not the admin, the member will not be asked. 
    # The member will be the logged in user.

    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            books = form.cleaned_data['books']
            order = form.save(commit=False)     
            member = order.member
            type = order.order_type
            order.save()
            total_purchase = 0
            if type == 1:       
                for b in books:  
                    member.borrowed_books.add(b)
                member.save()
            else:
                
                for b in books:  
                    order.books.add(b)
                    total_purchase += b.price 
                order.save()
            return render(request, 'myapp/order_response.html', {'books': books, 'order':order, 'total_purchase': total_purchase})
        else:
            return render(request, 'myapp/placeorder.html', {'form':form})

    else:
        form = OrderForm()
        if not request.user.is_superuser:
            form.fields['member'].queryset=Member.objects.filter(user_ptr=request.user)
        return render(request, 'myapp/placeorder.html', {'form':form})
示例#3
0
def place_order(request):
    msg = ''
    prodlist = Product.objects.all()
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            if order.num_units <= order.product.stock:
                var = Product.objects.get(name=order.product)
                newstock = Product.objects.filter(name=var).values_list(
                    'stock', flat=True).get()
                msg = 'Your order has been placed successfully.'
                p = Product()
                p.updateStock(var, newstock, order.num_units)
                order.save()
            else:
                msg = 'We do not have sufficient stock to fill your order.'
            return render(request, 'myapp/order_response.html', {'msg': msg})

    else:
        form = OrderForm()
    return render(request, 'myapp/placeorder.html', {
        'form': form,
        'msg': msg,
        'prodlist': prodlist
    })
示例#4
0
def order_create_view(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    categories = Category.objects.all()
    form = OrderForm(request.POST or None)
    context = {'form': form, 'cart': cart, 'categories': categories}
    return render(request, 'order.html', context)
示例#5
0
def place_order(request):
    msg = ''
    courselist = Course.objects.all()
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            print(order)
            if order.levels <= order.course.stages:
                form.save()
                msg = 'Your course has been ordered successfully.'
                if float(order.course.price) > 150:
                    order.course.discounted_price = Course.discount(order.course)
                    order.course.save()
                    msg = msg + 'Price for order updated to $' + str(order.course.discounted_price)
            else:
                msg = 'You exceeded the number of levels for this course.'
            return render(request, 'myapp/order_response.html', {'msg': msg})
    else:
        form = OrderForm()
        return render(request, 'myapp/placeorder.html', {'form': form, 'msg': msg, 'courselist': courselist})
示例#6
0
def place_order(request):
    if request.user.is_authenticated:
        testuser = request.user

    else:
        testuser = ""

    msg = ''
    prodlist = Product.objects.all()
    if request.method == 'POST':
        form = forms.OrderForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            if order.num_unit <= order.product.stock:
                product = Product.objects.get(name=order.product.name)
                product.stock = product.stock - order.num_unit
                product.save()
                msg = 'Your order has been placed successfully.'
                p = Product()
                p.refill(order.product.name)
                order.save()
            else:
                msg = 'We do not have sufficient stock to fill your order.'
                p = Product()
                p.refill(order.product.name)
                order.save()
            return render(request, 'myapp/order_response.html', {
                'msg': msg,
                'testuser': testuser
            })
            # else:
            #     msg = "Invalid user, select logged in user to place order"
            #     return render(request, 'myapp/order_response.html', {'msg': msg, 'testuser': testuser})
    else:
        form = OrderForm()
        return render(request, 'myapp/placeorder.html', {
            'form': form,
            'msg': msg,
            'prodlist': prodlist,
            'testuser': testuser
        })
示例#7
0
def place_order(request):
    msg = ''
    prodlist = Product.objects.all()
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            if order.num_units <= order.product.stock:
                order.save()
                msg = 'Order placed succesfully.'
            else:
                msg = 'We dont have sufficient stock to fill your order.'
            return render(request, 'myapp/order_response.html', {'msg': msg})
    else:
        form = OrderForm()
    return render(request, 'myapp/placeorder.html', {
        'form': form,
        'msg': msg,
        'prodlist': prodlist
    })