diff --git a/app/Http/Controllers/Bo/OrdersController.php b/app/Http/Controllers/Bo/OrdersController.php index 64b9905..baf55a2 100644 --- a/app/Http/Controllers/Bo/OrdersController.php +++ b/app/Http/Controllers/Bo/OrdersController.php @@ -33,55 +33,7 @@ class OrdersController extends Controller { //$orders = Order::orderBy('date', 'DESC')->get(); - $orders = Order::query(); - - - if ($request->rst) { - Session::remove('orders.sort_col'); - Session::remove('orders.sort_way'); - } - if ($request->sort_col) { - Session::put('orders.sort_col', $request->sort_col); - Session::save(); - } - if ($request->sort_way) { - Session::put('orders.sort_way', $request->sort_way); - Session::save(); - } - - if (Session::has('orders.sort_col') and Session::has('orders.sort_way')) { - switch (Session::get('orders.sort_col')) { - case 'date': - $orders = $orders->orderBy('date', Session::get('orders.sort_way')); - break; - case 'status_id': - $orders = $orders->orderBy('status_id', Session::get('orders.sort_way')); - break; - case 'magasin_id': - $orders = $orders->select('orders.*'); - $orders = $orders->leftJoin('timeslots', 'timeslots.order_id', '=', 'orders.id'); - $orders = $orders->leftJoin('magasins', 'timeslots.magasin_id', '=', 'magasins.id'); - $orders = $orders->orderBy('magasins.id', Session::get('orders.sort_way')); - break; - case 'date_retrait': - $orders = $orders->select('orders.*'); - $orders = $orders->leftJoin('timeslots', 'timeslots.order_id', '=', 'orders.id'); - $orders = $orders->orderBy('timeslots.day', Session::get('orders.sort_way')); - $orders = $orders->orderBy('timeslots.time', Session::get('orders.sort_way')); - break; - case 'customer_id': - $orders = $orders->orderBy('customer_id', Session::get('orders.sort_way')); - break; - } - } - - if ($request->today) { - //filter - $today = CarbonImmutable::now()->startOfDay(); - $orders = $orders->whereHas('timeslot', function($q) use($today) { - $q->where('day', '=', $today->format('d/m/Y')); - }); - } + $orders = $this->filterOrders($request); $orders = $orders->paginate(10); @@ -92,6 +44,21 @@ class OrdersController extends Controller { //$orders = Order::orderBy('date', 'DESC')->get(); + $orders = $this->filterOrders($request); + + //filter today + $today = CarbonImmutable::now()->startOfDay(); + $orders = $orders->whereHas('timeslot', function($q) use($today) { + $q->where('day', '=', $today->format('d/m/Y')); + }); + + + $orders = $orders->get(); //paginate(20); + + return view('bo.orders.index', compact('orders','today')); + } + + protected function filterOrders(Request $request) { $orders = Order::query(); @@ -134,17 +101,7 @@ class OrdersController extends Controller } } - - //filter - $today = CarbonImmutable::now()->startOfDay(); - $orders = $orders->whereHas('timeslot', function($q) use($today) { - $q->where('day', '=', $today->format('d/m/Y')); - }); - - - $orders = $orders->get(); //paginate(20); - - return view('bo.orders.index', compact('orders','today')); + return $orders; } /** diff --git a/resources/views/bo/orders/index.blade.php b/resources/views/bo/orders/index.blade.php index 2bfff8f..2d09e9b 100644 --- a/resources/views/bo/orders/index.blade.php +++ b/resources/views/bo/orders/index.blade.php @@ -82,24 +82,37 @@ var tippyShopContents = []; var customerInfo = []; + //to make sure we fetch only one at a time + var _fetchingCustInfo = false; + + function loadCustInfo(element) { + if(!_fetchingCustInfo) { + if(typeof customerInfo[element.dataset.custid] === 'undefined') { + //fetch only if we don't already have the data + _fetchingCustInfo = true; + return fetch('/bo/customer-info/'+element.dataset.custid+'/json') + .then(response => { + return response.json(); + }) + .then(data => { + customerInfo[element.dataset.custid] = data; + element.innerHTML = data.firstname + ' ' + data.lastname; + _fetchingCustInfo = false; + }) + } else { + //put text + element.innerHTML = customerInfo[element.dataset.custid].firstname + ' ' + customerInfo[element.dataset.custid].lastname; + //leave + return; + } + } else { + setTimeout(function () {loadCustInfo(element)}, 250); + } + } + clientLinks = $('.ajax-tippy-cust'); clientLinks.each(function(index,element){ - if(typeof customerInfo[element.dataset.custid] === 'undefined') { - //carry on - } else { - //put text - element.innerHTML = customerInfo[element.dataset.custid].firstname + ' ' + customerInfo[element.dataset.custid].lastname; - //leave - return; - } - fetch('/bo/customer-info/'+element.dataset.custid+'/json') - .then(response => { - return response.json(); - }) - .then(data => { - customerInfo[element.dataset.custid] = data; - element.innerHTML = data.firstname + ' ' + data.lastname; - }) + return loadCustInfo(element); });