add: add StockMovemendUpdate api
This commit is contained in:
@@ -140,3 +140,28 @@ class StockMovemendListSerializer(serializers.ModelSerializer):
|
||||
'id': obj.project.id,
|
||||
'name': obj.project.name
|
||||
} if obj.project else None
|
||||
|
||||
|
||||
class StockMovemendProductUpdateSerializer(serializers.Serializer):
|
||||
movemend_product_id = serializers.UUIDField()
|
||||
quantity = serializers.IntegerField()
|
||||
|
||||
def validate(self, data):
|
||||
movemend_product = StockMovmendProduct.objects.filter(id=data['movemend_product_id']).first()
|
||||
if not movemend_product:
|
||||
raise serializers.ValidationError("Stock Movemend Product not found")
|
||||
if movemend_product.inventory.quantity < data['quantity']:
|
||||
raise serializers.ValidationError("invalid quantity, quantity must les than product quantity")
|
||||
data['movemend_product']
|
||||
return data
|
||||
|
||||
class StockMovemendUpdateSerializer(serializers.ModelSerializer):
|
||||
movemend_product = StockMovemendProductUpdateSerializer(many=True, required=False)
|
||||
|
||||
class Meta:
|
||||
model = StockMovemend
|
||||
fields = [
|
||||
'wherehouse_from', 'project_folder', 'project', 'date',
|
||||
'comment', 'movemend_product'
|
||||
]
|
||||
extra_kwargs = {'wherehouse_from': {'required': False}}
|
||||
@@ -35,6 +35,7 @@ urlpatterns = [
|
||||
path('list/', stock_movemend_views.StockMovemendListApiView.as_view()),
|
||||
path('<uuid:id>/delete/', stock_movemend_views.StockMovemendDeleteApiView.as_view()),
|
||||
path('<uuid:stock_movemend_id>/remove/<uuid:stock_movemend_product_id>/', stock_movemend_views.StockMovemendProductRemoveApiView.as_view()),
|
||||
path('<uuid:id>/update/', stock_movemend_views.StockMovemendUpdateApiView.as_view()),
|
||||
]
|
||||
)),
|
||||
]
|
||||
|
||||
@@ -100,3 +100,18 @@ class StockMovemendProductRemoveApiView(generics.GenericAPIView):
|
||||
{'success': True, 'message': 'removed'},
|
||||
status=200
|
||||
)
|
||||
|
||||
|
||||
class StockMovemendUpdateApiView(generics.GenericAPIView):
|
||||
serializer_class = serializers.StockMovemendUpdateSerializer
|
||||
queryset = StockMovemend.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
required_permissions = []
|
||||
|
||||
def patch(self, request, id):
|
||||
stock_movemend = get_object_or_404(StockMovemend, id=id)
|
||||
serializer = self.serializer_class(data=request.data, instance=stock_movemend, partial=True)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
serializer.save()
|
||||
return Response({'success': True, 'message': 'updated!'}, status=200)
|
||||
return Response({'success': False, 'error_message': serializer.errors}, status=400)
|
||||
|
||||
Reference in New Issue
Block a user