orders: add new fields to order model

This commit is contained in:
behruz-dev
2025-11-10 15:28:31 +05:00
parent 8a298b76f1
commit 1cd005c804
9 changed files with 90 additions and 26 deletions

View File

@@ -141,27 +141,40 @@ class OrderDeleteToPartyApiView(generics.GenericAPIView):
class PartyChangeStatusToIsMadeApiView(generics.GenericAPIView):
serializer_class = None
serializer_class = serializers.ReceiveMultipleOrderSerializer
queryset = Party.objects.all()
permission_classes = [HasRolePermission]
pagination_class = None
def get(self, request, party_id):
def post(self, request, party_id):
serializer = self.serializer_class(data=request.data)
if not serializer.is_valid(raise_exception=True):
return Response({"success": False, "message": serializer.errors}, status=400)
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.unit_amount * order.quantity,
order.project_folder.id if order.project_folder else None,
order.project.id if order.project else None,
order.unit_amount,
)
return Response(
data = serializer.validated_data
for item in data['product']:
order_id = item['order_id']
product_quantity = item['product_quantity']
product_receive_date = item['product_receive_date']
for order in party.orders.all():
if order.id == order_id:
completion_percentage = (product_quantity / order.quantity) * 100
create_inventory.delay(
order.wherehouse.id,
order.quantity,
order.product.id,
order.unity.id,
order.unit_amount * order.quantity,
order.project_folder.id if order.project_folder else None,
order.project.id if order.project else None,
order.unit_amount,
)
order.received_count += product_quantity
order.received_date = product_receive_date
order.comletion_percentage = completion_percentage
return Response(
{'success': True, 'message': 'party updated'},
status=200
)