feat: order增加filter/miosale增加校验

This commit is contained in:
caoqianming 2024-07-24 10:51:42 +08:00
parent 0e26b2188e
commit 2e1f94b24c
2 changed files with 11 additions and 3 deletions

View File

@ -187,8 +187,10 @@ class MIOSaleSerializer(CustomModelSerializer):
def create(self, validated_data):
validated_data['type'] = MIO.MIO_TYPE_SALE_OUT
order = validated_data.get('order', None)
order: Order = validated_data.get('order', None)
if order:
if order.state in [Order.ORDER_CREATE, Order.ORDER_DELIVERED]:
raise ValidationError('销售订单状态错误')
validated_data['customer'] = order.customer
if order.belong_dept:
validated_data['belong_dept'] = order.belong_dept
@ -211,8 +213,10 @@ class MIOPurSerializer(CustomModelSerializer):
def create(self, validated_data):
validated_data['type'] = MIO.MIO_TYPE_PUR_IN
pu_order = validated_data.get('pu_order', None)
pu_order: PuOrder = validated_data.get('pu_order', None)
if pu_order:
if pu_order.state in [PuOrder.PUORDER_CREATE, PuOrder.PUORDER_DONE]:
raise ValidationError('采购订单状态错误')
validated_data['supplier'] = pu_order.supplier
if pu_order.belong_dept:
validated_data['belong_dept'] = pu_order.belong_dept

View File

@ -58,7 +58,11 @@ class OrderViewSet(CustomModelViewSet):
serializer_class = OrderSerializer
select_related_fields = ['contract', 'customer']
search_fields = ['number']
filter_fields = ['contract', 'customer']
filter_fields = {
"contract": ["exact"],
"customer": ["exact"],
"state": ["exact", "in"],
}
@transaction.atomic
def perform_destroy(self, instance):