From 265807d1836f51e5eb5c20d30021f8c5cc86a7cf Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Tue, 1 Nov 2016 21:03:45 +0530 Subject: [PATCH] CRM-19585, fixed calculation for default contribution amount price set ---------------------------------------- * CRM-19585: Sales tax issue https://issues.civicrm.org/jira/browse/CRM-19585 --- CRM/Price/BAO/PriceField.php | 6 ++++-- CRM/Price/BAO/PriceSet.php | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CRM/Price/BAO/PriceField.php b/CRM/Price/BAO/PriceField.php index f0e76e896c..9fac7a4898 100644 --- a/CRM/Price/BAO/PriceField.php +++ b/CRM/Price/BAO/PriceField.php @@ -590,11 +590,13 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { * Include inactive options. * @param bool $reset * Discard stored values. + * @param bool $isDefaultContributionPriceSet + * Discard tax amount calculation for price set = default_contribution_amount. * * @return array * array of options */ - public static function getOptions($fieldId, $inactiveNeeded = FALSE, $reset = FALSE) { + public static function getOptions($fieldId, $inactiveNeeded = FALSE, $reset = FALSE, $isDefaultContributionPriceSet = FALSE) { static $options = array(); if ($reset) { $options = array(); @@ -613,7 +615,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { // ToDo - Code for Hook Invoke foreach ($options[$fieldId] as $priceFieldId => $priceFieldValues) { - if (isset($priceFieldValues['financial_type_id']) && array_key_exists($priceFieldValues['financial_type_id'], $taxRates)) { + if (isset($priceFieldValues['financial_type_id']) && array_key_exists($priceFieldValues['financial_type_id'], $taxRates) && !$isDefaultContributionPriceSet) { $options[$fieldId][$priceFieldId]['tax_rate'] = $taxRates[$priceFieldValues['financial_type_id']]; $taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($priceFieldValues['amount'], $options[$fieldId][$priceFieldId]['tax_rate']); $options[$fieldId][$priceFieldId]['tax_amount'] = $taxAmount['tax_amount']; diff --git a/CRM/Price/BAO/PriceSet.php b/CRM/Price/BAO/PriceSet.php index 83f7c51467..396c8e111d 100644 --- a/CRM/Price/BAO/PriceSet.php +++ b/CRM/Price/BAO/PriceSet.php @@ -570,6 +570,11 @@ AND ( expire_on IS NULL OR expire_on >= {$currentTime} ) $dao = CRM_Core_DAO::executeQuery($sql, $params); + $isDefaultContributionPriceSet = FALSE; + if ('default_contribution_amount' == CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $setID)) { + $isDefaultContributionPriceSet = TRUE; + } + $visibility = CRM_Core_PseudoConstant::visibility('name'); while ($dao->fetch()) { $fieldID = $dao->id; @@ -587,7 +592,7 @@ AND ( expire_on IS NULL OR expire_on >= {$currentTime} ) } $setTree[$setID]['fields'][$fieldID][$field] = $dao->$field; } - $setTree[$setID]['fields'][$fieldID]['options'] = CRM_Price_BAO_PriceField::getOptions($fieldID, FALSE); + $setTree[$setID]['fields'][$fieldID]['options'] = CRM_Price_BAO_PriceField::getOptions($fieldID, FALSE, FALSE, $isDefaultContributionPriceSet); } // also get the pre and post help from this price set -- 2.25.1