From 77c8bcaae5ed3448a6ae97b50e4c315f247dcc50 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 26 Aug 2025 09:56:23 +0500 Subject: [PATCH] (change, add): party status change api added, and celery task changed --- core/apps/orders/serializers/party.py | 1 - core/apps/orders/urls.py | 1 + core/apps/orders/views/party.py | 29 ++++++++++++++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/core/apps/orders/serializers/party.py b/core/apps/orders/serializers/party.py index 3c4e13c..4eea61f 100644 --- a/core/apps/orders/serializers/party.py +++ b/core/apps/orders/serializers/party.py @@ -57,7 +57,6 @@ class PartyCreateSerializer(serializers.Serializer): total_price=resource.get('total_price'), qqs=resource.get('qqs'), )) - create_inventory.delay(resource['wherehouse_id'], resource['quantity'], resource['product_id'], resource['unity_id'], resource['total_price']) if validated_data.get('currency') == 'uzs': if resource.get('currency') == 'usd': usd_value = UsdCourse.objects.first().value diff --git a/core/apps/orders/urls.py b/core/apps/orders/urls.py index 5ce330b..8e4bf63 100644 --- a/core/apps/orders/urls.py +++ b/core/apps/orders/urls.py @@ -36,6 +36,7 @@ urlpatterns = [ path( '/order//remove/', party_views.OrderDeleteToPartyApiView.as_view() ), + path('/is_made/', party_views.PartyChangeStatusToIsMadeApiView.as_view()), ] )), ] \ No newline at end of file diff --git a/core/apps/orders/views/party.py b/core/apps/orders/views/party.py index 62f8690..6c2f102 100644 --- a/core/apps/orders/views/party.py +++ b/core/apps/orders/views/party.py @@ -9,6 +9,7 @@ from core.apps.accounts.permissions.permissions import HasRolePermission from core.apps.orders.serializers import party as serializers from core.apps.orders.models import Party, PartyAmount, DeletedParty, Order from core.apps.orders.filters.party import PartyFilter +from core.apps.orders.tasks.order import create_inventory class PartyCreateApiView(generics.GenericAPIView): @@ -134,4 +135,30 @@ class OrderDeleteToPartyApiView(generics.GenericAPIView): ) party.orders.remove(order) - return Response({'success': True, 'message': 'Order removed from party'}, status=200) \ No newline at end of file + return Response({'success': True, 'message': 'Order removed from party'}, status=200) + + +class PartyChangeStatusToIsMadeApiView(generics.GenericAPIView): + serializer_class = None + queryset = Party.objects.all() + permission_classes = [HasRolePermission] + required_permission = ['party'] + pagination_class = None + + def get(self, request, party_id): + party = get_object_or_404(Party, id=party_id) + party.status = 'PARTY_IS_MADE' + party.save() + for order in party.orders.all(): + create_inventory.delay( + order.wherehouse.id, + order.quantity, + order.product.id, + order.unity.id, + order.total_price + ) + return Response( + {'success': True, 'message': 'party updated'}, + status=200 + ) +