Browse Source

退回件点击原单退回
查询订单信息
1: 校验WAS订单数据
2: 校验WMS订单数据
3:校验问题件关联数据
有将填充无责提示

ajun 5 years ago
parent
commit
6e4e6bfe05

+ 7 - 4
app/Http/Controllers/RejectedBillController.php

@@ -8,6 +8,7 @@ use App\Logistic;
 use App\OracleActAllocationDetails;
 use App\OracleBasSKU;
 use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\QualityLabel;
 use App\Rejected;
@@ -293,10 +294,12 @@ class RejectedBillController extends Controller
         return ['success'=>'true','result'=>'true'];
     }
 
-    function seekOrder(Request $request){
-        if (!$request->soreference5)return ['success'=>false];
-        $order=OracleDOCOrderHeader::select('soreference1','customerid','c_contact','c_tel2','c_tel1','carrierid')->where('soreference5',$request->soreference5)->first();
-        if ($order)return ['success'=>true,'data'=>$order];
+    function seekOrder(Request $request)
+    {
+        if (!$request['logistic_number_return'])return ['success'=>false];
+        $result = app('RejectedBillService')->getOrderInfo($request['logistic_number_return']);
+        if($result)return ['success' => true,'data' => $result];
+        else return ['success'=>false];
     }
 
     public function disposeImportApi(Request $request)

+ 17 - 0
app/OracleDOCOrderHeader.php

@@ -2,6 +2,8 @@
 
 namespace App;
 
+use App\Services\LogisticService;
+use App\Services\OwnerService;
 use App\Traits\HasCompositePrimaryKey;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
@@ -63,4 +65,19 @@ class OracleDOCOrderHeader extends Model
     public function orderType(){
         return $this->hasOne('App\OracleBasCode','code','ordertype')->where('codeid','SO_TYP');
     }
+
+    public function getLogistic()
+    {
+        /** @var LogisticService $logistic_service */
+        $logistic_service = app('LogisticService');
+        if(!$this['carrierid'])return null;
+        return $logistic_service->getLogisticByCode($this['carrierid']);
+    }
+
+    public function getOwner()
+    {
+        /** @var OwnerService $owner_service */
+        $owner_service = app('OwnerService');
+        return $owner_service->codeGetOwner($this['customerid']);
+    }
 }

+ 34 - 0
app/Services/RejectedBillService.php

@@ -2,14 +2,20 @@
 
 namespace App\Services;
 
+use App\OracleActAllocationDetails;
 use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
+use App\Order;
 use App\OrderIssue;
+use App\OrderIssueRejectedBill;
+use App\OrderPackage;
 use App\RejectedBill;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
 use Carbon\Carbon;
 use App\Traits\ServiceAppAop;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Query\Builder;
 
 
 Class RejectedBillService
@@ -195,4 +201,32 @@ Class RejectedBillService
         }
         return null;
     }
+
+    /**
+     * @param string $logisticNumber
+     * @return array|Builder|Model|object|null
+     */
+    public function getOrderInfo($logisticNumber)
+    {
+        $order_package_query =  OrderPackage::query()->selectRaw('order_id')->where('logistic_number',$logisticNumber);
+        $order = Order::query()->whereIn('id',$order_package_query )->first();
+        if($order)return $order->toArray();
+        $act_allocation_details_query = OracleActAllocationDetails::query()->selectRaw('OrderNo')->where('pickToTraceId',$logisticNumber);
+        /** @var OracleDOCOrderHeader $order_header */
+        $order_header = OracleDOCOrderHeader::query()->whereIn('OrderNo',$act_allocation_details_query)->first();
+        if($order_header){
+            return [
+                'logistic_id' => $order_header->getLogistic()['id'] ?? '',
+                'owner_id' => $order_header->getOwner()['id'] ?? '',
+                'consignee_name' => $order_header['c_contact'] ?? '' ,
+                'consignee_phone' =>  $order_header['c_tel2'] ?? $order_header['c_tel1'],
+                'client_code'  => $order_header['soreference1'] ?? '',
+            ];
+        }
+        $order_issue_rejected_bill_query = OrderIssueRejectedBill::query()->selectRaw('order_issue_id')->where('logistic_number_return',$logisticNumber);
+        $order_issue_query = OrderIssue::query()->selectRaw('order_id')->whereIn('id',$order_issue_rejected_bill_query);
+        $order = Order::query()->whereIn('id',$order_issue_query)->first();
+        if($order)return $order;
+        else return null;
+    }
 }

