forked from erp-dev/erp
fix: added permission for plate_order and printing_order api
This commit is contained in:
@@ -6,7 +6,63 @@ from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from .serializers import SalesItemSerializer
|
||||
from .serializers import SalesItemSerializer, ShipmentSerializer, ShipmentCreateSerializer
|
||||
|
||||
|
||||
class ShipmentCreateView(APIView):
|
||||
"""
|
||||
创建出货单
|
||||
|
||||
POST /api/v1/shipment/shipments/
|
||||
|
||||
请求体:
|
||||
{
|
||||
"customer": 1,
|
||||
"shipment_date": "2026-01-14",
|
||||
"remark": "备注信息(可选)",
|
||||
"sales_items": [1, 2, 3]
|
||||
}
|
||||
|
||||
返回:
|
||||
{
|
||||
"id": 1,
|
||||
"customer": 1,
|
||||
"customer_name": "客户A",
|
||||
"shipment_date": "2026-01-14",
|
||||
"remark": "备注信息",
|
||||
"items_count": 3,
|
||||
"created_by_id": 1,
|
||||
"created_by_name": "张三",
|
||||
"created_at": "2026-01-14T10:00:00Z",
|
||||
"updated_at": "2026-01-14T10:00:00Z"
|
||||
}
|
||||
"""
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request):
|
||||
# 验证请求数据
|
||||
serializer = ShipmentCreateSerializer(data=request.data)
|
||||
if not serializer.is_valid():
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
data = serializer.validated_data
|
||||
|
||||
# 调用业务逻辑
|
||||
from shipment.services import create_shipment
|
||||
try:
|
||||
shipment = create_shipment(
|
||||
customer_id=data['customer'],
|
||||
shipment_date=data['shipment_date'],
|
||||
sales_item_ids=data['sales_items'],
|
||||
created_by=request.user,
|
||||
remark=data.get('remark', ''),
|
||||
)
|
||||
except ValueError as e:
|
||||
return Response({'detail': str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 返回创建的出货单
|
||||
response_serializer = ShipmentSerializer(shipment)
|
||||
return Response(response_serializer.data, status=status.HTTP_201_CREATED)
|
||||
|
||||
|
||||
class SalesItemByPrintingOrderView(APIView):
|
||||
|
||||
Reference in New Issue
Block a user