1 <?xml version=
"1.0" encoding=
"iso-8859-1" ?>
4 <base>CRM/Member
</base>
5 <class>Membership
</class>
6 <name>civicrm_membership
</name>
7 <comment>Contact Membership records.
</comment>
10 <icon>fa-id-badge
</icon>
12 <add>civicrm/member/add?reset=
1&action=add
&context=standalone
</add>
13 <view>civicrm/contact/view/membership?reset=
1&action=view
&id=[id]
&cid=[contact_id]
</view>
14 <update>civicrm/contact/view/membership?reset=
1&action=update
&id=[id]
&cid=[contact_id]
</update>
15 <delete>civicrm/contact/view/membership?reset=
1&action=delete
&id=[id]
&cid=[contact_id]
</delete>
19 <uniqueName>membership_id
</uniqueName>
20 <type>int unsigned
</type>
21 <required>true
</required>
23 <title>Membership ID
</title>
24 <headerPattern>/^(m(embership\s)?id)$/i
</headerPattern>
25 <comment>Membership Id
</comment>
30 <autoincrement>true
</autoincrement>
34 <name>contact_id
</name>
35 <uniqueName>membership_contact_id
</uniqueName>
36 <type>int unsigned
</type>
37 <required>true
</required>
38 <title>Contact ID
</title>
39 <headerPattern>/contact(.?id)?/i
</headerPattern>
40 <dataPattern>/^\d+$/
</dataPattern>
42 <comment>FK to Contact ID
</comment>
45 <type>EntityRef
</type>
49 <name>contact_id
</name>
50 <table>civicrm_contact
</table>
53 <onDelete>CASCADE
</onDelete>
56 <name>membership_type_id
</name>
57 <type>int unsigned
</type>
58 <title>Membership Type Id
</title>
60 <headerPattern>/^(m(embership\s)?type)$/i
</headerPattern>
61 <export>false
</export>
62 <required>true
</required>
63 <comment>FK to Membership Type
</comment>
65 <table>civicrm_membership_type
</table>
66 <keyColumn>id
</keyColumn>
67 <labelColumn>name
</labelColumn>
71 <label>Membership Type
</label>
76 <name>membership_type_id
</name>
77 <table>civicrm_membership_type
</table>
80 <onDelete>CASCADE
</onDelete>
83 <name>join_date
</name>
84 <title>Member Since
</title>
87 <headerPattern>/^join|(j(oin\s)?date)$/i
</headerPattern>
88 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
89 <comment>Beginning of initial membership period (member since...).
</comment>
92 <type>Select Date
</type>
93 <formatType>activityDate
</formatType>
95 <uniqueName>membership_join_date
</uniqueName>
98 <name>start_date
</name>
99 <uniqueName>membership_start_date
</uniqueName>
100 <title>Membership Start Date
</title>
102 <import>true
</import>
103 <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i
</headerPattern>
104 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
105 <comment>Beginning of current uninterrupted membership period.
</comment>
108 <type>Select Date
</type>
109 <formatType>activityDate
</formatType>
113 <name>end_date
</name>
114 <uniqueName>membership_end_date
</uniqueName>
115 <title>Membership Expiration Date
</title>
117 <import>true
</import>
118 <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i
</headerPattern>
119 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
120 <comment>Current membership period expire date.
</comment>
123 <type>Select Date
</type>
124 <formatType>activityDate
</formatType>
129 <uniqueName>membership_source
</uniqueName>
130 <title>Source
</title>
131 <import>true
</import>
132 <headerPattern>/^(member(ship?))?source$/i
</headerPattern>
141 <name>status_id
</name>
142 <title>Membership Status Id
</title>
143 <import>true
</import>
144 <headerPattern>/(member(ship|).)?(status)$/i
</headerPattern>
145 <type>int unsigned
</type>
146 <export>false
</export>
147 <required>true
</required>
148 <comment>FK to Membership Status
</comment>
150 <table>civicrm_membership_status
</table>
151 <keyColumn>id
</keyColumn>
152 <labelColumn>label
</labelColumn>
160 <name>status_id
</name>
161 <table>civicrm_membership_status
</table>
164 <onDelete>CASCADE
</onDelete>
167 <name>is_override
</name>
168 <uniqueName>member_is_override
</uniqueName>
169 <title>Status Override
</title>
170 <import>true
</import>
171 <export>true
</export>
172 <headerPattern>/override$/i
</headerPattern>
174 <comment>Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record.
</comment>
176 <type>CheckBox
</type>
181 <name>status_override_end_date
</name>
182 <title>Status Override End Date
</title>
184 <default>NULL
</default>
185 <import>true
</import>
186 <comment>Then end date of membership status override if 'Override until selected date' override type is selected.
</comment>
189 <type>Select Date
</type>
190 <formatType>activityDate
</formatType>
194 <name>owner_membership_id
</name>
195 <type>int unsigned
</type>
196 <title>Primary Member ID
</title>
197 <comment>Optional FK to Parent Membership.
</comment>
198 <export>true
</export>
202 <name>owner_membership_id
</name>
203 <table>civicrm_membership
</table>
206 <onDelete>SET NULL
</onDelete>
209 <name>index_owner_membership_id
</name>
210 <fieldName>owner_membership_id
</fieldName>
214 <name>max_related
</name>
216 <comment>Maximum number of related memberships (membership_type override).
</comment>
218 <export>true
</export>
226 <uniqueName>member_is_test
</uniqueName>
229 <import>true
</import>
230 <headerPattern>/(is.)?test(.member(ship)?)?/i
</headerPattern>
232 <type>CheckBox
</type>
236 <name>is_pay_later
</name>
237 <uniqueName>member_is_pay_later
</uniqueName>
238 <title>Is Pay Later
</title>
241 <import>true
</import>
242 <headerPattern>/(is.)?(pay(.)?later)$/i
</headerPattern>
245 <type>CheckBox
</type>
249 <name>contribution_recur_id
</name>
250 <uniqueName>membership_recur_id
</uniqueName>
251 <title>Membership Recurring Contribution
</title>
252 <type>int unsigned
</type>
253 <export>true
</export>
254 <comment>Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.
</comment>
258 <name>contribution_recur_id
</name>
259 <table>civicrm_contribution_recur
</table>
262 <onDelete>SET NULL
</onDelete>
265 <name>campaign_id
</name>
266 <uniqueName>member_campaign_id
</uniqueName>
267 <type>int unsigned
</type>
268 <title>Campaign
</title>
269 <import>true
</import>
270 <comment>The campaign for which this membership is attached.
</comment>
272 <table>civicrm_campaign
</table>
273 <keyColumn>id
</keyColumn>
274 <labelColumn>title
</labelColumn>
282 <name>campaign_id
</name>
283 <table>civicrm_campaign
</table>
285 <onDelete>SET NULL
</onDelete>