Commit | Line | Data |
---|---|---|
3cc60a06 | 1 | CRM.$(function($) { |
74dd0d90 CW |
2 | var alert, memberResults = []; |
3 | ||
4 | function fetchMemberships() { | |
5 | var cid = $("#contact_id").val(); | |
6 | if (cid) { | |
7 | CRM.api3('Membership', 'get', {'sequential': 1, 'contact_id': cid}) | |
8 | .done(function (data) { | |
9 | memberResults = data['values'] || []; | |
d292601b | 10 | checkExistingMemOrg(); |
74dd0d90 CW |
11 | }); |
12 | } else { | |
13 | memberResults = []; | |
14 | } | |
15 | } | |
16 | ||
17 | fetchMemberships(); | |
d292601b | 18 | |
74dd0d90 CW |
19 | $("#contact_id").change(fetchMemberships); |
20 | $("select[name='membership_type_id[0]']").change(checkExistingMemOrg); | |
d292601b AH |
21 | |
22 | function checkExistingMemOrg () { | |
74dd0d90 CW |
23 | alert && alert.close && alert.close(); |
24 | var selectedorg = $("select[name='membership_type_id[0]']").val(); | |
25 | if (memberResults.length && selectedorg) { | |
d292601b AH |
26 | $.each(memberResults, function() { |
27 | if (this['membership_type_id'] in CRM.existingMems.typeorgs) { | |
28 | if (CRM.existingMems.typeorgs[this['membership_type_id']] == selectedorg) { | |
29 | if(this['status_id'] in CRM.existingMems.statuses) { | |
30 | var membership_status = CRM.existingMems.statuses[this['status_id']]; | |
31 | var andEndDate = ''; | |
74dd0d90 CW |
32 | if (this.end_date) { |
33 | andEndDate = ' ' + ts("and end date of %1", {1:this.end_date}); | |
d292601b AH |
34 | } |
35 | ||
36 | var renewUrl = CRM.url('civicrm/contact/view/membership', | |
37 | "reset=1&action=renew&cid="+this.contact_id+"&id="+this['id']+"&context=membership&selectedChild=member" | |
38 | ); | |
39 | ||
40 | var membershipTab = CRM.url('civicrm/contact/view', | |
41 | "reset=1&force=1&cid="+this.contact_id+"&selectedChild=member" | |
42 | ); | |
74dd0d90 CW |
43 | |
44 | var org = $('option:selected', "select[name='membership_type_id[0]']").text(); | |
d292601b | 45 | |
74dd0d90 CW |
46 | alert = CRM.alert( |
47 | ts('This contact has an existing %1 membership at %2 with %3 status%4.', {1: CRM.existingMems.memtypes[this.membership_type_id], 2: org, 3: membership_status, 4: andEndDate}) | |
48 | + '<ul><li><a href="' + renewUrl + '">' | |
49 | + ts('Renew the existing membership instead') | |
50 | + '</a></li><li><a href="' + membershipTab + '">' | |
51 | + ts('View all existing and / or expired memberships for this contact') | |
52 | + '</a></li></ul>', | |
53 | ts('Duplicate Membership?'), 'alert'); | |
54 | return false; | |
d292601b AH |
55 | } |
56 | } | |
57 | } | |
58 | }); | |
59 | } | |
60 | } | |
61 | }); |