From c16074d4d194a0c8ce6c939ae2fdf9b4b790cedf Mon Sep 17 00:00:00 2001 From: belwalshubham Date: Tue, 17 Dec 2024 11:58:39 +0530 Subject: [PATCH 1/3] create activity --- .../Civi/InstitutionCampaignService.php | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php diff --git a/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php new file mode 100644 index 000000000..880b96a7c --- /dev/null +++ b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php @@ -0,0 +1,77 @@ + [ + ['linkCollectionCampToContact'], + ], + ]; + } + + /** + * + */ + public static function linkCollectionCampToContact(string $op, string $objectName, int $objectId, &$objectRef) { + + if ($objectName != 'Campaign' || !$objectId) { + return; + } + + $institutionCampaign = Campaign::get(TRUE) + ->addSelect( + 'id', + 'Additional_Details.Institution', + 'title' + ) + ->addWhere('id', '=', $objectId) + ->execute(); + + $currentInstitutionCampaign = $institutionCampaign->first(); + $currentInstitutionId = $currentInstitutionCampaign['Additional_Details.Institution']; + if (!$currentInstitutionId) { + return; + } + $campaignTitle = $currentInstitutionCampaign['title']; + $campaignId = $currentInstitutionCampaign['id']; + + // Check for status change. + if ($currentInstitutionId) { + self::createCollectionCampOrganizeActivity($currentInstitutionId, $campaignTitle, $campaignId); + } + } + + /** + * Log an activity in CiviCRM. + */ + private static function createCollectionCampOrganizeActivity($currentInstitutionId, $campaignTitle, $campaignId) { + try { + $results = Activity::create(FALSE) + ->addValue('subject', $campaignTitle) + ->addValue('activity_type_id:name', 'Institution Campaign') + ->addValue('status_id:name', 'Completed') + ->addValue('activity_date_time', date('Y-m-d H:i:s')) + ->addValue('source_contact_id', $currentInstitutionId) + ->addValue('target_contact_id', $currentInstitutionId) + ->execute(); + + } + catch (\CiviCRM_API4_Exception $ex) { + \Civi::log()->debug("Exception while creating Organize Collection Camp activity: " . $ex->getMessage()); + } + } + +} From f789bc7378cfb0ab414a3f320aa60e18f96468f7 Mon Sep 17 00:00:00 2001 From: belwalshubham Date: Tue, 17 Dec 2024 12:00:54 +0530 Subject: [PATCH 2/3] code cleanups --- .../goonjcustom/Civi/InstitutionCampaignService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php index 880b96a7c..ea3b5c1c0 100644 --- a/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php +++ b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php @@ -17,7 +17,7 @@ class InstitutionCampaignService extends AutoSubscriber { public static function getSubscribedEvents() { return [ '&hook_civicrm_post' => [ - ['linkCollectionCampToContact'], + ['linkCampaignToOrganization'], ], ]; } @@ -25,7 +25,7 @@ public static function getSubscribedEvents() { /** * */ - public static function linkCollectionCampToContact(string $op, string $objectName, int $objectId, &$objectRef) { + public static function linkCampaignToOrganization(string $op, string $objectName, int $objectId, &$objectRef) { if ($objectName != 'Campaign' || !$objectId) { return; From 2e94b40866fbbf9f9b4561231900bcdf0c35d78d Mon Sep 17 00:00:00 2001 From: belwalshubham Date: Tue, 17 Dec 2024 12:02:00 +0530 Subject: [PATCH 3/3] cleanups --- .../goonjcustom/Civi/InstitutionCampaignService.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php index ea3b5c1c0..186dd31f7 100644 --- a/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php +++ b/wp-content/civi-extensions/goonjcustom/Civi/InstitutionCampaignService.php @@ -50,14 +50,14 @@ public static function linkCampaignToOrganization(string $op, string $objectName // Check for status change. if ($currentInstitutionId) { - self::createCollectionCampOrganizeActivity($currentInstitutionId, $campaignTitle, $campaignId); + self::createInstitutionCampaignActivity($currentInstitutionId, $campaignTitle, $campaignId); } } /** * Log an activity in CiviCRM. */ - private static function createCollectionCampOrganizeActivity($currentInstitutionId, $campaignTitle, $campaignId) { + private static function createInstitutionCampaignActivity($currentInstitutionId, $campaignTitle, $campaignId) { try { $results = Activity::create(FALSE) ->addValue('subject', $campaignTitle) @@ -70,7 +70,7 @@ private static function createCollectionCampOrganizeActivity($currentInstitution } catch (\CiviCRM_API4_Exception $ex) { - \Civi::log()->debug("Exception while creating Organize Collection Camp activity: " . $ex->getMessage()); + \Civi::log()->debug("Exception while creating Institution Campaign activity: " . $ex->getMessage()); } }