Merge pull request #8525 from twomice/CRM-18251b
[civicrm-core.git] / xml / schema / Contribute / Contribution.xml
CommitLineData
6d68a4cb 1<?xml version="1.0" encoding="iso-8859-1" ?>
6a488035 2
6d68a4cb
CW
3<table>
4 <base>CRM/Contribute</base>
5 <class>Contribution</class>
6 <name>civicrm_contribution</name>
7 <add>1.3</add>
6a488035 8 <log>true</log>
6d68a4cb
CW
9 <field>
10 <name>id</name>
6a488035 11 <uniqueName>contribution_id</uniqueName>
6d68a4cb 12 <type>int unsigned</type>
6a488035 13 <required>true</required>
6d68a4cb 14 <import>true</import>
6a488035 15 <title>Contribution ID</title>
6d68a4cb
CW
16 <comment>Contribution ID</comment>
17 <add>1.3</add>
18 </field>
19 <primaryKey>
20 <name>id</name>
21 <autoincrement>true</autoincrement>
22 </primaryKey>
23 <field>
24 <name>contact_id</name>
6a488035
TO
25 <uniqueName>contribution_contact_id</uniqueName>
26 <title>Contact ID</title>
6d68a4cb
CW
27 <type>int unsigned</type>
28 <required>true</required>
6a488035
TO
29 <import>true</import>
30 <headerPattern>/contact(.?id)?/i</headerPattern>
31 <dataPattern>/^\d+$/</dataPattern>
6d68a4cb 32 <comment>FK to Contact ID</comment>
614d72ec 33 <html>
916b6181 34 <type>EntityRef</type>
614d72ec 35 </html>
6d68a4cb
CW
36 <add>1.3</add>
37 </field>
38 <foreignKey>
39 <name>contact_id</name>
40 <table>civicrm_contact</table>
41 <key>id</key>
42 <add>1.3</add>
6a488035 43 <onDelete>CASCADE</onDelete>
6d68a4cb
CW
44 </foreignKey>
45 <field>
46 <name>solicitor_id</name>
6a488035 47 <title>Solicitor ID</title>
6d68a4cb
CW
48 <type>int unsigned</type>
49 <comment>FK to Solicitor ID</comment>
50 <add>1.4</add>
6a488035 51 <drop>2.2</drop>
6d68a4cb
CW
52 </field>
53 <foreignKey>
54 <name>solicitor_id</name>
55 <table>civicrm_contact</table>
56 <key>id</key>
57 <add>1.4</add>
6a488035
TO
58 <drop>2.2</drop>
59 <onDelete>SET NULL</onDelete>
6d68a4cb
CW
60 </foreignKey>
61 <field>
62 <name>contribution_type_id</name>
6a488035
TO
63 <title>Contribution Type</title>
64 <export>false</export>
65 <type>int unsigned</type>
66 <comment>FK to Contribution Type</comment>
6d68a4cb
CW
67 <add>1.3</add>
68 <drop>4.3</drop>
69 </field>
70 <foreignKey>
71 <name>contribution_type_id</name>
72 <table>civicrm_contribution_type</table>
73 <key>id</key>
74 <add>1.3</add>
75 <drop>4.3</drop>
6a488035 76 <onDelete>SET NULL</onDelete>
6d68a4cb
CW
77 </foreignKey>
78 <field>
6a488035 79 <name>financial_type_id</name>
bed339f2 80 <title>Financial Type</title>
6a488035
TO
81 <type>int unsigned</type>
82 <comment>FK to Financial Type for (total_amount - non_deductible_amount).</comment>
6d68a4cb
CW
83 <pseudoconstant>
84 <table>civicrm_financial_type</table>
85 <keyColumn>id</keyColumn>
86 <labelColumn>name</labelColumn>
87 </pseudoconstant>
3123273f 88 <export>true</export>
614d72ec 89 <html>
e0991796 90 <type>Select</type>
614d72ec 91 </html>
6a488035 92 <add>4.3</add>
6d68a4cb
CW
93 </field>
94 <foreignKey>
95 <name>financial_type_id</name>
96 <table>civicrm_financial_type</table>
97 <key>id</key>
98 <add>4.3</add>
99 </foreignKey>
100 <field>
101 <name>contribution_page_id</name>
3c151c70 102 <title>Contribution Page ID</title>
6a488035
TO
103 <type>int unsigned</type>
104 <import>true</import>
6d68a4cb
CW
105 <comment>The Contribution Page which triggered this contribution</comment>
106 <pseudoconstant>
107 <table>civicrm_contribution_page</table>
108 <keyColumn>id</keyColumn>
109 <labelColumn>title</labelColumn>
110 </pseudoconstant>
614d72ec 111 <html>
e0991796 112 <type>Select</type>
614d72ec 113 </html>
6d68a4cb
CW
114 <add>1.5</add>
115 </field>
116 <foreignKey>
117 <name>contribution_page_id</name>
118 <table>civicrm_contribution_page</table>
119 <key>id</key>
6a488035
TO
120 <onDelete>SET NULL</onDelete>
121 </foreignKey>
6d68a4cb 122 <field>
6a488035 123 <name>payment_instrument_id</name>
8fb22579 124 <uniqueName>payment_instrument_id</uniqueName>
9d5c7f14 125 <title>Payment Method ID</title>
6a488035
TO
126 <type>int unsigned</type>
127 <comment>FK to Payment Instrument</comment>
9d5c7f14 128 <export>true</export>
129 <headerPattern>/^payment|(p(ayment\s)?instrument)$/i</headerPattern>
6a488035 130 <pseudoconstant>
6d68a4cb 131 <optionGroupName>payment_instrument</optionGroupName>
6a488035 132 </pseudoconstant>
614d72ec 133 <html>
e0991796 134 <type>Select</type>
614d72ec 135 </html>
6a488035 136 <add>1.3</add>
6d68a4cb 137 </field>
6a488035
TO
138 <index>
139 <name>UI_contrib_payment_instrument_id</name>
6d68a4cb 140 <fieldName>payment_instrument_id</fieldName>
6a488035 141 <add>1.6</add>
6d68a4cb
CW
142 </index>
143 <field>
144 <name>receive_date</name>
7bc6b5bb 145 <title>Date Received</title>
6d68a4cb 146 <type>datetime</type>
6a488035
TO
147 <import>true</import>
148 <headerPattern>/receive(.?date)?/i</headerPattern>
149 <dataPattern>/^\d{4}-?\d{2}-?\d{2} ?(\d{2}:?\d{2}:?(\d{2})?)?$/</dataPattern>
7bc6b5bb 150 <comment>Date contribution was received - not necessarily the creation date of the record</comment>
6d68a4cb 151 <add>1.3</add>
614d72ec 152 <html>
153 <type>Select Date</type>
24317d89 154 <formatType>activityDateTime</formatType>
614d72ec 155 </html>
6d68a4cb
CW
156 </field>
157 <field>
158 <name>non_deductible_amount</name>
6a488035
TO
159 <title>Non-deductible Amount</title>
160 <type>decimal</type>
161 <default>0</default>
162 <import>true</import>
163 <headerPattern>/non?.?deduct/i</headerPattern>
164 <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
6d68a4cb
CW
165 <comment>Portion of total amount which is NOT tax deductible. Equal to total_amount for non-deductible financial types.</comment>
166 <add>1.3</add>
614d72ec 167 <html>
168 <type>Text</type>
169 </html>
6a488035 170 </field>
6d68a4cb
CW
171 <field>
172 <name>total_amount</name>
173 <type>decimal</type>
6a488035
TO
174 <required>true</required>
175 <import>true</import>
176 <headerPattern>/^total|(.?^am(ou)?nt)/i</headerPattern>
177 <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
6d68a4cb
CW
178 <comment>Total amount of this contribution. Use market value for non-monetary gifts.</comment>
179 <add>1.3</add>
614d72ec 180 <html>
181 <type>Text</type>
182 </html>
6a488035 183 </field>
378bbe51 184 <index>
185 <name>index_total_amount_receive_date</name>
186 <fieldName>total_amount</fieldName>
187 <fieldName>receive_date</fieldName>
188 <add>4.7</add>
189 </index>
6d68a4cb
CW
190 <field>
191 <name>fee_amount</name>
192 <type>decimal</type>
6a488035
TO
193 <import>true</import>
194 <headerPattern>/fee(.?am(ou)?nt)?/i</headerPattern>
195 <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
196 <comment>actual processor fee if known - may be 0.</comment>
6d68a4cb 197 <add>1.3</add>
614d72ec 198 <html>
199 <type>Text</type>
200 </html>
6d68a4cb
CW
201 </field>
202 <field>
203 <name>net_amount</name>
204 <type>decimal</type>
6a488035
TO
205 <import>true</import>
206 <headerPattern>/net(.?am(ou)?nt)?/i</headerPattern>
207 <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
208 <comment>actual funds transfer amount. total less fees. if processor does not report actual fee during transaction, this is set to total_amount.</comment>
6d68a4cb 209 <add>1.3</add>
614d72ec 210 <html>
211 <type>Text</type>
212 </html>
6a488035 213 </field>
6d68a4cb
CW
214 <field>
215 <name>trxn_id</name>
6a488035 216 <title>Transaction ID</title>
6d68a4cb
CW
217 <type>varchar</type>
218 <length>255</length>
6a488035
TO
219 <import>true</import>
220 <headerPattern>/tr(ansactio|x)n(.?id)?/i</headerPattern>
221 <comment>unique transaction id. may be processor id, bank id + trans id, or account number + check number... depending on payment_method</comment>
614d72ec 222 <html>
223 <type>Text</type>
224 </html>
6d68a4cb
CW
225 <add>1.3</add>
226 </field>
227 <field>
228 <name>invoice_id</name>
6a488035 229 <title>Invoice ID</title>
6d68a4cb
CW
230 <type>varchar</type>
231 <length>255</length>
6a488035
TO
232 <import>true</import>
233 <headerPattern>/invoice(.?id)?/i</headerPattern>
234 <comment>unique invoice id, system generated or passed in</comment>
614d72ec 235 <html>
236 <type>Text</type>
b05e6d0d 237 </html>
6d68a4cb 238 <add>1.3</add>
614d72ec 239 </field>
6d68a4cb
CW
240 <field>
241 <name>currency</name>
242 <type>varchar</type>
6a488035
TO
243 <length>3</length>
244 <default>NULL</default>
245 <import>true</import>
246 <headerPattern>/cur(rency)?/i</headerPattern>
247 <dataPattern>/^[A-Z]{3}$/i</dataPattern>
248 <comment>3 character string, value from config setting or input via user.</comment>
bd44e0df
AS
249 <add>1.3</add>
250 <pseudoconstant>
251 <table>civicrm_currency</table>
252 <keyColumn>name</keyColumn>
a38a89fc 253 <labelColumn>full_name</labelColumn>
c3de5c5a 254 <nameColumn>name</nameColumn>
bd44e0df 255 </pseudoconstant>
614d72ec 256 <html>
e0991796 257 <type>Select</type>
614d72ec 258 </html>
6d68a4cb
CW
259 </field>
260 <field>
261 <name>cancel_date</name>
262 <type>datetime</type>
6a488035
TO
263 <import>true</import>
264 <headerPattern>/cancel(.?date)?/i</headerPattern>
265 <dataPattern>/^\d{4}-?\d{2}-?\d{2} ?(\d{2}:?\d{2}:?(\d{2})?)?$/</dataPattern>
6d68a4cb
CW
266 <comment>when was gift cancelled</comment>
267 <add>1.3</add>
614d72ec 268 <html>
269 <type>Select Date</type>
24317d89 270 <formatType>activityDateTime</formatType>
614d72ec 271 </html>
6d68a4cb
CW
272 </field>
273 <field>
274 <name>cancel_reason</name>
275 <type>text</type>
6a488035
TO
276 <import>true</import>
277 <headerPattern>/(cancel.?)?reason/i</headerPattern>
614d72ec 278 <html>
279 <type>Text</type>
280 </html>
b05e6d0d 281 <add>1.3</add>
6d68a4cb
CW
282 </field>
283 <field>
284 <name>receipt_date</name>
285 <type>datetime</type>
6a488035
TO
286 <import>true</import>
287 <headerPattern>/receipt(.?date)?/i</headerPattern>
288 <dataPattern>/^\d{4}-?\d{2}-?\d{2} ?(\d{2}:?\d{2}:?(\d{2})?)?$/</dataPattern>
289 <comment>when (if) receipt was sent. populated automatically for online donations w/ automatic receipting</comment>
614d72ec 290 <html>
291 <type>Select Date</type>
24317d89 292 <formatType>activityDateTime</formatType>
614d72ec 293 </html>
b05e6d0d 294 <add>1.3</add>
6d68a4cb
CW
295 </field>
296 <field>
6a488035
TO
297 <name>thankyou_date</name>
298 <title>Thank-you Date</title>
6d68a4cb 299 <type>datetime</type>
6a488035
TO
300 <import>true</import>
301 <headerPattern>/thank(s|(.?you))?(.?date)?/i</headerPattern>
302 <dataPattern>/^\d{4}-?\d{2}-?\d{2} ?(\d{2}:?\d{2}:?(\d{2})?)?$/</dataPattern>
6d68a4cb
CW
303 <comment>when (if) was donor thanked</comment>
304 <add>1.3</add>
614d72ec 305 <html>
306 <type>Select Date</type>
24317d89 307 <formatType>activityDateTime</formatType>
614d72ec 308 </html>
6d68a4cb
CW
309 </field>
310 <field>
6a488035
TO
311 <name>source</name>
312 <uniqueName>contribution_source</uniqueName>
313 <title>Contribution Source</title>
6d68a4cb 314 <type>varchar</type>
6a488035
TO
315 <length>255</length>
316 <import>true</import>
317 <headerPattern>/source/i</headerPattern>
6d68a4cb
CW
318 <comment>Origin of this Contribution.</comment>
319 <add>1.3</add>
614d72ec 320 <html>
321 <type>Text</type>
322 </html>
6d68a4cb 323 </field>
3fe26f4c 324 <index>
325 <name>index_source</name>
326 <fieldName>source</fieldName>
327 <add>4.7</add>
328 </index>
6d68a4cb 329 <field>
6a488035
TO
330 <name>amount_level</name>
331 <title>Amount Label</title>
6d68a4cb 332 <type>text</type>
6a488035 333 <import>true</import>
6d68a4cb 334 <add>1.7</add>
614d72ec 335 <html>
336 <type>Text</type>
337 </html>
6d68a4cb 338 </field>
6a488035
TO
339 <field>
340 <name>note</name>
341 <type>text</type>
342 <comment>Note and/or Comment.</comment>
6a488035
TO
343 <import>true</import>
344 <headerPattern>/Note|Comment/i</headerPattern>
345 <dataPattern>//</dataPattern>
346 <add>1.4</add>
347 <drop>1.7</drop>
348 </field>
349 <index>
350 <name>UI_contrib_trxn_id</name>
351 <fieldName>trxn_id</fieldName>
352 <unique>true</unique>
353 <add>2.1</add>
354 </index>
355 <index>
356 <name>UI_contrib_invoice_id</name>
357 <fieldName>invoice_id</fieldName>
358 <unique>true</unique>
359 <add>2.1</add>
360 </index>
6d68a4cb
CW
361 <field>
362 <name>contribution_recur_id</name>
b05e6d0d 363 <title>Recurring Contribution ID</title>
6d68a4cb
CW
364 <type>int unsigned</type>
365 <comment>Conditional foreign key to civicrm_contribution_recur id. Each contribution made 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>
3123273f 366 <export>true</export>
6d68a4cb
CW
367 <add>1.4</add>
368 </field>
369 <foreignKey>
370 <name>contribution_recur_id</name>
371 <table>civicrm_contribution_recur</table>
372 <key>id</key>
373 <add>1.4</add>
6a488035
TO
374 <onDelete>SET NULL</onDelete>
375 </foreignKey>
6d68a4cb
CW
376 <field>
377 <name>is_test</name>
6a488035
TO
378 <title>Test</title>
379 <type>boolean</type>
380 <default>0</default>
381 <import>true</import>
614d72ec 382 <html>
383 <type>CheckBox</type>
384 </html>
6a488035 385 </field>
6d68a4cb
CW
386 <field>
387 <name>is_pay_later</name>
6a488035
TO
388 <title>Is Pay Later</title>
389 <type>boolean</type>
390 <default>0</default>
391 <import>true</import>
6d68a4cb 392 <add>2.1</add>
614d72ec 393 <html>
394 <type>CheckBox</type>
395 </html>
6a488035
TO
396 </field>
397 <field>
398 <name>contribution_status_id</name>
3c151c70 399 <title>Contribution Status ID</title>
6a488035
TO
400 <type>int unsigned</type>
401 <default>1</default>
402 <import>true</import>
403 <export>true</export>
404 <headerPattern>/status/i</headerPattern>
6d68a4cb
CW
405 <pseudoconstant>
406 <optionGroupName>contribution_status</optionGroupName>
407 </pseudoconstant>
614d72ec 408 <html>
e0991796 409 <type>Select</type>
614d72ec 410 </html>
6a488035
TO
411 <add>1.6</add>
412 </field>
6a488035
TO
413 <index>
414 <name>index_contribution_status</name>
415 <fieldName>contribution_status_id</fieldName>
416 <add>1.6</add>
417 </index>
418 <index>
419 <name>received_date</name>
420 <fieldName>receive_date</fieldName>
421 <add>1.6</add>
422 </index>
6d68a4cb
CW
423 <field>
424 <name>address_id</name>
3123273f 425 <uniqueName>contribution_address_id</uniqueName>
455cfd16 426 <title>Contribution Address</title>
6d68a4cb
CW
427 <type>int unsigned</type>
428 <comment>Conditional foreign key to civicrm_address.id. We insert an address record for each contribution when we have associated billing name and address data.</comment>
429 <add>2.2</add>
3123273f 430 <export>true</export>
6d68a4cb
CW
431 </field>
432 <foreignKey>
433 <name>address_id</name>
434 <table>civicrm_address</table>
435 <key>id</key>
436 <add>2.2</add>
6a488035
TO
437 <onDelete>SET NULL</onDelete>
438 </foreignKey>
6d68a4cb
CW
439 <field>
440 <name>check_number</name>
6a488035 441 <title>Check Number</title>
7bc1d4da 442 <uniqueName>contribution_check_number</uniqueName>
6a488035 443 <headerPattern>/check(.?number)?/i</headerPattern>
6d68a4cb 444 <type>varchar</type>
6a488035 445 <length>255</length>
614d72ec 446 <html>
447 <type>Text</type>
54f5e87f 448 <size>6</size>
614d72ec 449 </html>
6a488035 450 <import>true</import>
6d68a4cb
CW
451 <add>2.2</add>
452 </field>
6a488035
TO
453 <index>
454 <name>check_number</name>
455 <fieldName>check_number</fieldName>
456 <add>2.2</add>
457 </index>
6d68a4cb 458 <field>
6a488035
TO
459 <name>campaign_id</name>
460 <uniqueName>contribution_campaign_id</uniqueName>
461 <type>int unsigned</type>
e1ab2e91 462 <title>Campaign</title>
6d68a4cb
CW
463 <import>true</import>
464 <comment>The campaign for which this contribution has been triggered.</comment>
3e3eacd0
CW
465 <pseudoconstant>
466 <table>civicrm_campaign</table>
467 <keyColumn>id</keyColumn>
468 <labelColumn>title</labelColumn>
3e3eacd0 469 </pseudoconstant>
6d68a4cb 470 <add>3.4</add>
614d72ec 471 <html>
472 <type>Select</type>
473 </html>
6d68a4cb 474 </field>
933c5f44 475 <field>
476 <name>creditnote_id</name>
477 <title>Credit Note ID</title>
478 <type>varchar</type>
479 <length>255</length>
480 <import>true</import>
481 <headerPattern>/creditnote(.?id)?/i</headerPattern>
482 <comment>unique credit note id, system generated or passed in</comment>
115fa278 483 <add>4.6</add>
933c5f44 484 <html>
485 <type>Text</type>
486 </html>
487 </field>
8ca47f5c 488 <index>
d9fab10f 489 <name>index_creditnote_id</name>
8ca47f5c 490 <fieldName>creditnote_id</fieldName>
491 <add>4.7</add>
492 </index>
d91b8b33 493 <field>
494 <name>tax_amount</name>
115fa278 495 <title>Tax Amount</title>
d91b8b33 496 <type>decimal</type>
497 <import>true</import>
498 <headerPattern>/tax(.?am(ou)?nt)?/i</headerPattern>
499 <dataPattern>/^\d+(\.\d{2})?$/</dataPattern>
500 <comment>Total tax amount of this contribution.</comment>
115fa278 501 <add>4.6</add>
d91b8b33 502 <html>
503 <type>Text</type>
504 </html>
505 </field>
6d68a4cb
CW
506 <foreignKey>
507 <name>campaign_id</name>
508 <table>civicrm_campaign</table>
509 <key>id</key>
6a488035
TO
510 <onDelete>SET NULL</onDelete>
511 </foreignKey>
fb89c341
PN
512 <field>
513 <name>revenue_recognition_date</name>
514 <type>datetime</type>
515 <import>true</import>
516 <headerPattern>/revenue(.?date)?/i</headerPattern>
517 <dataPattern>/^\d{4}-?\d{2}-?\d{2} ?(\d{2}:?\d{2}:?(\d{2})?)?$/</dataPattern>
518 <comment>Stores the date when revenue should be recognized.</comment>
519 <html>
520 <type>Select Date</type>
24317d89 521 <formatType>activityDateTime</formatType>
fb89c341
PN
522 </html>
523 <add>4.7</add>
524 </field>
6a488035 525</table>