App\Libraries\HistoryUtils::loadHistory PHP Метод

loadHistory() публичный статический Метод

public static loadHistory ( $users )
    public static function loadHistory($users)
    {
        $userIds = [];
        if (is_array($users)) {
            foreach ($users as $user) {
                $userIds[] = $user->user_id;
            }
        } else {
            $userIds[] = $users;
        }
        $activityTypes = [ACTIVITY_TYPE_CREATE_CLIENT, ACTIVITY_TYPE_CREATE_TASK, ACTIVITY_TYPE_UPDATE_TASK, ACTIVITY_TYPE_CREATE_EXPENSE, ACTIVITY_TYPE_UPDATE_EXPENSE, ACTIVITY_TYPE_CREATE_INVOICE, ACTIVITY_TYPE_UPDATE_INVOICE, ACTIVITY_TYPE_EMAIL_INVOICE, ACTIVITY_TYPE_CREATE_QUOTE, ACTIVITY_TYPE_UPDATE_QUOTE, ACTIVITY_TYPE_EMAIL_QUOTE, ACTIVITY_TYPE_VIEW_INVOICE, ACTIVITY_TYPE_VIEW_QUOTE];
        $activities = Activity::scope()->with(['client.contacts', 'invoice', 'task', 'expense'])->whereIn('user_id', $userIds)->whereIn('activity_type_id', $activityTypes)->orderBy('id', 'asc')->limit(100)->get();
        foreach ($activities as $activity) {
            if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_CLIENT) {
                $entity = $activity->client;
            } else {
                if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_TASK || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_TASK) {
                    $entity = $activity->task;
                    if (!$entity) {
                        continue;
                    }
                    $entity->setRelation('client', $activity->client);
                } else {
                    if ($activity->activity_type_id == ACTIVITY_TYPE_CREATE_EXPENSE || $activity->activity_type_id == ACTIVITY_TYPE_UPDATE_EXPENSE) {
                        $entity = $activity->expense;
                        if (!$entity) {
                            continue;
                        }
                        $entity->setRelation('client', $activity->client);
                    } else {
                        $entity = $activity->invoice;
                        if (!$entity) {
                            continue;
                        }
                        $entity->setRelation('client', $activity->client);
                    }
                }
            }
            static::trackViewed($entity);
        }
    }

Usage Example

 /**
  * Handle the event.
  *
  * @param  UserLoggedIn  $event
  *
  * @return void
  */
 public function handle(UserLoggedIn $event)
 {
     $account = Auth::user()->account;
     if (empty($account->last_login)) {
         event(new UserSignedUp());
     }
     $account->last_login = Carbon::now()->toDateTimeString();
     $account->save();
     $users = $this->accountRepo->loadAccounts(Auth::user()->id);
     Session::put(SESSION_USER_ACCOUNTS, $users);
     HistoryUtils::loadHistory($users ?: Auth::user()->id);
     $account->loadLocalizationSettings();
     // if they're using Stripe make sure they're using Stripe.js
     $accountGateway = $account->getGatewayConfig(GATEWAY_STRIPE);
     if ($accountGateway && !$accountGateway->getPublishableStripeKey()) {
         Session::flash('warning', trans('texts.missing_publishable_key'));
     } elseif ($account->isLogoTooLarge()) {
         Session::flash('warning', trans('texts.logo_too_large', ['size' => $account->getLogoSize() . 'KB']));
     }
 }