CRM-16632 - Fix calculation of contribution fees
authorColeman Watts <coleman@civicrm.org>
Fri, 5 Jun 2015 15:41:00 +0000 (11:41 -0400)
committerColeman Watts <coleman@civicrm.org>
Fri, 5 Jun 2015 15:41:00 +0000 (11:41 -0400)
CRM/Contribute/Form/Contribution.php
templates/CRM/Contribute/Form/AdditionalPayment.tpl
templates/CRM/Contribute/Form/Contribution.tpl

index 8439582b5ed25585df6e5934a59752b21334b78d..771f799967f8170819ba7109adb351e2bab0f364 100644 (file)
@@ -953,7 +953,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
           $sum = CRM_Utils_Money::format($sum - $self->_values['tax_amount'], NULL, '%a');
         }
       }
-      if (CRM_Utils_Rule::cleanMoney($fields['total_amount']) != $sum) {
+      if (CRM_Utils_Rule::cleanMoney($fields['total_amount']) != CRM_Utils_Rule::cleanMoney($sum)) {
         $errors['total_amount'] = ts('The sum of fee amount and net amount must be equal to total amount');
       }
     }
index d0b9c8d8025ad04ec771796cd10d81a90c233902..488d20c396a28b7078bd4aeee5715a2175d5b551 100644 (file)
@@ -264,8 +264,8 @@ cj('#fee_amount').change( function() {
   var totalAmount = cj('#total_amount').val();
   var feeAmount = cj('#fee_amount').val();
   var netAmount = totalAmount.replace(/,/g, '') - feeAmount.replace(/,/g, '');
-  if (!cj('#net_amount').val()) {
-    cj('#net_amount').val(netAmount);
+  if (!cj('#net_amount').val() && totalAmount) {
+    cj('#net_amount').val(CRM.formatMoney(netAmount, true));
   }
 });
     </script>
index f545deebd9e19067c166ff0d63a572d2b130333b..9a4e34a5bbeb15bf465717fb568f9e42935e9d73 100644 (file)
@@ -625,8 +625,8 @@ cj('#fee_amount').change( function() {
   var totalAmount = cj('#total_amount').val();
   var feeAmount = cj('#fee_amount').val();
   var netAmount = totalAmount.replace(/,/g, '') - feeAmount.replace(/,/g, '');
-  if (!cj('#net_amount').val()) {
-    cj('#net_amount').val(netAmount);
+  if (!cj('#net_amount').val() && totalAmount) {
+    cj('#net_amount').val(CRM.formatMoney(netAmount, true));
   }
 });