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

+ 14 - 5
app/Http/Controllers/CommodityController.php

@@ -8,6 +8,7 @@ use App\Services\CommodityBarcodeService;
 use App\Services\CommodityService;
 use App\Services\LogService;
 use App\Services\OracleBasSkuService;
+use App\Services\OwnerService;
 use Exception;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
@@ -39,7 +40,9 @@ class CommodityController extends Controller
     public function create()
     {
         if(!Gate::allows('商品信息-录入')){ return redirect(url('denied'));  }
-        return view('maintenance.commodity.create');
+        $ownerService=app(OwnerService::class);
+        $owners = $ownerService->getSelection();
+        return view('maintenance.commodity.create',compact('owners'));
     }
 
     /**
@@ -56,21 +59,25 @@ class CommodityController extends Controller
         $commodity->save();
         $commodity->newBarcode($request->input('barcode'));
 
-        app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
+        app('LogService')->log(__METHOD__,'录入商品'.__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
         return redirect('maintenance/commodity/create')->with('successTip',"成功录入商品信息:“{$request->input('name')}”");
     }
     protected function validatorCreate(array $data)
     {
         return Validator::make($data, [
+            'sku'=>['required', 'string', 'max:50'],
             'name' => ['required', 'string', 'max:50'],
-//            'barcode' => ['required', 'string', 'max:50', 'unique:commodities'],
+            'barcode' => ['required', 'string', 'max:50'],
+            'owner_id' => ['required', 'string', 'max:50'],
         ]);
     }
     protected function validatorUpdate(array $data)
     {
         return Validator::make($data, [
+            'sku'=>['required', 'string', 'max:50'],
             'name' => ['required', 'string', 'max:50'],
             'barcode' => ['required', 'string', 'max:50'],
+            'owner_id' => ['required', 'string', 'max:50'],
         ]);
     }
     /**
@@ -93,7 +100,9 @@ class CommodityController extends Controller
     public function edit(Commodity $commodity)
     {
         if(!Gate::allows('商品信息-编辑')){ return redirect(url('denied'));  }
-        return view('maintenance.commodity.edit',['commodity'=>$commodity]);
+        $ownerService=app(OwnerService::class);
+        $owners = $ownerService->getSelection();
+        return view('maintenance.commodity.edit',['commodity'=>$commodity,'owners'=>$owners]);
     }
 
     /**
@@ -109,7 +118,7 @@ class CommodityController extends Controller
         $this->validatorUpdate($request->all())->validate();
         $commodity->fill($request->all());
         $commodity->update();
-        app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
+        app('LogService')->log(__METHOD__,'修改商品信息'.__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']);
         return redirect('maintenance/commodity/')->with('successTip',"成功修改商品信息:“{$commodity['name']}”!");
     }
 

+ 17 - 17
app/Http/Controllers/RejectedBillItemController.php

@@ -76,22 +76,22 @@ class RejectedBillItemController extends Controller
 
         if (!$rejectedBillItem->rejectedBill || !$rejectedBillItem->rejectedBill->owner)return ['success'=>'false','failure_info'=>'退货单或货主不存在'];
 
-        /** @var CommodityService $commodityService */
-        $commodityService = app('CommodityService');
-        $commodity = $commodityService->ownerBarcodeSeekCommodityFirst(['name'=>$rejectedBillItem->rejectedBill->owner->name],$rejectedBillItem->barcode_goods);
-        if (!$commodity){
-            $commodity = $commodityService->ownerAndBarcodeFirstOrCreate($rejectedBillItem->rejectedBill->owner,$rejectedBillItem->barcode_goods);
-            if (!$commodity){
-                $commodity = $commodityService->create([
-                    "name" => $rejectedBillItem->name_goods,
-                    "owner_id" => $rejectedBillItem->rejectedBill->owner->id,
-                ]);
-                app('CommodityBarcodeService')->first([
-                    'commodity_id' => $commodity->id,
-                    'code' => $rejectedBillItem->barcode_goods,
-                ]);
-            }
-        }
+//        /** @var CommodityService $commodityService */
+//        $commodityService = app('CommodityService');
+//        $commodity = $commodityService->ownerBarcodeSeekCommodityFirst(['name'=>$rejectedBillItem->rejectedBill->owner->name],$rejectedBillItem->barcode_goods);
+//        if (!$commodity){
+//            $commodity = $commodityService->ownerAndBarcodeFirstOrCreate($rejectedBillItem->rejectedBill->owner,$rejectedBillItem->barcode_goods);
+//            if (!$commodity){
+//                $commodity = $commodityService->create([
+//                    "name" => $rejectedBillItem->name_goods,
+//                    "owner_id" => $rejectedBillItem->rejectedBill->owner->id,
+//                ]);
+//                app('CommodityBarcodeService')->first([
+//                    'commodity_id' => $commodity->id,
+//                    'code' => $rejectedBillItem->barcode_goods,
+//                ]);
+//            }
+//        }
 
 
         $rejectedBill = RejectedBill::query()->where('id',$request->input('id_rejected_bill'))->first();
