forked from erp-dev/erp
feat: added filter param for stock record list api. Support purchase order bind stock change record that is already exists
This commit is contained in:
@@ -28,6 +28,9 @@ class ListStockChangesView(StockChangeViewMixin, views.APIView):
|
||||
OpenApiParameter(name='start', type=OpenApiTypes.DATE, description='开始日期 (YYYY-MM-DD),默认为昨天'),
|
||||
OpenApiParameter(name='end', type=OpenApiTypes.DATE, description='结束日期 (YYYY-MM-DD),默认为昨天'),
|
||||
OpenApiParameter(name='type', type=OpenApiTypes.INT, description='变动类型 (1=入库, 2=出库)'),
|
||||
OpenApiParameter(name='source_type', type=OpenApiTypes.INT, description='来源类型 (如采购=1)'),
|
||||
OpenApiParameter(name='source_id', type=OpenApiTypes.INT, description='来源业务单据ID'),
|
||||
OpenApiParameter(name='source_id_isnull', type=OpenApiTypes.BOOL, description='来源业务单据ID是否为空'),
|
||||
OpenApiParameter(name='warehouse', type=OpenApiTypes.INT, description='仓库ID'),
|
||||
OpenApiParameter(name='product', type=OpenApiTypes.INT, description='产品ID'),
|
||||
OpenApiParameter(name='is_finished', type=OpenApiTypes.BOOL, description='是否已完成'),
|
||||
@@ -45,6 +48,9 @@ class ListStockChangesView(StockChangeViewMixin, views.APIView):
|
||||
- start: 开始日期 (YYYY-MM-DD),可选,默认为昨天
|
||||
- end: 结束日期 (YYYY-MM-DD),可选,默认为昨天
|
||||
- type: 变动类型 (1=入库, 2=出库),可选
|
||||
- source_type: 来源类型(可选)
|
||||
- source_id: 来源业务单据ID(可选)
|
||||
- source_id_isnull: 来源业务单据ID是否为空(可选,true/false)
|
||||
- warehouse: 仓库ID,可选
|
||||
- product: 产品ID,可选
|
||||
- is_finished: 是否已完成 (true/false),可选
|
||||
@@ -106,6 +112,31 @@ class ListStockChangesView(StockChangeViewMixin, views.APIView):
|
||||
return Response({
|
||||
'error': 'type 参数必须为整数'
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
source_type = request.GET.get('source_type')
|
||||
if source_type:
|
||||
try:
|
||||
queryset = queryset.filter(source_type=int(source_type))
|
||||
except ValueError:
|
||||
return Response({
|
||||
'error': 'source_type 参数必须为整数'
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
source_id = request.GET.get('source_id')
|
||||
if source_id:
|
||||
try:
|
||||
queryset = queryset.filter(source_id=int(source_id))
|
||||
except ValueError:
|
||||
return Response({
|
||||
'error': 'source_id 参数必须为整数'
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
else:
|
||||
source_id_isnull = request.GET.get('source_id_isnull')
|
||||
if source_id_isnull is not None:
|
||||
if source_id_isnull.lower() == 'true':
|
||||
queryset = queryset.filter(source_id__isnull=True)
|
||||
elif source_id_isnull.lower() == 'false':
|
||||
queryset = queryset.filter(source_id__isnull=False)
|
||||
|
||||
warehouse_id = request.GET.get('warehouse')
|
||||
if warehouse_id:
|
||||
|
||||
Reference in New Issue
Block a user