This commit is contained in:
Your Name
2026-04-27 10:31:26 +08:00
parent 3007e6c5b1
commit cf10583274
266 changed files with 273 additions and 267 deletions
@@ -1443,7 +1443,7 @@ class PrescriptionOrderLogic
}
/**
* 为「已发货」(fulfillment_status=5) 的业务订单新增一条关联支付单(zyt_order),
* 为「已发货/已签收」(fulfillment_status=5/6) 的业务订单新增一条关联支付单(zyt_order),
* 创建后将支付单链接到业务订单,并将处方/支付审核状态重置为待审核以启动再次审核流程。
*
* @param array<string,mixed> $params id, order_type, amount, remark
@@ -1462,8 +1462,8 @@ class PrescriptionOrderLogic
self::$error = '无权限操作';
return false;
}
if ((int) $order->fulfillment_status !== 5) {
self::$error = '仅「已发货」状态的订单可新增支付单';
if (!in_array((int) $order->fulfillment_status, [5, 6], true)) {
self::$error = '仅「已发货」或「已签收」状态的订单可新增支付单';
return false;
}
@@ -1535,7 +1535,7 @@ class PrescriptionOrderLogic
}
/**
* 为「已发货」(fulfillment_status=5) 的业务订单关联已有支付单,
* 为「已发货/已签收」(fulfillment_status=5/6) 的业务订单关联已有支付单,
* 关联后将支付审核状态重置为待审核以启动再次审核流程。
*
* @param array<string,mixed> $params id, pay_order_id
@@ -1571,8 +1571,8 @@ class PrescriptionOrderLogic
self::$error = '无权限操作';
return false;
}
if ((int) $order->fulfillment_status !== 5) {
self::$error = '仅「已发货」状态的订单可关联支付单';
if (!in_array((int) $order->fulfillment_status, [5, 6], true)) {
self::$error = '仅「已发货」或「已签收」状态的订单可关联支付单';
return false;
}
@@ -1592,8 +1592,15 @@ class PrescriptionOrderLogic
return false;
}
// 将支付单追加到业务订单关联列表
// 当前单已关联的支付单不允许重复提交
$existingIds = self::linkedPayOrderIdList($id);
$duplicated = array_values(array_intersect($payOrderIds, $existingIds));
if ($duplicated !== []) {
self::$error = '支付单 #' . implode('、#', $duplicated) . ' 已绑定当前业务订单,请勿重复关联';
return false;
}
// 将支付单追加到业务订单关联列表
$newIds = array_unique(array_merge($existingIds, $payOrderIds));
self::replacePayOrderLinks($id, $newIds);
$order->linked_pay_order_id = $newIds[0];