diff --git a/core/apps/wherehouse/urls.py b/core/apps/wherehouse/urls.py index c26b090..20c3efd 100644 --- a/core/apps/wherehouse/urls.py +++ b/core/apps/wherehouse/urls.py @@ -34,6 +34,7 @@ urlpatterns = [ path('create/', stock_movemend_views.StockMovemendCreateApiView.as_view()), path('list/', stock_movemend_views.StockMovemendListApiView.as_view()), path('/delete/', stock_movemend_views.StockMovemendDeleteApiView.as_view()), + path('/remove//', stock_movemend_views.StockMovemendProductRemoveApiView.as_view()), ] - )) + )), ] diff --git a/core/apps/wherehouse/views/stock_movemend.py b/core/apps/wherehouse/views/stock_movemend.py index 04b0678..2640286 100644 --- a/core/apps/wherehouse/views/stock_movemend.py +++ b/core/apps/wherehouse/views/stock_movemend.py @@ -78,8 +78,25 @@ class StockMovemendDeleteApiView(generics.GenericAPIView): ) +class StockMovemendProductRemoveApiView(generics.GenericAPIView): + permission_classes = [HasRolePermission] + required_permissions = [] + queryset = StockMovmendProduct.objects.all() + serializer_class = None - - - - + def delete(self, request, stock_movemend_id, stock_movemend_product_id): + stock_movemend = get_object_or_404(StockMovemend, id=stock_movemend_id) + stock_movemend_product = stock_movemend.movmend_products.filter(id=stock_movemend_product_id).first() + if not stock_movemend_product: + return Response( + { + 'success': False, + 'message': 'Product Does not belong to the stock_movemend', + }, + status=404 + ) + stock_movemend.movmend_products.remove(stock_movemend_product) + return Response( + {'success': True, 'message': 'removed'}, + status=200 + )