Example #1
0
 public function getTopProducts(Request $request)
 {
     $input = $request->all();
     $startDate = Carbon::today('Asia/Manila')->subDays(30);
     $endDate = Carbon::today('Asia/Manila');
     if (isset($input['from'])) {
         $startDate = Carbon::createFromTimestamp(strtotime($input['from']));
         $endDate = Carbon::createFromTimestamp(strtotime($input['to']));
     }
     $cartItems = Cart::join('cart_items', 'carts.id', '=', 'cart_items.cart_id')->join('products', 'cart_items.product_id', '=', 'products.id')->select(\DB::raw('COUNT(quantity) as totalQuantity'), 'cart_items.product_id', 'products.name')->whereDate('carts.created_at', '>=', $startDate->toDateString())->whereDate('carts.created_at', '<=', $endDate->toDateString())->orderBy('totalQuantity', 'DESC')->groupBy('cart_items.product_id')->take(5)->get();
     return $this->responseOk($cartItems);
 }