diff --git a/CRM/Contribute/Form/Contribution.php b/CRM/Contribute/Form/Contribution.php index 180fd19f2f40afd040552652c2e1626816f9617b..6dd36b9930806746868fa005568490e6aa323792 100644 --- a/CRM/Contribute/Form/Contribution.php +++ b/CRM/Contribute/Form/Contribution.php @@ -920,7 +920,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } } - $softErrors = CRM_Contribute_Form_SoftCredit::formRule($fields); + $softErrors = CRM_Contribute_Form_SoftCredit::formRule($fields, $errors, $self); if (CRM_Utils_Array::value('total_amount', $fields) && (CRM_Utils_Array::value('net_amount', $fields) || CRM_Utils_Array::value('fee_amount', $fields))) { $sum = CRM_Utils_Rule::cleanMoney($fields['net_amount']) + CRM_Utils_Rule::cleanMoney($fields['fee_amount']); diff --git a/CRM/Contribute/Form/SoftCredit.php b/CRM/Contribute/Form/SoftCredit.php index bb1686d410d347519054efe5f363f036ca2bcb35..96490e260d4e8b6803eaa118677c4953d08001b3 100644 --- a/CRM/Contribute/Form/SoftCredit.php +++ b/CRM/Contribute/Form/SoftCredit.php @@ -130,7 +130,7 @@ class CRM_Contribute_Form_SoftCredit { * @access public * @static */ - static function formRule($fields) { + static function formRule($fields, $errors, $self) { $errors = array(); // if honor roll fields are populated but no PCP is selected @@ -150,7 +150,7 @@ class CRM_Contribute_Form_SoftCredit { if ($repeat[$fields['soft_credit_contact_select_id'][$key]] > 1) { $errors["soft_credit_contact_select_id[$key]"] = ts('You cannot enter multiple soft credits for the same contact.'); } - if ($fields['soft_credit_amount'][$key] + if ($self->_action == CRM_Core_Action::ADD && $fields['soft_credit_amount'][$key] && (CRM_Utils_Rule::cleanMoney($fields['soft_credit_amount'][$key]) > CRM_Utils_Rule::cleanMoney($fields['total_amount']))) { $errors["soft_credit_amount[$key]"] = ts('Soft credit amount cannot be more than the total amount.'); }