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

create() public method

public create ( $entity, $activityTypeId, $balanceChange, $paidToDateChange, $altEntity = null )
    public function create($entity, $activityTypeId, $balanceChange = 0, $paidToDateChange = 0, $altEntity = null)
    {
        if ($entity instanceof Client) {
            $client = $entity;
        } elseif ($entity instanceof Invitation) {
            $client = $entity->invoice->client;
        } else {
            $client = $entity->client;
        }
        // init activity and copy over context
        $activity = self::getBlank($altEntity ?: ($client ?: $entity));
        $activity = Utils::copyContext($activity, $entity);
        $activity = Utils::copyContext($activity, $altEntity);
        $activity->activity_type_id = $activityTypeId;
        $activity->adjustment = $balanceChange;
        $activity->client_id = $client ? $client->id : 0;
        $activity->balance = $client ? $client->balance + $balanceChange : 0;
        $keyField = $entity->getKeyField();
        $activity->{$keyField} = $entity->id;
        $activity->ip = Request::getClientIp();
        $activity->save();
        if ($client) {
            $client->updateBalances($balanceChange, $paidToDateChange);
        }
        return $activity;
    }

Usage Example

 public function restoredExpense(ExpenseWasRestored $event)
 {
     $this->activityRepo->create($event->expense, ACTIVITY_TYPE_RESTORE_EXPENSE);
 }
All Usage Examples Of App\Ninja\Repositories\ActivityRepository::create