|
@@ -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;
|
|
|
}
|
|
|
|