diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 9ed66a7b9535..839c06395bcf 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -1,7 +1,5 @@ task; $data = [ - 'client' => link_to($client->getRoute(), $client->getDisplayName()), + 'client' => $client ? link_to($client->getRoute(), $client->getDisplayName()) : null, 'user' => $isSystem ? '' . trans('texts.system') . '' : $user->getDisplayName(), 'invoice' => $invoice ? link_to($invoice->getRoute(), $invoice->getDisplayName()) : null, 'quote' => $invoice ? link_to($invoice->getRoute(), $invoice->getDisplayName()) : null, diff --git a/app/Models/Task.php b/app/Models/Task.php index 852c8956ba5c..bc771e70e3d9 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -3,6 +3,8 @@ use Utils; use Illuminate\Database\Eloquent\SoftDeletes; use Laracasts\Presenter\PresentableTrait; +use App\Events\TaskWasCreated; +use App\Events\TaskWasUpdated; /** * Class Task @@ -142,3 +144,12 @@ class Task extends EntityModel return "/tasks/{$this->public_id}/edit"; } } + + +Task::created(function ($task) { + event(new TaskWasCreated($task)); +}); + +Task::updated(function ($task) { + event(new TaskWasUpdated($task)); +}); diff --git a/app/Ninja/Repositories/ActivityRepository.php b/app/Ninja/Repositories/ActivityRepository.php index d0ea33981117..f36812546dee 100644 --- a/app/Ninja/Repositories/ActivityRepository.php +++ b/app/Ninja/Repositories/ActivityRepository.php @@ -20,14 +20,14 @@ class ActivityRepository } // init activity and copy over context - $activity = self::getBlank($altEntity ?: $client); + $activity = self::getBlank($altEntity ?: ($client ?: $entity)); $activity = Utils::copyContext($activity, $entity); $activity = Utils::copyContext($activity, $altEntity); - $activity->client_id = $client->id; $activity->activity_type_id = $activityTypeId; $activity->adjustment = $balanceChange; - $activity->balance = $client->balance + $balanceChange; + $activity->client_id = $client ? $client->id : 0; + $activity->balance = $client ? ($client->balance + $balanceChange) : 0; $keyField = $entity->getKeyField(); $activity->$keyField = $entity->id; @@ -35,7 +35,9 @@ class ActivityRepository $activity->ip = Request::getClientIp(); $activity->save(); - $client->updateBalances($balanceChange, $paidToDateChange); + if ($client) { + $client->updateBalances($balanceChange, $paidToDateChange); + } return $activity; } diff --git a/database/migrations/2016_07_08_083802_support_new_pricing.php b/database/migrations/2016_07_08_083802_support_new_pricing.php index 94b53850e7ca..947966f8304d 100644 --- a/database/migrations/2016_07_08_083802_support_new_pricing.php +++ b/database/migrations/2016_07_08_083802_support_new_pricing.php @@ -28,6 +28,7 @@ class SupportNewPricing extends Migration // https://github.com/invoiceninja/invoiceninja/pull/955 Schema::table('activities', function (Blueprint $table) { $table->integer('task_id')->after('invitation_id')->nullable(); + $table->dropForeign('activities_client_id_foreign'); }); // https://github.com/invoiceninja/invoiceninja/pull/950