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

Merge branch 'master' into Haozi

haozi 5 лет назад
Родитель
Сommit
b3c7784947

+ 31 - 23
app/Http/Controllers/OrderController.php

@@ -38,6 +38,7 @@ class OrderController extends Controller
         $result = $orderService->paginate($request);
         $picktotraceids = $result['picktotraceids'];
         $orders = $result['orders'];
+        $orderIssueNos =  $orderService->返回有问题件的订单号($orders);
         $commodities = $result['commodities'];
         $customers=OracleBasCustomer::query()->select('customerid','descr_c')
             ->where('customer_type','OW')
@@ -47,7 +48,7 @@ class OrderController extends Controller
         $page = $request["page"] ?? 1;
         $codes=DB::connection('oracle')->table('BAS_CODES')->select('code','codename_c')->where('codeid','SO_STS')->orderBy('code','asc')->get();
         $orderIssueType = OrderIssueType::all();
-        return view('order/index/delivering',compact('orders','customers','request','codes','commodities','page','picktotraceids','orderIssueType'));
+        return view('order/index/delivering',compact('orders','customers','request','codes','commodities','page','picktotraceids','orderIssueType','orderIssueNos'));
     }
 
     //导出
@@ -86,33 +87,40 @@ class OrderController extends Controller
 
         $commodities = $result['commodities'];
         $rejectedBillItems = [];
+        //分箱号
+        $picktotraceids = json_decode($result['picktotraceids'],true);
         foreach ($result['orders'] as $order){
+            //不存在时将当前快递单号视为分箱号
+            if (!($picktotraceids[$order->orderno] ?? false))$picktotraceids[$order->orderno] = [$order->soreference5];
+            //获取货主与快递方
             $owner = app('ownerService')->firstOrCreate(['name' => $order->customer_descr_c],
                 ['name' => $order->customer_descr_c, 'code' => $order->customer_descr_c]);
             $logistic = app('logisticService')->firstOrCreate(['name' => $order->carriername],
                 ['name' => $order->carriername, 'code' => $order->carriername]);
-            $rejectedBill = $rejectedBillService->create([
-                'id_owner' => $owner->id,
-                'sender' => $order->c_contact,
-                'logistic_number_return' => $order->soreference5,
-                'id_logistic_return' => $logistic->id,
-                'order_number' => $order->orderno,
-                'mobile_sender' => $order->c_tel2,
-                'logistic_number' => '原单退回',//$order->soreference1
-                'remark' => $order->notes,
-                'is_loaded' =>0,
-            ]);
-            LogService::log(__METHOD__,"生成退货单",json_encode($order),Auth::user()['id']);
-            if ($commodities[$order->orderno] ?? false){
-                foreach ($commodities[$order->orderno] as $orderCommodities){
-                    array_push($rejectedBillItems,[
-                        'id_rejected_bill' => $rejectedBill->id,
-                        'barcode_goods' => $orderCommodities['alternate_sku1'],
-                        'name_goods' => $orderCommodities['descr_c'],
-                        'amount' => $orderCommodities['qtyordered'],
-                        'id_quality_label' => 1,
-                        'created_at' => date('Y-m-d H:i:s'),
-                    ]);
+            foreach ($picktotraceids[$order->orderno] as $logistic_number){
+                $rejectedBill = $rejectedBillService->create([
+                    'id_owner' => $owner->id,
+                    'sender' => $order->c_contact,
+                    'logistic_number_return' => $logistic_number,
+                    'id_logistic_return' => $logistic->id,
+                    'order_number' => $order->soreference1,
+                    'mobile_sender' => $order->c_tel2,
+                    'logistic_number' => '原单退回',//$order->soreference1
+                    'remark' => $order->notes,
+                    'is_loaded' =>0,
+                ]);
+                LogService::log(__METHOD__,"生成退货单",json_encode($order),Auth::user()['id']);
+                if ($commodities[$order->orderno] ?? false){
+                    foreach ($commodities[$order->orderno] as $orderCommodities){
+                        array_push($rejectedBillItems,[
+                            'id_rejected_bill' => $rejectedBill->id,
+                            'barcode_goods' => $orderCommodities['alternate_sku1'],
+                            'name_goods' => $orderCommodities['descr_c'],
+                            'amount' => $orderCommodities['qtyordered'],
+                            'id_quality_label' => 1,
+                            'created_at' => date('Y-m-d H:i:s'),
+                        ]);
+                    }
                 }
             }
         }

+ 2 - 2
app/Http/Controllers/OrderIssueController.php

@@ -439,8 +439,8 @@ class OrderIssueController extends Controller
             return ['success'=>false,'fail_info' => '没有对应权限'];
         }
         $orderIssue_ids = $request->input('ids');
-        $bool = app(OrderIssueProcessLogService::class)->isExistOrderIssueTypeIsEnd($orderIssue_ids);
-        if($bool)return ['success'=>false,'fail_info'=> '需要完结的订单问题件已有完结的订单问题件'];
+        $bool = app(OrderIssueService::class)->isExistOrderIssueTypeIsEnd($orderIssue_ids);
+        if($bool)return ['success'=>false,'fail_info'=> '需要完结的订单问题件已有完结的订单问题件'];
         $bool = app(OrderIssueService::class)->endOrderIssues($orderIssue_ids);
         if($bool == 0) return ['success'=>false,'fail_info' => '操作失败'];
         $params = ['ids'=>$orderIssue_ids,'content'=>'完结订单','type'=>'结束'];

+ 2 - 2
app/Http/Controllers/OrderTrackingController.php

@@ -40,7 +40,7 @@ class OrderTrackingController extends Controller
         try {
             $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
             LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()) );
