-
Bastien Ho authoredbea8dc21
var AnnualContributionAmount = null;
var ToPayAmount = null;
var otherAmountField;
var GrilleSalarialeField;
var PaymentMethodField;
var membershipFieldWrapper;
var GrilleSalarialeFieldWrapper;
var PaymentMethodFieldWrapper;
var Syndicate;
var SyndicateId;
var membershipType;
var Frequency;
var Frequencies;
var FrequencySelector;
var MembershipStartDate;
var membershipEndDate;
var SalarySelect;
var SalaryGreaterOption;
const sortObject = function (obj) {
return Object.keys(obj).sort().reduce(function (result, key) {
result[key] = obj[key];
return result;
}, {});
}
const cartable_pick_custom_salary = function(){
var custom_salary = prompt(cartable.Membership.i18n.custom_salary);
if (custom_salary && !isNaN(custom_salary)){
AnnualContributionAmount = custom_salary * Syndicate.membershipRatio / 100;
SalaryGreaterOption.attr('value', AnnualContributionAmount).text(custom_salary+cartable.Membership.currency.symbol);
SalarySelect.val(AnnualContributionAmount).select2().trigger('change');
}
else{
alert(cartable.Membership.i18n.custom_salary_nan);
SalarySelect.val("").select2().trigger('change');
}
}
const cartable_pick_membership_amount = function(){
var raw_contribution_amount = SalarySelect.val();
if (raw_contribution_amount === '_FREE_'){
SalarySelect.after(
CRM.$('<a>')
.on('click', cartable_pick_custom_salary)
.attr('class', 'cartable-salary-greater-link')
.text(cartable.Membership.i18n.another_salary)
);
cartable_pick_custom_salary();
return;
}
AnnualContributionAmount = parseFloat(raw_contribution_amount);
if(!initial_auto_select && GrilleSalarialeField){
GrilleSalarialeField.val(SyndicateId+'|'+AnnualContributionAmount);
}
// TODO: calculate effective months to be paid
MonthlyContributionAmount = Math.round(AnnualContributionAmount/0.12)/100;
var FrequencyControl = CRM.$('.cartable-membership-frequency-selector input[type=radio]:checked');
var frequency_name = FrequencyControl.val();
if(!initial_auto_select && PaymentMethodField){
PaymentMethodField.val(frequency_name);
}
var AnnualTaxFreeAmount = cartable_fiscal_deducted(AnnualContributionAmount);
var MonthlyTaxFreeAmount = cartable_fiscal_deducted(MonthlyContributionAmount);
CRM.$('.cartable-membership-frequency-selector .year-amount').text( isNaN(AnnualContributionAmount) ? '' : AnnualContributionAmount+cartable.Membership.currency.symbol );
CRM.$('.cartable-membership-frequency-selector .month-amount').text( isNaN(AnnualContributionAmount) ? '' : MonthlyContributionAmount+cartable.Membership.currency.symbol );
CRM.$('.cartable-membership-frequency-selector .year-free-amount').text( isNaN(AnnualContributionAmount) ? '' : AnnualTaxFreeAmount+cartable.Membership.currency.symbol );
CRM.$('.cartable-membership-frequency-selector .month-free-amount').text( isNaN(AnnualContributionAmount) ? '' : MonthlyTaxFreeAmount+cartable.Membership.currency.symbol );
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
CRM.$('.cartable-membership-frequency-selector .end-date').text( membershipEndDate );
CRM.$('.cartable-membership-frequency-selector .start-date').text( MembershipStartDate );
if(!frequency_name || typeof cartable.Membership.FrequenciesData[frequency_name]=='undefined'){
CRM.$('#cartable-tab-step-2 .front-tabs-link.next').hide();
return;
}
if(!AnnualContributionAmount || isNaN(AnnualContributionAmount)){
CRM.$('#cartable-tab-step-2 .front-tabs-link.next').hide();
otherAmountField.val('').trigger('blur');
return;
}
Frequency = cartable.Membership.FrequenciesData[frequency_name];
if(Frequency.is_recur && Frequency.unit){
CRM.$('#is_recur').prop('checked', 'checked').trigger('change');
setTimeout(function(){
CRM.$('#auto_renew').prop('checked', 'checked').trigger('change');
}, 300);
CRM.$('#frequency_unit').val(Frequency.unit);
}
else{
CRM.$('#is_recur').removeProp('checked').trigger('change');
CRM.$('#auto_renew').removeProp('checked').trigger('change');
CRM.$('#frequency_unit').val('');
}
ToPayAmount = AnnualContributionAmount;
if(Frequency.unit == 'month'){
ToPayAmount = MonthlyContributionAmount;
}
var priceElement = CRM.$('#'+Syndicate.membership_field);
priceElement
.trigger('click')
;
if(otherAmountField){
otherAmountField.val(ToPayAmount).trigger('blur');
CRM.$('#cartable-tab-step-2 .front-tabs-link.next').show();
}
}
function cartable_fiscal_deducted(amount){
return Math.round(amount*(100-cartable.Membership.membershipTaxDeduction))/100;
}
function cartable_membership_text_replace(string){
return string
.replace('[year_amount]', '<span class="amount year-amount"></span>')
.replace('[month_amount]', '<span class="amount month-amount"></span>')
.replace('[year_free_amount]', '<span class="tax-free-amount year-free-amount"></span>')
.replace('[month_free_amount]', '<span class="tax-free-amount month-free-amount"></span>')
.replace('[start_date]', '<time class="membership-date start-date"></time>')
.replace('[end_date]', '<time class="membership-date end-date"></time>')
;
}
function cartable_format_date(datestring){
return CRM.utils.formatDate(datestring, cartable.Membership.i18n.dateformat);
}
const cartable_reset_membership_amount = function(){
CRM.$('#cartable-membership-selector').remove();
var MembershipSelector = CRM.$('<div>')
.attr('id', 'cartable-membership-selector')
;
var chosenSyndicateRadio = CRM.$('#priceset .membership_amount-content input[type=radio]:checked');
SyndicateId = chosenSyndicateRadio.attr('data-syndicate-id');
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
Syndicate = cartable.Syndicates.Syndicates[SyndicateId];
membershipType = cartable.Syndicates.IndexedMembershipTypes[SyndicateId];
initial_auto_select = true;
cartable_select_zone();
var chosenSyndicateButton = CRM.$('#cartable-label-'+chosenSyndicateRadio.attr('id')+'');
chosenSyndicateButton.addClass('active');
MembershipStartDate = cartable_format_date(membershipType.start_day);
membershipEndDate = cartable_format_date(membershipType.end_day);
MembershipSelector.append(
CRM.$('<h3>')
.addClass('cartable-title cartable-membership-title')
.text(cartable.Membership.i18n.my_contribution)
);
MembershipSelector.append(
CRM.$('<span>')
.addClass('cartable-membership-chosen-syndicate-name')
.text(chosenSyndicateButton.attr('data-name'))
);
SalarySelect = CRM.$('<select>')
.attr('id', 'cartable-membership-salary-select')
.addClass('cartable-membership-salary-select')
.on('change', cartable_pick_membership_amount)
.append(
CRM.$('<option>')
.attr('value', '')
.text(cartable.Membership.i18n.pick_your_salary)
)
;
var membershipRates = cartable.Membership.membershipRates;
if(Syndicate.MembershipRates !== undefined && Object.keys(Syndicate.MembershipRates).length){
membershipRates = Syndicate.MembershipRates;
}
for(var Salary in membershipRates){
SalarySelect.append(
CRM.$('<option>')
.attr('value', Salary)
.text(membershipRates[Salary])
);
}
FrequencySelector = CRM.$('<div>')
.attr('id', 'cartable-membership-frequency-selector')
;
MembershipSelector.append(
CRM.$('<div>')
.addClass('membership-wrapper')
.append(
CRM.$('<div>')
.addClass('salary-wrapper')
.append(
CRM.$('<h3>')
.addClass('cartable-title cartable-membership-salary-title')
.text(cartable.Membership.i18n.your_salary_tax_free)
,
SalarySelect,
),
CRM.$('<div>')
.addClass('frequency-wrapper')
.append(
CRM.$('<h3>')
.addClass('cartable-title cartable-membership-frequency-title')
.text(cartable.Membership.i18n.your_contribution_mode)
,