From fc683784fcef975c7ae46edf976d45a618bb87a8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Fri, 21 Oct 2016 09:54:28 +0300 Subject: [PATCH] Remove duplicate activity records for expenses and tasks --- app/Http/Middleware/StartupCheck.php | 4 ++-- app/Listeners/ActivityListener.php | 16 ++++++++++++++ app/Models/EntityModel.php | 11 ++++++++++ app/Models/Expense.php | 4 ---- app/Models/Task.php | 10 +++++++++ app/Ninja/Repositories/ExpenseRepository.php | 23 -------------------- 6 files changed, 39 insertions(+), 29 deletions(-) diff --git a/app/Http/Middleware/StartupCheck.php b/app/Http/Middleware/StartupCheck.php index 732013165732..54d81033e1fd 100644 --- a/app/Http/Middleware/StartupCheck.php +++ b/app/Http/Middleware/StartupCheck.php @@ -122,9 +122,9 @@ class StartupCheck } // Check if the user is claiming a license (ie, additional invoices, white label, etc.) - if (isset($_SERVER['REQUEST_URI'])) { + if ( ! Utils::isNinjaProd() && isset($_SERVER['REQUEST_URI'])) { $claimingLicense = Utils::startsWith($_SERVER['REQUEST_URI'], '/claim_license'); - if (!$claimingLicense && Input::has('license_key') && Input::has('product_id')) { + if ( ! $claimingLicense && Input::has('license_key') && Input::has('product_id')) { $licenseKey = Input::get('license_key'); $productId = Input::get('product_id'); diff --git a/app/Listeners/ActivityListener.php b/app/Listeners/ActivityListener.php index c8fd439c90ed..ee016cbff39b 100644 --- a/app/Listeners/ActivityListener.php +++ b/app/Listeners/ActivityListener.php @@ -499,6 +499,10 @@ class ActivityListener */ public function updatedTask(TaskWasUpdated $event) { + if ( ! $event->task->isChanged()) { + return; + } + $this->activityRepo->create( $event->task, ACTIVITY_TYPE_UPDATE_TASK @@ -507,6 +511,10 @@ class ActivityListener public function archivedTask(TaskWasArchived $event) { + if ($event->task->is_deleted) { + return; + } + $this->activityRepo->create( $event->task, ACTIVITY_TYPE_ARCHIVE_TASK @@ -540,6 +548,10 @@ class ActivityListener public function updatedExpense(ExpenseWasUpdated $event) { + if ( ! $event->expense->isChanged()) { + return; + } + $this->activityRepo->create( $event->expense, ACTIVITY_TYPE_UPDATE_EXPENSE @@ -548,6 +560,10 @@ class ActivityListener public function archivedExpense(ExpenseWasArchived $event) { + if ($event->expense->is_deleted) { + return; + } + $this->activityRepo->create( $event->expense, ACTIVITY_TYPE_ARCHIVE_EXPENSE diff --git a/app/Models/EntityModel.php b/app/Models/EntityModel.php index 23208c864969..51ec29da1a00 100644 --- a/app/Models/EntityModel.php +++ b/app/Models/EntityModel.php @@ -270,4 +270,15 @@ class EntityModel extends Eloquent return array_get($icons, $entityType); } + // isDirty return true if the field's new value is the same as the old one + public function isChanged() + { + foreach ($this->fillable as $field) { + if ($this->$field != $this->getOriginal($field)) { + return true; + } + } + + return false; + } } diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 86f7b793ec3e..2854819cfd0f 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -226,7 +226,3 @@ Expense::updated(function ($expense) { Expense::deleting(function ($expense) { $expense->setNullValues(); }); - -Expense::deleted(function ($expense) { - event(new ExpenseWasDeleted($expense)); -}); diff --git a/app/Models/Task.php b/app/Models/Task.php index e65c5e8c8585..5b4ca6b6eb58 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -14,6 +14,16 @@ class Task extends EntityModel use SoftDeletes; use PresentableTrait; + /** + * @var array + */ + protected $fillable = [ + 'client_id', + 'description', + 'time_log', + 'is_running', + ]; + /** * @return mixed */ diff --git a/app/Ninja/Repositories/ExpenseRepository.php b/app/Ninja/Repositories/ExpenseRepository.php index e58d942942a1..017448649064 100644 --- a/app/Ninja/Repositories/ExpenseRepository.php +++ b/app/Ninja/Repositories/ExpenseRepository.php @@ -179,27 +179,4 @@ class ExpenseRepository extends BaseRepository return $expense; } - - public function bulk($ids, $action) - { - $expenses = Expense::withTrashed()->scope($ids)->get(); - - foreach ($expenses as $expense) { - if ($action == 'restore') { - $expense->restore(); - - $expense->is_deleted = false; - $expense->save(); - } else { - if ($action == 'delete') { - $expense->is_deleted = true; - $expense->save(); - } - - $expense->delete(); - } - } - - return count($tasks); - } }