-            return ['success' => $bool];
+            return $bool;
         } catch (\Exception $e) {
             LogService::log(__METHOD__, __FUNCTION__, '更新失败' . json_encode($request->getContent()) .'||'.$e->getMessage().'||'.$e->getTraceAsString());
             return ['success' => false];
@@ -54,7 +54,7 @@ class OrderTrackingController extends Controller
         try {
             $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
             LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()));
-            return ['success' => $bool];
+            return $bool;
         } catch (\Exception $e) {
             LogService::log(__METHOD__, __FUNCTION__, '更新失败' . json_encode($request->getContent()) .'||'.$e->getMessage().'||'.$e->getTraceAsString());
             return ['success' => false];

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

@@ -45,11 +45,12 @@ class RejectedController extends Controller
         if(!Gate::allows('退货管理-查询')){ return redirect(url('/login'));  }
         $paginateParams = $request->input();
         $rejectedBills=app('rejectedService')->paginate($request);
+        $issueIds = app('rejectedService')->返回有问题件的ID($request);
         $owners = $ownerService->getSelection();
         $qualityLabels = $qualityLabelService->get();
         $logistics=$logisticService->getSelection();
         return view('rejected.search.general',compact('rejectedBills','owners','logistics',
-            'paginateParams','qualityLabels'));
+            'paginateParams','qualityLabels','issueIds'));
     }
     public function recycle(Request $request)
     {

+ 16 - 3
app/Http/Controllers/StoreCheckingReceiveController.php

@@ -101,8 +101,8 @@ class StoreCheckingReceiveController extends Controller
             if (!$storeCheckingReceiveItem->imported_amount){
                 $params['imported_amount'] = 0;
                 $params['imported_diff_amount'] = $counted_amount;
-            }else $params['imported_diff_amount'] = abs($counted_amount-$storeCheckingReceiveItem->imported_amount);
-            if ($storeCheckingReceiveItem->asn_amount)$params['asn_diff_amount'] = abs($counted_amount-$storeCheckingReceiveItem->asn_amount);
+            }else $params['imported_diff_amount'] = $counted_amount-$storeCheckingReceiveItem->imported_amount;
+            if ($storeCheckingReceiveItem->asn_amount)$params['asn_diff_amount'] = $counted_amount-$storeCheckingReceiveItem->asn_amount;
             if (!$storeCheckingReceiveItem->bin_number && $goods['bin_number'])$params['bin_number'] = $goods['bin_number'];
 
             if (isset($params['imported_diff_amount']) && $params['imported_diff_amount'] > 0)$is_receive_diff = "是";
@@ -271,7 +271,7 @@ class StoreCheckingReceiveController extends Controller
                 continue;
             }
             if ($skus[$item->commodity->sku] ?? false){
-                $asn_diff_amount = abs($skus[$item->commodity->sku] - $item->counted_amount);
+                $asn_diff_amount = $skus[$item->commodity->sku] - $item->counted_amount;
                 $updateItems[] = [
                     'id'=>$item->id,
                     'asn_amount'=>$skus[$item->commodity->sku],
@@ -341,4 +341,17 @@ class StoreCheckingReceiveController extends Controller
         }
         return ['success'=>true, 'data'=>$data];
     }
+
+    //修改实盘数量
+    public function updateCountedAmount(Request $request){
+        if(!Gate::allows('入库管理-盘收一体-盘收-编辑')){ return ['success'=>false, 'data'=>'无权操作!'];  }
+        $id = $request->id ?? null;
+        $counted_amount = $request->counted_amount ?? null;
+        if (!$id || !$counted_amount)return ['success'=>false, 'data'=>'参数传递错误!'];
+        $item = app('storeCheckingReceiveItemService')->find($id);
+        if (!$item)return ['success'=>false, 'data'=>'被盘项不存在'];
+        app('storeCheckingReceiveItemService')->updateFind($item,["counted_amount"=>$counted_amount]);
+        LogService::log(__METHOD__,"盘点修改实盘数",'item:'.json_encode($item)."update:",$counted_amount);
+        return ['success'=>true];
+    }
 }

+ 6 - 29
app/Http/Controllers/TestController.php

@@ -645,7 +645,6 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $orderTrackingService->createByWmsOrderHeader($orderHeaders);
         $orderService->updateByWmsOrders($orderHeaders);
         $orderTrackingService->updateByWmsOrderHeaders($orderHeaders);