@@ -117,7 +117,7 @@ class RejectedBillItemController extends Controller
         }else{
             $rejectedBillItem->fill($request->all());
             $rejectedBillItem->update();
-            $rejectedBillItem->injectCommodityName();
+            //$rejectedBillItem->injectCommodityName();  Haozi 2020-12-09
             $rejectedBill = RejectedBill::query()->where('id',$rejectedBillItem->id_rejected_bill)->with('orderIssue')->first();
 //            $rejectedBill->同步问题件退件状态();
             app(RejectedBillService::class)->syncOrderIssue($rejectedBill);

+ 4 - 4
app/Http/Controllers/TestController.php

@@ -1278,12 +1278,12 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         /**
          * @var CommodityService $commodityService
          */
-        $ownerIds=['1','2'];
+        $ownerIds=['13'];
         $barcodes = ['5211801041604', '5211801041004', '5211801041603'];
-        $skus = ['5211801041604', '5211801041004', '5211801041603'];
+        $skus = ['BH08B4029E027110'];
         $commodityService = app(CommodityService::class);
-        $commodities=$commodityService->get_($ownerIds);
-        dd($commodities[99]);
+        $commodities=$commodityService->get_($ownerIds,$skus,[],true);
+        dd($commodities);
 
     }
 

+ 3 - 2
app/Services/CommodityService.php

@@ -751,12 +751,12 @@ Class CommodityService
      * @param array $ownerIds
      * @param array $skus
      * @param array $barcodes
+     * @param bool $isSyncWms 是否开启同步wms数据  开启则必须给定 $ownerIds 和 $skus
      * @param int $paginate
      * @param int $page
-     * @param bool $isSyncWms 是否开启同步wms数据  开启则必须给定 $ownerIds 和 $skus
      * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|mixed|null
      */
-    function get_(array $ownerIds = [], array $skus = [], array $barcodes = [], $paginate = 100, $page = 1, $isSyncWms = false)
+    function get_(array $ownerIds = [], array $skus = [], array $barcodes = [],$isSyncWms = false, $paginate = 100, $page = 1)
     {
         if ($paginate < 100 || fmod($paginate, 100) != 0) return null; //$paginate小于100,或取余数100不为0,异常 //取余函数fmod()
         $time = config('cache.expirations.forever');
@@ -778,6 +778,7 @@ Class CommodityService
                     }
                     $bas_skus = OracleBasSKU::query()
                         ->select('customerid', 'sku', 'descr_c', 'alternate_sku1', 'alternate_sku2', 'alternate_sku3', 'skulength', 'skuwidth', 'skuhigh', 'cube', 'packid', 'addtime', 'edittime')
+                        ->whereIn('customerid',$ownerCodes)->whereIn('sku',$skus)
                         ->get();
                     if (!$bas_skus) return null;
                     $this->syncUpdateCommodity($bas_skus);

+ 38 - 14
resources/views/maintenance/commodity/create.blade.php

@@ -6,7 +6,7 @@
         @component('maintenance.menu')@endcomponent
         @component('maintenance.commodity.menu')@endcomponent
     </div>
-    <div class="container-fluid">
+    <div class="container-fluid" id="list">
         <div class="card col-md-8 offset-md-2">
             <div class="card-body">
                 @if(Session::has('successTip'))
@@ -14,11 +14,26 @@
                 @endif
                 <form method="POST" action="{{ url('maintenance/commodity') }}">
                     @csrf
+                    <div class="form-group row">
+                        <label for="owner_name" class="col-2 col-form-label text-right">货主名</label>
+                        <div class="col-9 form-inline">
+                            <select class="form-control form-control-sm col-6 @error('owner_id') is-invalid @enderror" name="owner_id" v-model="owner_id">
+                                <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
+                            </select>
+                            <input placeholder="搜索货主" @input="seekOwner($event)" class="form-control form-control-sm col-3">
+                            @error('owner_id')
+                            <span class="invalid-feedback" role="alert">
+                                <strong>{{ $message }}</strong>
+                            </span>
+                            @enderror
+                        </div>
+                    </div>
+
                     <div class="form-group row">
                         <label for="sku" class="col-2 col-form-label text-right">SKU</label>
                         <div class="col-8">
                             <input type="text" class="form-control @error('sku') is-invalid @enderror"
