From 6f65a84f333b325629baeb0567b7eecf97f3d49a Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Wed, 6 Jun 2018 20:23:30 +0530 Subject: [PATCH] dev/mail#11 add CRM_Mailing_BAO_MailingJob::del() --- CRM/Mailing/BAO/Mailing.php | 10 +++++----- CRM/Mailing/BAO/MailingJob.php | 20 ++++++++++++++++++++ CRM/Mailing/Form/Approve.php | 4 +++- api/v3/MailingJob.php | 2 +- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CRM/Mailing/BAO/Mailing.php b/CRM/Mailing/BAO/Mailing.php index d87088411c..23c7c070f9 100644 --- a/CRM/Mailing/BAO/Mailing.php +++ b/CRM/Mailing/BAO/Mailing.php @@ -2520,8 +2520,8 @@ LEFT JOIN civicrm_mailing_group g ON g.mailing_id = m.id } /** - * Delete Jobss and all its associated records - * related to test Mailings + * @deprecated + * Use CRM_Mailing_BAO_MailingJob::del($id) * * @param int $id * Id of the Job to delete. @@ -2533,9 +2533,9 @@ LEFT JOIN civicrm_mailing_group g ON g.mailing_id = m.id CRM_Core_Error::fatal(); } - $dao = new CRM_Mailing_BAO_MailingJob(); - $dao->id = $id; - $dao->delete(); + \Civi::log('This function is deprecated, use CRM_Mailing_BAO_MailingJob::del instead', ['civi.tag' => 'deprecated']); + + CRM_Mailing_BAO_MailingJob::del($id); } /** diff --git a/CRM/Mailing/BAO/MailingJob.php b/CRM/Mailing/BAO/MailingJob.php index 426332a3a1..9b2a80b207 100644 --- a/CRM/Mailing/BAO/MailingJob.php +++ b/CRM/Mailing/BAO/MailingJob.php @@ -1042,4 +1042,24 @@ AND record_type_id = $targetRecordID return $eq; } + /** + * Delete the mailing job. + * + * @param int $id + * Mailing Job id. + * + * @return mixed + */ + public static function del($id) { + CRM_Utils_Hook::pre('delete', 'MailingJob', $id, CRM_Core_DAO::$_nullArray); + + $jobDAO = new CRM_Mailing_BAO_MailingJob(); + $jobDAO->id = $id; + $result = $jobDAO->delete(); + + CRM_Utils_Hook::post('delete', 'MailingJob', $jobDAO->id, $jobDAO); + + return $result; + } + } diff --git a/CRM/Mailing/Form/Approve.php b/CRM/Mailing/Form/Approve.php index 12301b84f7..47fa701b27 100644 --- a/CRM/Mailing/Form/Approve.php +++ b/CRM/Mailing/Form/Approve.php @@ -171,7 +171,9 @@ class CRM_Mailing_Form_Approve extends CRM_Core_Form { // also delete any jobs associated with this mailing $job = new CRM_Mailing_BAO_MailingJob(); $job->mailing_id = $ids['mailing_id']; - $job->delete(); + while ($job->fetch()) { + CRM_Mailing_BAO_MailingJob::del($job->id); + } } else { $mailing = new CRM_Mailing_BAO_Mailing(); diff --git a/api/v3/MailingJob.php b/api/v3/MailingJob.php index 4e2602e476..3c7aabb24b 100644 --- a/api/v3/MailingJob.php +++ b/api/v3/MailingJob.php @@ -79,5 +79,5 @@ function civicrm_api3_mailing_job_get($params) { * @throws \API_Exception */ function civicrm_api3_mailing_job_delete($params) { - return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); + return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'MailingJob'); } -- 2.25.1