-
     }
 
     public function usage(){
@@ -667,34 +666,12 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     }
 
     public function updateOrderTracking(){
-        $orderTrackings = OrderTracking::query()->with('commodities.package.order')
-            ->whereHas('commodities.package.order',function($query){
-                $query->where('client_code','O2009027827');
-            })
-            ->where('created_at','>','2020-09-28 00:07:06')->first();
-        $order = $orderTrackings->commodities->package->order;
-        $client_code = $order->client_code;
-        if(preg_match('/^O[\d]/',$client_code ?? '') > 0){
-            OrderTracking::query()->where('id',$orderTrackings->id)->update(['web_order_number'=>$client_code]);
-        }
-    }
-
-    public function updateOrderTrackingGrossWeightAndBulk(){
-        $orderTrackings = OrderTracking::query()->with('commodities.package.order.owner','commodities.commodity')
-            ->where('created_at','>','2020-09-17 00:00:00')->get();
+        $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
         foreach ($orderTrackings as $orderTracking) {
-            $code = $orderTracking->commodities->package->order->owner->code ?? false;
-            $amount = $orderTracking->commodities->amount;
-            if(!$code){continue;}
-            $commodity = $orderTracking->commodities->commodity;
-            $basSku =  OracleBasSKU::query()->where('CustomerID',$code)->where('SKU',$commodity->sku)->first();
-            $gross_weight = null;
-            $bulk = null;
-            $gross_weight = round($basSku->grossweight * $amount,3);
-            $bulk = round($basSku->cube * $amount,3);
-            if($orderTracking->gross_weight!= $gross_weight ||$orderTracking->bulk!= $bulk ){
-                OrderTracking::query()->where('id',$orderTracking->id)->update(['gross_weight'=>$gross_weight,'bulk'=>$bulk]);
-            }
+            $order = $orderTracking->commodities->package->order;
+            $order_code = $order->client_code;
+            $orderTracking->update(['order_client_code'=>$order_code]);
         }
-    }
+     }
+
 }

+ 3 - 3
app/Imports/OrderIssueImport.php

@@ -52,13 +52,13 @@ class OrderIssueImport implements ToCollection, WithHeadingRow, WithMultipleShee
                     $sum++;
                     continue;
                 }
-                $order_type = OrderIssueType::where('name', $row['问题类别'])->first();
+                $order_type = OrderIssueType::query()->where('name', $row['问题类别'])->first();
                 if (!$order_type) {
                     array_push($exception, ['原始运单号' . $row['原始运单号'] . '对应的的问题件类别不存在']);
                     continue;
                 }
-                $count = OracleDOCOrderHeader::where('soreference5', $logistic_number)->count();
-                $detailCount = OracleActAllocationDetails::where('picktotraceid', $logistic_number)->count();
+                $count = OracleDOCOrderHeader::query()->where('soreference5', $logistic_number)->count();
+                $detailCount = OracleActAllocationDetails::query()->where('picktotraceid', $logistic_number)->count();
                 if (!$count && !$detailCount) {
                     array_push($exception, ['原始运单号' . $row['原始运单号'] . '对应的WMS运单不存在']);
                     $sum++;

+ 3 - 3
app/OrderTracking.php

@@ -11,13 +11,13 @@ class OrderTracking extends Model
     use ModelTimeFormat;
     protected $fillable = [
         'order_package_commodity_id','owner_id','web_order_number',
-        'pick_up_at','sale','client',
+        'pick_up_at','sale','client','order_client_code',
         'order_remark','pallet_total','planning_sent_at',
         'is_on_duty_shift','is_arrival','signed_at',
         'receive_bill_status','remark','gross_weight','bulk'];
 
     protected $appends =[
-        'ownerName','sku','packageWeight','packageBulk','orderCity','packageLogisticNumber','packageLogistic','orderClientCode'
+        'ownerName','sku','packageWeight','packageBulk','orderCity','packageLogisticNumber','packageLogistic','orderClientNumber'
     ];
 
     public function commodities(){
@@ -51,7 +51,7 @@ class OrderTracking extends Model
     public function getPackageLogisticAttribute(){
         return $this->commodities->package->order->logistic['name'] ?? '';
     }
-    public function getOrderClientCodeAttribute(){
+    public function getOrderClientNumberAttribute(){
         return $this->commodities->package->order['client_code'] ?? '';
     }
 }

+ 1 - 3
app/Services/OrderIssueProcessLogService.php

@@ -2,6 +2,7 @@
 
 namespace App\Services;
 
+use App\OrderIssue;
 use App\OrderIssueProcessLog;
 use Illuminate\Support\Facades\Auth;
 
@@ -33,8 +34,5 @@ class OrderIssueProcessLogService
         return OrderIssueProcessLog::query()->with('user')->whereIn('id',data_get($logs,'*.id'))->get();
     }
 
-    public function isExistOrderIssueTypeIsEnd($ids){
-        return OrderIssueProcessLog::query()->whereIn('order_issue_id',$ids)->where('type','结束')->count() > 0;
-    }
 
 }

+ 5 - 0
app/Services/OrderIssueService.php

@@ -464,4 +464,9 @@ class OrderIssueService
     {
         return OrderIssue::query()->whereIn('id',$ids)->update(['final_status'=>'已解决']);
     }
