Owl\Repositories\Eloquent\ItemRepository::getAllStockPublished PHP Метод

getAllStockPublished() публичный Метод

Get stock published items.
public getAllStockPublished ( ) : Illuminate\Database\Eloquent\Model
Результат Illuminate\Database\Eloquent\Model
    public function getAllStockPublished()
    {
        $pageNumber = \Input::get("page", 1);
        $perPage = 10;
        $offset = $perPage * ($pageNumber - 1);
        $joinSubquery = \DB::table('item_tag')->select('item_tag.item_id')->distinct('item_tag.item_id')->join('tags', 'item_tag.tag_id', '=', 'tags.id')->whereRaw('tags.flow_flag = 1');
        $ret = \DB::table('items as i')->select('i.*', 'u.username', 'u.email')->leftJoin('users as u', 'i.user_id', '=', 'u.id')->leftJoin(\DB::raw('(' . $joinSubquery->toSql() . ') as tmp2'), function ($join) {
            $join->on('tmp2.item_id', '=', 'i.id');
        })->whereNull('tmp2.item_id')->where('i.published', '2')->orderBy('i.updated_at', 'desc')->skip($offset)->take($perPage)->get();
        $allCount = \DB::table('items')->where('published', '2')->count();
        $noTaggedCount = $allCount - \DB::table('items')->join('item_tag', 'items.id', '=', 'item_tag.item_id')->where('items.published', '2')->distinct('items.id')->count('items.id');
        $flowCount = \DB::table('items')->join('item_tag', 'items.id', '=', 'item_tag.item_id')->join('tags', 'item_tag.tag_id', '=', 'tags.id')->where('tags.flow_flag', '1')->where('items.published', '2')->distinct('items.id')->count('items.id');
        $stockCount = $allCount - $flowCount;
        $ret = \App::make('Illuminate\\Pagination\\LengthAwarePaginator', [$ret, $stockCount, $perPage]);
        return $ret;
    }