public function anyList(Request $request) { \DB::enableQueryLog(); if($request->has('input-sort')){ $arr_sort = $request->input('input-sort'); $arr_sort =(array) json_decode($arr_sort); }elseif( session('sort_filter_returnsaleorder.arr_sort') !== null){ $arr_sort = session('sort_filter_returnsaleorder.arr_sort'); }else{ $arr_sort=array(); } session('sort_filter_returnsaleorder.arr_sort', $arr_sort); if($request->has('input-filter')){ $arr_filter = $request->input('input-filter'); }elseif( session('sort_filter_returnsaleorder.arr_filter') !== null ){ $arr_filter = session('sort_filter_returnsaleorder.arr_filter'); }else{ $arr_filter=[ 'id'=>'', 'company_id'=>'', 'date'=>'', 'status'=>'' ]; } session(['sort_filter_returnsaleorder.arr_sort'=>$arr_sort]); session(['sort_filter_returnsaleorder.arr_filter'=> $arr_filter]); //Init array $distributes = array(); $list_id = array(); $list_date = array(); $list_returnsaleorder = array(); //Get value array $distributes = Company::getCustomerList()->get()->toArray(); $list_id = ReturnSaleorder::lists('id'); $list_date = ReturnSaleorder::orderBy('date','desc')->lists('date'); foreach ($list_date as $key => $value) { $list_date[$key] = date('d-m-Y',strtotime($value)); } $list_date = array_unique($list_date); $list_returnsaleorder = ReturnSaleorder::select('return_saleorders.*','sumamount.*','companies.name as company_name')->with('company') ->leftJoin( DB::raw(' ( select module_id, module_type,sum(amount) as sum_amount from m_products where module_type = "App\\\\ReturnSaleorder" group by module_id ) as sumamount'), function($join){ $join->on('return_saleorders.id', '=', 'module_id'); } )->leftJoin('companies','companies.id','=','return_saleorders.company_id'); foreach ($arr_sort as $key => $value) { if($key=='company_id'){ $list_returnsaleorder = $list_returnsaleorder->orderBy('companies.name',$value); }else{ $list_returnsaleorder = $list_returnsaleorder->orderBy($key,$value); } } if($arr_filter['id']!=''){ $list_returnsaleorder->where('id',$arr_filter['id']); }else{ foreach ($arr_filter as $key => $value) { if($value!=''){ if($key=='date'){ $now = date("Y-m-d H:i:s",strtotime($arr_filter['date'])); $tomorow = date("Y-m-d H:i:s",strtotime($arr_filter['date'])+86400); $list_returnsaleorder->where('date','>=',$now)->where('date','<',$tomorow); }else{ $list_returnsaleorder->where($key,$value); } } } } if(!count($arr_sort)){ $list_returnsaleorder = $list_returnsaleorder->orderBy('id','desc'); } if(!isset($arr_filter['status'])){ $arr_filter['status'] = ''; } $list_returnsaleorder = $list_returnsaleorder->paginate(20); foreach($list_returnsaleorder as $key => $rso){ $list_returnsaleorder[$key]['date'] = date('d-m-Y',strtotime($rso['date'])); } \Cache::put('list_returnsaleorder'.\Auth::user()->id, $list_returnsaleorder, 30); // var_dump(DB::getQueryLog());die; $this->layout->content=view('returnsaleorder.list', [ 'distributes' => $distributes, 'arr_sort' => $arr_sort, 'arr_filter' => $arr_filter, 'list_id' => $list_id, 'list_date' => $list_date, 'list_returnsaleorder' => $list_returnsaleorder ]); }