+
+    public function isExistOrderIssueTypeIsEnd($ids){
+        return OrderIssue::query()->whereIn('id',$ids)->where('final_status','已解决')->count() > 0;
+    }
+
 }

+ 1 - 2
app/Services/OrderPackageService.php

@@ -213,8 +213,6 @@ class OrderPackageService
         unset($orderHeaders);
     }
 
-
-
     public function getParamsByOrderHeader($orderHeader,$order,$order_packages_logistic_number_map){
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app(DataHandlerService::class);
@@ -224,6 +222,7 @@ class OrderPackageService
         $created_at = Carbon::now()->format('Y-m-d H:i:s');;
         $updated_at = Carbon::now()->format('Y-m-d H:i:s');;
         foreach ($logistic_numbers as $logistic_number) {
+            if($logistic_number == $orderHeader->orderno)continue;
             $key  = ['order_id'=>$order->id,'logistic_number'=>$logistic_number];
             $orderPackage = $dataHandlerService->getKeyValue($key,$order_packages_logistic_number_map);
             if(isset($orderPackage)){ continue;}

+ 14 - 0
app/Services/OrderService.php

@@ -8,6 +8,7 @@ use App\OracleBasCustomer;
 use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
 use App\Order;
+use App\OrderIssue;
 use App\OrderPackage;
 use App\OrderPackageCommodities;
 use App\Owner;
@@ -646,4 +647,17 @@ class OrderService
         return Order::query()->whereIn('code',$order_nos)->get();
     }
 
+    public function 返回有问题件的订单号($orders)
+    {
+        if(!isset($orders)){return ;}
+        $orderNo =  data_get($orders,'*.orderno');
+        $orderIssues = OrderIssue::query()->with('order')
+            ->whereHas('order',function($query)use($orderNo){
+                $query->whereIn('code',$orderNo);
+            })->get();
+
+        return $orderIssues->map(function($orderIssue){
+            return $orderIssue->order->code;
+        });
+    }
 }

+ 3 - 1
app/Services/OrderTrackingService.php

@@ -190,7 +190,7 @@ class OrderTrackingService
             ->whereHas('commodities.package.order', function ($query) use ($order_id) {
                 $query->where('id', $order_id);
             })->update([$param=>$value]);
-        return ['success'=> $bool];
+        return ['success'=> $bool > 0];
     }
 
     public function createByWmsOrderHeader($orderHeaders)
@@ -256,6 +256,7 @@ class OrderTrackingService
             $params[] =[
                 'order_package_commodity_id' => $item->id,
                 'owner_id' => $order->owner_id,
+                'order_client_code' =>$order->client_code,
                 'client' => $client,
                 'created_at' => $order->created_at,
                 'order_remark' => $order_remark,
@@ -375,6 +376,7 @@ class OrderTrackingService
                     $insert_params[] =[
                         'order_package_commodity_id' => $item->id,
                         'owner_id' => $order->owner_id,
+                        'order_client_code' => $order->client_code,
                         'client' => $client,
                         'created_at' => $order->created_at,
                         'order_remark' => $order_remark,

+ 15 - 0
app/Services/RejectedService.php

@@ -56,6 +56,7 @@ class RejectedService
             }
             unset($param["is_checked"]);
         }
+
         if (isset($param["is_loaded"])) {
             $is_loaded = $param["is_loaded"];
             if ($is_loaded == 'null') $is_loaded = null;
@@ -78,7 +79,12 @@ class RejectedService
                 $columnQueryRules['logistic_number_return'] = ['timeLimit' => 15];
             }
         }
+        if(isset($param['is_issue'])){
+            $rejectedBills->whereHas('orderIssue');
+            unset($param['is_issue']);
+        }
         $rejectedBills = app(QueryService::class)->query($param, $rejectedBills, $columnQueryRules,"rejected_bills");
+
         return $rejectedBills;
     }
 
@@ -155,4 +161,13 @@ class RejectedService
         }
         return RejectedBill::with('items')->where('logistic_number_return',$ASNHeader->asnrefernce3)->first();
     }
+
+    public function 返回有问题件的ID($rejectedBill)
+    {
+        if(!isset($rejectedBill)){return ;}
+        $rejectedBills =  RejectedBill::query()->with('orderIssue')->whereHas('orderIssue')->get();
+        return $rejectedBills->map(function($rejectedBill){
+            return $rejectedBill->id;
+        });
+    }
 }

+ 4 - 0
app/Services/StoreCheckingReceiveItemService.php

@@ -19,6 +19,10 @@ Class StoreCheckingReceiveItemService
         return $item;
     }
 
+    public function find($id){
+        return StoreCheckingReceiveItem::query()->find($id);
+    }
+
     public function create(array $params){
         return StoreCheckingReceiveItem::query()->create($params);
     }

+ 34 - 0
database/migrations/2020_10_12_105209_add_order_track_order_code.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddOrderTrackOrderCode extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        //
+        Schema::table('order_trackings', function (Blueprint $table) {
+            $table->string('order_client_code')->index()->comment('订单号')->after('web_order_number');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+        Schema::table('order_trackings', function (Blueprint $table) {
+            $table->dropColumn('order_client_code');
+        });
+    }
+}

