lizhen_gitee преди 3 месеца
родител
ревизия
bc173bdad4
променени са 1 файла, в които са добавени 28 реда и са изтрити 6 реда
  1. 28 6
      application/admin/model/shopro/order/traits/OrderStatus.php

+ 28 - 6
application/admin/model/shopro/order/traits/OrderStatus.php

@@ -54,7 +54,7 @@ trait OrderStatus
 
                 $dispatchType = $this->getItemDispatchTypes();
                 if (in_array('express', $dispatchType)) {
-                    //$btns[] = 'express';        // 查看物流
+                    //$btns[] = 'express';        // 查看物流, 放到详情里去了
                 }
                 $backendBtns[] = 'refund';
                 break;
@@ -64,11 +64,11 @@ trait OrderStatus
 
                 $dispatchType = $this->getItemDispatchTypes();
                 if (in_array('express', $dispatchType)) {
-                    //$btns[] = 'express';        // 查看物流
+                    //$btns[] = 'express';        // 查看物流, 放到详情里去了
                 }
                 $btns[] = 'comment';
                 //应该申请售后
-                $btns[] = 'aftersale';
+//                $btns[] = 'aftersale';
                 $backendBtns[] = 'refund';
                 break;
             case 'noget':
@@ -77,7 +77,7 @@ trait OrderStatus
 
                 $dispatchType = $this->getItemDispatchTypes();
                 if (in_array('express', $dispatchType)) {
-                    //$btns[] = 'express';        // 查看物流
+                    //$btns[] = 'express';        // 查看物流, 放到详情里去了
                 }
 
                 if ($this->isOffline($data)) {
@@ -99,7 +99,7 @@ trait OrderStatus
 
                     $btns[] = 'confirm';            // 确认收货
                     //应该申请售后
-                    $btns[] = 'aftersale';
+//                    $btns[] = 'aftersale';
                     $backendBtns[] = 'refund';
                 }
 
@@ -178,7 +178,28 @@ trait OrderStatus
                 }
             }
         }
-        
+
+        //申请售后
+        if (in_array($this->status_code, ['noget', 'nocomment']) && !$this->isOffline($data)) {      // 线下付款订单,不可申请全额退款
+
+                // 获取所有的 item 状态
+                $statusCodes = $this->getItemStatusCode('item');
+                if(!in_array('refund_agree',$statusCodes) && !in_array('refund_completed',$statusCodes)){
+
+                    $aftersale_times = count($statusCodes);//默认能申请N次
+                    foreach($statusCodes as $key => $statusCode){
+                        if(strpos($statusCode,'aftersale_ing') !== false || strpos($statusCode,'aftersale_completed') !== false){
+                            $aftersale_times--; //减1次
+                        }
+                    }
+//dump($aftersale_times);
+                    if($aftersale_times != 0){
+                        $btns[] = 'aftersale';    // 申请售后
+                    }
+                }
+
+        }
+
         if ($data['invoice_status'] == 1) {
             $btns[] = 'invoice';    // 查看发票
         }
@@ -323,6 +344,7 @@ trait OrderStatus
 
 
     // 获取订单状态
+    //订单状态:closed=交易关闭,cancel=已取消,unpaid=未支付,paid=已支付,completed=已完成,pending=待定
     public function getStatusCodeAttr($value, $data)
     {
         $status_code = '';