App\Ninja\Repositories\CreditRepository::find PHP Method

find() public method

public find ( $clientPublicId = null, $filter = null )
    public function find($clientPublicId = null, $filter = null)
    {
        $query = DB::table('credits')->join('accounts', 'accounts.id', '=', 'credits.account_id')->join('clients', 'clients.id', '=', 'credits.client_id')->join('contacts', 'contacts.client_id', '=', 'clients.id')->where('clients.account_id', '=', \Auth::user()->account_id)->where('clients.deleted_at', '=', null)->where('contacts.deleted_at', '=', null)->where('contacts.is_primary', '=', true)->select(DB::raw('COALESCE(clients.currency_id, accounts.currency_id) currency_id'), DB::raw('COALESCE(clients.country_id, accounts.country_id) country_id'), 'credits.public_id', DB::raw("COALESCE(NULLIF(clients.name,''), NULLIF(CONCAT(contacts.first_name, ' ', contacts.last_name),''), NULLIF(contacts.email,'')) client_name"), 'clients.public_id as client_public_id', 'clients.user_id as client_user_id', 'credits.amount', 'credits.balance', 'credits.credit_date', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'credits.private_notes', 'credits.deleted_at', 'credits.is_deleted', 'credits.user_id');
        if ($clientPublicId) {
            $query->where('clients.public_id', '=', $clientPublicId);
        }
        if (!\Session::get('show_trash:credit')) {
            $query->where('credits.deleted_at', '=', null);
        }
        if ($filter) {
            $query->where(function ($query) use($filter) {
                $query->where('clients.name', 'like', '%' . $filter . '%');
            });
        }
        return $query;
    }

Usage Example

 /**
  * @param $clientPublicId
  * @param $search
  * @return \Illuminate\Http\JsonResponse
  */
 public function getDatatable($clientPublicId, $search)
 {
     // we don't support bulk edit and hide the client on the individual client page
     $datatable = new CreditDatatable(!$clientPublicId, $clientPublicId);
     $query = $this->creditRepo->find($clientPublicId, $search);
     if (!Utils::hasPermission('view_all')) {
         $query->where('credits.user_id', '=', Auth::user()->id);
     }
     return $this->datatableService->createDatatable($datatable, $query);
 }