Merge pull request #12177 from eileenmcnaughton/test_monish
[civicrm-core.git] / CRM / Contribute / DAO / ContributionRecur.php
CommitLineData
e501603b 1<?php
c3fc2621 2
e501603b
TO
3/**
4 * @package CRM
8c9251b3 5 * @copyright CiviCRM LLC (c) 2004-2018
e501603b
TO
6 *
7 * Generated from xml/schema/CRM/Contribute/ContributionRecur.xml
8 * DO NOT EDIT. Generated by CRM_Core_CodeGen
e7a6b91a 9 * (GenCodeChecksum:a1007a4585bac4fcb04ce47535aecec0)
e501603b 10 */
c3fc2621 11
f41f0342 12/**
c3fc2621 13 * Database access object for the ContributionRecur entity.
f41f0342 14 */
e501603b 15class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
c3fc2621 16
e501603b 17 /**
f41f0342 18 * Static instance to hold the table name.
e501603b
TO
19 *
20 * @var string
21 */
22 static $_tableName = 'civicrm_contribution_recur';
c3fc2621 23
e501603b 24 /**
f41f0342 25 * Should CiviCRM log any modifications to this table in the civicrm_log table.
e501603b 26 *
c3fc2621 27 * @var bool
e501603b 28 */
c3fc2621
CW
29 static $_log = TRUE;
30
e501603b
TO
31 /**
32 * Contribution Recur ID
33 *
34 * @var int unsigned
35 */
36 public $id;
c3fc2621 37
e501603b
TO
38 /**
39 * Foreign key to civicrm_contact.id .
40 *
41 * @var int unsigned
42 */
43 public $contact_id;
c3fc2621 44
e501603b
TO
45 /**
46 * Amount to be contributed or charged each recurrence.
47 *
48 * @var float
49 */
50 public $amount;
c3fc2621 51
e501603b
TO
52 /**
53 * 3 character string, value from config setting or input via user.
54 *
55 * @var string
56 */
57 public $currency;
c3fc2621 58
e501603b
TO
59 /**
60 * Time units for recurrence of payment.
61 *
62 * @var string
63 */
64 public $frequency_unit;
c3fc2621 65
e501603b
TO
66 /**
67 * Number of time units for recurrence of payment.
68 *
69 * @var int unsigned
70 */
71 public $frequency_interval;
c3fc2621 72
e501603b
TO
73 /**
74 * Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.
75 *
76 * @var int unsigned
77 */
78 public $installments;
c3fc2621 79
e501603b
TO
80 /**
81 * The date the first scheduled recurring contribution occurs.
82 *
83 * @var datetime
84 */
85 public $start_date;
c3fc2621 86
e501603b
TO
87 /**
88 * When this recurring contribution record was created.
89 *
90 * @var datetime
91 */
92 public $create_date;
c3fc2621 93
e501603b
TO
94 /**
95 * Last updated date for this record. mostly the last time a payment was received
96 *
97 * @var datetime
98 */
99 public $modified_date;
c3fc2621 100
e501603b
TO
101 /**
102 * Date this recurring contribution was cancelled by contributor- if we can get access to it
103 *
104 * @var datetime
105 */
106 public $cancel_date;
c3fc2621 107
e501603b
TO
108 /**
109 * Date this recurring contribution finished successfully
110 *
111 * @var datetime
112 */
113 public $end_date;
c3fc2621 114
e501603b
TO
115 /**
116 * Possibly needed to store a unique identifier for this recurring payment order - if this is available from the processor??
117 *
118 * @var string
119 */
120 public $processor_id;
c3fc2621 121
e501603b
TO
122 /**
123 * Optionally used to store a link to a payment token used for this recurring contribution.
124 *
125 * @var int unsigned
126 */
127 public $payment_token_id;
c3fc2621 128
e501603b
TO
129 /**
130 * unique transaction id. may be processor id, bank id + trans id, or account number + check number... depending on payment_method
131 *
132 * @var string
133 */
134 public $trxn_id;
c3fc2621 135
e501603b
TO
136 /**
137 * unique invoice id, system generated or passed in
138 *
139 * @var string
140 */
141 public $invoice_id;
c3fc2621 142
e501603b 143 /**
e501603b
TO
144 * @var int unsigned
145 */
146 public $contribution_status_id;
c3fc2621 147
e501603b 148 /**
e501603b
TO
149 * @var boolean
150 */
151 public $is_test;
c3fc2621 152
e501603b
TO
153 /**
154 * Day in the period when the payment should be charged e.g. 1st of month, 15th etc.
155 *
156 * @var int unsigned
157 */
158 public $cycle_day;
c3fc2621 159
e501603b
TO
160 /**
161 * Next scheduled date
162 *
163 * @var datetime
164 */
165 public $next_sched_contribution_date;
c3fc2621 166
e501603b
TO
167 /**
168 * Number of failed charge attempts since last success. Business rule could be set to deactivate on more than x failures.
169 *
170 * @var int unsigned
171 */
172 public $failure_count;
c3fc2621 173
e501603b
TO
174 /**
175 * Date to retry failed attempt
176 *
177 * @var datetime
178 */
179 public $failure_retry_date;
c3fc2621 180
e501603b
TO
181 /**
182 * Some systems allow contributor to set a number of installments - but then auto-renew the subscription or commitment if they do not cancel.
183 *
184 * @var boolean
185 */
186 public $auto_renew;
c3fc2621 187
e501603b
TO
188 /**
189 * Foreign key to civicrm_payment_processor.id
190 *
191 * @var int unsigned
192 */
193 public $payment_processor_id;
c3fc2621 194
e501603b
TO
195 /**
196 * FK to Financial Type
197 *
198 * @var int unsigned
199 */
200 public $financial_type_id;
c3fc2621 201
e501603b
TO
202 /**
203 * FK to Payment Instrument
204 *
205 * @var int unsigned
206 */
207 public $payment_instrument_id;
c3fc2621 208
e501603b
TO
209 /**
210 * The campaign for which this contribution has been triggered.
211 *
212 * @var int unsigned
213 */
214 public $campaign_id;
c3fc2621 215
e501603b
TO
216 /**
217 * if true, receipt is automatically emailed to contact on each successful payment
218 *
219 * @var boolean
220 */
221 public $is_email_receipt;
c3fc2621 222
e501603b 223 /**
f41f0342 224 * Class constructor.
e501603b 225 */
c3fc2621 226 public function __construct() {
e501603b
TO
227 $this->__table = 'civicrm_contribution_recur';
228 parent::__construct();
229 }
c3fc2621 230
e501603b 231 /**
f41f0342 232 * Returns foreign keys and entity references.
e501603b
TO
233 *
234 * @return array
235 * [CRM_Core_Reference_Interface]
236 */
c3fc2621 237 public static function getReferenceColumns() {
346aaaba
TO
238 if (!isset(Civi::$statics[__CLASS__]['links'])) {
239 Civi::$statics[__CLASS__]['links'] = static ::createReferenceColumns(__CLASS__);
c3fc2621
CW
240 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'contact_id', 'civicrm_contact', 'id');
241 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'payment_token_id', 'civicrm_payment_token', 'id');
242 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'payment_processor_id', 'civicrm_payment_processor', 'id');
243 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'financial_type_id', 'civicrm_financial_type', 'id');
244 Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'campaign_id', 'civicrm_campaign', 'id');
346aaaba 245 CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'links_callback', Civi::$statics[__CLASS__]['links']);
e501603b 246 }
346aaaba 247 return Civi::$statics[__CLASS__]['links'];
e501603b 248 }
c3fc2621 249
e501603b
TO
250 /**
251 * Returns all the column names of this table
252 *
253 * @return array
254 */
c3fc2621 255 public static function &fields() {
346aaaba 256 if (!isset(Civi::$statics[__CLASS__]['fields'])) {
c3fc2621
CW
257 Civi::$statics[__CLASS__]['fields'] = [
258 'id' => [
e501603b
TO
259 'name' => 'id',
260 'type' => CRM_Utils_Type::T_INT,
c3fc2621 261 'title' => ts('Recurring Contribution ID'),
e501603b 262 'description' => 'Contribution Recur ID',
c3fc2621 263 'required' => TRUE,
522a26c9 264 'table_name' => 'civicrm_contribution_recur',
265 'entity' => 'ContributionRecur',
266 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 267 'localizable' => 0,
c3fc2621
CW
268 ],
269 'contact_id' => [
e501603b
TO
270 'name' => 'contact_id',
271 'type' => CRM_Utils_Type::T_INT,
c3fc2621 272 'title' => ts('Contact ID'),
e501603b 273 'description' => 'Foreign key to civicrm_contact.id .',
c3fc2621 274 'required' => TRUE,
522a26c9 275 'table_name' => 'civicrm_contribution_recur',
276 'entity' => 'ContributionRecur',
277 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 278 'localizable' => 0,
e501603b 279 'FKClassName' => 'CRM_Contact_DAO_Contact',
c3fc2621
CW
280 ],
281 'amount' => [
e501603b
TO
282 'name' => 'amount',
283 'type' => CRM_Utils_Type::T_MONEY,
c3fc2621 284 'title' => ts('Amount'),
e501603b 285 'description' => 'Amount to be contributed or charged each recurrence.',
c3fc2621
CW
286 'required' => TRUE,
287 'precision' => [
e501603b
TO
288 20,
289 2
c3fc2621 290 ],
522a26c9 291 'table_name' => 'civicrm_contribution_recur',
292 'entity' => 'ContributionRecur',
293 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 294 'localizable' => 0,
c3fc2621 295 'html' => [
e501603b 296 'type' => 'Text',
c3fc2621
CW
297 ],
298 ],
299 'currency' => [
e501603b
TO
300 'name' => 'currency',
301 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 302 'title' => ts('Currency'),
e501603b
TO
303 'description' => '3 character string, value from config setting or input via user.',
304 'maxlength' => 3,
305 'size' => CRM_Utils_Type::FOUR,
306 'default' => 'NULL',
522a26c9 307 'table_name' => 'civicrm_contribution_recur',
308 'entity' => 'ContributionRecur',
309 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 310 'localizable' => 0,
c3fc2621 311 'html' => [
e501603b 312 'type' => 'Select',
c3fc2621
CW
313 ],
314 'pseudoconstant' => [
e501603b
TO
315 'table' => 'civicrm_currency',
316 'keyColumn' => 'name',
317 'labelColumn' => 'full_name',
318 'nameColumn' => 'name',
c3fc2621
CW
319 ]
320 ],
321 'frequency_unit' => [
e501603b
TO
322 'name' => 'frequency_unit',
323 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 324 'title' => ts('Frequency Unit'),
e501603b
TO
325 'description' => 'Time units for recurrence of payment.',
326 'maxlength' => 8,
327 'size' => CRM_Utils_Type::EIGHT,
328 'default' => 'month',
522a26c9 329 'table_name' => 'civicrm_contribution_recur',
330 'entity' => 'ContributionRecur',
331 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 332 'localizable' => 0,
c3fc2621 333 'html' => [
e501603b 334 'type' => 'Select',
c3fc2621
CW
335 ],
336 'pseudoconstant' => [
e501603b
TO
337 'optionGroupName' => 'recur_frequency_units',
338 'keyColumn' => 'name',
339 'optionEditPath' => 'civicrm/admin/options/recur_frequency_units',
c3fc2621
CW
340 ]
341 ],
342 'frequency_interval' => [
e501603b
TO
343 'name' => 'frequency_interval',
344 'type' => CRM_Utils_Type::T_INT,
c3fc2621 345 'title' => ts('Interval (number of units)'),
e501603b 346 'description' => 'Number of time units for recurrence of payment.',
c3fc2621 347 'required' => TRUE,
522a26c9 348 'table_name' => 'civicrm_contribution_recur',
349 'entity' => 'ContributionRecur',
350 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 351 'localizable' => 0,
c3fc2621 352 'html' => [
e501603b 353 'type' => 'Text',
c3fc2621
CW
354 ],
355 ],
356 'installments' => [
e501603b
TO
357 'name' => 'installments',
358 'type' => CRM_Utils_Type::T_INT,
c3fc2621 359 'title' => ts('Number of Installments'),
e501603b 360 'description' => 'Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.',
522a26c9 361 'table_name' => 'civicrm_contribution_recur',
362 'entity' => 'ContributionRecur',
363 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 364 'localizable' => 0,
c3fc2621 365 'html' => [
e501603b 366 'type' => 'Text',
c3fc2621
CW
367 ],
368 ],
369 'start_date' => [
e501603b
TO
370 'name' => 'start_date',
371 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 372 'title' => ts('Recurring Contribution Started Date'),
e501603b 373 'description' => 'The date the first scheduled recurring contribution occurs.',
c3fc2621 374 'required' => TRUE,
522a26c9 375 'table_name' => 'civicrm_contribution_recur',
376 'entity' => 'ContributionRecur',
377 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 378 'localizable' => 0,
c3fc2621 379 'html' => [
e501603b 380 'type' => 'Select Date',
c3fc2621
CW
381 ],
382 ],
383 'create_date' => [
e501603b
TO
384 'name' => 'create_date',
385 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 386 'title' => ts('Recurring Contribution Created Date'),
e501603b 387 'description' => 'When this recurring contribution record was created.',
c3fc2621 388 'required' => TRUE,
522a26c9 389 'table_name' => 'civicrm_contribution_recur',
390 'entity' => 'ContributionRecur',
391 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 392 'localizable' => 0,
c3fc2621 393 'html' => [
e501603b 394 'type' => 'Select Date',
c3fc2621
CW
395 ],
396 ],
397 'modified_date' => [
e501603b
TO
398 'name' => 'modified_date',
399 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 400 'title' => ts('Recurring Contribution Modified Date'),
e501603b 401 'description' => 'Last updated date for this record. mostly the last time a payment was received',
522a26c9 402 'table_name' => 'civicrm_contribution_recur',
403 'entity' => 'ContributionRecur',
404 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 405 'localizable' => 0,
c3fc2621 406 'html' => [
e501603b 407 'type' => 'Select Date',
c3fc2621
CW
408 ],
409 ],
410 'cancel_date' => [
e501603b
TO
411 'name' => 'cancel_date',
412 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 413 'title' => ts('Recurring Contribution Cancel Date'),
e501603b 414 'description' => 'Date this recurring contribution was cancelled by contributor- if we can get access to it',
522a26c9 415 'table_name' => 'civicrm_contribution_recur',
416 'entity' => 'ContributionRecur',
417 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 418 'localizable' => 0,
c3fc2621 419 'html' => [
e501603b 420 'type' => 'Select Date',
c3fc2621
CW
421 ],
422 ],
423 'end_date' => [
e501603b
TO
424 'name' => 'end_date',
425 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 426 'title' => ts('Recurring Contribution End Date'),
e501603b 427 'description' => 'Date this recurring contribution finished successfully',
522a26c9 428 'table_name' => 'civicrm_contribution_recur',
429 'entity' => 'ContributionRecur',
430 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 431 'localizable' => 0,
c3fc2621 432 'html' => [
e501603b 433 'type' => 'Select Date',
c3fc2621
CW
434 ],
435 ],
436 'processor_id' => [
e501603b
TO
437 'name' => 'processor_id',
438 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 439 'title' => ts('Processor ID'),
e501603b
TO
440 'description' => 'Possibly needed to store a unique identifier for this recurring payment order - if this is available from the processor??',
441 'maxlength' => 255,
442 'size' => CRM_Utils_Type::HUGE,
522a26c9 443 'table_name' => 'civicrm_contribution_recur',
444 'entity' => 'ContributionRecur',
445 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 446 'localizable' => 0,
c3fc2621
CW
447 ],
448 'payment_token_id' => [
e501603b
TO
449 'name' => 'payment_token_id',
450 'type' => CRM_Utils_Type::T_INT,
c3fc2621 451 'title' => ts('Payment Token ID'),
e501603b 452 'description' => 'Optionally used to store a link to a payment token used for this recurring contribution.',
522a26c9 453 'table_name' => 'civicrm_contribution_recur',
454 'entity' => 'ContributionRecur',
455 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 456 'localizable' => 0,
e501603b 457 'FKClassName' => 'CRM_Financial_DAO_PaymentToken',
c3fc2621
CW
458 ],
459 'trxn_id' => [
e501603b
TO
460 'name' => 'trxn_id',
461 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 462 'title' => ts('Transaction ID'),
e501603b
TO
463 'description' => 'unique transaction id. may be processor id, bank id + trans id, or account number + check number... depending on payment_method',
464 'maxlength' => 255,
465 'size' => CRM_Utils_Type::HUGE,
522a26c9 466 'table_name' => 'civicrm_contribution_recur',
467 'entity' => 'ContributionRecur',
468 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 469 'localizable' => 0,
c3fc2621
CW
470 ],
471 'invoice_id' => [
e501603b
TO
472 'name' => 'invoice_id',
473 'type' => CRM_Utils_Type::T_STRING,
c3fc2621 474 'title' => ts('Invoice ID'),
e501603b
TO
475 'description' => 'unique invoice id, system generated or passed in',
476 'maxlength' => 255,
477 'size' => CRM_Utils_Type::HUGE,
522a26c9 478 'table_name' => 'civicrm_contribution_recur',
479 'entity' => 'ContributionRecur',
480 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 481 'localizable' => 0,
c3fc2621
CW
482 ],
483 'contribution_status_id' => [
e501603b
TO
484 'name' => 'contribution_status_id',
485 'type' => CRM_Utils_Type::T_INT,
c3fc2621
CW
486 'title' => ts('Recurring Contribution Status'),
487 'import' => TRUE,
e501603b
TO
488 'where' => 'civicrm_contribution_recur.contribution_status_id',
489 'headerPattern' => '',
490 'dataPattern' => '',
c3fc2621 491 'export' => TRUE,
e501603b 492 'default' => '1',
522a26c9 493 'table_name' => 'civicrm_contribution_recur',
494 'entity' => 'ContributionRecur',
495 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 496 'localizable' => 0,
c3fc2621 497 'pseudoconstant' => [
e501603b
TO
498 'optionGroupName' => 'contribution_status',
499 'optionEditPath' => 'civicrm/admin/options/contribution_status',
c3fc2621
CW
500 ]
501 ],
502 'is_test' => [
e501603b
TO
503 'name' => 'is_test',
504 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621
CW
505 'title' => ts('Test'),
506 'import' => TRUE,
e501603b
TO
507 'where' => 'civicrm_contribution_recur.is_test',
508 'headerPattern' => '',
509 'dataPattern' => '',
c3fc2621 510 'export' => TRUE,
522a26c9 511 'table_name' => 'civicrm_contribution_recur',
512 'entity' => 'ContributionRecur',
513 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 514 'localizable' => 0,
c3fc2621 515 'html' => [
437fafcf 516 'type' => 'CheckBox',
c3fc2621
CW
517 ],
518 ],
519 'cycle_day' => [
e501603b
TO
520 'name' => 'cycle_day',
521 'type' => CRM_Utils_Type::T_INT,
c3fc2621 522 'title' => ts('Number of Cycle Day'),
e501603b 523 'description' => 'Day in the period when the payment should be charged e.g. 1st of month, 15th etc.',
c3fc2621 524 'required' => TRUE,
e501603b 525 'default' => '1',
522a26c9 526 'table_name' => 'civicrm_contribution_recur',
527 'entity' => 'ContributionRecur',
528 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 529 'localizable' => 0,
c3fc2621 530 'html' => [
437fafcf 531 'type' => 'Text',
c3fc2621
CW
532 ],
533 ],
534 'next_sched_contribution_date' => [
e501603b
TO
535 'name' => 'next_sched_contribution_date',
536 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 537 'title' => ts('Next Scheduled Contribution Date'),
e501603b 538 'description' => 'Next scheduled date',
522a26c9 539 'table_name' => 'civicrm_contribution_recur',
540 'entity' => 'ContributionRecur',
541 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 542 'localizable' => 0,
c3fc2621 543 'html' => [
e501603b 544 'type' => 'Select Date',
c3fc2621
CW
545 ],
546 ],
547 'failure_count' => [
e501603b
TO
548 'name' => 'failure_count',
549 'type' => CRM_Utils_Type::T_INT,
c3fc2621 550 'title' => ts('Number of Failures'),
e501603b 551 'description' => 'Number of failed charge attempts since last success. Business rule could be set to deactivate on more than x failures.',
522a26c9 552 'table_name' => 'civicrm_contribution_recur',
553 'entity' => 'ContributionRecur',
554 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 555 'localizable' => 0,
c3fc2621 556 'html' => [
437fafcf 557 'type' => 'Text',
c3fc2621
CW
558 ],
559 ],
560 'failure_retry_date' => [
e501603b
TO
561 'name' => 'failure_retry_date',
562 'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
c3fc2621 563 'title' => ts('Retry Failed Attempt Date'),
e501603b 564 'description' => 'Date to retry failed attempt',
522a26c9 565 'table_name' => 'civicrm_contribution_recur',
566 'entity' => 'ContributionRecur',
567 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 568 'localizable' => 0,
c3fc2621 569 'html' => [
e501603b 570 'type' => 'Select Date',
c3fc2621
CW
571 ],
572 ],
573 'auto_renew' => [
e501603b
TO
574 'name' => 'auto_renew',
575 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 576 'title' => ts('Auto Renew'),
e501603b 577 'description' => 'Some systems allow contributor to set a number of installments - but then auto-renew the subscription or commitment if they do not cancel.',
c3fc2621 578 'required' => TRUE,
522a26c9 579 'table_name' => 'civicrm_contribution_recur',
580 'entity' => 'ContributionRecur',
581 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 582 'localizable' => 0,
c3fc2621 583 'html' => [
437fafcf 584 'type' => 'CheckBox',
c3fc2621
CW
585 ],
586 ],
587 'payment_processor_id' => [
e501603b
TO
588 'name' => 'payment_processor_id',
589 'type' => CRM_Utils_Type::T_INT,
c3fc2621 590 'title' => ts('Payment Processor'),
e501603b 591 'description' => 'Foreign key to civicrm_payment_processor.id',
522a26c9 592 'table_name' => 'civicrm_contribution_recur',
593 'entity' => 'ContributionRecur',
594 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 595 'localizable' => 0,
e501603b 596 'FKClassName' => 'CRM_Financial_DAO_PaymentProcessor',
c3fc2621
CW
597 ],
598 'financial_type_id' => [
e501603b
TO
599 'name' => 'financial_type_id',
600 'type' => CRM_Utils_Type::T_INT,
c3fc2621 601 'title' => ts('Financial Type'),
e501603b 602 'description' => 'FK to Financial Type',
c3fc2621 603 'export' => FALSE,
e501603b
TO
604 'where' => 'civicrm_contribution_recur.financial_type_id',
605 'headerPattern' => '',
606 'dataPattern' => '',
522a26c9 607 'table_name' => 'civicrm_contribution_recur',
608 'entity' => 'ContributionRecur',
609 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 610 'localizable' => 0,
e501603b 611 'FKClassName' => 'CRM_Financial_DAO_FinancialType',
c3fc2621 612 'pseudoconstant' => [
e501603b
TO
613 'table' => 'civicrm_financial_type',
614 'keyColumn' => 'id',
615 'labelColumn' => 'name',
c3fc2621
CW
616 ]
617 ],
618 'payment_instrument_id' => [
e501603b
TO
619 'name' => 'payment_instrument_id',
620 'type' => CRM_Utils_Type::T_INT,
c3fc2621 621 'title' => ts('Payment Method'),
e501603b 622 'description' => 'FK to Payment Instrument',
522a26c9 623 'table_name' => 'civicrm_contribution_recur',
624 'entity' => 'ContributionRecur',
625 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 626 'localizable' => 0,
c3fc2621 627 'html' => [
e501603b 628 'type' => 'Select',
c3fc2621
CW
629 ],
630 'pseudoconstant' => [
e501603b
TO
631 'optionGroupName' => 'payment_instrument',
632 'optionEditPath' => 'civicrm/admin/options/payment_instrument',
c3fc2621
CW
633 ]
634 ],
635 'contribution_campaign_id' => [
e501603b
TO
636 'name' => 'campaign_id',
637 'type' => CRM_Utils_Type::T_INT,
c3fc2621 638 'title' => ts('Campaign'),
e501603b 639 'description' => 'The campaign for which this contribution has been triggered.',
c3fc2621 640 'import' => TRUE,
e501603b
TO
641 'where' => 'civicrm_contribution_recur.campaign_id',
642 'headerPattern' => '',
643 'dataPattern' => '',
c3fc2621 644 'export' => TRUE,
522a26c9 645 'table_name' => 'civicrm_contribution_recur',
646 'entity' => 'ContributionRecur',
647 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 648 'localizable' => 0,
e501603b 649 'FKClassName' => 'CRM_Campaign_DAO_Campaign',
c3fc2621 650 'pseudoconstant' => [
e501603b
TO
651 'table' => 'civicrm_campaign',
652 'keyColumn' => 'id',
653 'labelColumn' => 'title',
c3fc2621
CW
654 ]
655 ],
656 'is_email_receipt' => [
e501603b
TO
657 'name' => 'is_email_receipt',
658 'type' => CRM_Utils_Type::T_BOOLEAN,
c3fc2621 659 'title' => ts('Send email Receipt?'),
e501603b
TO
660 'description' => 'if true, receipt is automatically emailed to contact on each successful payment',
661 'default' => '1',
522a26c9 662 'table_name' => 'civicrm_contribution_recur',
663 'entity' => 'ContributionRecur',
664 'bao' => 'CRM_Contribute_BAO_ContributionRecur',
6a7e5e5d 665 'localizable' => 0,
c3fc2621 666 'html' => [
437fafcf 667 'type' => 'CheckBox',
c3fc2621
CW
668 ],
669 ],
670 ];
346aaaba 671 CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
e501603b 672 }
346aaaba 673 return Civi::$statics[__CLASS__]['fields'];
e501603b 674 }
c3fc2621 675
e501603b 676 /**
bd8e0b14 677 * Return a mapping from field-name to the corresponding key (as used in fields()).
e501603b
TO
678 *
679 * @return array
bd8e0b14 680 * Array(string $name => string $uniqueName).
e501603b 681 */
c3fc2621 682 public static function &fieldKeys() {
bd8e0b14
TO
683 if (!isset(Civi::$statics[__CLASS__]['fieldKeys'])) {
684 Civi::$statics[__CLASS__]['fieldKeys'] = array_flip(CRM_Utils_Array::collect('name', self::fields()));
e501603b 685 }
bd8e0b14 686 return Civi::$statics[__CLASS__]['fieldKeys'];
e501603b 687 }
c3fc2621 688
e501603b
TO
689 /**
690 * Returns the names of this table
691 *
692 * @return string
693 */
c3fc2621 694 public static function getTableName() {
e501603b
TO
695 return self::$_tableName;
696 }
c3fc2621 697
e501603b
TO
698 /**
699 * Returns if this table needs to be logged
700 *
c3fc2621 701 * @return bool
e501603b 702 */
c3fc2621 703 public function getLog() {
e501603b
TO
704 return self::$_log;
705 }
c3fc2621 706
e501603b
TO
707 /**
708 * Returns the list of fields that can be imported
709 *
710 * @param bool $prefix
711 *
712 * @return array
713 */
c3fc2621
CW
714 public static function &import($prefix = FALSE) {
715 $r = CRM_Core_DAO_AllCoreTables::getImports(__CLASS__, 'contribution_recur', $prefix, []);
60808919 716 return $r;
e501603b 717 }
c3fc2621 718
e501603b
TO
719 /**
720 * Returns the list of fields that can be exported
721 *
722 * @param bool $prefix
723 *
724 * @return array
725 */
c3fc2621
CW
726 public static function &export($prefix = FALSE) {
727 $r = CRM_Core_DAO_AllCoreTables::getExports(__CLASS__, 'contribution_recur', $prefix, []);
60808919 728 return $r;
e501603b 729 }
c3fc2621 730
e7a6b91a
AS
731 /**
732 * Returns the list of indices
c3fc2621
CW
733 *
734 * @param bool $localize
735 *
736 * @return array
e7a6b91a
AS
737 */
738 public static function indices($localize = TRUE) {
c3fc2621
CW
739 $indices = [
740 'UI_contrib_trxn_id' => [
e7a6b91a 741 'name' => 'UI_contrib_trxn_id',
c3fc2621 742 'field' => [
e7a6b91a 743 0 => 'trxn_id',
c3fc2621
CW
744 ],
745 'localizable' => FALSE,
746 'unique' => TRUE,
e7a6b91a 747 'sig' => 'civicrm_contribution_recur::1::trxn_id',
c3fc2621
CW
748 ],
749 'UI_contrib_invoice_id' => [
e7a6b91a 750 'name' => 'UI_contrib_invoice_id',
c3fc2621 751 'field' => [
e7a6b91a 752 0 => 'invoice_id',
c3fc2621
CW
753 ],
754 'localizable' => FALSE,
755 'unique' => TRUE,
e7a6b91a 756 'sig' => 'civicrm_contribution_recur::1::invoice_id',
c3fc2621
CW
757 ],
758 'index_contribution_status' => [
e7a6b91a 759 'name' => 'index_contribution_status',
c3fc2621 760 'field' => [
e7a6b91a 761 0 => 'contribution_status_id',
c3fc2621
CW
762 ],
763 'localizable' => FALSE,
e7a6b91a 764 'sig' => 'civicrm_contribution_recur::0::contribution_status_id',
c3fc2621
CW
765 ],
766 'UI_contribution_recur_payment_instrument_id' => [
e7a6b91a 767 'name' => 'UI_contribution_recur_payment_instrument_id',
c3fc2621 768 'field' => [
e7a6b91a 769 0 => 'payment_instrument_id',
c3fc2621
CW
770 ],
771 'localizable' => FALSE,
e7a6b91a 772 'sig' => 'civicrm_contribution_recur::0::payment_instrument_id',
c3fc2621
CW
773 ],
774 ];
e7a6b91a
AS
775 return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices;
776 }
c3fc2621 777
e501603b 778}