Просмотр исходного кода

问题件 退回件 关联关系修改

ajun 5 лет назад
Родитель
Сommit
494493020d

+ 3 - 3
app/Order.php

@@ -29,9 +29,9 @@ class Order extends Model
      */
 
     protected $appends = [
-        'logisticNumbers',
-        'amount',
-        'commodityPackages'
+//        'logisticNumbers',
+//        'amount',
+//        'commodityPackages'
     ];
     public function cancel(){
         $this['status'] = '取消';

+ 5 - 0
app/OrderIssue.php

@@ -58,6 +58,11 @@ class OrderIssue extends Model
         return $this->belongsTo(RejectedBill::class, 'logistic_number_return', 'logistic_number_return');
     }
 
+//    public function rejectedBills()
+//    {
+//        return $this->hasManyThrough(OrderIssue::class,RejectedBill::class,'issue_id','logistic_number_return','id','logistic_number_return');
+//    }
+
     public function issueType()
     {
         return $this->belongsTo('App\OrderIssueType', 'order_issue_type_id', 'id');

+ 33 - 0
database/migrations/2021_01_07_092258_create_order_issue_rejected_bill_table.php

@@ -0,0 +1,33 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class CreateOrderIssueRejectedBillTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('order_issue_rejected_bill', function (Blueprint $table) {
+            //
+            $table->bigInteger('issue_id')->index();
+            $table->string('rejected_logistic_number')->index();
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('order_issue_rejected_bill');
+    }
+}

+ 48 - 12
resources/views/order/issue/index.blade.php

@@ -262,14 +262,16 @@
                             <span v-if='orderIssue.order.logistic'>@{{ orderIssue.order.logistic.name }}</span>
                         </td>
                         <td class=" hide-content p-0 td-yellow child-layer-2" valign="middle" align="center">
-                            <span  :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''" :id="'logisticNumbers'+orderIssue.id" >
-                                <span class="m-0 p-0 d-inline-block" v-for="logisticNumber in orderIssue.order.logisticNumbers" >@{{ logisticNumber }}&nbsp;&nbsp;</span>
-                            </span>
-                            <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1"
-                                    :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"
-                                    @click="toggleLogisticNumbers(orderIssue.id,orderIssue.order.logisticNumbers.length)">
-                                分箱@{{ orderIssue.order.logisticNumbers.length }}件,点击展开
-                            </button>
+                            <div v-if="orderIssue.order">
+                                <span  :class="orderIssue.order.packages.length > 1 ?'collapse ':''" :id="'logisticNumbers'+orderIssue.id" >
+                                    <span class="m-0 p-0 d-inline-block" v-for="package in orderIssue.order.packages" >@{{ package.logistic_number }}&nbsp;&nbsp;</span>
+                                </span>
+                                <button v-if="orderIssue.order.packages.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1"
+                                        :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"
+                                        @click="toggleLogisticNumbers(orderIssue.id,orderIssue.order.packages.length)">
+                                    分箱@{{ orderIssue.order.packages.length }}件,点击展开
+                                </button>
+                            </div>
                         </td>
                         {{--商品明细 开始--}}
                         <td class="td-yellow p-0 m-0 child-layer-2" v-if="!isShowOrderInfo && index===0" style="width:50px" :rowspan="orderIssues.length">
@@ -434,16 +436,16 @@
                                     <div class="text-center m-0" :id="'secondOrderNumbers'+orderIssue.id"
                                          :class="orderIssue.seconderCount > 1 ? 'collapse':''"
                                          :data-value="orderIssue.seconderCount = 0">
-                                        <p class="m-0 p-0  text-muted " v-for="logisticNumber in orderIssue.second_order.logisticNumbers"
-                                           :data-value="orderIssue.seconderCount +=1">@{{ logisticNumber }}</p>
+                                        <p class="m-0 p-0  text-muted " v-for="package in orderIssue.second_order.packages"
+                                           :data-value="orderIssue.seconderCount +=1">@{{ package.logistic_number }}</p>
                                     </div>
                                     <button v-if="orderIssue.seconderCount > 1" type="button"
                                             class="btn btn-sm btn-outline-primary align-middle mt-1"
                                             data-toggle="collapse"
                                             :id="'secondOrderNumbersBtn'+orderIssue.id"
                                             :data-target="'#secondOrderNumbers'+orderIssue.id"
-                                            @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.logisticNumbers.length)">
-                                        分箱@{{ orderIssue.second_order.logisticNumbers.length }}件,点击展开
+                                            @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.packages.length)">
+                                        分箱@{{ orderIssue.second_order.packages.length }}件,点击展开
                                     </button>
                                 </div>
                                 <div v-else-if="orderIssue.second_order === null">
@@ -727,6 +729,13 @@
                     orderIssue: {id: null,showId:''},
                 },
             },
+            created(){
+                $.each(this.orderIssues,function(i,orderIssue){
+                    this.regroupOrder(orderIssue.order);
+                    this.regroupOrder(orderIssue.send_order);
+                    this.regroupRejectedBill(orderIssue);
+                });
+            },
             mounted: function () {
                 $(".tooltipTarget").tooltip({'trigger':'hover'});
                 this.isShowOrderInfo = false;
@@ -844,6 +853,33 @@
                 },
             },
             methods: {
+                regroupOrder(order){
+                    if(!order)return;
+                    let amounts = 0; // 商品总数
+                    let type_numbers = 0; // 商品类型数量
+                    $.each(order.packages,function(i,package){
+                        $.each(package.commodities,function(i,commodity){
+                            type_numbers++;
+                            amounts+=commodity.amount;
+                        });
+                    });
+                    order.amounts = amounts;
+                    order.type_numbers = type_numbers;
+                },
+                regroupRejectedBill(orderIssue){
+                    if(!orderIssue)return;
+                    if(!orderIssue.rejectedBills)return;
+                    let amounts = 0;// 商品总数
+                    let type_numbers = 0; // 商品类型数量
+                    $.each(orderIssue.rejectedBills,function(i,rejectedBill){
+                        $.each(rejectedBill.items,function (i,item) {
+                            type_numbers++;
+                            amounts+=item.amount;
+                        });
+                    });
+                    orderIssue.rejected_bill_amounts = amounts;
+                    orderIssue.rejected_bill_type_numbers = type_numbers;
+                },
                 selectedColor(orderno,e) {
                     $('.table-body').removeClass('focusing')
                     if (orderno === this.selectedStyle) {