+ 24 - 24
resources/views/rejected/create.blade.php

@@ -143,7 +143,7 @@
                                 <td>
                                     <div class="form-group mb-0">
                                         <label for="logistic_number" class="col-form-label text-right">原单号</label>
-                                        <button class="btn btn-outline-primary btn-sm" @click="seek_order();billInputting.logistic_number='原单退回'" style="transform: scale(0.9)">原单退回</button>
+                                        <button class="btn btn-outline-primary btn-sm" @click="seek_order()" style="transform: scale(0.9)">原单退回</button>
                                         <input type="text" class="form-control" :class="[errors.logistic_number?'is-invalid':'']"
                                                data-focusOrder="7"
                                                name="logistic_number" id="logistic_number" autocomplete="off"
@@ -973,32 +973,32 @@
                 //根据退回单寻找WMS订单填充已有字段
                 seek_order(){
                     let _this=this;
-                    let soreference5=this.billInputting.logistic_number_return;
-                    if (!soreference5) return;
-                    axios.post('{{url('apiLocal/rejectedBill/seekOrder')}}',{soreference5:soreference5})
+                    let logistic_number_return=this.billInputting.logistic_number_return;
+                    if (!logistic_number_return) return;
+                    axios.post('{{url('apiLocal/rejectedBill/seekOrder')}}',{logistic_number_return:logistic_number_return})
                         .then(function (response) {
                             if (response.data.success){
-                                let id_owner='';
-                                let id_logistic_return='';
-                                _this.owners.every(function (owner) {
-                                    if (owner.code===response.data.data.customerid){
-                                        id_owner=owner.id;return false;
-                                    }
-                                    return  true;
-                                });
-                                _this.logistics.every(function (logistic) {
-                                    if (logistic.code===response.data.data.carrierid){
-                                        id_logistic_return=logistic.id;return false;
-                                    }
-                                    return  true;
-                                });
-                                if (id_owner) _this.billInputting.id_owner=id_owner;
-                                _this.billInputting.sender=response.data.data.c_contact;
-                                if (id_logistic_return) _this.billInputting.id_logistic_return=id_logistic_return;
-                                _this.billInputting.order_number=response.data.data.soreference1;
-                                _this.billInputting.mobile_sender=response.data.data.c_tel2;
+                                if(response.data.data.owner_id)_this.billInputting.id_owner=response.data.data.owner_id;
+                                if(response.data.data.logistic_id)_this.billInputting.id_logistic_return = response.data.data.logistic_id;
+                                if(response.data.data.consignee_name)_this.billInputting.sender = response.data.data.consignee_name;
+                                if(response.data.data.consignee_phone)_this.billInputting.mobile_sender = response.data.data.consignee_phone;
+                                if(response.data.data.client_code)_this.billInputting.order_number = response.data.data.client_code;
+                                _this.billInputting.logistic_number='原单退回';
+                                tempTip.setDuration(2000);
+                                tempTip.showSuccess('原单信息已填充');
+                                return;
                             }
-                        })
+                            if(!response.data.data)_this.canelOrderInfo();
+                            tempTip.setDuration(2000);
+                            tempTip.show('请校验退回单号是否复合,复合正确才可提交');
+                        });
+                },
+                canelOrderInfo(){
+                    this.billInputting.id_owner = null;
+                    this.billInputting.id_logistic_return = null;
+                    this.billInputting.sender = null;
+                    this.billInputting.mobile_sender = null;
+                    this.billInputting.order_number = null;
                 }
             },
             filters:{