From 4501ff8727d831a3976f91ec65df59009837b683 Mon Sep 17 00:00:00 2001 From: Pablo Moreno Date: Fri, 24 May 2024 12:37:11 +0200 Subject: [PATCH] feat: update product stock when a product batch is created --- shop/api/v1/viewsets.py | 12 ++++++++++++ shop/models.py | 1 + 2 files changed, 13 insertions(+) diff --git a/shop/api/v1/viewsets.py b/shop/api/v1/viewsets.py index 3e877a0..b73b0ec 100644 --- a/shop/api/v1/viewsets.py +++ b/shop/api/v1/viewsets.py @@ -100,6 +100,18 @@ class ProductBatchViewSet(ModelViewSet): queryset = ProductBatch.objects.all() permission_classes = (IsAdminUser,) + def perform_create(self, serializer): + instance = serializer.save() + product = instance.product + product.stock += instance.quantity + product.save() + + def perform_destroy(self, instance): + product = instance.product + product.stock = max(product.stock - instance.quantity, 0) + product.save() + instance.delete() + class CustomerViewSet(ModelViewSet): serializer_class = CustomerSerializer diff --git a/shop/models.py b/shop/models.py index 573a42f..90e4eef 100644 --- a/shop/models.py +++ b/shop/models.py @@ -112,6 +112,7 @@ class ProductPrice(TimestampedModel): class Meta: verbose_name = _("precio de producto") verbose_name_plural = _("precio de producto") + ordering = ("-date", ) class ProductBatch(TimestampedModel):