App\Ninja\Repositories\ActivityRepository::findByClientId PHP Method

findByClientId() public method

public findByClientId ( $clientId )
    public function findByClientId($clientId)
    {
        return DB::table('activities')->join('accounts', 'accounts.id', '=', 'activities.account_id')->join('users', 'users.id', '=', 'activities.user_id')->join('clients', 'clients.id', '=', 'activities.client_id')->leftJoin('contacts', 'contacts.client_id', '=', 'clients.id')->leftJoin('invoices', 'invoices.id', '=', 'activities.invoice_id')->leftJoin('payments', 'payments.id', '=', 'activities.payment_id')->leftJoin('credits', 'credits.id', '=', 'activities.credit_id')->leftJoin('tasks', 'tasks.id', '=', 'activities.task_id')->leftJoin('expenses', 'expenses.id', '=', 'activities.expense_id')->where('clients.id', '=', $clientId)->where('contacts.is_primary', '=', 1)->whereNull('contacts.deleted_at')->select(DB::raw('COALESCE(clients.currency_id, accounts.currency_id) currency_id'), DB::raw('COALESCE(clients.country_id, accounts.country_id) country_id'), 'activities.id', 'activities.created_at', 'activities.contact_id', 'activities.activity_type_id', 'activities.is_system', 'activities.balance', 'activities.adjustment', 'users.first_name as user_first_name', 'users.last_name as user_last_name', 'users.email as user_email', 'invoices.invoice_number as invoice', 'invoices.public_id as invoice_public_id', 'invoices.is_recurring', 'clients.name as client_name', 'accounts.name as account_name', 'clients.public_id as client_public_id', 'contacts.id as contact', 'contacts.first_name as first_name', 'contacts.last_name as last_name', 'contacts.email as email', 'payments.transaction_reference as payment', 'payments.amount as payment_amount', 'credits.amount as credit', 'tasks.description as task_description', 'tasks.public_id as task_public_id', 'expenses.public_notes as expense_public_notes', 'expenses.public_id as expense_public_id');
    }

Usage Example

 /**
  * @param null $clientPublicId
  * @return \Illuminate\Http\JsonResponse
  */
 public function getDatatable($clientPublicId = null)
 {
     $clientId = Client::getPrivateId($clientPublicId);
     $query = $this->activityRepo->findByClientId($clientId);
     return $this->datatableService->createDatatable(new ActivityDatatable(false), $query);
 }