Przeglądaj źródła

添加OrderIssue 的同步方法
添加RejectedBill 的同步方法

ajun 5 lat temu
rodzic
commit
cde544a042

+ 0 - 1
app/OrderIssue.php

@@ -346,7 +346,6 @@ class OrderIssue extends Model
         if(is_array($logistic_number)){
             return $this->rejectedBills()->sync($logistic_number,false);
         }
-        $this->update(['is_new_rejecting' => '有']);
         return $this->rejectedBills()->attach($logistic_number);
     }
 

+ 5 - 0
app/OrderIssueRejectedBill.php

@@ -23,4 +23,9 @@ class OrderIssueRejectedBill extends Model
     {
         return $this->belongsTo(RejectedBill::class,'logistic_number_return','logistic_number_return');
     }
+
+    public static function isExit($order_issue_id,$logistic_number_return)
+    {
+        return OrderIssueRejectedBill::query()->where('order_issue_id',$order_issue_id)->where('logistic_number_return',$logistic_number_return)->exists();
+    }
 }

+ 4 - 0
app/RejectedBill.php

@@ -69,6 +69,10 @@ class RejectedBill extends Model
         return $this->hasOneThrough(OrderIssue::class,OrderIssueRejectedBill::class,'logistic_number_return','id','logistic_number_return','order_issue_id');
     }
 
+    function orderIssueRejectedBill(){
+        return $this->hasOne(OrderIssueRejectedBill::class,'logistic_number_return','logistic_number_return');
+    }
+
     function setIsLoaded_toWaitConfirm(){
         if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"将待推单修改为待确认! 退单号:".$this['logistic_number_return'],Auth::user()['id']);
         $bill=RejectedBill::find($this['id']);

+ 34 - 9
app/Services/OrderIssueRejectedBillService.php

@@ -2,6 +2,7 @@
 
 namespace App\Services;
 
+use App\Http\Controllers\Controller;
 use App\OracleDOCOrderHeader;
 use App\OrderIssue;
 use App\OrderIssueRejectedBill;
@@ -12,7 +13,8 @@ use Illuminate\Database\Eloquent\Model;
 Class OrderIssueRejectedBillService
 {
     /**
-     * @param $orderIssue
+     * 添加连接
+     * @param OrderIssue $orderIssue
      * @param $logistic_number_return
      * @return Builder|Model|object|null|boolean
      */
@@ -22,13 +24,16 @@ Class OrderIssueRejectedBillService
             ->where('order_issue_id',$orderIssue->id)
             ->where('logistic_number_return',$logistic_number_return)->first();
         if($orderIssueRejectedBill)return null;
+        if(!OrderIssueRejectedBill::isExit($orderIssue->id,$logistic_number_return)) $orderIssue->update(['is_new_rejecting' => '有']);
         $orderIssue->joinRejectedBill($logistic_number_return);
+        $orderIssue->syncRejectingStatus();
         return OrderIssueRejectedBill::query()->with('rejectedBill')
                 ->where('order_issue_id',$orderIssue->id)
                 ->where('logistic_number_return',$logistic_number_return)->first() ?? false;
     }
 
     /**
+     * 删除连接
      * @param OrderIssue $orderIssue
      * @param $logistic_number_return
      * @return void|null|boolean
@@ -39,10 +44,14 @@ Class OrderIssueRejectedBillService
             ->where('order_issue_id',$orderIssue->id)
             ->where('logistic_number_return',$logistic_number_return)->first();
         if(!$orderIssueRejectedBill)return null;
-        return $orderIssue->unJoinRejectedBill($logistic_number_return);
+
+        $bool = $orderIssue->unJoinRejectedBill($logistic_number_return);
+        $orderIssue->syncRejectingStatus();
+        return $bool;
     }
 
     /**
+     * 修改连接
      * @param  OrderIssue $orderIssue
      * @param $logistic_number_return
      * @param $logistic_number_return_update
@@ -54,6 +63,7 @@ Class OrderIssueRejectedBillService
             ->where('logistic_number_return',$logistic_number_return)->first();
         if($orderIssueRejectedBill) return null;
         $orderIssue->reviseJoinRejectedBill($logistic_number_return,$logistic_number_return_update);
+        $orderIssue->syncRejectingStatus();
         return OrderIssueRejectedBill::query()->with('rejectedBill')
                 ->where('order_issue_id',$orderIssue->id)
                 ->where('logistic_number_return',$logistic_number_return)->first() ?? false;
@@ -86,6 +96,7 @@ Class OrderIssueRejectedBillService
             })->first();
         }
         if(!$orderIssue)return;
+        if(!OrderIssueRejectedBill::isExit($orderIssue->id,$rejectedBill->logistic_number_return)) $orderIssue->update(['is_new_rejecting' => '有']);
         $orderIssue->joinRejectedBill($rejectedBill->logistic_number_return);
         $this->syncOrderIssueRejectingStatus($orderIssue);
     }
@@ -108,21 +119,35 @@ Class OrderIssueRejectedBillService
 
     /**
      * 问题件更新退单状态
-     * @param OrderIssue $orderIssue
+     * @param OrderIssue|Controller $order_issues
      */