+ 15 - 0
resources/sass/layout.scss

@@ -109,6 +109,21 @@ table,table.table-striped tbody{
             background: #fdf3db;
         }
     }
+    tr.focusing td,{
+        background: #d5aba1;
+        &.td-warm{
+            background: rgb(231, 174, 128);
+        }
+        &.td-cool{
+            background: #5f8fcd;
+        }
+        &.td-helpful{
+            background: #69cb9c;
+        }
+        &.td-yellow{
+            background: #d9c290;
+        }
+    }
 }
 .row-even{
     background-color: rgba(0, 0, 0, .05)

+ 22 - 17
resources/views/order/index/delivering.blade.php

@@ -4,7 +4,7 @@
 @section('content')
     @component('order.index.menu')@endcomponent
     <div class="container-fluid">
-        <div style="min-width: 4070px;">
+        <div style="min-width: 4120px;">{{--4070--}}
             <div id="list" class="d-none">
                 <div id="form_div"></div>
                 <div class="ml-3 form-inline">
@@ -57,7 +57,7 @@
                     </div><!-- /.modal -->
                 </div>
                 <label for="all" id="cloneCheckAll" class="d-none">
-                    <input id="all" type="checkbox" @click="checkAll($event)">全选
+                    <input id="all" type="checkbox" @click="checkAll($event)">
                 </label>
                 <table class="table table-sm table-striped table-bordered table-hover card-body mt-2 ml-3 d-none" id="headerRoll"></table>
                 <table class="table table-sm table-striped table-bordered table-hover card-body mt-2 ml-3" id="headerParent">
@@ -66,8 +66,12 @@
                         <td>
                             <input class="checkItem" type="checkbox" :value="order.orderno" v-model="checkData">
                         </td>
-                        <td>@{{ i+1 }}</td>
-                        <td class="text-dark font-weight-bold text-nowrap">@{{ order.orderno }}</td>
+                        <td class="text-nowrap">
+                            @{{ i+1 }}<span v-if="orderIssueNos.includes(order.orderno)" class="badge badge-pill badge-danger">问题件</span>
+                        </td>
+                        <td class="text-dark font-weight-bold text-nowrap">
+                            @{{ order.orderno }}
+                        </td>
                         <td class="text-muted text-nowrap">@{{ order.ordercodename }}</td>
                         <td class="text-nowrap">@{{ order.addtime }}</td>
                         <td class="text-nowrap">@{{ order.issuepartyname }}</td>
@@ -242,6 +246,7 @@
                     {name:'{{$code->code}}',value:'{{$code->codename_c}}'},
                     @endforeach
                 ],
+                orderIssueNos:{!!  $orderIssueNos!!},
                 selectedStyle:'',
                 picktotraceidMap:{!! $picktotraceids !!},
                 pagePlaceholder:"",
@@ -685,22 +690,22 @@
                     $(e.target).removeClass('is-invalid');
                 },
                 isRejectedBillExist(){
-                    let _this = this;
-                    if(!confirm('是否生成退货单')){return;}
-                    axios.post('{{url('order/isRejectedBillExist')}}',{data:this.checkData})
-                        .then(function (response) {
-                            if (!response.data.success){
-                                tempTip.confirm(response.data.data+',已存在,是否仍要生成退货单?',function () {
-                                    _this.createRejectedBill();
-                                });
-                                return;
-                            }
-                            _this.createRejectedBill();
-                        }).catch(function (error) {
+                    tempTip.confirm("是否要生成“"+this.checkData+"”的退货单?",()=> {
+                        let _this = this;
+                        axios.post('{{url('order/isRejectedBillExist')}}',{data:this.checkData})
+                            .then(function (response) {
+                                if (!response.data.success){
+                                    tempTip.confirm(response.data.data+',已存在,是否仍要生成退货单?',function () {
+                                        _this.createRejectedBill();
+                                    });
+                                    return;
+                                }
+                                _this.createRejectedBill();
+                            }).catch(function (error) {
                             tempTip.setDuration(3000);
                             tempTip.show('网络错误:'+error);
                         });
-
+                    });
                 },
                 createRejectedBill() {
                     let url = '{{url('order/createRejectedBill')}}';

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

@@ -152,8 +152,8 @@
                     </tr>
 
                     <tr class="tr-yellow text-center table-body"  v-if="orderIssues" v-for="(orderIssue,index) in orderIssues"
-                        @click="selectedColor(orderIssue.id)" :class="orderIssue.remark ? 'tr_top':''" v-on:mouseover="hidetop($event)" v-on:mouseleave="showtop($event)"
-                        :style="[{'font-weight': orderIssue.id===selectedStyle?'bold':''}]">
+                        @click="selectedColor(orderIssue.id,$event)" :class="orderIssue.remark ? 'tr_top':''" v-on:mouseover="hidetop($event)" v-on:mouseleave="showtop($event)">
+{{--                        :style="[{'font-weight': orderIssue.id===selectedStyle?'bold':''}]">--}}
                         <td class="child-layer-1">
                             <div class="m-0 p-0 " :style="[{'min-height':orderIssue.remark ?'72px':'45px'}]">
                                 <input class="checkItem" type="checkbox" :value="orderIssue.id" v-model="checkData">
@@ -775,12 +775,14 @@
                 },
             },
             methods: {
-                selectedColor(orderno) {
+                selectedColor(orderno,e) {
+                    $('.table-body').removeClass('focusing')
                     if (orderno === this.selectedStyle) {
                         this.selectedStyle = '';
                         return;
                     }
                     this.selectedStyle = orderno;
+                    $(e.target).parent('tr').addClass('focusing')
                 },
                 editOrderIssue($event) {
                     let id = $($event.target).attr('data-value');
@@ -1318,7 +1320,7 @@
                 removeShow(id){
                     let index = this.edit.isShow.indexOf(id)
                     if(index!==-1) this.edit.isShow.splice(index,1)
-                }
+                },
             }
         })
         // modal 隐藏时修改 input 为空

