From 4dec6b8d49a2ebca2f21f4e180f158b1d517a38c Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 24 Dec 2022 11:04:03 +0200 Subject: [PATCH] import task date completed --- .../Modules/Crm/Hooks/Task/DateCompleted.php | 69 +++++++++++++++++++ .../Espo/Modules/Crm/Repositories/Task.php | 9 --- 2 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 application/Espo/Modules/Crm/Hooks/Task/DateCompleted.php diff --git a/application/Espo/Modules/Crm/Hooks/Task/DateCompleted.php b/application/Espo/Modules/Crm/Hooks/Task/DateCompleted.php new file mode 100644 index 0000000000..64c9936929 --- /dev/null +++ b/application/Espo/Modules/Crm/Hooks/Task/DateCompleted.php @@ -0,0 +1,69 @@ + $options + */ + public function beforeSave(Entity $entity, array $options): void + { + if (!$entity->isAttributeChanged(self::FIELD_STATUS)) { + return; + } + + if ( + ($options[SaveOption::IMPORT] ?? false) && + $entity->get(self::FIELD_DATE_COMPLETED) + ) { + return; + } + + if ($entity->getStatus() !== Task::STATUS_COMPLETED) { + $entity->set(self::FIELD_DATE_COMPLETED, null); + + return; + } + + $entity->setValueObject(self::FIELD_DATE_COMPLETED, DateTime::createNow()); + } +} diff --git a/application/Espo/Modules/Crm/Repositories/Task.php b/application/Espo/Modules/Crm/Repositories/Task.php index e76263eea3..de078fcc51 100644 --- a/application/Espo/Modules/Crm/Repositories/Task.php +++ b/application/Espo/Modules/Crm/Repositories/Task.php @@ -29,7 +29,6 @@ namespace Espo\Modules\Crm\Repositories; -use Espo\Core\Utils\DateTime; use Espo\Modules\Crm\Entities\Account as AccountEntity; use Espo\Modules\Crm\Entities\Contact as ContactEntity; use Espo\Modules\Crm\Entities\Lead as LeadEntity; @@ -50,14 +49,6 @@ class Task extends EventRepository */ protected function beforeSave(Entity $entity, array $options = []) { - if ($entity->isAttributeChanged('status')) { - if ($entity->get('status') == TaskEntity::STATUS_COMPLETED) { - $entity->set('dateCompleted', date(DateTime::SYSTEM_DATE_TIME_FORMAT)); - } else { - $entity->set('dateCompleted', null); - } - } - if (!$entity->isNew() && $entity->isAttributeChanged('parentId')) { $entity->set('accountId', null); $entity->set('contactId', null);