Преглед изворни кода

Merge branch 'zengjun'

# Conflicts:
#	app/Services/OrderIssueService.php
LD пре 5 година
родитељ
комит
e3ac18df4b

+ 1 - 1
app/Http/Controllers/RejectedController.php

@@ -500,7 +500,7 @@ class RejectedController extends Controller
         }
         $rejectedBill =  RejectedBill::with(['items'])->where('logistic_number_return',$request->input('logisticNumberReturn'))->first();
         if(!$rejectedBill){
-            return ['success' => true,'msg' => '没有对应的退回单号,但仍可以生成问题订单'];
+            return ['success' => false,'fail_info' => '没有对应的退回单号,请先录入退件单'];
         }
         return ['success'=>true,'rejectedBill' => $rejectedBill];
     }

+ 4 - 0
app/OrderIssue.php

@@ -172,6 +172,10 @@ class OrderIssue extends Model
             $this->update(['rejecting_status' => '差异退回']);
     }
 
+    public function 同步退单($logist_number){
+
+    }
+
     public function delete()
     {
         $this->order()->delete();

+ 3 - 1
app/RejectedBill.php

@@ -154,7 +154,9 @@ class RejectedBill extends Model
     public function 同步问题件(){
         $order_number = $this['order_number'];
         $order_header = OracleDOCOrderHeader::query()->where('soreference1',$order_number)->first();
-        if(!$order_header){return;}
+        if(!$order_header){
+            return;
+        }
         $order = Order::query()->with('issue')->where('code',$order_header['orderno'])->first();
         if($order['issue']){
             $order_issue =  $order->issue;

+ 34 - 22
app/Services/OrderIssueService.php

@@ -3,6 +3,7 @@
 namespace App\Services;
 
 use App\Http\Controllers\Controller;
+use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
 use App\OrderIssue;
 use App\OrderIssueProcessLog;
@@ -118,32 +119,39 @@ class OrderIssueService
         $query = $this->getQuery($arr, $condition);
         $query = $this->getOrderQuery($condition ?? $arr, $query);
         $query = $this->getRejectedBillQuery($condition ?? $arr, $query);
+
         if (!isset($condition)) {
             $condition = $arr;
         }
-        $params = [
-            'created_at_start' => $condition['created_at_start'] ?? '',
-            'final_status' => $condition['final_status'] ?? '',
-            'order_issue_type_id' => $condition['order_issue_type_id'] ?? '',
-            'logistic_indemnity_money' => $condition['logistic_indemnity_money'] ?? '',
-            'baoshi_indemnity_money' => $condition['baoshi_indemnity_money'] ?? '',
-            'order_issues.id' => $condition['order_issue_ids'] ?? '',
-        ];
-        $columnQueryRules = [
-            'order_issues.id' => ['alias' => 'order_issues.id', 'multi' => ','],
-            'created_at_start' => ['alias' => 'order_issues.created_at', 'startDate' => ' 00:00:00'],
-        ];
-        $query = app(QueryService::class)->query($params, $query, $columnQueryRules);
-
+        if (isset($condition['created_at_start'])) {
+            $query->where('order_issues.created_at', '>=', $condition['created_at_start'] . " 00:00:00");
+        }
+        if (isset($condition['created_at_end'])) {
+            $query->where('order_issues.created_at', '<=', $condition['created_at_end'] . " 23:59:59");
+        }
+        if (isset($condition['final_status'])) {
+            $query->where('final_status', $condition['final_status']);
+        }
+        if (isset($condition['order_issue_type_id'])) {
+            $query->where('order_issue_type_id', $condition['order_issue_type_id']);
+        }
         if (!($condition['is_handle'] ?? false) && !($condition['final_status'] ?? false)) {
             $query->where(function ($query) {
                 $query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
             });
         }
-        if ($condition['created_at_end'] ?? false) {
-            $query->whereHas('logs', function ($query) use ($condition) {
-                $query->where('created_at', $condition['created_at_end'])->where('type', '结束');
-            });
+        if (isset($condition['logistic_indemnity_money'])) {
+            $query->where('logistic_indemnity_money', $condition['logistic_indemnity_money']);
+        }
+        if (isset($condition['baoshi_indemnity_money'])) {
+            $query->where('baoshi_indemnity_money', $condition['baoshi_indemnity_money']);
+        }
+        if (isset($condition['order_issue_ids'])) {
+            $orderIssuesId = $condition['order_issue_ids'];
+            if (is_string($orderIssuesId)) {
+                $orderIssuesId = explode(',', $orderIssuesId);
+            }
+            $query->whereIn('order_issues.id', $orderIssuesId);
         }
 
         return $query;
@@ -275,12 +283,17 @@ class OrderIssueService
     public function createOrFind($clientCode)
     {
         $orderService = app('orderService');
-        $orderHeader = OracleDOCOrderHeader::query()->where('SOREFERENCE1', $clientCode)->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('SOReference1', $clientCode)->first();
         if (!$orderHeader) {
             return null;
         }
         $order = $orderService->findOrCreateByClientCode($clientCode);
         $rejectedBill = RejectedBill::query()->where('order_number', $orderHeader['soreference1'])->first();
+        if(!($rejectedBill ?? false)){
+           $asnHeader =  OracleDOCASNHeader::query()->where('ASNReference2', $orderHeader['soreference1'])->first();
+           if($asnHeader['asnreference3'] ?? false)
+              $rejectedBill = RejectedBill::query()->where('logistic_number_return',$asnHeader['asnreference3'])->first();
+        }
         $arr = [
             'order_id' => $order['id'],
             'rejected_bill_id' => $rejectedBill['id'] ?? '',
@@ -384,7 +397,7 @@ class OrderIssueService
                 $rejectedBill->同步问题件();
                 $rejectedBill->同步问题件退件状态();
 
-            } else if ($arr['rejectedBill']['id_logistic_return'] ?? false && $arr['rejectedBill']['logistic_number_return'] ?? false) {
+            } /*else if ($arr['rejectedBill']['id_logistic_return'] ?? false && $arr['rejectedBill']['logistic_number_return'] ?? false) {
                 $owner_id = $orderIssue['order']['owner_id'];
                 $rejectedBill = RejectedBill::query()->firstOrCreate([
                         'id_logistic_return' => $arr['rejectedBill']['id_logistic_return'] ?? '',
@@ -394,10 +407,9 @@ class OrderIssueService
                 $rejectedBill->save();
                 $rejectedBill->同步问题件();
                 $rejectedBill->同步问题件退件状态();
-
                 $arr['orderIssues']['rejected_bill_id'] = $rejectedBill['id'];
                 $arr['orderIssues']['is_new_rejecting'] = '有';
-            }
+            }*/
         }
         if ($arr['order'] ?? false) {
             $order = Order::query()->where('id', $arr['order']['id'])->first();

+ 8 - 3
resources/views/order/issue/edit.blade.php

@@ -150,7 +150,7 @@
                 <div class="form-group row">
                     <label class="col-2 col-form-label text-right"></label>
                     <div class="col-8">
-                        <button type="submit" class="btn btn-success form-control" @click="submitFake">提交修改
+                        <button type="submit" class="btn btn-success form-control" @click="submitFake" :disabled="isSubmit">提交修改
                         </button>
                     </div>
                 </div>
@@ -195,7 +195,8 @@
                 final_status: ['已解决', '待退回', '退回中',],
                 logisticExpressRemission: ['原单减免', '部分减免', '全部减免'],
                 baoShiExpressRemission: ['原单减免', '部分减免', '全部减免'],
-                logistic_number:@if($rejectedBill)'{!! $rejectedBill->logistic_number_return !!}'@else ''@endif
+                logistic_number:@if($rejectedBill)'{!! $rejectedBill->logistic_number_return !!}'@else ''@endif,
+                isSubmit:false
             },
             mounted: function () {
                 $("#editOrderIssue").removeClass('d-none');
@@ -242,6 +243,7 @@
                     if( logistic_number_return === null || logistic_number_return == '' ){
                         this.rejectedBill = {logistic_number_return:logistic_number_return} ;
                         this.orderIssues.rejected_bill_id = null;
+                        this.isSubmit = false;
                         return ;
                     }
                     let data = {logisticNumberReturn:logistic_number_return};
@@ -252,6 +254,7 @@
                                 _this.rejectedBill.id_logistic_return = res.data.rejectedBill.id_logistic_return;
                                 _this.rejectedBill.id_owner = res.data.rejectedBill.id_owner;
                                 _this.orderIssues.rejected_bill_id = res.data.rejectedBill.id;
+                                _this.isSubmit = false;
                             }
                             if(res.data.msg){
                                 tempTip.setDuration(2000);
@@ -263,10 +266,12 @@
                                 tempTip.showSuccess('找到对应的问题单');
                             }
                         }else{
+                            _this.isSubmit = true;
                             tempTip.setDuration(4000);
-                            tempTip.show(res.data.fain_info);
+                            tempTip.show(res.data.fail_info);
                         }
                     }).catch(function(err){
+                        _this.isSubmit = true;
                         tempTip.setDuration(4000);
                         tempTip.show('网络异常:' + err);
                     });

+ 9 - 3
resources/views/order/issue/index.blade.php

@@ -45,9 +45,9 @@
 
                         <th class="  font-weight-bolder"
                             @cannot('客户不可见')
-                            :colspan="10 +  (isShowRejectedBill ? 5:1) + (isShowSecondOrderInfo ? 6: 1 )"
+                            :colspan="11 +  (isShowRejectedBill ? 5:1) + (isShowSecondOrderInfo ? 6: 1 )"
                             @else
-                            colspan="7"
+                            colspan="8"
                             @endcannot>
 
                             @cannot('客户不可见')
@@ -103,7 +103,7 @@
                         <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">区</th>
                         <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width:300px">收货人地址</th>
                         <th class=" align-middle td-yellow" v-if="isShowOrderInfo" colspan="3" style="min-width:300px">原始商品明细</th>
-
+                        <th class=" align-middle" rowspan="2" >退回单号</th>
                         @cannot('客户不可见')
                         <th class="  align-middle" rowspan="2" v-if="!isShowRejectedBill" style="min-width:50px">展开</th>
                         <th class="  align-middle" colspan="5" v-if="isShowRejectedBill" style="min-width: 450px">返回商品明细</th>
@@ -266,6 +266,11 @@
                         {{--商品明细 结束--}}
 
                         {{--退单商品明细 开始--}}
+                        <td class="text-muted">
+                            <template v-if="orderIssue.rejected_bill">
+                                @{{ orderIssue.rejected_bill.logistic_number_return }}
+                            </template>
+                        </td>
                         @cannot('客户不可见')
                         <td class="p-0 m-0" v-if="!isShowRejectedBill && index === 0 " style="width:50px;" :rowspan="orderIssues.length" >
                             <span class="btn  btn-outline-secondary "  @click="showRejectedBill"  :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
@@ -560,6 +565,7 @@
             mounted: function () {
                 $('.tooltipTarget').tooltip({'trigger': 'hover'});
                 $('#list').removeClass("d-none");
+                console.log(this.orderIssues);
                 let _this = this;
                 let final_status = [{name: '已解决', value: '已解决'}, {name: '待退回', value: '待退回'}, {
                     name: '退回中',