+ 14 - 11
resources/views/order/tracking/index.blade.php

@@ -4,7 +4,8 @@
     @component('order.tracking.menu')@endcomponent
     <div class="container-fluid" id="tracking_div">
         <div style="min-width: 3000px">
-            <div class="d-none" id="list">
+            <div class="d-none container-fluid" id="list">
+                <div id="form_div"></div>
                 @can('订单管理-跟踪-监听')
                 <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="pasteDataTitle" aria-hidden="true">
                     <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
@@ -26,7 +27,7 @@
                     </div>
                 </div>
                 @endcan
-                <div id="form_div"></div>
+
                 <div class="form-inline mt-1 ">
                     <span class="dropdown">
                         <button type="button"
@@ -82,11 +83,14 @@
                         <td>@{{ index+1 }}</td>
                         <td class="text-decoration-none td-warm">@{{ trackOrder.ownerName }}</td>
                         <td class="td-warm">
-                            <span v-if="trackOrder.web_order_number">
-                                <span v-if="trackOrder.orderClientCode"></span>
-                                <span v-else> @{{ trackOrder.orderClientCode }}</span>
+                            <span v-if="trackOrder.web_order_number"></span>
+                            <span v-else>
+                            @can('订单管理-跟踪-仓库编辑')
+                                <input class="form-control form-control-sm" :value="trackOrder.order_client_code" @change="warehouseUpdate($event,'order_client_code',trackOrder)" >
+                            @else
+                                <span> @{{ trackOrder.order_client_code }}</span>
+                            @endcan
                             </span>
-                            <span v-else>  @{{ trackOrder.orderClientCode }}</span>
                         </td>
                         <td class="td-warm">
                             @can('订单管理-跟踪-仓库编辑')
