From: monishdeb Date: Wed, 1 Oct 2014 20:44:39 +0000 (+0530) Subject: CRM-15374 fix - Contribution FEES are affecting Balance and Total Paid incorrectly X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=77e18ec757ec700956dc3f18e793d6dcea1c3fd0;p=civicrm-core.git CRM-15374 fix - Contribution FEES are affecting Balance and Total Paid incorrectly https://issues.civicrm.org/jira/browse/CRM-15374 --- diff --git a/CRM/Contribute/Form/Contribution.php b/CRM/Contribute/Form/Contribution.php index b6b88e1a01..211d2e445d 100644 --- a/CRM/Contribute/Form/Contribution.php +++ b/CRM/Contribute/Form/Contribution.php @@ -1045,14 +1045,21 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } elseif (array_key_exists('participant', $contributionDetails)) { $pId = current($contributionDetails['participant']); - } + } } } + + $isQuickConfig = 0; + if ($this->_priceSetId && CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) { + $isQuickConfig = 1; + } + if (!$priceSetId && !empty($submittedValues['total_amount']) && $this->_id) { // 10117 update th line items for participants if ($pId) { $entityTable = 'participant'; $entityID = $pId; + $isRelatedId = FALSE; $participantParams = array( 'fee_amount' => $submittedValues['total_amount'], 'id' => $entityID @@ -1067,7 +1074,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $entityID = $this->_id; } - $lineItems = CRM_Price_BAO_LineItem::getLineItems($entityID, NULL, TRUE, $isRelatedId); + $lineItems = CRM_Price_BAO_LineItem::getLineItems($entityID, $entityTable, $isQuickConfig, $isRelatedId); foreach (array_keys($lineItems) as $id) { $lineItems[$id]['id'] = $id; } @@ -1084,10 +1091,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $lineItem[$this->_priceSetId] = $lineItems; } } - $isQuickConfig = 0; - if ($this->_priceSetId && CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) { - $isQuickConfig = 1; - } + //CRM-11529 for quick config back office transactions //when financial_type_id is passed in form, update the //line items with the financial type selected in form diff --git a/CRM/Core/BAO/FinancialTrxn.php b/CRM/Core/BAO/FinancialTrxn.php index 7008bf9607..063050c659 100644 --- a/CRM/Core/BAO/FinancialTrxn.php +++ b/CRM/Core/BAO/FinancialTrxn.php @@ -385,7 +385,12 @@ WHERE ceft.entity_id = %1"; $expenseTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Expense Account is' ")); $domainId = CRM_Core_Config::domainID(); $amount = 0; + $contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); if (!empty($params['prevContribution'])) { + if ($params['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatuses) || + $params['contribution']->contribution_status_id == array_search('Refund', $contributionStatuses)) { + return FALSE; + } $amount = $params['prevContribution']->fee_amount; } $amount = $params['fee_amount'] - $amount;