-    public function syncOrderIssueRejectingStatus($orderIssue)
+    public function syncOrderIssueRejectingStatus($order_issues)
     {
-        $orderIssue->syncRejectingStatus();
+        /**@var OrderIssue $orderIssue */
+        if(!$order_issues)return;
+        if(is_array($order_issues)){
+            foreach ($order_issues as $orderIssue) {
+                $orderIssue->syncRejectingStatus();
+            }
+            return;
+        }
+        $order_issues->syncRejectingStatus();
     }
 
     /**
      * 根据问题件信息
-     * @param RejectedBill $rejectedBill
+     * @param RejectedBill|Controller $rejectedBills
      */
-    public function updateByOrderIssue($rejectedBill)
+    public function updateByOrderIssue($rejectedBills)
     {
-        $rejectedBill->syncOrderInfo();
+        if(!$rejectedBills)return;
+        if(is_array($rejectedBills)){
+            foreach ($rejectedBills as $rejectedBill) {
+                $rejectedBill->syncOrderInfo();
+            }
+            return;
+        }
+        $rejectedBills->syncOrderInfo();
     }
 
-
 }

+ 3 - 3
app/Services/RejectedService.php

@@ -21,9 +21,9 @@ class RejectedService
     private function conditionQuery(array $param)
     {
         $user = Auth::user();
-        $rejectedBills = RejectedBill::query()->with('user','owner', 'logistic', 'items.quality','orderIssue:logistic_number_return')
-            ->orderBy('rejected_bills.id', 'desc')->whereIn('rejected_bills.id_owner',
-            $user ? (app('UserService')->getPermittingOwnerIds($user) ?? []) : []);
+        $rejectedBills = RejectedBill::query()->with('user','owner', 'logistic', 'items.quality','orderIssueRejectedBill:logistic_number_return')
+            ->orderBy('rejected_bills.id', 'desc')
+            ->whereIn('rejected_bills.id_owner', $user ? (app('UserService')->getPermittingOwnerIds($user) ?? []) : []);
         $columnQueryRules = [
             'created_at_start' => ['alias' => 'created_at', 'startDate' => ' 00:00:00'],
             'created_at_end' => ['alias' => 'created_at', 'endDate' => ' 23:59:59'],

+ 6 - 2
resources/views/order/issue/index.blade.php

@@ -1544,6 +1544,10 @@
                                 if(orderIssue.order_issue_rejected_bills===null)orderIssue.order_issue_rejected_bills=[];
                                 orderIssue.order_issue_rejected_bills.push(response.data.data.orderIssueRejectedBill);
                                 $(e.target).prev().val('');
+                                if(response.data.data.orderIssue){
+                                    orderIssue.is_new_rejecting = response.data.data.orderIssue.is_new_rejecting;
+                                    orderIssue.rejecting_status = response.data.data.orderIssue.rejecting_status;
+                                }
                                 _this.regroupRejectedBill(orderIssue);
                                 return;
                             }
@@ -1564,8 +1568,8 @@
                                 tempTip.setDuration(2000);
                                 tempTip.showSuccess('退回单号取消关联成功');
                                 if(orderIssue.rejected_bills===null)return;
-                                $.each(orderIssue.order_issue_rejected_bills,function(i,order_issue_rejected_bills){
-                                    if(order_issue_rejected_bills.rejected_bill.logistic_number_return === logistic_number){
+                                $.each(orderIssue.order_issue_rejected_bills,function(i,item){
+                                    if(item.rejected_bill.logistic_number_return === logistic_number){
                                         orderIssue.order_issue_rejected_bills.splice(i,1);
                                         _this.regroupRejectedBill(orderIssue);
                                     }

+ 1 - 1
resources/views/rejected/search/general.blade.php

@@ -76,7 +76,7 @@
                         </td>
                         <td class="text-nowrap">
 {{--                            <span class="text-muted" style="opacity:0.7">@{{ i+1 }}</span> <span v-if="issueIds.includes(rejectedBill.id)" class="badge badge-pill badge-danger">问题件</span>--}}
-                            <span class="text-muted" style="opacity:0.7">@{{ i+1 }}</span> <span v-if="rejectedBill.order_issue" class="badge badge-pill badge-danger">问题件</span>
+                            <span class="text-muted" style="opacity:0.7">@{{ i+1 }}</span> <span v-if="rejectedBill.order_issue_rejected_bill" class="badge badge-pill badge-danger">问题件</span>
                         </td>
                         <td class="text-muted">
                             <span v-if="rejectedBill.is_checked==1" class="text-success">