Преглед на файлове

问题件录入 录入界面,货主字段需要进行筛选

ajun преди 5 години
родител
ревизия
a532e82644
променени са 2 файла, в които са добавени 21 реда и са изтрити 15 реда
  1. 5 0
      app/Order.php
  2. 16 15
      app/Services/RejectedBillService.php

+ 5 - 0
app/Order.php

@@ -15,6 +15,11 @@ class Order extends Model
         'logistic_id', 'consignee_name', 'consignee_phone', 'province',
         'city', 'district', 'address', 'wms_status'];
 
+    /*
+     * wms订单号     code=>DOC_ORDER_HEADER[orderno]
+     * 客户订单号     client_code=>DOC_ORDER_HEADER['soreference1']
+     * wms订单状态    wms_status=>
+     */
     protected $appends = [
         'logisticNumbers',
         'amount',

+ 16 - 15
app/Services/RejectedBillService.php

@@ -30,26 +30,27 @@ Class RejectedBillService
     public function syncOrderIssue($rejectedBill)
     {
         $orderIssue = $rejectedBill->orderIssue()->first();
-        if(!isset($orderIssue)){
-            if(isset($rejectedBill->order_number) && trim($rejectedBill->order_number) != ''){
-                $orderIssue = OrderIssue::query()->with('order')->whereHas('order',function($query)use($rejectedBill){
-                    $query->where('client_code',$rejectedBill->order_number);
-                })->first();
-            }
-            if(isset($rejectedBill->logistic_number_return) && !isset($orderIssue)){
-                $orderHeader = OracleDOCOrderHeader::query()->where('soreference1',function($query)use($rejectedBill){
-                    $query->select('asnreference2')->from('DOC_ASN_HEADER')->where('asnreference3',$rejectedBill->logistic_number_return)->first();
-                })->first();
+        if($rejectedBill['logistic_number'] === '原单退回'){   // 原单退回
+            $orderIssue = OrderIssue::query()->with('order')->whereHas('order',function($query)use($rejectedBill){
+                $query->where('client_code',$rejectedBill['order_number']);
+            })->first();
+        }
+        if(!isset($orderIssue)){ // 有对应的问题发货订单
+            $orderHeader = OracleDOCOrderHeader::query()->where('soreference1',function($query)use($rejectedBill){
+                $query->select('asnreference2')->from('DOC_ASN_HEADER')->where('asnreference3',$rejectedBill->logistic_number_return)->first();
+            })->first();
 //                $orderHeader = OracleDOCOrderHeader::query()->where('soreference1',function($query)use($rejectedBill){
 //                    $query->select('asnreference2')->from('DOC_ASN_HEADER')->where('asnreference3',$rejectedBill->logistic_number_return)->first();
 //                })->first();
-                if(!isset($orderHeader))return;
-                $orderIssue = OrderIssue::query()->with('order')->whereHas('order',function($query)use($orderHeader){
-                    $query->where('code',$orderHeader->orderno);
-                })->first();
-            }
+            if(!isset($orderHeader))return;
+            $orderIssue = OrderIssue::query()->with('order')->whereHas('order',function($query)use($orderHeader){
+                $query->where('code',$orderHeader->orderno);
+            })->first();
         }
         if(isset($orderIssue)){
+            // 更新问题件的退回单号
+            if($orderIssue['logistic_number_return']!=$rejectedBill['logistic_number_return'])
+                $orderIssue->update(['logistic_number_return'=>$rejectedBill['logistic_number_return']]);
             //确认问题件有的时候需要更新状态和提示
             $orderIssue->同步退单状态();
             $orderIssue->update(['is_new_rejecting' => '有']);