From 6f87cd8dcb4eda89095d1ea728ad7666d4ee49aa Mon Sep 17 00:00:00 2001 From: Parag Bhilkar Date: Tue, 5 Aug 2014 15:30:49 +0530 Subject: [PATCH] VAT-637 Added taxrates for offline membership contribution. --- CRM/Member/Form/Membership.php | 1 + templates/CRM/Member/Form/Membership.tpl | 19 +++++++++++++++++-- templates/CRM/Member/Form/MembershipType.tpl | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/CRM/Member/Form/Membership.php b/CRM/Member/Form/Membership.php index 14f6d4ba39..b4edfa84e0 100644 --- a/CRM/Member/Form/Membership.php +++ b/CRM/Member/Form/Membership.php @@ -470,6 +470,7 @@ class CRM_Member_Form_Membership extends CRM_Member_Form { return CRM_Custom_Form_CustomData::buildQuickForm($this); } + $this->assign('taxRates', json_encode(CRM_Core_PseudoConstant::getTaxRates())); // build price set form. $buildPriceSet = FALSE; if ($this->_priceSetId || !empty($_POST['price_set_id'])) { diff --git a/templates/CRM/Member/Form/Membership.tpl b/templates/CRM/Member/Form/Membership.tpl index 1872744a45..ccc6cda80f 100644 --- a/templates/CRM/Member/Form/Membership.tpl +++ b/templates/CRM/Member/Form/Membership.tpl @@ -379,12 +379,27 @@ // skip this for test and live modes because financial type is set automatically cj("#financial_type_id").val(allMemberships[memType]['financial_type_id']); var term = cj('#num_terms').val(); + var taxRates = '{/literal}{$taxRates}{literal}'; + var taxRates = JSON.parse(taxRates); + var taxRate = taxRates[allMemberships[memType]['financial_type_id']]; + if ( term ) { - var feeTotal = allMemberships[memType]['total_amount_numeric'] * term; + if (!taxRate) { + var feeTotal = allMemberships[memType]['total_amount_numeric'] * term; + } + else { + var feeTotal = Number((taxRate/100) * (allMemberships[memType]['total_amount_numeric'] * term))+Number(allMemberships[memType]['total_amount_numeric'] * term ); + } cj("#total_amount").val( feeTotal.toFixed(2) ); } else { - cj("#total_amount").val( allMemberships[memType]['total_amount'] ); + if (taxRate) { + var feeTotal = parseFloat(Number((taxRate/100) * allMemberships[memType]['total_amount'])+Number(allMemberships[memType]['total_amount_numeric'])).toFixed(2); + cj("#total_amount").val( feeTotal ); + } + else { + cj("#total_amount").val( allMemberships[memType]['total_amount'] ); + } } } diff --git a/templates/CRM/Member/Form/MembershipType.tpl b/templates/CRM/Member/Form/MembershipType.tpl index 689df9e913..d936f7c7bd 100644 --- a/templates/CRM/Member/Form/MembershipType.tpl +++ b/templates/CRM/Member/Form/MembershipType.tpl @@ -61,7 +61,7 @@ {$form.minimum_fee.label} {$form.minimum_fee.html|crmMoney}
- {ts}Minimum fee required for this membership type. For free/complimentary memberships - set minimum fee to zero (0).{/ts} + {ts}Minimum fee required for this membership type. For free/complimentary memberships - set minimum fee to zero (0). NOTE: When using CiviCRM to process sales taxes this should be the tax exclusive amount.{/ts} -- 2.25.1