@@ -253,7 +257,6 @@
                 isArrival: ['是','否'],
             },
             mounted:function(){
-
                 let selectDate1 = [
                     {name:'31',value:'近一月'},
                     {name:'92',value:'近三月'},
@@ -377,13 +380,13 @@
                 warehouseUpdate(e,param,trackingOrder){
                     let value = $(e.target).val();
                     if(trackingOrder[param] === value ){
-                        return
+                        return;
                     }
                     let data = {id:trackingOrder.id,param:param,value:value}
                     let _this = this
                     axios.post('{{url("apiLocal/order/tracking/warehouseUpdate")}}',data).then(function(response){
                         if(response.data.success){
-                            tempTip.setDuration(2000)
+                            tempTip.setDuration(200000)
                             tempTip.showSuccess('更新成功')
                             _this.modifyOrderTracking(param,value,trackingOrder)
                         }else{
@@ -419,7 +422,7 @@
                 },
                 modifyOrderTracking(param,value, trackingOrder){
                     this.trackOrders.forEach(function(item){
-                        if(item['orderClientCode'] === trackingOrder['orderClientCode']){
+                        if(item['orderClientNumber'] === trackingOrder['orderClientNumber']){
                             item[param] = value
                         }
                     })
@@ -438,7 +441,7 @@
                     this.trackOrders.forEach(function(trackOrder){
                         if(parseInt(data['id']) === trackOrder['id'] ){
                             trackOrder[data['param']] = data['value'];
-                            return
+                            return;
                         }
                     });
                 },

+ 1 - 1
resources/views/personnel/checking-in/QRcode.blade.php

@@ -8,7 +8,7 @@
     <meta name="csrf-token" content="{{ csrf_token() }}">
     <title>显示二维码 BsWAS</title>
     <!-- Styles -->
-    <link href="{{ mix('css/app200519b.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
     <div class="container-fluid " id="page">

+ 1 - 1
resources/views/personnel/checking-in/importAndExportQRCode.blade.php

@@ -8,7 +8,7 @@
     <meta name="csrf-token" content="{{ csrf_token() }}">
     <title>显示二维码 BsWAS</title>
     <!-- Styles -->
-    <link href="{{ mix('css/app200519b.css') }}" rel="stylesheet">
+    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
 </head>
 <body>
     <div class="container-fluid " id="page">

+ 5 - 3
resources/views/rejected/search/general.blade.php

@@ -66,8 +66,8 @@
                         <td>
                             <input type="checkbox" v-model="rejectedBills_checkBoxes" :value="rejectedBill.id"/>
                         </td>
-                        <td class="text-muted" style="opacity:0.7">
-                            @{{ i+1 }}
+                        <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>
                         </td>
                         <td class="text-muted">
                             <span v-if="rejectedBill.is_checked==1" class="text-success">
@@ -189,6 +189,7 @@
                     {name:'{{$owner->id}}',value:'{{$owner->name}}'},
                     @endforeach
                 ],
+                issueIds:{!! $issueIds !!},
                 logistics:[
                     @foreach($logistics as $logistic)
                     {name:'{{$logistic->id}}',value:'{{$logistic->name}}'},
@@ -220,7 +221,8 @@
                         {name:'mobile_sender',type:'input',tip:'寄件人手机:输入完成敲回车提交',placeholder:'寄件人手机'},
                         {name:'checked_numbers',type:'input',tip:'审核批次号:支持右位留空的模糊搜索',placeholder:'审核批次号'},
                         {name:'is_loaded',type:'select',placeholder: '是否入库',data:[{name:1,value:'是'},{name:0,value:'否'},
-                                {name:'null',value:'无需入库'},{name:2,value:'待推单'},{name:4,value:'待确认'},{name:3,value:'交互异常'}]},
+                        {name:'null',value:'无需入库'},{name:2,value:'待推单'},{name:4,value:'待确认'},{name:3,value:'交互异常'}]},
+                        {name:'is_issue',type:'checkbox',data:[{name:'true',value:'对应问题件'}]}
                     ]
                 ];
                 this.form=new query({

+ 111 - 7
resources/views/store/checkingReceive/show.blade.php

@@ -58,7 +58,7 @@
                         </div>
                     </div>
                     <div class="col-6">
-                        <div class="card-title" id="amountLabel">手动输入数量:</div>
+                        <div class="card-title" id="amountLabel">输入数量:</div>
                         <div class="input-group mt-n2 mb-2">
                             <input type="number" id="amount" style='height: 40px;font-size: 1.6em;color:blue;font-weight: bolder;padding: 3px;text-align: center' class="form-control" placeholder=""
                                    :disabled="status.amountDisable" v-model="inputting.amount" @focusin="focusOutDocument" @focusout="focusDocument" @keyup="oninputEnter">
@@ -107,7 +107,17 @@
                     </span>
                     </td>
                     <td>@{{ storeCheckingReceiveItem.imported_amount }}</td>
-                    <td>@{{ storeCheckingReceiveItem.counted_amount }}</td>
+                    <td @click="showInput(storeCheckingReceiveItem.id)">
+                        <div class="form-inline">
+                            <input  @blur="delFocus()" :id = "'counted_amount_'+storeCheckingReceiveItem.id" :value="storeCheckingReceiveItem.counted_amount"
+                                    class="form-control form-control-sm" type="text" :disabled="disabledItemId == storeCheckingReceiveItem.id ? false : true">
+                            <button v-if="disabledItemId == storeCheckingReceiveItem.id" type="button" class="btn btn-sm btn-success ml-1"
+                                @click="updateCountedAmount(storeCheckingReceiveItem)">确定</button>
+                            <button v-if="disabledItemId == storeCheckingReceiveItem.id" type="button" class="btn btn-sm btn-danger"
+                                @click="disabledItemId = ''">取消</button>
+                        </div>
+
+                    </td>
                     <td>@{{ storeCheckingReceiveItem.asn_amount }}</td>
                     <td>@{{ storeCheckingReceiveItem.imported_diff_amount }}</td>
                     <td>@{{ storeCheckingReceiveItem.asn_diff_amount }}</td>
@@ -120,11 +130,20 @@
         </div>
         <!-- phone <544 -->
         <div class="d-xl-none">
-            <div v-for="(storeCheckingReceiveItem) in storeCheckingReceiveItems" class="mt-1 border border-1 rounded">
+            <div v-for="(storeCheckingReceiveItem,i) in storeCheckingReceiveItems" class="mt-1 border border-1 rounded"
+                 @click="openAll(storeCheckingReceiveItem.id)">
+                <div class="row">
+                    <div class="col-6">
+                        <label class="text-muted">序号:</label>@{{ i+1 }}
+                    </div>
+                    <div class="col-6">
+                        <span class="pull-right mr-1 text-muted font-weight-bold">···</span>
+                    </div>
+                </div>
                 <div class="row">
                     <div class="col-12 row">
-                        <label class="text-primary col-4 mr-0">商品条码:</label>
-                        <div class="col-8 ml-0">
+                        <label class="text-primary col-3 mr-0">条码:</label>
+                        <div class="col-9 ml-0">
                             <span v-for="commodity_barcode in storeCheckingReceiveItem.commodity_barcodes">
                                 <small>@{{ commodity_barcode.code }}</small><br>
                             </span>
@@ -133,7 +152,7 @@
                 </div>
                 <div class="row">
                     <div class="col-12">
-                        <label class="text-muted">商品名称:</label>@{{ storeCheckingReceiveItem.commodity_name }}
+                        <label class="text-muted">名称:</label>@{{ storeCheckingReceiveItem.commodity_name }}
                     </div>
                 </div>
                 <div class="row">
@@ -144,6 +163,48 @@
                         <label class="text-muted">实盘数:</label>@{{ storeCheckingReceiveItem.counted_amount }}
                     </div>
                 </div>
+                <div v-if="signOpenId == storeCheckingReceiveItem.id">
+                    <div class="row">
+                        <div class="col-6">
+                            <label class="text-muted">导入数:</label>@{{ storeCheckingReceiveItem.imported_amount }}
+                        </div>
+                        <div class="col-6">
+                            <label class="text-muted">ASN数:</label>@{{ storeCheckingReceiveItem.asn_amount }}
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-6">
+                            <label class="text-muted">导入差异:</label>@{{ storeCheckingReceiveItem.imported_diff_amount }}
+                        </div>
+                        <div class="col-6">
+                            <label class="text-muted">ASN差异:</label>@{{ storeCheckingReceiveItem.asn_amount }}
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-6">
+                            <label class="text-muted">导入差异:</label>@{{ storeCheckingReceiveItem.imported_amount }}
+                        </div>
+                        <div class="col-6">
+                            <label class="text-muted">ASN差异:</label>@{{ storeCheckingReceiveItem.asn_diff_amount }}
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-6">
+                            <label class="text-muted">生产日期:</label>@{{ storeCheckingReceiveItem.produced_at }}
+                        </div>
+                        <div class="col-6">
+                            <label class="text-muted">有效日期:</label>@{{ storeCheckingReceiveItem.invalid_at }}
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-6">
+                            <label class="text-muted">唯一号码:</label>@{{ storeCheckingReceiveItem.unique_code }}
+                        </div>
+                        <div class="col-6">
+                            <label class="text-muted">批次号码:</label>@{{ storeCheckingReceiveItem.batch_code }}
+                        </div>
+                    </div>
+                </div>
             </div>
         </div>
     </div>
@@ -190,6 +251,8 @@
             lastScannedBarcode : '',
             asn : '',
             is_show : {!! $is_show !!},
+            signOpenId : "",
+            disabledItemId : "",
         },
         mounted(){
             $('#container').removeClass('d-none');
@@ -219,6 +282,47 @@
             this.scanListening();
         },
         methods:{
+            //显示该条全部信息
+            openAll(id){
+                if (this.signOpenId === id ) this.signOpenId = "";
+                else this.signOpenId = id;
+            },
+            //获取焦点,取消全局监听
+            showInput(id){
+                if (this.disabledItemId === id)return;
+                this.focusing = "";
+                document.getElementById('counted_amount_'+id).focus();
+                this.disabledItemId = id;
+            },
+            //实盘数量输出框失焦
+            delFocus(){
+                this.focusDocument();
+            },
+            //执行修改
+            updateCountedAmount(item){
+                let counted_amount = document.getElementById('counted_amount_'+item.id).value;
+                if(!counted_amount || parseInt(counted_amount) != counted_amount){
+                    tempTip.setDuration(3000);
+                    tempTip.show('请输入正整数!');
+                    return;
+                }
+                axios.post('{{url('store/checkingReceive/updateCountedAmount')}}',{id : item.id,counted_amount : counted_amount})
+                    .then((res)=>{
+                        if (res.data.success){
+                            item.counted_amount = counted_amount;
+                            this.disabledItemId = "";
+                            tempTip.setDuration(2000);
+                            tempTip.showSuccess("实盘数量成功修改为“"+counted_amount+"”");
+                            return;
+                        }
+                        tempTip.setDuration(3000);
+                        tempTip.show(res.data.data);
+                    })
+                    .catch((err)=>{
+                        tempTip.setDuration(3000);
+                        tempTip.show('网络错误:'+err);
+                    });
+            },
             switchMenu(menuName){
                 this.inputMode = menuName;
                 this.cleanInputs();
@@ -227,7 +331,7 @@
                     $('#amountLabel').text('输入数量:');
                 }else {
                     this.status.amountDisable = true;
-                    $('#amountLabel').text('自动扫入数量:');
+                    $('#amountLabel').text('扫入数量:');
                 }
             },
             scanListening: function () {

+ 1 - 1
resources/views/store/fast/create.blade.php

@@ -55,7 +55,7 @@
                     </div>
                     <div class="form-group row">
                         <div class="col-8 offset-2">
-                            <input type="submit" class="btn btn-success form-control">
+                            <input type="submit" class="btn btn-success form-control" onclick="tempTip.setDuration(99999999);tempTip.waitingTip('执行中……')">
                         </div>
                     </div>
                 </form>

+ 1 - 0
routes/web.php

@@ -233,6 +233,7 @@ Route::group(['prefix'=>'store'],function(){
             Route::post('receipt','StoreCheckingReceiveController@receipt');
             Route::get('{id}','StoreCheckingReceiveController@show');
         });
+        Route::post('updateCountedAmount','StoreCheckingReceiveController@updateCountedAmount');
         Route::post('insertItem','StoreCheckingReceiveController@insertItem');
         Route::get('mission','StoreCheckingReceiveController@mission');
     });