diff --git a/apps/pos_device/web/api/v1/viewsets/device.py b/apps/pos_device/web/api/v1/viewsets/device.py index ac1ded2..bae04ff 100644 --- a/apps/pos_device/web/api/v1/viewsets/device.py +++ b/apps/pos_device/web/api/v1/viewsets/device.py @@ -394,6 +394,29 @@ class StakeHolderShareAmountViewSet(SoftDeleteMixin, viewsets.ModelViewSet, Dyna return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN) + def update(self, request, pk=None, *args, **kwargs): + data = request.data.copy() + + # get object & remove distribution + share_holder = self.get_object() + share_holder.quota_distribution.delete() + + # create distribution + if 'distribution' in data.keys(): + distribution = CustomOperations().custom_create( + request=request, + view=QuotaDistributionViewSet(), + data=data['distribution'] + ) + data.update({'quota_distribution': distribution['id']}) + + serializer = self.serializer_class(instance=share_holder, data=data, partial=True) + if serializer.is_valid(raise_exception=True): + serializer.save() + + return Response(serializer.data, status=status.HTTP_200_OK) + return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN) + @action( methods=['get'], detail=False,