|
|
@@ -28,9 +28,79 @@ class RefundOrderClass extends BaseClass
|
|
|
const REFUND_TYPE_MONEY_GOOD = 1; //退款退货
|
|
|
const REFUND_TYPE_MONEY = 2; // 仅退款
|
|
|
|
|
|
- public static function passRefund($refund)
|
|
|
+ //审核通过 ssh 20230811
|
|
|
+ public static function passRefund($refund, $order)
|
|
|
{
|
|
|
+ if ($refund->status == 1) {
|
|
|
+ util::fail('已通过');
|
|
|
+ }
|
|
|
+ if ($refund->status == 2) {
|
|
|
+ util::fail('已驳回');
|
|
|
+ }
|
|
|
+ if ($refund->status == 3) {
|
|
|
+ util::fail('已取消');
|
|
|
+ }
|
|
|
+ $order->refund = OrderClass::REFUND_YES;
|
|
|
+ $order->save();
|
|
|
+ $orderSn = $order->orderSn ?? '';
|
|
|
+ $onlinePay = $order->onlinePay ?? 1;
|
|
|
+ $refundSn = $refund->orderSn ?? '';
|
|
|
+ $refundItemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $refundSn], null, '*', null, true);
|
|
|
+ if (empty($refundItemList)) {
|
|
|
+ util::fail('没有找到售后订单的花材');
|
|
|
+ }
|
|
|
+ $refundData = [];
|
|
|
+ foreach ($refundItemList as $key => $val) {
|
|
|
+ $num = $val->xhNum ?? 0;
|
|
|
+ $orderItemId = $val->orderItemId ?? 0;
|
|
|
+ if (empty($orderItemId)) {
|
|
|
+ util::fail('旧订单无法售后,请联系管理员');
|
|
|
+ }
|
|
|
+ $refundData[$orderItemId] = $val;
|
|
|
+ }
|
|
|
+ $orderItemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
|
|
|
+ if (empty($orderItemList)) {
|
|
|
+ util::fail('订单花材错误呢');
|
|
|
+ }
|
|
|
+ foreach ($orderItemList as $oneKey => $oneItem) {
|
|
|
+ $oneItemId = $oneItem->id;
|
|
|
+ $productId = $oneItem->productId ?? 0;
|
|
|
+ if (isset($refundData[$oneItemId])) {
|
|
|
+ $refundSingle = $refundData[$oneItemId];
|
|
|
+ $unitType = $refundSingle->xhUnitType ?? 0;
|
|
|
+ $num = $refundSingle->xhNum ?? 0;
|
|
|
+ if ($unitType == dict::getDict('unitType', 'small')) {
|
|
|
+ $smallNum = $num;
|
|
|
+ $bigNum = 0;
|
|
|
+ } else {
|
|
|
+ $smallNum = 0;
|
|
|
+ $bigNum = $num;
|
|
|
+ }
|
|
|
+ $oldStock = 0;
|
|
|
+ $newStock = 0;
|
|
|
+ if ($bigNum > 0) {
|
|
|
+ //退货加库存
|
|
|
+ $stockInfo = ProductClass::addStock($productId, $bigNum, $smallNum);
|
|
|
+ $oldStock = $stockInfo['oldStock'] ?? 0;
|
|
|
+ $newStock = $stockInfo['newStock'] ?? 0;
|
|
|
+ //库存变动记录
|
|
|
+ $recordData = [];
|
|
|
+ $recordData['shopId'] = $data['shopId'];
|
|
|
+ $recordData['relateName'] = $order->customName ?? '';
|
|
|
+ $recordData['itemNum'] = $totalNum;
|
|
|
+ $recordData['sjId'] = $data['sjId'] ?? 0;
|
|
|
+ $recordData['shopId'] = $data['shopId'] ?? 0;
|
|
|
+ $recordData['mainId'] = $data['mainId'] ?? 0;
|
|
|
+ $recordData['orderSn'] = $orderSn;
|
|
|
+ $recordData['itemId'] = $data['itemId'] ?? 0;
|
|
|
+ $recordData['oldStock'] = $oldStock; //当时库存
|
|
|
+ $recordData['productId'] = $productId;
|
|
|
+ $recordData['newStock'] = $newStock;// 最新库存
|
|
|
+ StockRecordClass::ghsRefundAddRecord($recordData);
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static function rejectRefund($refund, $rejectReason)
|