| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace App\Http\Controllers;
- use App\Imports\StoreCheckingReceiveImport;
- use App\Services\StoreCheckingReceiveService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use Maatwebsite\Excel\Facades\Excel;
- class StoreCheckingReceiveController extends Controller
- {
- public function mission(Request $request){
- /** @var StoreCheckingReceiveService $service */
- $service = app('storeCheckingReceiveService');
- $params = $request->input();
- $storeCheckingReceives = $service->paginate($params);
- $owners = app('ownerService')->getSelection();
- return view('store.checkingReceive.mission',compact('storeCheckingReceives','params','owners'));
- }
- public function import(Request $request){
- $fileSuffix=$request->file('file')->getClientOriginalExtension();
- if ($fileSuffix != 'xlsx' && $fileSuffix != 'xls' && $fileSuffix != 'csv')
- return ['success'=>false,'data'=>'不支持该文件类型'];
- $isCovering = $request->input('isCovering');
- ini_set('max_execution_time',2500);
- ini_set('memory_limit','1526M');
- $fileSuffix = ucwords($fileSuffix);
- Excel::import(new StoreCheckingReceiveImport($isCovering),$request->file('file')->path(),null,$fileSuffix);
- if (Cache::has('storeCheckingReceive')){
- return Cache::pull('storeCheckingReceive');
- }
- return ["success"=>false, "data"=>"读取导入文件错误"];
- }
- public function show($id){
- /** @var StoreCheckingReceiveService $service */
- $service = app('storeCheckingReceiveService');
- $storeCheckingReceive = $service->find($id);
- if ($storeCheckingReceive->owner ?? false){
- $commodityController = new CommodityController();
- $commodityController->syncOwnerCommodities($storeCheckingReceive->owner->id, $storeCheckingReceive->owner->code);
- }
- return view('store.checkingReceive.show',compact('storeCheckingReceive'));
- }
- public function insertItem(Request $request){
- $mission_id = $request->mission_id ?? false;
- $goods = $request->goods ?? false;
- if (!$mission_id || !$goods)return ['success'=>false, 'data'=>'参数传递错误!'];
- $storeCheckingReceive = app('storeCheckingReceiveService')->find($mission_id);
- if (!$storeCheckingReceive)return ['success'=>false, 'data'=>'盘收任务不存在'];
- $item_id = null;
- $item_amount = null;
- foreach ($storeCheckingReceive->storeCheckingReceiveItems as $item){
- if (!$item->commodity)continue;
- if (count($item->commodity->barcodes) < 1)continue;
- foreach ($item->commodity->barcodes as $barcode){
- if ($barcode->code == $goods['barcode']){
- if ($goods['bin_number'] == $item->bin_number &&
- $goods['batch_number'] == $item->batch_code &&
- $goods['produce_date'] == $item->produce_date &&
- $goods['valid_date'] == $item->valid_date){
- $item_id = $item->id;
- $item_amount = $item->amount;
- break;
- }
- }
- }
- }
- if ($item_id){
- $item = app('storeCheckingReceiveItemService')->update(['id'=>$item_id],['amount'=>($item_amount+$goods['amount'])]);
- $item->load(['commodity'=>function($query){
- $query->with('barcodes');
- }]);
- return ['success'=>true, 'type'=>"update", 'data'=>$item];
- }
- $commodity_barcode = app('commodityBarcodeService')->first([
- 'code' => $goods['barcode'],
- ]);
- if (!$commodity_barcode) return ['success'=>false, 'data'=>'该条码未找到对应商品'];
- $item = app('storeCheckingReceiveItemService')->create([
- 'store_checking_receive_id' => $mission_id,
- 'bin_number' => $goods['bin_number'],
- 'commodity_id' => $commodity_barcode->commodity_id,
- 'produced_at' => $goods['produced_at'],
- 'invalid_at' => $goods['invalid_at'],
- 'batch_code' => $goods['batch_number'],
- ]);
- $item->load(['commodity'=>function($query){
- $query->with('barcodes');
- }]);
- return ['success'=>true, 'type'=>'create', 'data'=>$item];
- }
- }
|