From a76b8bd8648b7732ceb0e236c0e73b9422683c43 Mon Sep 17 00:00:00 2001 From: eileenmcnaugton Date: Mon, 8 Aug 2016 18:06:43 +1200 Subject: [PATCH] CRM-19126 further fix - less aggressive return --- CRM/Contribute/BAO/Contribution.php | 10 +++------- tests/phpunit/api/v3/ContributionTest.php | 2 +- tests/phpunit/api/v3/TaxContributionPageTest.php | 5 +++-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index b6c0afa3b1..68bd163459 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -4125,26 +4125,22 @@ WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']}) if (empty($params['prevContribution'])) { $params['prevContribution'] = self::getOriginalContribution($params['id']); } - $isRequireTaxCalculation = FALSE; - foreach (array('total_amount', 'financial_type_id', 'fee_amount', 'tax_amount') as $field) { + + foreach (array('total_amount', 'financial_type_id', 'fee_amount') as $field) { if (!isset($params[$field])) { if ($field == 'total_amount' && $params['prevContribution']->tax_amount) { // Tax amount gets added back on later.... $params['total_amount'] = $params['prevContribution']->total_amount - $params['prevContribution']->tax_amount; - $isRequireTaxCalculation = TRUE; } else { $params[$field] = $params['prevContribution']->$field; if ($params[$field] != $params['prevContribution']->$field) { - $isRequireTaxCalculation = TRUE; } } } } - if (!$isRequireTaxCalculation) { - return $params; - } + self::calculateMissingAmountParams($params, $params['id']); if (!array_key_exists($params['financial_type_id'], $taxRates)) { // Assign tax Amount on update of contribution diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 9617a2ea61..cad444a6b9 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -1786,7 +1786,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { 'account_relationship' => 10, 'financial_account_id' => $financialAccountId, ); - $financialRelation = CRM_Financial_BAO_FinancialTypeAccount::add($financialAccountParams); + CRM_Financial_BAO_FinancialTypeAccount::add($financialAccountParams); $taxRates = CRM_Core_PseudoConstant::getTaxRates(); $params = array_merge($this->_params, array('contribution_status_id' => 2, 'financial_type_id' => $financialTypeId)); $contribution = $this->callAPISuccess('contribution', 'create', $params); diff --git a/tests/phpunit/api/v3/TaxContributionPageTest.php b/tests/phpunit/api/v3/TaxContributionPageTest.php index c6d307899a..c897e8bb5b 100644 --- a/tests/phpunit/api/v3/TaxContributionPageTest.php +++ b/tests/phpunit/api/v3/TaxContributionPageTest.php @@ -361,7 +361,8 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase { } /** - * Updation of contrbution. + * Update a contribution. + * * Function tests that line items, financial records are updated when contribution amount is changed */ public function testCreateUpdateContributionChangeTotal() { @@ -389,7 +390,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase { 'financial_type_id' => 1, // without tax rate i.e Donation 'total_amount' => '300', ); - $contribution = $this->callAPISuccess('contribution', 'update', $newParams); + $contribution = $this->callAPISuccess('contribution', 'create', $newParams); $lineItems = $this->callAPISuccess('line_item', 'getvalue', array( 'entity_id' => $contribution['id'], -- 2.25.1