| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace App\Services;
- use App\Process;
- use App\Services\common\QueryService;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- Class ProcessService
- {
- private function conditionQuery(Request $request){
- $processes=Process::filterAuthorities()->with(['tutorials','signs','processesContents'=>function($query){
- return $query->with(['commodity'=>function($query){
- return $query->with('barcodes');
- }]);
- }])->orderBy('processes.id','DESC');
- $today=Carbon::now()->subDays(15)->format('Y-m-d');
- if ($request->input('commodity_barcode')){
- $barcode=$request->input('commodity_barcode');
- $processesTem=clone $processes;
- $processesTem=$processesTem->whereHas('processesContents',function ($query)use($barcode){
- $query->whereHas('commodity',function ($builder)use($barcode){
- $builder->whereHas('barcodes',function ($builder)use($barcode){
- $builder->where('code','like',$barcode.'%');
- });
- });
- })->where('created_at','>=',$today);
- if ($processesTem->count()>0)$processes=$processesTem;
- else{
- $processes=$processes->whereHas('processesContents',function ($query)use($barcode){
- $query->whereHas('commodity',function ($builder)use($barcode){
- $builder->whereHas('barcodes',function ($builder)use($barcode){
- $builder->where('code',$barcode);
- });
- });
- });
- }
- $request->offsetUnset('commodity_barcode');
- }
- if ($request->input('wms_code')){
- $processesTem=clone $processes;
- $wms_code=$request->input('wms_code');
- $processesTem=$processesTem->whereHas('processesContents',function ($builder)use ($wms_code,$today){
- $builder->where('wms_code','like','%'.$wms_code.'%');
- })->where('created_at','>=',$today);
- if ($processesTem->count()>0)$processes=$processesTem;
- else{
- $processes=$processes->whereHas('processesContents',function ($builder)use ($wms_code,$today){
- $builder->where('wms_code',$wms_code);
- });
- }
- $request->offsetUnset('wms_code');
- }
- if (!$request->is_accomplish){
- $processes=$processes->where('status','!=','交接完成');
- }else $request->offsetUnset('is_accomplish');
- $columnQueryRules=[
- 'date_start' => ['alias' => 'created_at' , 'startDate' => ' 00:00:00'],
- 'date_end' => ['alias' => 'created_at' , 'endDate' => ' 23:59:59'],
- 'code' => ['like' => '']
- ];
- $processes = app(QueryService::class)->query($request,$processes,$columnQueryRules);
- return $processes;
- }
- public function paginate(Request $request){
- return $this->conditionQuery($request)->paginate($request->paginate ?? 50);
- }
- public function get(Request $request){
- return $this->conditionQuery($request)->get();
- }
- public function some(Request $request){
- return Process::filterAuthorities()->with(['processesContents'=>function($query){
- return $query->with(['commodity'=>function($query){
- return $query->with('barcodes');
- }]);
- }])->orderBy('processes.id','DESC')->whereIn('processes.id',explode(',',$request->data))->get();
- }
- }
|