-                                   name="sku" autocomplete="off" value="{{ old('sku') }}" >
+                                   name="sku" autocomplete="off" value="{{ old('sku') }}" required>
                             @error('sku')
                             <span class="invalid-feedback" role="alert">
                                 <strong>{{ $message }}</strong>
@@ -50,18 +65,6 @@
                             @enderror
                         </div>
                     </div>
-                    <div class="form-group row">
-                        <label for="owner_name" class="col-2 col-form-label text-right">货主名</label>
-                        <div class="col-8">
-                            <input type="text" class="form-control @error('owner_name') is-invalid @enderror"
-                                   name="owner_name" autocomplete="off" value="{{ old('owner_name') }}" >
-                            @error('owner_name')
-                            <span class="invalid-feedback" role="alert">
-                                <strong>{{ $message }}</strong>
-                            </span>
-                            @enderror
-                        </div>
-                    </div>
                     <div class="form-group row">
                         <div class="col-8 offset-2">
                             <input type="submit" class="btn btn-success form-control">
@@ -72,3 +75,24 @@
         </div>
     </div>
 @endsection
+@section('lastScript')
+    <script>
+        new Vue({
+            el: "#list",
+            data: {
+                owners: {!! $owners !!},
+                owner_id: '',
+            },
+            methods: {
+                seekOwner(e) {
+                    this.owners.some(owner => {
+                        if (owner.name.indexOf(e.target.value) !== -1) {
+                            this.owner_id = owner.id;
+                            return true;
+                        }
+                    });
+                }
+            }
+        });
+    </script>
+@endsection

+ 42 - 13
resources/views/maintenance/commodity/edit.blade.php

@@ -11,7 +11,7 @@
                 </li>
         @endcomponent
     </div>
-    <div class="container-fluid">
+    <div class="container-fluid" id="list">
         <div class="card">
             <div class="card-body">
                 @if(Session::has('successTip'))
@@ -20,6 +20,22 @@
                 <form method="POST" action='{{url("maintenance/commodity/{$commodity->id}")}}'>
                     @csrf
                     @method('PUT')
+                    <div class="form-group row">
+                        <label for="owner_name" class="col-2 col-form-label text-right">货主名</label>
+                        <div class="col-9 form-inline">
+                            <select class="form-control form-control-sm col-6 @error('owner_id') is-invalid @enderror"
+                                    name="owner_id" v-model="owner_id">
+                                <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
+                            </select>
+                            <input placeholder="搜索货主" @input="seekOwner($event)" class="form-control form-control-sm col-3">
+                            @error('owner_id')
+                            <span class="invalid-feedback" role="alert">
+                                <strong>{{ $message }}</strong>
+                            </span>
+                            @enderror
+                        </div>
+                    </div>
+
                     <div class="form-group row">
                         <label for="sku" class="col-2 col-form-label text-right">SKU</label>
                         <div class="col-8">
@@ -56,18 +72,6 @@
                             @enderror
                         </div>
                     </div>
-                    <div class="form-group row">
-                        <label for="owner_name" class="col-2 col-form-label text-right">货主名</label>
-                        <div class="col-8">
-                            <input type="text" class="form-control @error('owner_name') is-invalid @enderror"
-                                   name="owner_name" autocomplete="off" value="@if(old('owner_name')){{old('owner_name')}}@else{{$commodity->owner_name}}@endif" >
-                            @error('owner_name')
-                            <span class="invalid-feedback" role="alert">
-                                <strong>{{ $message }}</strong>
-                            </span>
-                            @enderror
-                        </div>
-                    </div>
                     <div class="form-group row">
                         <div class="col-8 offset-2">
                             <input type="submit" class="btn btn-outline-dark form-control">
@@ -78,3 +82,28 @@
         </div>
     </div>
 @endsection
+@section('lastScript')
+    <script>
+        new Vue({
+            el: "#list",
+            data: {
+                owners: {!! $owners !!},
+                owner_id: '',
+                commodity:{!! $commodity !!},
+            },
+            mounted(){
+              if (this.commodity.owner_id) this.owner_id=this.commodity.owner_id;
+            },
+            methods: {
+                seekOwner(e) {
+                    this.owners.some(owner => {
+                        if (owner.name.indexOf(e.target.value) !== -1) {
+                            this.owner_id = owner.id;
+                            return true;
+                        }
+                    });
+                }
+            }
+        });
+    </script>
+@endsection