From 9d9f252e030d8009e1137e37a25fc2b4c78e198d Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 18 Jan 2018 11:56:05 +1300 Subject: [PATCH 1/2] CRM-17647 fix for submitting payment with thousand separator --- CRM/Contribute/BAO/Contribution.php | 1 + CRM/Event/Form/Participant.php | 2 +- tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php | 2 +- tests/phpunit/CRM/Financial/BAO/FinancialAccountTest.php | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index b4fe8f809a88..05459a3f99be 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -132,6 +132,7 @@ public static function add(&$params, $ids = array()) { else { // @todo put a deprecated here - this should be done in the form layer. $params['skipCleanMoney'] = FALSE; + Civi::log()->warning('Deprecated code path. Money should always be clean before it hits the BAO.', array('civi.tag' => 'deprecated')); } foreach ($moneyFields as $field) { diff --git a/CRM/Event/Form/Participant.php b/CRM/Event/Form/Participant.php index b9a1dec7cdcf..b7958bb4a078 100644 --- a/CRM/Event/Form/Participant.php +++ b/CRM/Event/Form/Participant.php @@ -986,7 +986,7 @@ public function submit($params) { } if ($this->_isPaidEvent) { - $contributionParams = array(); + $contributionParams = array('skipCleanMoney' => TRUE); $lineItem = array(); $additionalParticipantDetails = array(); if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) { diff --git a/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php b/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php index 5bb68f8c5866..3575a24e761f 100644 --- a/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php +++ b/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php @@ -88,7 +88,7 @@ public function testCreateSingleNowDated() { 'is_test' => 1, 'contribution_status_id' => 2, ); - $contribution = CRM_Contribute_BAO_Contribution::add($contributionParams); + $contribution = $this->callAPISuccess('Contribution', 'create', $contributionParams); $params = array( 'qfKey' => '08ed21c7ca00a1f7d32fff2488596ef7_4454', diff --git a/tests/phpunit/CRM/Financial/BAO/FinancialAccountTest.php b/tests/phpunit/CRM/Financial/BAO/FinancialAccountTest.php index c67c76422b95..d3b284f1c455 100644 --- a/tests/phpunit/CRM/Financial/BAO/FinancialAccountTest.php +++ b/tests/phpunit/CRM/Financial/BAO/FinancialAccountTest.php @@ -145,7 +145,7 @@ public function testdelIfHasContribution() { 'financial_type_id' => $financialType->id, 'contribution_status_id' => 1, ); - $contributions = CRM_Contribute_BAO_Contribution::create($contributionParams); + $this->callAPISuccess('Contribution', 'create', $contributionParams); CRM_Financial_BAO_FinancialAccount::del($result->id); $params = array('id' => $result->id); $result = CRM_Financial_BAO_FinancialAccount::retrieve($params, $defaults); From d2da7b207e09c1fbd88d366946dfd606b899fbe0 Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Sun, 11 Feb 2018 19:07:21 +0530 Subject: [PATCH 2/2] additional fixes --- .../CRM/Core/Payment/AuthorizeNetTest.php | 20 +++++++++---------- .../CRM/Financial/BAO/FinancialTypeTest.php | 1 + 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php b/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php index 3575a24e761f..e8baf3ed10ce 100644 --- a/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php +++ b/tests/phpunit/CRM/Core/Payment/AuthorizeNetTest.php @@ -61,7 +61,7 @@ public function testCreateSingleNowDated() { $invoiceID = sha1(rand()); $amount = rand(100, 1000) . '.00'; - $contributionRecurParams = array( + $recur = $this->callAPISuccess('ContributionRecur', 'create', array( 'contact_id' => $contactId, 'amount' => $amount, 'currency' => 'USD', @@ -74,21 +74,19 @@ public function testCreateSingleNowDated() { 'contribution_status_id' => 2, 'is_test' => 1, 'payment_processor_id' => $this->_paymentProcessorID, - ); - $recur = CRM_Contribute_BAO_ContributionRecur::add($contributionRecurParams); + )); - $contributionParams = array( + $contribution = $this->callAPISuccess('Contribution', 'create', array( 'contact_id' => $contactId, 'financial_type_id' => $this->_financialTypeId, 'receive_date' => date('Ymd'), 'total_amount' => $amount, 'invoice_id' => $invoiceID, 'currency' => 'USD', - 'contribution_recur_id' => $recur->id, + 'contribution_recur_id' => $recur['id'], 'is_test' => 1, 'contribution_status_id' => 2, - ); - $contribution = $this->callAPISuccess('Contribution', 'create', $contributionParams); + )); $params = array( 'qfKey' => '08ed21c7ca00a1f7d32fff2488596ef7_4454', @@ -157,9 +155,9 @@ public function testCreateSingleNowDated() { 'contributionPageID' => '', 'email' => "{$firstName}.{$lastName}@example.com", 'contactID' => $contactId, - 'contributionID' => $contribution->id, + 'contributionID' => $contribution['id'], 'contributionTypeID' => $this->_financialTypeId, - 'contributionRecurID' => $recur->id, + 'contributionRecurID' => $recur['id'], ); // turn verifySSL off @@ -169,12 +167,12 @@ public function testCreateSingleNowDated() { Civi::settings()->set('verifySSL', '0'); // if subscription was successful, processor_id / subscription-id must not be null - $this->assertDBNotNull('CRM_Contribute_DAO_ContributionRecur', $recur->id, 'processor_id', + $this->assertDBNotNull('CRM_Contribute_DAO_ContributionRecur', $recur['id'], 'processor_id', 'id', 'Failed to create subscription with Authorize.' ); // cancel it or the transaction will be rejected by A.net if the test is re-run - $subscriptionID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionRecur', $recur->id, 'processor_id'); + $subscriptionID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionRecur', $recur['id'], 'processor_id'); $message = ''; $result = $this->processor->cancelSubscription($message, array('subscriptionId' => $subscriptionID)); $this->assertTrue($result, 'Failed to cancel subscription with Authorize.'); diff --git a/tests/phpunit/CRM/Financial/BAO/FinancialTypeTest.php b/tests/phpunit/CRM/Financial/BAO/FinancialTypeTest.php index 7d1d9bfa9aeb..a2b048605a34 100644 --- a/tests/phpunit/CRM/Financial/BAO/FinancialTypeTest.php +++ b/tests/phpunit/CRM/Financial/BAO/FinancialTypeTest.php @@ -268,6 +268,7 @@ public function testcheckPermissionedLineItems() { 'contact_id' => $contactId, 'financial_type_id' => 1, 'contribution_status_id' => 1, + 'skipCleanMoney' => TRUE, ); foreach ($priceFields['values'] as $key => $priceField) {