shish 2 лет назад
Родитель
Сommit
e72cb35d6f
1 измененных файлов с 19 добавлено и 7 удалено
  1. 19 7
      biz-ghs/cg/services/CgRefundService.php

+ 19 - 7
biz-ghs/cg/services/CgRefundService.php

@@ -102,18 +102,30 @@ class CgRefundService extends BaseService
                     'price' => $totalPrice,
                 ];
                 CgRefundItemClass::addData($refundItemData, $order);
-                //售后产生下架
-                //CgOrderItemSendClass::afterSaleOut($shop, $order, $currentCgItem, $num);
 
-                $sendRefund = $currentProduct['sendRefund'] ?? [];
+                $sendRefundData = $currentProduct['sendRefund'] ?? [];
                 if ($shop->bookSn == $bookSn && !empty($bookSn)) {
-                    if (empty($sendRefund)) {
+                    if (empty($sendRefundData)) {
                         util::fail('请填写货位要退的数量');
                     }
-                    print_r($sendRefund);
-                    die;
+                    $sendIds = array_column($sendRefundData, 'id');
+                    $sendRes = CgOrderItemSendClass::getAllByCondition(['id' => ['in', $sendIds]], null, '*', null, true);
+                    $totalSendRefundNum = 0;
+                    foreach ($sendRefundData as $sendKey => $send) {
+                        $sendRefundNum = $send['refundNum'] ?? 0;
+                        $totalSendRefundNum = bcadd($totalSendRefundNum, $sendRefundNum);
+                        $sendId = $send['id'] ?? 0;
+                        $currentSend = $sendRes[$sendId] ?? null;
+                        if (empty($currentSend)) {
+                            util::fail('没有找到采购单花材的配送信息呢');
+                        }
+                    }
+                    if (floatval($num) != floatval($totalSendRefundNum)) {
+                        util::fail("{$name} 退货数量必须和货位退货数和一致");
+                    }
+                    //售后产生下架
+                    //CgOrderItemSendClass::afterSaleOut($shop, $order, $currentCgItem, $num);
                 }
-
             }
 
         }