diff --git a/User/views.py b/User/views.py index b564c18..c5c75fa 100644 --- a/User/views.py +++ b/User/views.py @@ -1774,7 +1774,17 @@ class approvalProcessing(APIView): } }, status=status.HTTP_200_OK) - # 兼容旧流程:如果负责人未填写分配,但审批人指定了分配方案 + # 审批人审批时必须填写收入分配 + # 如果收入分配还是"待负责人指定",且审批人要通过审批,则必须填写收入分配 + if state == "已通过" and income.allocate == "待负责人指定": + if not allocate: + return Response({ + 'status': 'error', + 'message': '请填写收入分配后再通过审批', + 'code': 1 + }, status=status.HTTP_400_BAD_REQUEST) + + # 如果审批人填写了收入分配,更新到记录中 if allocate: income.allocate = allocate # 更新审批内容,添加分配信息 @@ -1785,8 +1795,9 @@ class approvalProcessing(APIView): else: approval.content = approval.content + f",收入分配:{allocate}" income.save(update_fields=['allocate']) + approval.save(update_fields=['content']) - # 使用统一的审核流程处理函数(兼容旧流程) + # 使用统一的审核流程处理函数 # 非财务查看时,state参数是必填的 if not state: return Response({'status': 'error', 'message': '缺少参数state(审核状态:已通过/未通过)', 'code': 1}, status=status.HTTP_400_BAD_REQUEST) diff --git a/finance/views.py b/finance/views.py index 778674c..3a97df6 100644 --- a/finance/views.py +++ b/finance/views.py @@ -1059,7 +1059,7 @@ class confirm(APIView): personincharge = request.data.get('personincharge') approvers = normalize_approvers_param(approvers, personincharge) - allocate = request.data.get('allocate') # 收入分配(财务提交时不填写,由负责人填写) + # 收入分配由审批人(负责人)在审批时填写,新增时不接收此参数 token = request.META.get('token') try: @@ -1274,12 +1274,13 @@ class confirm(APIView): initial_state = "审核中" if (team and team.team_type == 'team') else "待财务处理" # 创建收入确认记录 + # 收入分配由审批人(负责人)在审批时填写 income = Income.objects.create( times=times, ContractNo=ContractNo, CustomerID=CustomerID, amount=amount, - allocate=allocate if allocate else "待负责人指定", # 如果未提供,设为"待负责人指定" + allocate="待负责人指定", # 收入分配由审批人在审批时填写 submit=user.username, submit_tiem=date_string, state=initial_state