Browse Source

订单售后按钮

lizhen_gitee 3 months ago
parent
commit
84937a5fff
1 changed files with 15 additions and 2 deletions
  1. 15 2
      application/admin/model/shopro/order/traits/OrderStatus.php

+ 15 - 2
application/admin/model/shopro/order/traits/OrderStatus.php

@@ -183,7 +183,8 @@ trait OrderStatus
         if (in_array($this->status_code, ['noget', 'nocomment']) && !$this->isOffline($data)) {      // 线下付款订单,不可申请全额退款
 
                 // 获取所有的 item 状态
-                $statusCodes = $this->getItemStatusCode('item');dump($statusCodes);
+                $statusCodes = $this->getItemStatusCode_aftersale('item');
+
                 if(!in_array('refund_agree',$statusCodes) && !in_array('refund_completed',$statusCodes)){
 
                     $aftersale_times = count($statusCodes);//默认能申请N次
@@ -193,7 +194,6 @@ trait OrderStatus
                         }
                     }
 
-dump($aftersale_times);
                     if($aftersale_times != 0){
                         $btns[] = 'aftersale';    // 申请售后
                     }
@@ -308,7 +308,20 @@ dump($aftersale_times);
 
         // 取出不重复不为空的 status_code
         $statusCodes = array_values(array_unique(array_filter($itemStatusCode)));
+        return $statusCodes;
+    }
+    //和上面一样,除了 array_unique,这里不需要去重
+    private function getItemStatusCode_aftersale($type = 'order')
+    {
+        // 循环判断 item 状态
+        $itemStatusCode = [];
+        foreach ($this->items as $key => $item) {
+            // 获取 item status
+            $itemStatusCode[] = (new OrderItem)->getBaseStatusCode($item, $type);
+        }
 
+        // 取出不重复不为空的 status_code
+        $statusCodes = array_values(array_filter($itemStatusCode));
         return $statusCodes;
     }