Check stock when incrementing orderproduct quantity.
This commit is contained in:
parent
8a5b2e5ed1
commit
101cb2db63
|
@ -55,9 +55,13 @@ Shop | {{ block.super }}
|
|||
<a href="{% url 'shop:product_detail' slug=product.slug %}">
|
||||
{{ product.name }}
|
||||
</a>
|
||||
{% if product.stock_amount and product.left_in_stock <= 10 %}
|
||||
{% if product.stock_amount %}
|
||||
<div class="label label-danger">
|
||||
{% if product.left_in_stock == 0 %}
|
||||
Sold out!
|
||||
{% elif product.left_in_stock <= 10 %}
|
||||
Only {{ product.left_in_stock }} left!
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
|
|
@ -335,6 +335,20 @@ class OrderDetailView(LoginRequiredMixin, EnsureUserOwnsOrderMixin, EnsureOrderH
|
|||
order_product_id = str(order_product.pk)
|
||||
if order_product_id in request.POST:
|
||||
new_quantity = int(request.POST.get(order_product_id))
|
||||
|
||||
if order_product.quantity < new_quantity:
|
||||
# We are incrementing and thus need to check stock
|
||||
incrementing_by = new_quantity - order_product.quantity
|
||||
if incrementing_by > order_product.product.left_in_stock:
|
||||
messages.error(
|
||||
request,
|
||||
"Sadly we only have {} '{}' left in stock.".format(
|
||||
order_product.product.left_in_stock,
|
||||
order_product.product.name,
|
||||
)
|
||||
)
|
||||
return super(OrderDetailView, self).get(request, *args, **kwargs)
|
||||
|
||||
order_product.quantity = new_quantity
|
||||
order_product.save()
|
||||
order.customer_comment = request.POST.get('customer_comment') or ''
|
||||
|
|
Loading…
Reference in a new issue