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>
11 <component>CiviMember
</component>
13 <add>civicrm/member/add?reset=
1&action=add
&context=standalone
</add>
14 <view>civicrm/contact/view/membership?reset=
1&action=view
&id=[id]
&cid=[contact_id]
</view>
15 <update>civicrm/contact/view/membership?reset=
1&action=update
&id=[id]
&cid=[contact_id]
</update>
16 <delete>civicrm/contact/view/membership?reset=
1&action=delete
&id=[id]
&cid=[contact_id]
</delete>
20 <uniqueName>membership_id
</uniqueName>
21 <type>int unsigned
</type>
22 <required>true
</required>
24 <title>Membership ID
</title>
25 <headerPattern>/^(m(embership\s)?id)$/i
</headerPattern>
26 <comment>Membership ID
</comment>
34 <autoincrement>true
</autoincrement>
38 <name>contact_id
</name>
39 <uniqueName>membership_contact_id
</uniqueName>
40 <type>int unsigned
</type>
41 <required>true
</required>
42 <title>Contact ID
</title>
43 <headerPattern>/contact(.?id)?/i
</headerPattern>
44 <dataPattern>/^\d+$/
</dataPattern>
46 <comment>FK to Contact ID
</comment>
49 <type>EntityRef
</type>
50 <label>Contact
</label>
54 <name>contact_id
</name>
55 <table>civicrm_contact
</table>
58 <onDelete>CASCADE
</onDelete>
61 <name>membership_type_id
</name>
62 <type>int unsigned
</type>
63 <title>Membership Type ID
</title>
65 <headerPattern>/^(m(embership\s)?type)$/i
</headerPattern>
66 <export>false
</export>
67 <required>true
</required>
68 <comment>FK to Membership Type
</comment>
70 <table>civicrm_membership_type
</table>
71 <keyColumn>id
</keyColumn>
72 <labelColumn>name
</labelColumn>
76 <label>Membership Type
</label>
81 <name>membership_type_id
</name>
82 <table>civicrm_membership_type
</table>
85 <onDelete>CASCADE
</onDelete>
88 <name>join_date
</name>
89 <title>Member Since
</title>
92 <headerPattern>/^join|(j(oin\s)?date)$/i
</headerPattern>
93 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
94 <comment>Beginning of initial membership period (member since...).
</comment>
97 <type>Select Date
</type>
98 <formatType>activityDate
</formatType>
100 <uniqueName>membership_join_date
</uniqueName>
103 <name>start_date
</name>
104 <uniqueName>membership_start_date
</uniqueName>
105 <title>Membership Start Date
</title>
107 <import>true
</import>
108 <headerPattern>/(member(ship)?.)?start(s)?(.date$)?/i
</headerPattern>
109 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
110 <comment>Beginning of current uninterrupted membership period.
</comment>
113 <type>Select Date
</type>
114 <formatType>activityDate
</formatType>
118 <name>end_date
</name>
119 <uniqueName>membership_end_date
</uniqueName>
120 <title>Membership Expiration Date
</title>
122 <import>true
</import>
123 <headerPattern>/(member(ship)?.)?end(s)?(.date$)?/i
</headerPattern>
124 <dataPattern>/\d{
4}-?\d{
2}-?\d{
2}/
</dataPattern>
125 <comment>Current membership period expire date.
</comment>
128 <type>Select Date
</type>
129 <formatType>activityDate
</formatType>
134 <uniqueName>membership_source
</uniqueName>
135 <title>Source
</title>
136 <import>true
</import>
137 <headerPattern>/^(member(ship?))?source$/i
</headerPattern>
146 <name>status_id
</name>
147 <title>Status ID
</title>
148 <import>true
</import>
149 <headerPattern>/(member(ship|).)?(status)$/i
</headerPattern>
150 <type>int unsigned
</type>
151 <export>false
</export>
152 <required>true
</required>
153 <comment>FK to Membership Status
</comment>
155 <table>civicrm_membership_status
</table>
156 <keyColumn>id
</keyColumn>
157 <labelColumn>label
</labelColumn>
161 <label>Status
</label>
166 <name>status_id
</name>
167 <table>civicrm_membership_status
</table>
170 <onDelete>CASCADE
</onDelete>
173 <name>is_override
</name>
174 <uniqueName>member_is_override
</uniqueName>
175 <title>Status Override
</title>
176 <import>true
</import>
177 <export>true
</export>
178 <headerPattern>/override$/i
</headerPattern>
180 <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>
182 <type>CheckBox
</type>
187 <name>status_override_end_date
</name>
188 <title>Status Override End Date
</title>
190 <default>NULL
</default>
191 <import>true
</import>
192 <comment>Then end date of membership status override if 'Override until selected date' override type is selected.
</comment>
195 <type>Select Date
</type>
196 <formatType>activityDate
</formatType>
200 <name>owner_membership_id
</name>
201 <type>int unsigned
</type>
202 <title>Primary Member ID
</title>
203 <comment>Optional FK to Parent Membership.
</comment>
204 <export>true
</export>
206 <label>Primary Member
</label>
211 <name>owner_membership_id
</name>
212 <table>civicrm_membership
</table>
215 <onDelete>SET NULL
</onDelete>
218 <name>index_owner_membership_id
</name>
219 <fieldName>owner_membership_id
</fieldName>
223 <name>max_related
</name>
225 <comment>Maximum number of related memberships (membership_type override).
</comment>
227 <export>true
</export>
230 <label>Maximum number of related memberships
</label>
236 <uniqueName>member_is_test
</uniqueName>
239 <import>true
</import>
240 <headerPattern>/(is.)?test(.member(ship)?)?/i
</headerPattern>
242 <type>CheckBox
</type>
246 <name>is_pay_later
</name>
247 <uniqueName>member_is_pay_later
</uniqueName>
248 <title>Is Pay Later
</title>
251 <import>true
</import>
252 <headerPattern>/(is.)?(pay(.)?later)$/i
</headerPattern>
255 <type>CheckBox
</type>
259 <name>contribution_recur_id
</name>
260 <uniqueName>membership_recur_id
</uniqueName>
261 <title>Recurring Contribution ID
</title>
262 <type>int unsigned
</type>
263 <export>true
</export>
264 <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>
266 <label>Recurring Contribution
</label>
271 <name>contribution_recur_id
</name>
272 <table>civicrm_contribution_recur
</table>
275 <onDelete>SET NULL
</onDelete>
278 <name>campaign_id
</name>
279 <uniqueName>member_campaign_id
</uniqueName>
280 <type>int unsigned
</type>
281 <title>Campaign ID
</title>
282 <import>true
</import>
283 <comment>The campaign for which this membership is attached.
</comment>
287 <label>Campaign
</label>
291 <name>campaign_id
</name>
292 <table>civicrm_campaign
</table>
294 <onDelete>SET NULL
</onDelete>