public function overzicht(Request $request)
 {
     //        sort data
     if ($request->session()->has('order')) {
         $order = $request->session()->get('order');
         $orderby = $order['by'];
         $orderdirection = $order['direction'];
     } else {
         $orderby = 'end_date';
         $orderdirection = 'asc';
     }
     if ($orderby == 'popular') {
         if ($request->session()->has('filter')) {
             $arts = Auction::select(DB::raw('auctions.*, count(*) as `totalbids`'))->join('bids', 'auctions.id', '=', 'bids.auction_id')->groupBy('auction_id')->orderBy('totalbids', 'desc')->where('active', '=', true)->where('end_date', '>', Carbon::now())->paginate(8);
         } else {
             /* no filter */
             $arts = Auction::select(DB::raw('auctions.*, count(*) as `totalbids`'))->join('bids', 'auctions.id', '=', 'bids.auction_id')->groupBy('auction_id')->orderBy('totalbids', 'desc')->where('active', '=', true)->where('end_date', '>', Carbon::now())->paginate(8);
         }
     } else {
         if ($request->session()->has('filter')) {
             $filter = $request->session()->get('filter');
             $query = Auction::query();
             $query->orderBy($orderby, $orderdirection);
             $query->where('end_date', '>', Carbon::now());
             $query->where('active', '=', true);
             $query->paginate(8);
             if (isset($filter['price']['on'])) {
                 if ($filter['price']['on'] == true) {
                     $query->whereBetween('price_buy', array($filter['price']['bottom'], $filter['price']['top']));
                 }
             }
             if (isset($filter['era']['on'])) {
                 if ($filter['era']['on'] == true) {
                     $query->whereBetween('year', array($filter['era']['bottom'], $filter['era']['top']));
                 }
             }
             if (isset($filter['style']['on'])) {
                 if ($filter['style'] == true) {
                     $query->where('auctionstyle_id', '=', $filter['style']['bottom']);
                 }
             }
             $arts = $query->get();
         } else {
             /* no filter */
             $arts = Auction::orderBy($orderby, $orderdirection)->where('end_date', '>', Carbon::now())->where('active', '=', true)->paginate(8);
         }
     }
     // get styles
     $styles = Auctionstyle::all();
     return view('overzicht', compact('arts', 'styles'));
 }
 public function getUserLots($id, Request $request)
 {
     $lots = Auction::query();
     $lots = $lots->where('status', '>', 0);
     // Выбираем только утвержденные
     $lots = $lots->where('user', '=', $id);
     // Принадлежащие пользователю по переданному ID
     if ($request->sortBy == 'lowcost') {
         $lots = $lots->orderBy('starting_price', 'asc');
     } elseif ($request->sortBy == 'topcost') {
         $lots = $lots->orderBy('starting_price', 'desc');
     } else {
         $lots = $lots->orderBy('starting_price', 'desc');
     }
     if ($request->items_per_page) {
         $lots = $lots->paginate($request->items_per_page);
     } else {
         $lots = $lots->paginate(10);
     }
     $user = User::find($id);
     $cats = Cat::roots()->get();
     return view('auction.profile-lots', ['lots' => $lots, 'categories' => $cats, 'currentCategory' => null, 'request' => null, 'user' => $user]);
 }
 /**
  * Поиск по аукционам в админ-панели
  */
 public function getSearchAuctions(Request $request)
 {
     $auctions = Auction::query();
     if ($request->category) {
         $auctions = $auctions->where(['category' => $request->category]);
     }
     if ($request->title) {
         $auctions = $auctions->where('id', '=', $request->title)->orWhere('title', 'like', '%' . $request->title . '%');
     }
     if ($request->status != 'del') {
         if ($request->status == 1) {
             $auctions = $auctions->where('in_archive', '=', 1);
         } else {
             $auctions = $auctions->where('status', '=', $request->status);
         }
     }
     if ($request->price_from) {
         $auctions = $auctions->where('starting_price', '>=', $request->price_from);
     }
     if ($request->price_to) {
         $auctions = $auctions->where('starting_price', '<=', $request->price_to);
     }
     if ($request->region) {
         $auctions = $auctions->where('region', '=', $request->region);
     }
     if ($request->city) {
         $auctions = $auctions->where('city', 'like', '%' . $request->city . '%');
     }
     if ($request->free_sale) {
         $auctions = $auctions->where('free_sale', '=', 1);
     }
     if ($request->sortBy == 'lowcost') {
         $auctions = $auctions->orderBy('starting_price', 'asc');
     } elseif ($request->sortBy == 'topcost') {
         $auctions = $auctions->orderBy('starting_price', 'desc');
     } else {
         $auctions = $auctions->orderBy('id', 'desc');
     }
     if ($request->items_per_page) {
         $auctions = $auctions->paginate($request->items_per_page);
     } else {
         $auctions = $auctions->paginate(10);
     }
     return view('dashboard.auctions.search', ['auctions' => $auctions, 'request' => $request]);
 }
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index($id, Request $request)
 {
     $auctions = Auction::query();
     $auctions = $auctions->where('category', '=', $id);
     $auctions = $auctions->where('status', '>', 0);
     if ($request->sortBy == 'lowcost') {
         $auctions = $auctions->orderBy('starting_price', 'asc');
     } elseif ($request->sortBy == 'topcost') {
         $auctions = $auctions->orderBy('starting_price', 'desc');
     } elseif ($request->sortBy == 'new') {
         $auctions = $auctions->orderBy('created_at', 'desc');
     } elseif ($request->sortBy == 'new') {
         $auctions = $auctions->orderBy('created_at', 'desc');
     } else {
         $request->sortBy = 'new';
         $auctions = $auctions->orderBy('created_at', 'desc');
     }
     if ($request->items_per_page) {
         $auctions = $auctions->paginate($request->items_per_page);
     } else {
         $auctions = $auctions->paginate(10);
     }
     $categories = Cat::roots()->get();
     $currentCategory = Cat::find($id);
     return view('auction.categories.index', ['auctions' => $auctions, 'categories' => $categories, 'currentCategory' => $currentCategory, 'request' => $request]);
 }
 /**
  * Обрабатываем стандартный и расширенный поиск для категории "Техника и мебель"
  */
 public function getStuffQuery(Request $request)
 {
     $auctions = Auction::query();
     $auctions = $auctions->where('category', '=', $request->category);
     if ($request->lot_type) {
         $auctions = $auctions->where('lot_type', '=', $request->lot_type);
     }
     if ($request->region) {
         $auctions = $auctions->where('region', '=', $request->region);
     }
     if ($request->title) {
         $auctions = $auctions->where('title', 'like', '%' . $request->title . '%')->orWhere('id', '=', $request->title);
     }
     if ($request->city) {
         $auctions = $auctions->where('city', 'like', '%' . $request->city . '%');
     }
     if ($request->lot_DebtorName) {
         $auctions = $auctions->where('lot_DebtorName', 'like', '%' . $request->lot_DebtorName . '%');
     }
     if ($request->lot_EDRPOU) {
         $auctions = $auctions->where('lot_EDRPOU', '=', $request->lot_EDRPOU);
     }
     if ($request->property_type) {
         $auctions = $auctions->whereIn('property_type', $request->property_type);
     }
     if ($request->price_from) {
         $auctions = $auctions->where('starting_price', '<=', $request->price_from);
     }
     if ($request->price_to) {
         $auctions = $auctions->where('starting_price', '<=', $request->price_to);
     }
     if ($request->date_start) {
         $auctions = $auctions->where('data_start', '>=', Carbon::parse($request->date_start)->format('Y-m-d'));
     }
     if ($request->date_end) {
         $auctions = $auctions->where('date_end', '<=', Carbon::parse($request->date_end)->format('Y-m-d'));
     }
     if ($request->lot_number) {
         $auctions = $auctions->where('id', '=', $request->lot_number);
     }
     if ($request->lot_user) {
         $searchTerms = explode(' ', $request->lot_user);
         $query = User::query();
         foreach ($searchTerms as $searchTerm) {
             $query->where(function ($q) use($searchTerm) {
                 $q->where('first_name', 'like', '%' . $searchTerm . '%')->orWhere('last_name', 'like', '%' . $searchTerm . '%')->orWhere('legal_entity', 'like', '%' . $searchTerm . '%');
             });
         }
         $users = $query->get();
         // Массив для ID обнаруженных пользователей
         $users_id = [];
         // Если есть пользователи, соответствующие запросу
         if ($users->count() > 0) {
             // Перебираем каждого пользователя
             foreach ($users as $user) {
                 // Добавляем ID пользователя в массив $users_id
                 array_push($users_id, $user->id);
             }
         }
         // Применяем фильтрацию по совпадению с ID в массиве $users_id
         $auctions = $auctions->whereIn('user', $users_id);
     }
     if ($request->stuff_brand) {
         $auctions = $auctions->where('stuff_brand', '=', $request->stuff_brand);
     }
     if ($request->stuff_model) {
         $auctions = $auctions->where('stuff_model', '=', $request->stuff_model);
     }
     if ($request->stuff_year) {
         $auctions = $auctions->where('stuff_year', '=', $request->stuff_year);
     }
     if ($request->stuff_diagonal) {
         $auctions = $auctions->where('stuff_diagonal', '=', $request->stuff_diagonal);
     }
     $auctions = $auctions->paginate(10);
     $categories = Cat::roots()->get();
     $currentCategory = Cat::find($request->category);
     return view('auction.search', ['auctions' => $auctions, 'categories' => $categories, 'currentCategory' => $currentCategory, 'request' => $request]);
 }