From eba1a1d71c6c99f9537c26512d5b7724b7c48b61 Mon Sep 17 00:00:00 2001 From: Sunil Pawar Date: Mon, 14 Dec 2020 22:33:40 +0530 Subject: [PATCH] fix email receipt flag for recurring record added test case --- CRM/Contribute/Form/Contribution/Confirm.php | 2 +- CRM/Member/Form/Membership.php | 2 +- .../Contribute/BAO/ContributionRecurTest.php | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index e697959414..cc947dbbd4 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -1074,7 +1074,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $recurParams['invoice_id'] = $params['invoiceID'] ?? NULL; $recurParams['contribution_status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'); $recurParams['payment_processor_id'] = $params['payment_processor_id'] ?? NULL; - $recurParams['is_email_receipt'] = $params['is_email_receipt'] ?? NULL; + $recurParams['is_email_receipt'] = (bool) ($params['is_email_receipt'] ?? FALSE); // we need to add a unique trxn_id to avoid a unique key error // in paypal IPN we reset this when paypal sends us the real trxn id, CRM-2991 $recurParams['trxn_id'] = $params['trxn_id'] ?? $params['invoiceID']; diff --git a/CRM/Member/Form/Membership.php b/CRM/Member/Form/Membership.php index 8a81ebdc7d..64f9c01f59 100644 --- a/CRM/Member/Form/Membership.php +++ b/CRM/Member/Form/Membership.php @@ -1993,7 +1993,7 @@ DESC limit 1"); $recurParams['invoice_id'] = $params['invoiceID'] ?? NULL; $recurParams['contribution_status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending'); $recurParams['payment_processor_id'] = $params['payment_processor_id'] ?? NULL; - $recurParams['is_email_receipt'] = $params['is_email_receipt'] ?? NULL; + $recurParams['is_email_receipt'] = (bool) ($params['is_email_receipt'] ?? FALSE); // we need to add a unique trxn_id to avoid a unique key error // in paypal IPN we reset this when paypal sends us the real trxn id, CRM-2991 $recurParams['trxn_id'] = $params['trxn_id'] ?? $params['invoiceID']; diff --git a/tests/phpunit/CRM/Contribute/BAO/ContributionRecurTest.php b/tests/phpunit/CRM/Contribute/BAO/ContributionRecurTest.php index d34f23c2ee..138b5b9393 100644 --- a/tests/phpunit/CRM/Contribute/BAO/ContributionRecurTest.php +++ b/tests/phpunit/CRM/Contribute/BAO/ContributionRecurTest.php @@ -564,4 +564,32 @@ class CRM_Contribute_BAO_ContributionRecurTest extends CiviUnitTestCase { ]; } + /** + * Test Recurring Contribution Email Receipt Flag + * + * @throws \CRM_Core_Exception + */ + public function testContributionEmailReceipt() { + $createParams = $this->_params; + unset($createParams['trxn_id'], $createParams['invoice_id']); + + // pass null value to is_email_receipt + $createParams['is_email_receipt'] = NULL; + $recurring1 = CRM_Contribute_BAO_ContributionRecur::add($createParams); + $recurring1Get = $this->callAPISuccess('ContributionRecur', 'getsingle', ['id' => $recurring1->id]); + // default is_email_receipt column value is 1 + $this->assertEquals('1', $recurring1Get['is_email_receipt']); + + // pass empty value to is_email_receipt + $createParams['is_email_receipt'] = ''; + $recurring2 = CRM_Contribute_BAO_ContributionRecur::add($createParams); + $this->assertEquals('null', $recurring2->is_email_receipt); + + // pass 0 value to is_email_receipt + $createParams['is_email_receipt'] = 0; + $recurring3 = CRM_Contribute_BAO_ContributionRecur::add($createParams); + $recurring3Get = $this->callAPISuccess('ContributionRecur', 'getsingle', ['id' => $recurring3->id]); + $this->assertEquals('0', $recurring3Get['is_email_receipt']); + } + } -- 2.25.1