*
* Generated from xml/schema/CRM/ACL/ACL.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:71681f363debd53627c4c98a9032b0f6)
+ * (GenCodeChecksum:810da5f19a7ead8c949065156674c087)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this ACL entry Allow (0) or Deny (1) ?
*
- * @var boolean
+ * @var bool
*/
public $deny;
/**
* ID of the object possessing this ACL
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* The ID of the object controlled by this ACL entry
*
- * @var int unsigned
+ * @var int
*/
public $object_id;
/**
* ID of the ACL or ACL group being granted/revoked
*
- * @var int unsigned
+ * @var int
*/
public $acl_id;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
],
'pseudoconstant' => [
'callback' => 'CRM_ACL_BAO_ACL::operation',
- ]
+ ],
],
'object_table' => [
'name' => 'object_table',
*
* Generated from xml/schema/CRM/ACL/Cache.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7551610e08f73f20ef3e5b9ef6782f80)
+ * (GenCodeChecksum:f993d89f3a44999eed1b4c46b714b736)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign Key to Contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Foreign Key to ACL
*
- * @var int unsigned
+ * @var int
*/
public $acl_id;
*
* Generated from xml/schema/CRM/ACL/EntityRole.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c53e5bc404fee6d3f005fbaf15abdb4e)
+ * (GenCodeChecksum:65952cc85e04acddbaef65cfcf7fc541)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign Key to ACL Role (which is an option value pair and hence an implicit FK)
*
- * @var int unsigned
+ * @var int
*/
public $acl_role_id;
/**
* ID of the group/contact object being joined
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Activity/Activity.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ffa557668a214e3683b1692238ad74ae)
+ * (GenCodeChecksum:808e801e250ba56b83f69fe90d8b52c2)
*/
/**
/**
* Unique Other Activity ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Artificial FK to original transaction (e.g. contribution) IF it is not an Activity. Table can be figured out through activity_type_id, and further through component registry.
*
- * @var int unsigned
+ * @var int
*/
public $source_record_id;
/**
* FK to civicrm_option_value.id, that has to be valid, registered activity type.
*
- * @var int unsigned
+ * @var int
*/
public $activity_type_id;
/**
* Planned or actual duration of activity expressed in minutes. Conglomerate of former duration_hours and duration_minutes.
*
- * @var int unsigned
+ * @var int
*/
public $duration;
/**
* Phone ID of the number called (optional - used if an existing phone number is selected).
*
- * @var int unsigned
+ * @var int
*/
public $phone_id;
/**
* ID of the status this activity is currently in. Foreign key to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* ID of the priority given to this activity. Foreign key to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $priority_id;
/**
* Parent meeting ID (if this is a follow-up item). This is not currently implemented
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
* Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.
*
- * @var int unsigned
+ * @var int
*/
public $medium_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_auto;
/**
* FK to Relationship ID
*
- * @var int unsigned
+ * @var int
*/
public $relationship_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_current_revision;
/**
* Activity ID of the first activity record in versioning chain.
*
- * @var int unsigned
+ * @var int
*/
public $original_id;
public $result;
/**
- * @var boolean
+ * @var bool
*/
public $is_deleted;
/**
* The campaign for which this activity has been triggered.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Assign a specific level of engagement to this activity. Used for tracking constituents in ladder of engagement.
*
- * @var int unsigned
+ * @var int
*/
public $engagement_level;
/**
* Activity marked as favorite.
*
- * @var boolean
+ * @var bool
*/
public $is_star;
'pseudoconstant' => [
'optionGroupName' => 'activity_type',
'optionEditPath' => 'civicrm/admin/options/activity_type',
- ]
+ ],
],
'activity_subject' => [
'name' => 'subject',
'pseudoconstant' => [
'optionGroupName' => 'activity_status',
'optionEditPath' => 'civicrm/admin/options/activity_status',
- ]
+ ],
],
'priority_id' => [
'name' => 'priority_id',
'pseudoconstant' => [
'optionGroupName' => 'priority',
'optionEditPath' => 'civicrm/admin/options/priority',
- ]
+ ],
],
'parent_id' => [
'name' => 'parent_id',
'pseudoconstant' => [
'optionGroupName' => 'encounter_medium',
'optionEditPath' => 'civicrm/admin/options/encounter_medium',
- ]
+ ],
],
'is_auto' => [
'name' => 'is_auto',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'activity_engagement_level' => [
'name' => 'engagement_level',
'pseudoconstant' => [
'optionGroupName' => 'engagement_index',
'optionEditPath' => 'civicrm/admin/options/engagement_index',
- ]
+ ],
],
'weight' => [
'name' => 'weight',
*
* Generated from xml/schema/CRM/Activity/ActivityContact.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ff5291c3d7067182669807aa125fef72)
+ * (GenCodeChecksum:bb5726fd8dc1e07e19a08982d502a9f1)
*/
/**
/**
* Activity contact id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the activity for this record.
*
- * @var int unsigned
+ * @var int
*/
public $activity_id;
/**
* Foreign key to the contact for this record.
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Nature of this contact's role in the activity: 1 assignee, 2 creator, 3 focus or target.
*
- * @var int unsigned
+ * @var int
*/
public $record_type_id;
'pseudoconstant' => [
'optionGroupName' => 'activity_contacts',
'optionEditPath' => 'civicrm/admin/options/activity_contacts',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
/**
* Survey activity.
*
- * @var boolean
+ * @var bool
*/
protected $_isSurveyActivity;
* Note: This is a class property so that child classes can turn off this
* behavior (e.g. in CRM_Case_Form_Activity)
*
- * @var boolean
+ * @var bool
*
*/
return $defaults;
}
+ /**
+ * Build Quick form.
+ *
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
+ */
public function buildQuickForm() {
if ($this->_action & (CRM_Core_Action::DELETE | CRM_Core_Action::RENEW)) {
//enable form element (ActivityLinks sets this true)
*
*
* @param array $params
-
+ *
* @return array|null
* @throws \CiviCRM_API3_Exception
*/
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
* Are we operating in "single mode", i.e. deleting one
* specific Activity?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. sending sms to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
/**
* Is this field required
- * @var boolean
+ * @var bool
*/
public $_required;
/**
* Whether the file has a column header or not.
*
- * @var boolean
+ * @var bool
*/
protected $_haveColumnHeader;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* A boolean determining if you can add options to this group in the GUI.
*
- * @var boolean
+ * @var bool
*/
public static $_isLocked = FALSE;
*
* Generated from xml/schema/CRM/Batch/Batch.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5e14654e2df1b813931043edb9d0f828)
+ * (GenCodeChecksum:3e98e0127d48dfc44b2e6db904cd556f)
*/
/**
/**
* Unique Address ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $modified_id;
/**
* FK to Saved Search ID
*
- * @var int unsigned
+ * @var int
*/
public $saved_search_id;
/**
* fk to Batch Status options in civicrm_option_values
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* fk to Batch Type options in civicrm_option_values
*
- * @var int unsigned
+ * @var int
*/
public $type_id;
/**
* fk to Batch mode options in civicrm_option_values
*
- * @var int unsigned
+ * @var int
*/
public $mode_id;
/**
* Number of items in a batch.
*
- * @var int unsigned
+ * @var int
*/
public $item_count;
/**
* fk to Payment Instrument options in civicrm_option_values
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
'pseudoconstant' => [
'optionGroupName' => 'batch_status',
'optionEditPath' => 'civicrm/admin/options/batch_status',
- ]
+ ],
],
'type_id' => [
'name' => 'type_id',
'pseudoconstant' => [
'optionGroupName' => 'batch_type',
'optionEditPath' => 'civicrm/admin/options/batch_type',
- ]
+ ],
],
'mode_id' => [
'name' => 'mode_id',
'pseudoconstant' => [
'optionGroupName' => 'batch_mode',
'optionEditPath' => 'civicrm/admin/options/batch_mode',
- ]
+ ],
],
'total' => [
'name' => 'total',
'description' => ts('Total amount for this batch.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_batch.total',
'table_name' => 'civicrm_batch',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
'exported_date' => [
'name' => 'exported_date',
*
* Generated from xml/schema/CRM/Batch/EntityBatch.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ad54978e70be59ea54b414bbb3131f2f)
+ * (GenCodeChecksum:12e2c6e8e3c0890f0531819aebcfc543)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to civicrm_batch
*
- * @var int unsigned
+ * @var int
*/
public $batch_id;
'table' => 'civicrm_batch',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
return NULL;
}
- if (!(CRM_Utils_Array::value('id', $params))) {
+ if (empty($params['id'])) {
- if (!(CRM_Utils_Array::value('created_id', $params))) {
+ if (empty($params['created_id'])) {
$session = CRM_Core_Session::singleton();
$params['created_id'] = $session->get('userID');
}
- if (!(CRM_Utils_Array::value('created_date', $params))) {
+ if (empty($params['created_date'])) {
$params['created_date'] = date('YmdHis');
}
- if (!(CRM_Utils_Array::value('name', $params))) {
+ if (empty($params['name'])) {
$params['name'] = CRM_Utils_String::titleToVar($params['title'], 64);
}
*
* Generated from xml/schema/CRM/Campaign/Campaign.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c6ffa4ea926f3a52afc754bf44ef8586)
+ * (GenCodeChecksum:5f32f92aafb04b54f15a47d07a2fe105)
*/
/**
/**
* Unique Campaign ID.
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Campaign Type ID.Implicit FK to civicrm_option_value where option_group = campaign_type
*
- * @var int unsigned
+ * @var int
*/
public $campaign_type_id;
/**
* Campaign status ID.Implicit FK to civicrm_option_value where option_group = campaign_status
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* Optional parent id for this Campaign.
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Is this Campaign enabled or disabled/cancelled?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* FK to civicrm_contact, who created this Campaign.
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to civicrm_contact, who recently edited this Campaign.
*
- * @var int unsigned
+ * @var int
*/
public $last_modified_id;
'pseudoconstant' => [
'optionGroupName' => 'campaign_type',
'optionEditPath' => 'civicrm/admin/options/campaign_type',
- ]
+ ],
],
'status_id' => [
'name' => 'status_id',
'pseudoconstant' => [
'optionGroupName' => 'campaign_status',
'optionEditPath' => 'civicrm/admin/options/campaign_status',
- ]
+ ],
],
'external_identifier' => [
'name' => 'external_identifier',
'description' => ts('The target revenue for this campaign.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_campaign.goal_revenue',
'table_name' => 'civicrm_campaign',
*
* Generated from xml/schema/CRM/Campaign/CampaignGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9c9ee0c8ea79ddd0f680e8050693e5db)
+ * (GenCodeChecksum:c399857d6182b7d1dcc2f037518ba8c3)
*/
/**
/**
* Campaign Group id.
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the activity Campaign.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Entity id of referenced table.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'group_type' => [
'name' => 'group_type',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getCampaignGroupTypes',
- ]
+ ],
],
'entity_table' => [
'name' => 'entity_table',
*
* Generated from xml/schema/CRM/Campaign/Survey.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:bf281972fa5b1efaa8801eb9a47e42ae)
+ * (GenCodeChecksum:ad39991f1177492db1fd47cbaacf676a)
*/
/**
/**
* Survey id.
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the Campaign.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Implicit FK to civicrm_option_value where option_group = activity_type
*
- * @var int unsigned
+ * @var int
*/
public $activity_type_id;
/**
* Number of days for recurrence of release.
*
- * @var int unsigned
+ * @var int
*/
public $release_frequency;
/**
* Maximum number of contacts to allow for survey.
*
- * @var int unsigned
+ * @var int
*/
public $max_number_of_contacts;
/**
* Default number of contacts to allow for survey.
*
- * @var int unsigned
+ * @var int
*/
public $default_number_of_contacts;
/**
* Is this survey enabled or disabled/cancelled?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this default survey?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* FK to civicrm_contact, who created this Survey.
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to civicrm_contact, who recently edited this Survey.
*
- * @var int unsigned
+ * @var int
*/
public $last_modified_id;
/**
* Used to store option group id.
*
- * @var int unsigned
+ * @var int
*/
public $result_id;
/**
* Bypass the email verification.
*
- * @var boolean
+ * @var bool
*/
public $bypass_confirm;
/**
* Can people share the petition through social media?
*
- * @var boolean
+ * @var bool
*/
public $is_share;
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'activity_type_id' => [
'name' => 'activity_type_id',
'pseudoconstant' => [
'optionGroupName' => 'activity_type',
'optionEditPath' => 'civicrm/admin/options/activity_type',
- ]
+ ],
],
'recontact_interval' => [
'name' => 'recontact_interval',
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
*
* Generated from xml/schema/CRM/Case/Case.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a9960d56bc697d6cbc5347f9bc6a78bc)
+ * (GenCodeChecksum:f7d3f0df9ce94aec00f5eb0e20cedd1e)
*/
/**
/**
* Unique Case ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_case_type.id
*
- * @var int unsigned
+ * @var int
*/
public $case_type_id;
/**
* Id of case status.
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_deleted;
'table' => 'civicrm_case_type',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'case_subject' => [
'name' => 'subject',
'pseudoconstant' => [
'optionGroupName' => 'case_status',
'optionEditPath' => 'civicrm/admin/options/case_status',
- ]
+ ],
],
'case_deleted' => [
'name' => 'is_deleted',
*
* Generated from xml/schema/CRM/Case/CaseActivity.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:fd04fd5686de74febc915b1a035a3fb5)
+ * (GenCodeChecksum:cb7a73ba739c93a482d18ef28ed0c589)
*/
/**
/**
* Unique case-activity association id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Case ID of case-activity association.
*
- * @var int unsigned
+ * @var int
*/
public $case_id;
/**
* Activity ID of case-activity association.
*
- * @var int unsigned
+ * @var int
*/
public $activity_id;
*
* Generated from xml/schema/CRM/Case/CaseContact.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ff0a0c29f836177de2ac856be6c5cb15)
+ * (GenCodeChecksum:84dae97091e4a1612c67274f5cb10531)
*/
/**
/**
* Unique case-contact association id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Case ID of case-contact association.
*
- * @var int unsigned
+ * @var int
*/
public $case_id;
/**
* Contact ID of contact record given case belongs to.
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
*
* Generated from xml/schema/CRM/Case/CaseType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9ebd07607858eaf185b2be32744267bb)
+ * (GenCodeChecksum:317907ffe519c3f3eab8af9d8e9e1f7f)
*/
/**
/**
* Autoincremented type id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this entry active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this case type a predefined system type?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* Prefix for the controller
- * @var sting
+ * @var string
*/
protected $_prefix = 'case_';
* Are we operating in "single mode", i.e. deleting one
* specific case?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we moving case to Trash.
*
- * @var boolean
+ * @var bool
*/
public $_moveToTrash = TRUE;
* Are we operating in "single mode", i.e. deleting one
* specific case?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* The default variable defined.
*
- * @var boolean
+ * @var bool
*/
protected $_isRedact;
protected $xml = [];
/**
- * @var array|NULL
+ * @var array|null
*/
protected $hookCache = NULL;
/**
- * @var array|NULL symbolic names of case-types
+ * Symbolic names of case-types.
+ *
+ * @var array|null
*/
protected $allCaseTypes = NULL;
* @return array
* Contact details
*/
- public static function getHierContactDetails($contactId, &$fields) {
+ public static function getHierContactDetails($contactId, $fields) {
$params = array(array('contact_id', '=', $contactId, 0, 0));
$options = array();
*/
public static function formatProfileContactParams(
&$params,
- &$fields,
+ $fields,
$contactID = NULL,
$ufGroupId = NULL,
$ctype = NULL,
$inputLF = CRM_Utils_Array::value(2, $input);
$check = self::generateChecksum($contactID, $inputTS, $inputLF);
-
- if (!hash_equals($check, $inputCheck)) {
+ // Joomla_11 - If $inputcheck is null without explicitly casting to a string
+ // you get an error.
+ if (!hash_equals($check, (string) $inputCheck)) {
return FALSE;
}
/**
* Are we in search mode.
*
- * @var boolean
+ * @var bool
*/
public $_search = TRUE;
/**
* Should we skip permission checking.
*
- * @var boolean
+ * @var bool
*/
public $_skipPermission = FALSE;
/**
* Should we skip adding of delete clause.
*
- * @var boolean
+ * @var bool
*/
public $_skipDeleteClause = FALSE;
/**
* Are we in strict mode (use equality over LIKE)
*
- * @var boolean
+ * @var bool
*/
public $_strict = FALSE;
/**
* Should we only search on primary location.
*
- * @var boolean
+ * @var bool
*/
public $_primaryLocation = TRUE;
/**
* Are contact ids part of the query.
*
- * @var boolean
+ * @var bool
*/
public $_includeContactIds = FALSE;
/**
* Should we use the smart group cache.
*
- * @var boolean
+ * @var bool
*/
public $_smartGroupCache = TRUE;
* Should we enable the distinct clause, used if we are including
* more than one group
*
- * @var boolean
+ * @var bool
*/
public $_useDistinct = FALSE;
*/
protected $_rangeCache = [];
/**
- * Set to true when $this->relationship is run to avoid adding twice
- * @var Boolean
+ * Set to true when $this->relationship is run to avoid adding twice.
+ *
+ * @var bool
*/
protected $_relationshipValuesAdded = FALSE;
*
* Generated from xml/schema/CRM/Contact/ACLContactCache.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ab40fa26e037ef4897359d3c288d42b8)
+ * (GenCodeChecksum:8bc987e1284d464f9b475686d9dc32a2)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_contact (could be null for anon user)
*
- * @var int unsigned
+ * @var int
*/
public $user_id;
/**
* FK to civicrm_contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
],
'pseudoconstant' => [
'callback' => 'CRM_ACL_BAO_ACL::operation',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Contact/Contact.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:653579cbfa509d67ae7a39c78dd27bf2)
+ * (GenCodeChecksum:e2181ea97a3e309b7e74b636757b6aac)
*/
/**
/**
* Unique Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
public $contact_sub_type;
/**
- * @var boolean
+ * @var bool
*/
public $do_not_email;
/**
- * @var boolean
+ * @var bool
*/
public $do_not_phone;
/**
- * @var boolean
+ * @var bool
*/
public $do_not_mail;
/**
- * @var boolean
+ * @var bool
*/
public $do_not_sms;
/**
- * @var boolean
+ * @var bool
*/
public $do_not_trade;
/**
* Has the contact opted out from receiving all bulk email from the organization or site domain?
*
- * @var boolean
+ * @var bool
*/
public $is_opt_out;
/**
* Prefix or Title for name (Ms, Mr...). FK to prefix ID
*
- * @var int unsigned
+ * @var int
*/
public $prefix_id;
/**
* Suffix for name (Jr, Sr...). FK to suffix ID
*
- * @var int unsigned
+ * @var int
*/
public $suffix_id;
/**
* Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $communication_style_id;
/**
* FK to civicrm_option_value.id, that has to be valid registered Email Greeting.
*
- * @var int unsigned
+ * @var int
*/
public $email_greeting_id;
/**
* FK to civicrm_option_value.id, that has to be valid registered Postal Greeting.
*
- * @var int unsigned
+ * @var int
*/
public $postal_greeting_id;
/**
* FK to civicrm_option_value.id, that has to be valid registered Addressee.
*
- * @var int unsigned
+ * @var int
*/
public $addressee_id;
/**
* FK to gender ID
*
- * @var int unsigned
+ * @var int
*/
public $gender_id;
public $birth_date;
/**
- * @var boolean
+ * @var bool
*/
public $is_deceased;
/**
* Optional FK to Primary Contact for this household.
*
- * @var int unsigned
+ * @var int
*/
public $primary_contact_id;
/**
* OPTIONAL FK to civicrm_contact record.
*
- * @var int unsigned
+ * @var int
*/
public $employer_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_deleted;
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NULL',
- ]
+ ],
],
'contact_sub_type' => [
'name' => 'contact_sub_type',
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NOT NULL',
- ]
+ ],
],
'do_not_email' => [
'name' => 'do_not_email',
'name' => 'legal_identifier',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Legal Identifier'),
- 'description' => ts('May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.
- '),
+ 'description' => ts('May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.'),
'maxlength' => 32,
'size' => CRM_Utils_Type::MEDIUM,
'import' => TRUE,
'pseudoconstant' => [
'optionGroupName' => 'preferred_communication_method',
'optionEditPath' => 'civicrm/admin/options/preferred_communication_method',
- ]
+ ],
],
'preferred_language' => [
'name' => 'preferred_language',
'optionGroupName' => 'languages',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/languages',
- ]
+ ],
],
'preferred_mail_format' => [
'name' => 'preferred_mail_format',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::pmf',
- ]
+ ],
],
'hash' => [
'name' => 'hash',
'maxlength' => 32,
'size' => CRM_Utils_Type::MEDIUM,
'where' => 'civicrm_contact.api_key',
+ 'protected' => 'true',
'table_name' => 'civicrm_contact',
'entity' => 'Contact',
'bao' => 'CRM_Contact_BAO_Contact',
'pseudoconstant' => [
'optionGroupName' => 'individual_prefix',
'optionEditPath' => 'civicrm/admin/options/individual_prefix',
- ]
+ ],
],
'suffix_id' => [
'name' => 'suffix_id',
'pseudoconstant' => [
'optionGroupName' => 'individual_suffix',
'optionEditPath' => 'civicrm/admin/options/individual_suffix',
- ]
+ ],
],
'formal_title' => [
'name' => 'formal_title',
'pseudoconstant' => [
'optionGroupName' => 'communication_style',
'optionEditPath' => 'civicrm/admin/options/communication_style',
- ]
+ ],
],
'email_greeting_id' => [
'name' => 'email_greeting_id',
'pseudoconstant' => [
'optionGroupName' => 'email_greeting',
'optionEditPath' => 'civicrm/admin/options/email_greeting',
- ]
+ ],
],
'email_greeting_custom' => [
'name' => 'email_greeting_custom',
'pseudoconstant' => [
'optionGroupName' => 'postal_greeting',
'optionEditPath' => 'civicrm/admin/options/postal_greeting',
- ]
+ ],
],
'postal_greeting_custom' => [
'name' => 'postal_greeting_custom',
'pseudoconstant' => [
'optionGroupName' => 'addressee',
'optionEditPath' => 'civicrm/admin/options/addressee',
- ]
+ ],
],
'addressee_custom' => [
'name' => 'addressee_custom',
'pseudoconstant' => [
'optionGroupName' => 'gender',
'optionEditPath' => 'civicrm/admin/options/gender',
- ]
+ ],
],
'birth_date' => [
'name' => 'birth_date',
*
* Generated from xml/schema/CRM/Contact/ContactType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ab123a55d492c003df354c32e8b9863c)
+ * (GenCodeChecksum:adba53a6a4d64ba498d7e36b03c0f968)
*/
/**
/**
* Contact Type ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Optional FK to parent contact type.
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Is this entry active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this contact type a predefined system type
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
'keyColumn' => 'id',
'labelColumn' => 'label',
'condition' => 'parent_id IS NULL',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
*
* Generated from xml/schema/CRM/Contact/DashboardContact.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f9be53bdf3d5151edf77e9b9f9004571)
+ * (GenCodeChecksum:2adb5645722410e9059da0a345a0a30b)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Dashboard ID
*
- * @var int unsigned
+ * @var int
*/
public $dashboard_id;
/**
* Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* column no for this widget
*
- * @var boolean
+ * @var bool
*/
public $column_no;
/**
* Is this widget active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Contact/Group.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:21b3e21494b0831994f860083cd82e24)
+ * (GenCodeChecksum:28c32e7038a2b7aa7ca2c45117660974)
*/
/**
/**
* Group ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to saved search table.
*
- * @var int unsigned
+ * @var int
*/
public $saved_search_id;
/**
* Is this entry active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this group hidden?
*
- * @var boolean
+ * @var bool
*/
public $is_hidden;
/**
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* FK to contact table.
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to contact table.
*
- * @var int unsigned
+ * @var int
*/
public $modified_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::groupVisibility',
- ]
+ ],
],
'where_clause' => [
'name' => 'where_clause',
'pseudoconstant' => [
'optionGroupName' => 'group_type',
'optionEditPath' => 'civicrm/admin/options/group_type',
- ]
+ ],
],
'cache_date' => [
'name' => 'cache_date',
'serialize' => self::SERIALIZE_COMMA,
'pseudoconstant' => [
'callback' => 'CRM_Core_PseudoConstant::allGroup',
- ]
+ ],
],
'children' => [
'name' => 'children',
*
* Generated from xml/schema/CRM/Contact/GroupContact.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1d229cf09854f6b9a9991a0c0bd86c87)
+ * (GenCodeChecksum:abb2a96c7fd72f93619b605fbb11b4b5)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_group
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
/**
* FK to civicrm_contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Optional location to associate with this membership
*
- * @var int unsigned
+ * @var int
*/
public $location_id;
/**
* Optional email to associate with this membership
*
- * @var int unsigned
+ * @var int
*/
public $email_id;
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'contact_id' => [
'name' => 'contact_id',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::groupContactStatus',
- ]
+ ],
],
'location_id' => [
'name' => 'location_id',
*
* Generated from xml/schema/CRM/Contact/GroupContactCache.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:98cff858204d34551eec0b9bee6e24af)
+ * (GenCodeChecksum:217f20fad2d47f50e3a9c43b62df2c17)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_group
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
/**
* FK to civicrm_contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'contact_id' => [
'name' => 'contact_id',
*
* Generated from xml/schema/CRM/Contact/GroupNesting.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:dcf20d8789668c4542bc0c5d5faa1e8e)
+ * (GenCodeChecksum:2559ff6c3da8f02b147577a6d4e26004)
*/
/**
/**
* Relationship ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* ID of the child group
*
- * @var int unsigned
+ * @var int
*/
public $child_group_id;
/**
* ID of the parent group
*
- * @var int unsigned
+ * @var int
*/
public $parent_group_id;
*
* Generated from xml/schema/CRM/Contact/GroupOrganization.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4234ea5a60e2a053e2de768a10cb1488)
+ * (GenCodeChecksum:00717d9edb0719d380b5fd7c3e91bc74)
*/
/**
/**
* Relationship ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* ID of the group
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
/**
* ID of the Organization Contact
*
- * @var int unsigned
+ * @var int
*/
public $organization_id;
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'organization_id' => [
'name' => 'organization_id',
*
* Generated from xml/schema/CRM/Contact/Relationship.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0722d901c4eac4e462bc7de9887e605a)
+ * (GenCodeChecksum:ebfcea88ae4bd09a0821a942ecdfa4db)
*/
/**
/**
* Relationship ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* id of the first contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id_a;
/**
* id of the second contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id_b;
/**
* id of the relationship
*
- * @var int unsigned
+ * @var int
*/
public $relationship_type_id;
/**
* is the relationship active ?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Permission that Contact A has to view/update Contact B
*
- * @var int unsigned
+ * @var int
*/
public $is_permission_a_b;
/**
* Permission that Contact B has to view/update Contact A
*
- * @var int unsigned
+ * @var int
*/
public $is_permission_b_a;
/**
* FK to civicrm_case
*
- * @var int unsigned
+ * @var int
*/
public $case_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getPermissionedRelationshipOptions',
- ]
+ ],
],
'is_permission_b_a' => [
'name' => 'is_permission_b_a',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getPermissionedRelationshipOptions',
- ]
+ ],
],
'case_id' => [
'name' => 'case_id',
*
* Generated from xml/schema/CRM/Contact/RelationshipType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9fa07d6d85caa27a637694324ea5b740)
+ * (GenCodeChecksum:78a8cea89e73b1a409f7908ad08cf99e)
*/
/**
/**
* Primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this relationship type a predefined system type (can not be changed or de-activated)?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this relationship type currently active (i.e. can be used when creating or editing relationships)?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NULL',
- ]
+ ],
],
'contact_type_b' => [
'name' => 'contact_type_b',
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NULL',
- ]
+ ],
],
'contact_sub_type_a' => [
'name' => 'contact_sub_type_a',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Contact Subtype A'),
- 'description' => ts('If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.
- '),
+ 'description' => ts('If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.'),
'maxlength' => 64,
'size' => CRM_Utils_Type::BIG,
'where' => 'civicrm_relationship_type.contact_sub_type_a',
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NOT NULL',
- ]
+ ],
],
'contact_sub_type_b' => [
'name' => 'contact_sub_type_b',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Contact Subtype B'),
- 'description' => ts('If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.
- '),
+ 'description' => ts('If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.'),
'maxlength' => 64,
'size' => CRM_Utils_Type::BIG,
'where' => 'civicrm_relationship_type.contact_sub_type_b',
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NOT NULL',
- ]
+ ],
],
'is_reserved' => [
'name' => 'is_reserved',
'name' => 'is_active',
'type' => CRM_Utils_Type::T_BOOLEAN,
'title' => ts('Relationship Type is Active'),
- 'description' => ts('Is this relationship type currently active (i.e. can be used when creating or editing relationships)?
- '),
+ 'description' => ts('Is this relationship type currently active (i.e. can be used when creating or editing relationships)?'),
'where' => 'civicrm_relationship_type.is_active',
'default' => '1',
'table_name' => 'civicrm_relationship_type',
*
* Generated from xml/schema/CRM/Contact/SavedSearch.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ff337d9810d6c4d6225f77b6b3007729)
+ * (GenCodeChecksum:556322817dc9b7b9dab015e1f0179fb7)
*/
/**
/**
* Saved Search ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to civicrm_mapping used for saved search-builder searches.
*
- * @var int unsigned
+ * @var int
*/
public $mapping_id;
/**
* Foreign key to civicrm_option value table used for saved custom searches.
*
- * @var int unsigned
+ * @var int
*/
public $search_custom_id;
*
* Generated from xml/schema/CRM/Contact/SubscriptionHistory.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8051a666011690a9dfb14d91a013a3e0)
+ * (GenCodeChecksum:af7ac35767e88f1dd090f54ab44c3b35)
*/
/**
/**
* Internal Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Contact Id
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Group Id
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'date' => [
'name' => 'date',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getSubscriptionHistoryMethods',
- ]
+ ],
],
'status' => [
'name' => 'status',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::groupContactStatus',
- ]
+ ],
],
'tracking' => [
'name' => 'tracking',
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
*
* Single mode means sending email to one specific contact.
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_noEmails = FALSE;
* Are we operating in "single mode", i.e. mapping address to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. sending sms to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
/**
* Is this field required
- * @var boolean
+ * @var bool
*/
public $_required;
CRM_Dedupe_Merger::resetMergeStats($cacheKeyString);
}
- $this->_mainContacts = CRM_Dedupe_Merger::getDuplicatePairs($rgid, $gid, !$isConflictMode, 0, $this->isSelected(), '', $isConflictMode, $criteria, TRUE, $limit);
+ $this->_mainContacts = CRM_Dedupe_Merger::getDuplicatePairs($rgid, $gid, !$isConflictMode, 0, $this->isSelected(), $isConflictMode, $criteria, TRUE, $limit);
if (empty($this->_mainContacts)) {
if ($isConflictMode) {
/**
* Field for all the objects related to this contribution
+ *
* @var array of objects (e.g membership object, participant object)
*/
- public $_relatedObjects = array();
+ public $_relatedObjects = [];
/**
* Field for the component - either 'event' (participant) or 'contribute'
*
* @return \CRM_Contribute_BAO_Contribution
* @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
- public static function add(&$params, $ids = array()) {
+ public static function add(&$params, $ids = []) {
if (empty($params)) {
return NULL;
}
//per http://wiki.civicrm.org/confluence/display/CRM/Database+layer we are moving away from $ids array
$contributionID = CRM_Utils_Array::value('contribution', $ids, CRM_Utils_Array::value('id', $params));
- $duplicates = array();
+ $duplicates = [];
if (self::checkDuplicate($params, $duplicates, $contributionID)) {
$message = ts("Duplicate error - existing contribution record(s) have a matching Transaction ID or Invoice ID. Contribution record ID(s) are: " . implode(', ', $duplicates));
throw new CRM_Core_Exception($message);
}
// first clean up all the money fields
- $moneyFields = array(
+ $moneyFields = [
'total_amount',
'net_amount',
'fee_amount',
'non_deductible_amount',
- );
+ ];
//if priceset is used, no need to cleanup money
if (!empty($params['skipCleanMoney'])) {
else {
// Since the fee amount is expecting this (later on) ensure it is always set.
// It would only not be set for an update where it is unchanged.
- $params['contribution_status_id'] = civicrm_api3('Contribution', 'getvalue', array('id' => $contributionID, 'return' => 'contribution_status_id'));
+ $params['contribution_status_id'] = civicrm_api3('Contribution', 'getvalue', [
+ 'id' => $contributionID,
+ 'return' => 'contribution_status_id',
+ ]);
}
if (!$contributionID
&& CRM_Utils_Array::value('membership_id', $params)
- && self::checkContributeSettings('deferred_revenue_enabled')
+ && Civi::settings()->get('deferred_revenue_enabled')
) {
$memberStartDate = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $params['membership_id'], 'start_date');
if ($memberStartDate) {
/**
* Get defaults for new entity.
+ *
* @return array
*/
public static function getDefaults() {
- return array(
+ return [
'payment_instrument_id' => key(CRM_Core_OptionGroup::values('payment_instrument',
- FALSE, FALSE, FALSE, 'AND is_default = 1')
+ FALSE, FALSE, FALSE, 'AND is_default = 1')
),
- 'contribution_status_id' => CRM_Core_Pseudoconstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed'),
- );
+ 'contribution_status_id' => CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed'),
+ ];
}
/**
* @throws CRM_Core_Exception
*/
public static function getValuesWithMappings($params) {
- $values = $ids = array();
+ $values = $ids = [];
$contribution = self::getValues($params, $values, $ids);
if (is_null($contribution)) {
throw new CRM_Core_Exception('No contribution found');
if (isset($params['fee_amount']) || isset($params['total_amount'])) {
// We have an existing contribution and fee_amount or total_amount has been passed in but not net_amount.
// net_amount may need adjusting.
- $contribution = civicrm_api3('Contribution', 'getsingle', array(
+ $contribution = civicrm_api3('Contribution', 'getsingle', [
'id' => $contributionID,
- 'return' => array('total_amount', 'net_amount', 'fee_amount'),
- ));
+ 'return' => ['total_amount', 'net_amount', 'fee_amount'],
+ ]);
$totalAmount = isset($params['total_amount']) ? $params['total_amount'] : CRM_Utils_Array::value('total_amount', $contribution);
$feeAmount = isset($params['fee_amount']) ? $params['fee_amount'] : CRM_Utils_Array::value('fee_amount', $contribution);
$params['net_amount'] = $totalAmount - $feeAmount;
*/
protected static function getBillingAddressParams($params, $billingLocationTypeID) {
$hasBillingField = FALSE;
- $billingFields = array(
+ $billingFields = [
'street_address',
'city',
'state_province_id',
'postal_code',
'country_id',
- );
+ ];
//build address array
- $addressParams = array();
+ $addressParams = [];
$addressParams['location_type_id'] = $billingLocationTypeID;
$addressParams['is_billing'] = 1;
$hasBillingField = TRUE;
}
}
- return array($hasBillingField, $addressParams);
+ return [$hasBillingField, $addressParams];
}
/**
$addressParams[substr($name, 9)] = $addressParams[$field];
}
}
- return array($hasBillingField, $addressParams);
+ return [$hasBillingField, $addressParams];
}
/**
SELECT membership_num_terms FROM civicrm_line_item li
LEFT JOIN civicrm_price_field_value v ON li.price_field_value_id = v.id
WHERE contribution_id = %1 AND membership_type_id = %2",
- array(1 => array($contributionID, 'Integer'), 2 => array($membershipTypeID, 'Integer'))
+ [1 => [$contributionID, 'Integer'], 2 => [$membershipTypeID, 'Integer']]
);
// default of 1 is precautionary
return empty($numTerms) ? 1 : $numTerms;
*
* @return CRM_Contribute_BAO_Contribution
*/
- public static function create(&$params, $ids = array()) {
- $dateFields = array('receive_date', 'cancel_date', 'receipt_date', 'thankyou_date', 'revenue_recognition_date');
+ public static function create(&$params, $ids = []) {
+ $dateFields = [
+ 'receive_date',
+ 'cancel_date',
+ 'receipt_date',
+ 'thankyou_date',
+ 'revenue_recognition_date',
+ ];
foreach ($dateFields as $df) {
if (isset($params[$df])) {
$params[$df] = CRM_Utils_Date::isoToMysql($params[$df]);
$session = CRM_Core_Session::singleton();
if (!empty($params['note'])) {
- $noteParams = array(
+ $noteParams = [
'entity_table' => 'civicrm_contribution',
'note' => $params['note'],
'entity_id' => $contribution->id,
'contact_id' => $session->get('userID'),
'modified_date' => date('Ymd'),
- );
+ ];
if (!$noteParams['contact_id']) {
$noteParams['contact_id'] = $params['contact_id'];
}
// make entry in batch entity batch table
if (!empty($params['batch_id'])) {
// in some update cases we need to get extra fields - ie an update that doesn't pass in all these params
- $titleFields = array(
+ $titleFields = [
'contact_id',
'total_amount',
'currency',
'financial_type_id',
- );
+ ];
$retrieveRequired = 0;
foreach ($titleFields as $titleField) {
if (!isset($contribution->$titleField)) {
$transaction->commit();
- $activity = civicrm_api3('Activity', 'get', array(
+ $activity = civicrm_api3('Activity', 'get', [
'source_record_id' => $contribution->id,
- 'options' => array('limit' => 1),
+ 'options' => ['limit' => 1],
'sequential' => 1,
'activity_type_id' => 'Contribution',
- 'return' => array('id', 'campaign'),
- ));
+ 'return' => ['id', 'campaign'],
+ ]);
//CRM-18406: Update activity when edit contribution.
if ($activity['count']) {
"action=view&reset=1&id={$contribution->id}&cid={$contribution->contact_id}&context=home"
);
// in some update cases we need to get extra fields - ie an update that doesn't pass in all these params
- $titleFields = array(
+ $titleFields = [
'contact_id',
'total_amount',
'currency',
'financial_type_id',
- );
+ ];
$retrieveRequired = 0;
foreach ($titleFields as $titleField) {
if (!isset($contribution->$titleField)) {
$financialType = CRM_Contribute_PseudoConstant::financialType($contribution->financial_type_id);
$title = CRM_Contact_BAO_Contact::displayName($contribution->contact_id) . ' - (' . CRM_Utils_Money::format($contribution->total_amount, $contribution->currency) . ' ' . ' - ' . $financialType . ')';
- $recentOther = array();
+ $recentOther = [];
if (CRM_Core_Permission::checkActionPermission('CiviContribute', CRM_Core_Action::UPDATE)) {
$recentOther['editUrl'] = CRM_Utils_System::url('civicrm/contact/view/contribution',
"action=update&reset=1&id={$contribution->id}&cid={$contribution->contact_id}&context=home"
public static function &importableFields($contactType = 'Individual', $status = TRUE) {
if (!self::$_importableFields) {
if (!self::$_importableFields) {
- self::$_importableFields = array();
+ self::$_importableFields = [];
}
if (!$status) {
- $fields = array('' => array('title' => ts('- do not import -')));
+ $fields = ['' => ['title' => ts('- do not import -')]];
}
else {
- $fields = array('' => array('title' => ts('- Contribution Fields -')));
+ $fields = ['' => ['title' => ts('- Contribution Fields -')]];
}
$note = CRM_Core_DAO_Note::import();
$contactFields = CRM_Contact_BAO_Contact::importableFields($contactType, NULL);
// Using new Dedupe rule.
- $ruleParams = array(
+ $ruleParams = [
'contact_type' => $contactType,
'used' => 'Unsupervised',
- );
+ ];
$fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
- $tmpContactField = array();
+ $tmpContactField = [];
if (is_array($fieldsArray)) {
foreach ($fieldsArray as $value) {
//skip if there is no dupe rule
public static function &exportableFields($checkPermission = TRUE) {
if (!self::$_exportableFields) {
if (!self::$_exportableFields) {
- self::$_exportableFields = array();
+ self::$_exportableFields = [];
}
$fields = CRM_Contribute_DAO_Contribution::export();
$financialAccount = CRM_Financial_DAO_FinancialAccount::export();
- $contributionPage = array(
- 'contribution_page' => array(
+ $contributionPage = [
+ 'contribution_page' => [
'title' => ts('Contribution Page'),
'name' => 'contribution_page',
'where' => 'civicrm_contribution_page.title',
'data_type' => CRM_Utils_Type::T_STRING,
- ),
- );
+ ],
+ ];
- $contributionNote = array(
- 'contribution_note' => array(
+ $contributionNote = [
+ 'contribution_note' => [
'title' => ts('Contribution Note'),
'name' => 'contribution_note',
'data_type' => CRM_Utils_Type::T_TEXT,
- ),
- );
+ ],
+ ];
- $extraFields = array(
- 'contribution_batch' => array(
+ $extraFields = [
+ 'contribution_batch' => [
'title' => ts('Batch Name'),
- ),
- );
+ ],
+ ];
// CRM-17787
- $campaignTitle = array(
- 'contribution_campaign_title' => array(
+ $campaignTitle = [
+ 'contribution_campaign_title' => [
'title' => ts('Campaign Title'),
'name' => 'campaign_title',
'where' => 'civicrm_campaign.title',
'data_type' => CRM_Utils_Type::T_STRING,
- ),
- );
- $softCreditFields = array(
- 'contribution_soft_credit_name' => array(
+ ],
+ ];
+ $softCreditFields = [
+ 'contribution_soft_credit_name' => [
'name' => 'contribution_soft_credit_name',
'title' => ts('Soft Credit For'),
'where' => 'civicrm_contact_d.display_name',
'data_type' => CRM_Utils_Type::T_STRING,
- ),
- 'contribution_soft_credit_amount' => array(
+ ],
+ 'contribution_soft_credit_amount' => [
'name' => 'contribution_soft_credit_amount',
'title' => ts('Soft Credit Amount'),
'where' => 'civicrm_contribution_soft.amount',
'data_type' => CRM_Utils_Type::T_MONEY,
- ),
- 'contribution_soft_credit_type' => array(
+ ],
+ 'contribution_soft_credit_type' => [
'name' => 'contribution_soft_credit_type',
'title' => ts('Soft Credit Type'),
'where' => 'contribution_softcredit_type.label',
'data_type' => CRM_Utils_Type::T_STRING,
- ),
- 'contribution_soft_credit_contribution_id' => array(
+ ],
+ 'contribution_soft_credit_contribution_id' => [
'name' => 'contribution_soft_credit_contribution_id',
'title' => ts('Soft Credit For Contribution ID'),
'where' => 'civicrm_contribution_soft.contribution_id',
'data_type' => CRM_Utils_Type::T_INT,
- ),
- 'contribution_soft_credit_contact_id' => array(
+ ],
+ 'contribution_soft_credit_contact_id' => [
'name' => 'contribution_soft_credit_contact_id',
'title' => ts('Soft Credit For Contact ID'),
'where' => 'civicrm_contact_d.id',
'data_type' => CRM_Utils_Type::T_INT,
- ),
- );
+ ],
+ ];
$fields = array_merge($fields, $contributionPage,
$contributionNote, $extraFields, $softCreditFields, $financialAccount, $campaignTitle,
* @param $pledgeID
* @param $pledgePaymentIDs
* @param $contributionStatusId
+ *
* @return array
*/
protected static function cancel($processContributionObject, $memberships, $contributionId, $membershipStatuses, $updateResult, $participant, $oldStatus, $pledgePayment, $pledgeID, $pledgePaymentIDs, $contributionStatusId) {
* @return array|null
*/
public static function getTotalAmountAndCount($status = NULL, $startDate = NULL, $endDate = NULL) {
- $where = array();
+ $where = [];
switch ($status) {
case 'Valid':
$where[] = 'contribution_status_id = 1';
";
$dao = CRM_Core_DAO::executeQuery($query);
- $amount = array();
+ $amount = [];
$count = 0;
while ($dao->fetch()) {
$count += $dao->total_count;
$amount[] = CRM_Utils_Money::format($dao->total_amount, $dao->currency);
}
if ($count) {
- return array(
+ return [
'amount' => implode(', ', $amount),
'count' => $count,
- );
+ ];
}
return NULL;
}
$results = NULL;
//delete activity record
- $params = array(
+ $params = [
'source_record_id' => $id,
// activity type id for contribution
'activity_type_id' => 6,
- );
+ ];
CRM_Activity_BAO_Activity::deleteActivity($params);
CRM_Utils_Hook::post('delete', 'Contribution', $dao->id, $dao);
// delete the recently created Contribution
- $contributionRecent = array(
+ $contributionRecent = [
'id' => $id,
'type' => 'Contribution',
- );
+ ];
CRM_Utils_Recent::del($contributionRecent);
return $results;
* @throws \CiviCRM_API3_Exception
*/
public static function failPayment($contributionID, $contactID, $message) {
- civicrm_api3('activity', 'create', array(
+ civicrm_api3('activity', 'create', [
'activity_type_id' => 'Failed Payment',
'details' => $message,
'subject' => ts('Payment failed at payment processor'),
'source_record_id' => $contributionID,
- 'source_contact_id' => CRM_Core_Session::getLoggedInContactID() ? CRM_Core_Session::getLoggedInContactID() :
- $contactID,
- ));
+ 'source_contact_id' => CRM_Core_Session::getLoggedInContactID() ? CRM_Core_Session::getLoggedInContactID() : $contactID,
+ ]);
// CRM-20336 Make sure that the contribution status is Failed, not Pending.
- civicrm_api3('contribution', 'create', array(
+ civicrm_api3('contribution', 'create', [
'id' => $contributionID,
'contribution_status_id' => 'Failed',
- ));
+ ]);
}
/**
$trxn_id = CRM_Utils_Array::value('trxn_id', $input);
$invoice_id = CRM_Utils_Array::value('invoice_id', $input);
- $clause = array();
- $input = array();
+ $clause = [];
+ $input = [];
if ($trxn_id) {
$clause[] = "trxn_id = %1";
- $input[1] = array($trxn_id, 'String');
+ $input[1] = [$trxn_id, 'String'];
}
if ($invoice_id) {
$clause[] = "invoice_id = %2";
- $input[2] = array($invoice_id, 'String');
+ $input[2] = [$invoice_id, 'String'];
}
if (empty($clause)) {
$clause = implode(' OR ', $clause);
if ($id) {
$clause = "( $clause ) AND id != %3";
- $input[3] = array($id, 'Integer');
+ $input[3] = [$id, 'Integer'];
}
$query = "SELECT id FROM civicrm_contribution WHERE $clause";
* Add extra fields specific to contribution.
*/
public static function getSpecialContributionFields() {
- $extraFields = array(
- 'contribution_soft_credit_name' => array(
+ $extraFields = [
+ 'contribution_soft_credit_name' => [
'name' => 'contribution_soft_credit_name',
'title' => ts('Soft Credit Name'),
'headerPattern' => '/^soft_credit_name$/i',
'where' => 'civicrm_contact_d.display_name',
- ),
- 'contribution_soft_credit_email' => array(
+ ],
+ 'contribution_soft_credit_email' => [
'name' => 'contribution_soft_credit_email',
'title' => ts('Soft Credit Email'),
'headerPattern' => '/^soft_credit_email$/i',
'where' => 'soft_email.email',
- ),
- 'contribution_soft_credit_phone' => array(
+ ],
+ 'contribution_soft_credit_phone' => [
'name' => 'contribution_soft_credit_phone',
'title' => ts('Soft Credit Phone'),
'headerPattern' => '/^soft_credit_phone$/i',
'where' => 'soft_phone.phone',
- ),
- 'contribution_soft_credit_contact_id' => array(
+ ],
+ 'contribution_soft_credit_contact_id' => [
'name' => 'contribution_soft_credit_contact_id',
'title' => ts('Soft Credit Contact ID'),
'headerPattern' => '/^soft_credit_contact_id$/i',
'where' => 'civicrm_contribution_soft.contact_id',
- ),
- 'contribution_pcp_title' => array(
+ ],
+ 'contribution_pcp_title' => [
'name' => 'contribution_pcp_title',
'title' => ts('Personal Campaign Page Title'),
'headerPattern' => '/^contribution_pcp_title$/i',
'where' => 'contribution_pcp.title',
- ),
- );
+ ],
+ ];
return $extraFields;
}
";
$config = CRM_Core_Config::singleton();
- $params = array(1 => array($pageID, 'Integer'));
+ $params = [1 => [$pageID, 'Integer']];
$dao = CRM_Core_DAO::executeQuery($query, $params);
if ($dao->fetch()) {
- return array($dao->goal, $dao->total);
+ return [$dao->goal, $dao->total];
}
else {
- return array(NULL, NULL);
+ return [NULL, NULL];
}
}
*
* The returned array provides details about the original contribution & donor.
*
- * @todo - this is a confusing function called from one place. It has a test. It would be
- * nice to deprecate it.
- *
* @param int $honorId
* In Honor of Contact ID.
*
* @return array
* list of contribution fields
+ * @todo - this is a confusing function called from one place. It has a test. It would be
+ * nice to deprecate it.
+ *
*/
public static function getHonorContacts($honorId) {
- $params = array();
+ $params = [];
$honorDAO = new CRM_Contribute_DAO_ContributionSoft();
$honorDAO->contact_id = $honorId;
$honorDAO->find();
$query = self::getAnnualQuery($contactIDs);
$dao = CRM_Core_DAO::executeQuery($query);
$count = 0;
- $amount = $average = array();
+ $amount = $average = [];
while ($dao->fetch()) {
if ($dao->count > 0 && $dao->amount > 0) {
$count += $dao->count;
}
}
if ($count > 0) {
- return array(
+ return [
$count,
implode(', ', $amount),
implode(', ', $average),
- );
+ ];
}
- return array(0, 0, 0);
+ return [0, 0, 0];
}
/**
public static function checkDuplicateIds($params) {
$dao = new CRM_Contribute_DAO_Contribution();
- $clause = array();
- $input = array();
+ $clause = [];
+ $input = [];
foreach ($params as $k => $v) {
if ($v) {
$clause[] = "$k = '$v'";
* associated array
*/
public static function getContributionDetails($exportMode, $componentIds) {
- $paymentDetails = array();
+ $paymentDetails = [];
$componentClause = ' IN ( ' . implode(',', $componentIds) . ' ) ';
if ($exportMode == CRM_Export_Form_Select::EVENT_EXPORT) {
$dao = CRM_Core_DAO::executeQuery($query);
while ($dao->fetch()) {
- $paymentDetails[$dao->id] = array(
+ $paymentDetails[$dao->id] = [
'total_amount' => $dao->total_amount,
'contribution_status' => $dao->status,
'receive_date' => $dao->receive_date,
'pay_instru' => $dao->payment_instrument,
'trxn_id' => $dao->trxn_id,
- );
+ ];
}
return $paymentDetails;
* @param int $contactId
*/
public static function deleteAddress($contributionId = NULL, $contactId = NULL) {
- $clauses = array();
+ $clauses = [];
$contactJoin = NULL;
if ($contributionId) {
$dao = CRM_Core_DAO::executeQuery($query);
while ($dao->fetch()) {
- $params = array('id' => $dao->id);
+ $params = ['id' => $dao->id];
CRM_Core_BAO_Block::blockDelete('Address', $params);
}
}
public static function checkOnlinePendingContribution($componentId, $componentName) {
$contributionId = NULL;
if (!$componentId ||
- !in_array($componentName, array('Event', 'Membership'))
+ !in_array($componentName, ['Event', 'Membership'])
) {
return $contributionId;
}
*
* This function by-passes hooks - to address this - don't use this function.
*
- * @deprecated
- *
- * Use api contribute.completetransaction
- * For failures use failPayment (preferably exposing by api in the process).
- *
* @param array $params
* @param bool $processContributionObject
*
* @return array
* @throws \Exception
+ * @deprecated
+ *
+ * Use api contribute.completetransaction
+ * For failures use failPayment (preferably exposing by api in the process).
+ *
*/
public static function transitionComponents($params, $processContributionObject = FALSE) {
// get minimum required values.
// if we already processed contribution object pass previous status id.
$previousContriStatusId = CRM_Utils_Array::value('previous_contribution_status_id', $params);
- $updateResult = array();
+ $updateResult = [];
$contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
// we process only ( Completed, Cancelled, or Failed ) contributions.
if (!$contributionId ||
- !in_array($contributionStatusId, array(
+ !in_array($contributionStatusId, [
array_search('Completed', $contributionStatuses),
array_search('Cancelled', $contributionStatuses),
array_search('Failed', $contributionStatuses),
- ))
+ ])
) {
return $updateResult;
}
$baseIPN = new CRM_Core_Payment_BaseIPN();
- $input = $ids = $objects = array();
+ $input = $ids = $objects = [];
$input['component'] = CRM_Utils_Array::value('component', $componentDetails);
$ids['contribution'] = $contributionId;
// only pending contribution related object processed.
if ($previousContriStatusId &&
- !in_array($contributionStatuses[$previousContriStatusId], array('Pending', 'Partially paid'))
+ !in_array($contributionStatuses[$previousContriStatusId], [
+ 'Pending',
+ 'Partially paid',
+ ])
) {
// this is case when we already processed contribution object.
return $updateResult;
}
elseif (!$previousContriStatusId &&
- !in_array($contributionStatuses[$contribution->contribution_status_id], array('Pending', 'Partially paid'))
+ !in_array($contributionStatuses[$contribution->contribution_status_id], [
+ 'Pending',
+ 'Partially paid',
+ ])
) {
// this is case when we are going to process contribution object later.
return $updateResult;
(array) $membership
);
- $formattedParams = array(
+ $formattedParams = [
'status_id' => CRM_Utils_Array::value('id', $calcStatus,
array_search('Current', $membershipStatuses)
),
'join_date' => CRM_Utils_Date::customFormat($dates['join_date'], $format),
'start_date' => CRM_Utils_Date::customFormat($dates['start_date'], $format),
'end_date' => CRM_Utils_Date::customFormat($dates['end_date'], $format),
- );
+ ];
CRM_Utils_Hook::pre('edit', 'Membership', $membership->id, $formattedParams);
$membership->save();
//updating the membership log
- $membershipLog = array();
+ $membershipLog = [];
$membershipLog = $formattedParams;
$logStartDate = CRM_Utils_Date::customFormat(CRM_Utils_Array::value('log_start_date', $dates), $format);
$logStartDate = ($logStartDate) ? CRM_Utils_Date::isoToMysql($logStartDate) : $formattedParams['start_date'];
//update related Memberships.
CRM_Member_BAO_Membership::updateRelatedMemberships($membership->id, $formattedParams);
- foreach (array('Membership Signup', 'Membership Renewal') as $activityType) {
+ foreach (['Membership Signup', 'Membership Renewal'] as $activityType) {
$scheduledActivityID = CRM_Utils_Array::value('id',
civicrm_api3('Activity', 'Get',
- array(
+ [
'source_record_id' => $membership->id,
'activity_type_id' => $activityType,
'status_id' => 'Scheduled',
- 'options' => array(
+ 'options' => [
'limit' => 1,
'sort' => 'id DESC',
- ),
- )
+ ],
+ ]
)
);
// 1. Update Schedule Membership Signup/Renewal activity to completed on successful payment of pending membership
// 2. OR Create renewal activity scheduled if its membership renewal will be paid later
if ($scheduledActivityID) {
- CRM_Activity_BAO_Activity::addActivity($membership, $activityType, $membership->contact_id, array('id' => $scheduledActivityID));
+ CRM_Activity_BAO_Activity::addActivity($membership, $activityType, $membership->contact_id, ['id' => $scheduledActivityID]);
break;
}
}
CRM_Activity_BAO_Activity::addActivity($membership,
'Change Membership Status',
NULL,
- array(
+ [
'subject' => "Status changed from {$allStatus[$oldStatus]} to {$allStatus[$membership->status_id]}",
'source_contact_id' => $membershipLog['modified_id'],
'priority_id' => 'Normal',
- )
+ ]
);
}
// process contribution object.
if ($processContribution) {
- $contributionParams = array();
- $fields = array(
+ $contributionParams = [];
+ $fields = [
'contact_id',
'total_amount',
'receive_date',
'non_deductible_amount',
'receipt_date',
'check_number',
- );
+ ];
foreach ($fields as $field) {
if (empty($params[$field])) {
continue;
$contributionParams[$field] = $params[$field];
}
- $ids = array('contribution' => $contributionId);
+ $ids = ['contribution' => $contributionId];
$contribution = CRM_Contribute_BAO_Contribution::create($contributionParams, $ids);
}
* @return array
*/
public static function getComponentDetails($contributionId) {
- $componentDetails = $pledgePayment = array();
+ $componentDetails = $pledgePayment = [];
if (!$contributionId) {
return $componentDetails;
}
WHERE c.id = $contributionId";
$dao = CRM_Core_DAO::executeQuery($query);
- $componentDetails = array();
+ $componentDetails = [];
while ($dao->fetch()) {
$componentDetails['component'] = $dao->participant_id ? 'event' : 'contribute';
}
if ($dao->membership_id) {
if (!isset($componentDetails['membership'])) {
- $componentDetails['membership'] = $componentDetails['membership_type'] = array();
+ $componentDetails['membership'] = $componentDetails['membership_type'] = [];
}
$componentDetails['membership'][] = $dao->membership_id;
$componentDetails['membership_type'][] = $dao->membership_type_id;
}
if (!empty($contributionParams['contribution_recur_id'])) {
- $recurringContribution = civicrm_api3('ContributionRecur', 'getsingle', array(
+ $recurringContribution = civicrm_api3('ContributionRecur', 'getsingle', [
'id' => $contributionParams['contribution_recur_id'],
- ));
+ ]);
if (!empty($recurringContribution['campaign_id'])) {
// CRM-17718 the campaign id on the contribution recur record should get precedence.
$contributionParams['campaign_id'] = $recurringContribution['campaign_id'];
}
$templateContribution = CRM_Contribute_BAO_ContributionRecur::getTemplateContribution(
$contributionParams['contribution_recur_id'],
- array_intersect_key($contributionParams, array('total_amount' => TRUE, 'financial_type_id' => TRUE))
+ array_intersect_key($contributionParams, [
+ 'total_amount' => TRUE,
+ 'financial_type_id' => TRUE,
+ ])
);
$input['line_item'] = $contributionParams['line_item'] = $templateContribution['line_item'];
*/
public static function getOnbehalfIds($contributionId, $contributorId = NULL) {
- $ids = array();
+ $ids = [];
if (!$contributionId) {
return $ids;
$activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
$sourceID = CRM_Utils_Array::key('Activity Source', $activityContacts);
- $params = array(
- 1 => array($activityTypeId, 'Integer'),
- 2 => array($contributionId, 'Integer'),
- 3 => array($sourceID, 'Integer'),
- );
+ $params = [
+ 1 => [$activityTypeId, 'Integer'],
+ 2 => [$contributionId, 'Integer'],
+ 3 => [$sourceID, 'Integer'],
+ ];
$sourceContactId = CRM_Core_DAO::singleValueQuery($activityQuery, $params);
else {
$year = date('Y');
}
- $year = array('Y' => $year);
+ $year = ['Y' => $year];
$yearDate = $config->fiscalYearStart;
$yearDate = array_merge($year, $yearDate);
$yearDate = CRM_Utils_Date::format($yearDate);
$now = date('Ymd');
- return array(
+ return [
'now' => $now,
'yearDate' => $yearDate,
'monthDate' => $monthDate,
- );
+ ];
}
/**
* Load objects relations to contribution object.
* Objects are stored in the $_relatedObjects property
* In the first instance we are just moving functionality from BASEIpn -
+ *
* @see http://issues.civicrm.org/jira/browse/CRM-9996
*
* Note that the unit test for the BaseIPN class tests this function
}
// todo remove strtolower - check consistency
if (strtolower($this->_component) == 'event') {
- $eventParams = array('id' => $this->_relatedObjects['participant']->event_id);
- $values['event'] = array();
+ $eventParams = ['id' => $this->_relatedObjects['participant']->event_id];
+ $values['event'] = [];
CRM_Event_BAO_Event::retrieve($eventParams, $values['event']);
//get location details
- $locationParams = array('entity_id' => $this->_relatedObjects['participant']->event_id, 'entity_table' => 'civicrm_event');
+ $locationParams = [
+ 'entity_id' => $this->_relatedObjects['participant']->event_id,
+ 'entity_table' => 'civicrm_event',
+ ];
$values['location'] = CRM_Core_BAO_Location::getValues($locationParams);
- $ufJoinParams = array(
+ $ufJoinParams = [
'entity_table' => 'civicrm_event',
'entity_id' => $ids['event'],
'module' => 'CiviEvent',
- );
+ ];
list($custom_pre_id,
$custom_post_ids
if (isset($ids['onbehalf_dupe_alert'])) {
$values['onbehalf_dupe_alert'] = $ids['onbehalf_dupe_alert'];
}
- $entityBlock = array(
+ $entityBlock = [
'contact_id' => $ids['contact'],
'location_type_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_LocationType',
'Home', 'id', 'name'
),
- );
+ ];
$address = CRM_Core_BAO_Address::getValues($entityBlock);
$template->assign('onBehalfAddress', $address[$entityBlock['location_type_id']]['display']);
}
*
* @return array
*/
- public function _gatherMessageValues($input, &$values, $ids = array()) {
+ public function _gatherMessageValues($input, &$values, $ids = []) {
// set display address of contributor
if ($this->address_id) {
- $addressParams = array('id' => $this->address_id);
+ $addressParams = ['id' => $this->address_id];
$addressDetails = CRM_Core_BAO_Address::getValues($addressParams, FALSE, 'id');
$addressDetails = array_values($addressDetails);
}
// Else we assign the billing address of the contribution contact.
else {
- $addressParams = array('contact_id' => $this->contact_id, 'is_billing' => 1);
+ $addressParams = ['contact_id' => $this->contact_id, 'is_billing' => 1];
$addressDetails = (array) CRM_Core_BAO_Address::getValues($addressParams);
$addressDetails = array_values($addressDetails);
}
// This is precautionary as there are some legacy flows, but it should really be
// loaded by now.
if (!isset($this->_relatedObjects['contributionPage'])) {
- $this->loadRelatedEntitiesByID(array('contributionPage' => $this->contribution_page_id));
+ $this->loadRelatedEntitiesByID(['contributionPage' => $this->contribution_page_id]);
}
// CRM-8254 - override default currency if applicable
$config = CRM_Core_Config::singleton();
$lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($this->id);
if (!empty($lineItems)) {
$firstLineItem = reset($lineItems);
- $priceSet = array();
+ $priceSet = [];
if (CRM_Utils_Array::value('price_set_id', $firstLineItem)) {
- $priceSet = civicrm_api3('PriceSet', 'getsingle', array('id' => $firstLineItem['price_set_id'], 'return' => 'is_quick_config, id'));
+ $priceSet = civicrm_api3('PriceSet', 'getsingle', [
+ 'id' => $firstLineItem['price_set_id'],
+ 'return' => 'is_quick_config, id',
+ ]);
$values['priceSetID'] = $priceSet['id'];
}
foreach ($lineItems as &$eachItem) {
if (isset($this->_relatedObjects['membership'])
- && is_array($this->_relatedObjects['membership'])
- && array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership'])) {
+ && is_array($this->_relatedObjects['membership'])
+ && array_key_exists($eachItem['membership_type_id'], $this->_relatedObjects['membership'])) {
$eachItem['join_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->join_date);
$eachItem['start_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->start_date);
$eachItem['end_date'] = CRM_Utils_Date::customFormat($this->_relatedObjects['membership'][$eachItem['membership_type_id']]->end_date);
}
else {
// event
- $eventParams = array(
+ $eventParams = [
'id' => $this->_relatedObjects['event']->id,
- );
- $values['event'] = array();
+ ];
+ $values['event'] = [];
CRM_Event_BAO_Event::retrieve($eventParams, $values['event']);
// add custom fields for event
$eventGroupTree = CRM_Core_BAO_CustomGroup::getTree('Event', NULL, $this->_relatedObjects['event']->id);
- $eventCustomGroup = array();
+ $eventCustomGroup = [];
foreach ($eventGroupTree as $key => $group) {
if ($key === 'info') {
continue;
$values['event']['customGroup'] = $eventCustomGroup;
//get participant details
- $participantParams = array(
+ $participantParams = [
'id' => $this->_relatedObjects['participant']->id,
- );
+ ];
- $values['participant'] = array();
+ $values['participant'] = [];
CRM_Event_BAO_Participant::getValues($participantParams, $values['participant'], $participantIds);
// add custom fields for event
$participantGroupTree = CRM_Core_BAO_CustomGroup::getTree('Participant', NULL, $this->_relatedObjects['participant']->id);
- $participantCustomGroup = array();
+ $participantCustomGroup = [];
foreach ($participantGroupTree as $key => $group) {
if ($key === 'info') {
continue;
$values['participant']['customGroup'] = $participantCustomGroup;
//get location details
- $locationParams = array(
+ $locationParams = [
'entity_id' => $this->_relatedObjects['event']->id,
'entity_table' => 'civicrm_event',
- );
+ ];
$values['location'] = CRM_Core_BAO_Location::getValues($locationParams);
- $ufJoinParams = array(
+ $ufJoinParams = [
'entity_table' => 'civicrm_event',
'entity_id' => $ids['event'],
'module' => 'CiviEvent',
- );
+ ];
list($custom_pre_id,
$custom_post_ids
$groupTree = CRM_Core_BAO_CustomGroup::getTree('Contribution', NULL, $this->id);
- $customGroup = array();
+ $customGroup = [];
foreach ($groupTree as $key => $group) {
if ($key === 'info') {
continue;
//assign honor information to receipt message
$softRecord = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($this->id);
- $honorParams = ['soft_credit_type' => NULL, 'honor_block_is_active' => NULL];
+ $honorParams = [
+ 'soft_credit_type' => NULL,
+ 'honor_block_is_active' => NULL,
+ ];
if (isset($softRecord['soft_credit'])) {
//if id of contribution page is present
if (!empty($values['id'])) {
- $values['honor'] = array(
- 'honor_profile_values' => array(),
+ $values['honor'] = [
+ 'honor_profile_values' => [],
'honor_profile_id' => CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'uf_group_id', 'entity_id'),
'honor_id' => $softRecord['soft_credit'][1]['contact_id'],
- );
+ ];
$honorParams['soft_credit_type'] = $softRecord['soft_credit'][1]['soft_credit_type_label'];
$honorParams['honor_block_is_active'] = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFJoin', $values['id'], 'is_active', 'entity_id');
}
else {
//offline contribution
- $softCreditTypes = $softCredits = array();
+ $softCreditTypes = $softCredits = [];
foreach ($softRecord['soft_credit'] as $key => $softCredit) {
$softCreditTypes[$key] = $softCredit['soft_credit_type_label'];
- $softCredits[$key] = array(
+ $softCredits[$key] = [
'Name' => $softCredit['contact_name'],
'Amount' => CRM_Utils_Money::format($softCredit['amount'], $softCredit['currency']),
- );
+ ];
}
$template->assign('softCreditTypes', $softCreditTypes);
$template->assign('softCredits', $softCredits);
$values['amount'] = $this->total_amount;
}
- $pcpParams = ['pcpBlock' => NULL, 'pcp_display_in_roll' => NULL, 'pcp_roll_nickname' => NULL, 'pcp_personal_note' => NULL, 'title' => NULL];
+ $pcpParams = [
+ 'pcpBlock' => NULL,
+ 'pcp_display_in_roll' => NULL,
+ 'pcp_roll_nickname' => NULL,
+ 'pcp_personal_note' => NULL,
+ 'title' => NULL,
+ ];
if (strtolower($this->_component) == 'contribute') {
//PCP Info
if ($this->_component == 'event') {
$template->assign('title', $values['event']['title']);
$participantRoles = CRM_Event_PseudoConstant::participantRole();
- $viewRoles = array();
+ $viewRoles = [];
foreach (explode(CRM_Core_DAO::VALUE_SEPARATOR, $this->_relatedObjects['participant']->role_id) as $k => $v) {
$viewRoles[] = $participantRoles[$v];
}
$isTest = TRUE;
}
- $values['params'] = array();
+ $values['params'] = [];
//to get email of primary participant.
$primaryEmail = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Email', $this->_relatedObjects['participant']->contact_id, 'email', 'contact_id');
- $primaryAmount[] = array(
+ $primaryAmount[] = [
'label' => $this->_relatedObjects['participant']->fee_level . ' - ' . $primaryEmail,
'amount' => $this->_relatedObjects['participant']->fee_amount,
- );
+ ];
//build an array of cId/pId of participants
$additionalIDs = CRM_Event_BAO_Event::buildCustomProfile($this->_relatedObjects['participant']->id, NULL, $this->_relatedObjects['contact']->id, $isTest, TRUE);
unset($additionalIDs[$this->_relatedObjects['participant']->id]);
//set additionalParticipant true
$values['params']['additionalParticipant'] = TRUE;
foreach ($additionalIDs as $pId => $cId) {
- $amount = array();
+ $amount = [];
//to change the status pending to completed
$additional = new CRM_Event_DAO_Participant();
$additional->id = $pId;
if (!$additionalParticipantInfo) {
$additionalParticipantInfo = CRM_Contact_BAO_Contact::displayName($additional->contact_id);
}
- $amount[0] = array('label' => $additional->fee_level, 'amount' => $additional->fee_amount);
- $primaryAmount[] = array(
+ $amount[0] = [
+ 'label' => $additional->fee_level,
+ 'amount' => $additional->fee_amount,
+ ];
+ $primaryAmount[] = [
'label' => $additional->fee_level . ' - ' . $additionalParticipantInfo,
'amount' => $additional->fee_amount,
- );
+ ];
$additional->save();
$template->assign('amount', $amount);
CRM_Event_BAO_Event::sendMail($cId, $values, $pId, $isTest, $returnMessageText);
$cacheKeyString = "$contributionId";
$cacheKeyString .= $isNotCancelled ? '_1' : '_0';
- static $supportsCancel = array();
+ static $supportsCancel = [];
if (!array_key_exists($cacheKeyString, $supportsCancel)) {
$supportsCancel[$cacheKeyString] = FALSE;
FROM civicrm_contribution_recur cr
LEFT JOIN civicrm_contribution con ON ( cr.id = con.contribution_recur_id )
WHERE con.id = %1 LIMIT 1";
- $params = array(1 => array($contributionId, 'Integer'));
+ $params = [1 => [$contributionId, 'Integer']];
$statusId = CRM_Core_DAO::singleValueQuery($sql, $params);
$status = CRM_Contribute_PseudoConstant::contributionStatus($statusId);
if ($status == 'Cancelled') {
public static function recordFinancialAccounts(&$params, $financialTrxnValues = NULL) {
$skipRecords = $update = $return = $isRelatedId = FALSE;
- $additionalParticipantId = array();
+ $additionalParticipantId = [];
$contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
$contributionStatus = empty($params['contribution_status_id']) ? NULL : $contributionStatuses[$params['contribution_status_id']];
!($contributionStatus == 'Pending' && !$params['contribution']->is_pay_later)
) {
$skipRecords = TRUE;
- $pendingStatus = array(
+ $pendingStatus = [
'Pending',
'In Progress',
- );
+ ];
if (in_array($contributionStatus, $pendingStatus)) {
$params['to_financial_account_id'] = CRM_Financial_BAO_FinancialAccount::getFinancialAccountForFinancialTypeByRelationship(
$params['financial_type_id'],
}
elseif (!empty($params['payment_processor'])) {
$params['to_financial_account_id'] = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount($params['payment_processor'], NULL, 'civicrm_payment_processor');
- $params['payment_instrument_id'] = civicrm_api3('PaymentProcessor', 'getvalue', array(
+ $params['payment_instrument_id'] = civicrm_api3('PaymentProcessor', 'getvalue', [
'id' => $params['payment_processor'],
'return' => 'payment_instrument_id',
- ));
+ ]);
}
elseif (!empty($params['payment_instrument_id'])) {
$params['to_financial_account_id'] = CRM_Financial_BAO_FinancialTypeAccount::getInstrumentFinancialAccount($params['payment_instrument_id']);
}
else {
$relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('financial_account_type', NULL, " AND v.name LIKE 'Asset' "));
- $queryParams = array(1 => array($relationTypeId, 'Integer'));
+ $queryParams = [1 => [$relationTypeId, 'Integer']];
$params['to_financial_account_id'] = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_financial_account WHERE is_default = 1 AND financial_account_type_id = %1", $queryParams);
}
$totalAmount = $params['total_amount'] = $params['prevContribution']->total_amount;
}
//build financial transaction params
- $trxnParams = array(
+ $trxnParams = [
'contribution_id' => $params['contribution']->id,
'to_financial_account_id' => $params['to_financial_account_id'],
'trxn_date' => !empty($params['contribution']->receive_date) ? $params['contribution']->receive_date : date('YmdHis'),
'check_number' => CRM_Utils_Array::value('check_number', $params),
'pan_truncation' => CRM_Utils_Array::value('pan_truncation', $params),
'card_type_id' => CRM_Utils_Array::value('card_type_id', $params),
- );
+ ];
if ($contributionStatus == 'Refunded' || $contributionStatus == 'Chargeback' || $contributionStatus == 'Cancelled') {
$trxnParams['trxn_date'] = !empty($params['contribution']->cancel_date) ? $params['contribution']->cancel_date : date('YmdHis');
if (isset($params['refund_trxn_id'])) {
if (isset($params['refund_trxn_id'])) {
$refundIDs = CRM_Core_BAO_FinancialTrxn::getRefundTransactionIDs($params['id']);
if (!empty($refundIDs['financialTrxnId']) && $refundIDs['trxn_id'] != $params['refund_trxn_id']) {
- civicrm_api3('FinancialTrxn', 'create', array('id' => $refundIDs['financialTrxnId'], 'trxn_id' => $params['refund_trxn_id']));
+ civicrm_api3('FinancialTrxn', 'create', [
+ 'id' => $refundIDs['financialTrxnId'],
+ 'trxn_id' => $params['refund_trxn_id'],
+ ]);
}
}
$cardType = CRM_Utils_Array::value('card_type_id', $params);
// create batch entry if batch_id is passed and
// ensure no batch entry is been made on 'Pending' or 'Failed' contribution, CRM-16611
if (!empty($params['batch_id']) && !empty($financialTxn)) {
- $entityParams = array(
+ $entityParams = [
'batch_id' => $params['batch_id'],
'entity_table' => 'civicrm_financial_trxn',
'entity_id' => $financialTxn->id,
- );
+ ];
CRM_Batch_BAO_EntityBatch::create($entityParams);
}
* @param array $params
* Contribution object, line item array and params for trxn.
*
- * @todo stop passing $params by reference. It is unclear the purpose of doing this &
- * adds unpredictability.
- *
* @param string $context
* Update scenarios.
*
+ * @todo stop passing $params by reference. It is unclear the purpose of doing this &
+ * adds unpredictability.
+ *
*/
public static function updateFinancialAccounts(&$params, $context = NULL) {
$trxnID = NULL;
) {
return;
}
- if ((($previousContributionStatus == 'Partially paid'
- && $currentContributionStatus == 'Completed')
- || ($previousContributionStatus == 'Pending' && $params['prevContribution']->is_pay_later == TRUE
- && $currentContributionStatus == 'Partially paid'))
+ // The 'right' way to add payments or refunds is through the Payment.create api. That api
+ // then updates the contribution but this process shoud not also record another financial trxn.
+ if ((($previousContributionStatus == 'Partially paid' && $currentContributionStatus == 'Completed')
+ || ($previousContributionStatus == 'Pending refund' && $currentContributionStatus == 'Completed')
+ // This concept of pay_later as different to any other sort of pending is deprecated & it's unclear
+ // why it is here or where it is handled instead.
+ || ($previousContributionStatus == 'Pending' && $params['prevContribution']->is_pay_later == TRUE
+ && $currentContributionStatus == 'Partially paid'))
&& $context == 'changedStatus'
) {
return;
$query = "UPDATE civicrm_financial_item SET status_id = %1 WHERE entity_id = %2 and entity_table = 'civicrm_line_item'";
$sql = "SELECT id, amount FROM civicrm_financial_item WHERE entity_id = %1 and entity_table = 'civicrm_line_item'";
- $entityParams = array(
+ $entityParams = [
'entity_table' => 'civicrm_financial_item',
- );
+ ];
foreach ($params['line_item'] as $fieldId => $fields) {
foreach ($fields as $fieldValueId => $lineItemDetails) {
- $fparams = array(
- 1 => array(CRM_Core_PseudoConstant::getKey('CRM_Financial_BAO_FinancialItem', 'status_id', 'Paid'), 'Integer'),
- 2 => array($lineItemDetails['id'], 'Integer'),
- );
+ $fparams = [
+ 1 => [
+ CRM_Core_PseudoConstant::getKey('CRM_Financial_BAO_FinancialItem', 'status_id', 'Paid'),
+ 'Integer',
+ ],
+ 2 => [$lineItemDetails['id'], 'Integer'],
+ ];
CRM_Core_DAO::executeQuery($query, $fparams);
- $fparams = array(
- 1 => array($lineItemDetails['id'], 'Integer'),
- );
+ $fparams = [
+ 1 => [$lineItemDetails['id'], 'Integer'],
+ ];
$financialItem = CRM_Core_DAO::executeQuery($sql, $fparams);
while ($financialItem->fetch()) {
$entityParams['entity_id'] = $financialItem->id;
$currency = $params['contribution']->currency;
}
$previousLineItemTotal = CRM_Utils_Array::value('line_total', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
- $itemParams = array(
+ $itemParams = [
'transaction_date' => $receiveDate,
'contact_id' => $params['prevContribution']->contact_id,
'currency' => $currency,
'financial_account_id' => $financialAccount,
'entity_table' => 'civicrm_line_item',
'entity_id' => $lineItemDetails['id'],
- );
+ ];
$financialItem = CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
// @todo we should stop passing $params by reference - splitting this out would be a step towards that.
$params['line_item'][$fieldId][$fieldValueId]['deferred_line_total'] = $itemParams['amount'];
elseif ($previousLineItemTotal != $lineItemDetails['line_total']) {
$taxAmount -= CRM_Utils_Array::value('tax_amount', CRM_Utils_Array::value($fieldValueId, $previousLineItems), 0);
}
- $itemParams['amount'] = self::getMultiplier($params['contribution']->contribution_status_id, $context) * $taxAmount;
- $itemParams['description'] = $taxTerm;
- if ($lineItemDetails['financial_type_id']) {
- $itemParams['financial_account_id'] = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount(
- $lineItemDetails['financial_type_id'],
- 'Sales Tax Account is'
- );
+ if ($taxAmount != 0) {
+ $itemParams['amount'] = self::getMultiplier($params['contribution']->contribution_status_id, $context) * $taxAmount;
+ $itemParams['description'] = $taxTerm;
+ if ($lineItemDetails['financial_type_id']) {
+ $itemParams['financial_account_id'] = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount(
+ $lineItemDetails['financial_type_id'],
+ 'Sales Tax Account is'
+ );
+ }
+ CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
}
- CRM_Financial_BAO_FinancialItem::create($itemParams, NULL, $trxnIds);
}
}
}
* @return bool
*/
public static function isContributionStatusNegative($status_id) {
- $reversalStatuses = array('Cancelled', 'Chargeback', 'Refunded');
+ $reversalStatuses = ['Cancelled', 'Chargeback', 'Refunded'];
return in_array(CRM_Contribute_PseudoConstant::contributionStatus($status_id, 'name'), $reversalStatuses);
}
}
}
$contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
- $checkStatus = array(
- 'Cancelled' => array('Completed', 'Refunded'),
- 'Completed' => array('Cancelled', 'Refunded', 'Chargeback'),
- 'Pending' => array('Cancelled', 'Completed', 'Failed', 'Partially paid'),
- 'In Progress' => array('Cancelled', 'Completed', 'Failed'),
- 'Refunded' => array('Cancelled', 'Completed'),
- 'Partially paid' => array('Completed'),
- );
+ $checkStatus = [
+ 'Cancelled' => ['Completed', 'Refunded'],
+ 'Completed' => ['Cancelled', 'Refunded', 'Chargeback'],
+ 'Pending' => ['Cancelled', 'Completed', 'Failed', 'Partially paid'],
+ 'In Progress' => ['Cancelled', 'Completed', 'Failed'],
+ 'Refunded' => ['Cancelled', 'Completed'],
+ 'Partially paid' => ['Completed'],
+ ];
if (!in_array($contributionStatuses[$fields['contribution_status_id']],
- CRM_Utils_Array::value($contributionStatuses[$values['contribution_status_id']], $checkStatus, array()))
+ CRM_Utils_Array::value($contributionStatuses[$values['contribution_status_id']], $checkStatus, []))
) {
- $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", array(
+ $errors['contribution_status_id'] = ts("Cannot change contribution status from %1 to %2.", [
1 => $contributionStatuses[$values['contribution_status_id']],
2 => $contributionStatuses[$fields['contribution_status_id']],
- ));
+ ]);
}
}
/**
* Get options for a given contribution field.
- * @see CRM_Core_DAO::buildOptions
*
* @param string $fieldName
* @param string $context see CRM_Core_DAO::buildOptionsContext.
- * @param array $props whatever is known about this dao object.
+ * @param array $props whatever is known about this dao object.
*
* @return array|bool
+ * @see CRM_Core_DAO::buildOptions
+ *
*/
- public static function buildOptions($fieldName, $context = NULL, $props = array()) {
+ public static function buildOptions($fieldName, $context = NULL, $props = []) {
$className = __CLASS__;
- $params = array();
+ $params = [];
if (isset($props['orderColumn'])) {
$params['orderColumn'] = $props['orderColumn'];
}
$className = 'CRM_Contribute_BAO_ContributionPage';
// Filter results by contribution page
if (!empty($props['contribution_page_id'])) {
- $page = civicrm_api('contribution_page', 'getsingle', array(
+ $page = civicrm_api('contribution_page', 'getsingle', [
'version' => 3,
'id' => ($props['contribution_page_id']),
- ));
+ ]);
$types = (array) CRM_Utils_Array::value('payment_processor', $page, 0);
$params['condition'] = 'id IN (' . implode(',', $types) . ')';
}
$srcRecId = $contributionId;
// activity params
- $activityParams = array(
+ $activityParams = [
'source_contact_id' => $targetCid,
'source_record_id' => $srcRecId,
'activity_type_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', $activityType),
'activity_date_time' => $date,
'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_status_id', 'Completed'),
'skipRecentView' => TRUE,
- );
+ ];
// create activity with target contacts
$session = CRM_Core_Session::singleton();
$paymentBalance = CRM_Contribute_BAO_Contribution::getContributionBalance($contributionId, $total);
- $contribution = civicrm_api3('Contribution', 'getsingle', array('id' => $contributionId, 'return' => array('currency', 'is_pay_later', 'contribution_status_id', 'financial_type_id')));
+ $contribution = civicrm_api3('Contribution', 'getsingle', [
+ 'id' => $contributionId,
+ 'return' => [
+ 'currency',
+ 'is_pay_later',
+ 'contribution_status_id',
+ 'financial_type_id',
+ ],
+ ]);
$info['payLater'] = $contribution['is_pay_later'];
$info['contribution_status'] = $contribution['contribution_status'];
$info['balance'] = $paymentBalance;
$info['id'] = $id;
$info['component'] = $component;
- $rows = array();
+ $rows = [];
if ($getTrxnInfo && $baseTrxnId) {
// Need to exclude fee trxn rows so filter out rows where TO FINANCIAL ACCOUNT is expense account
$sql = "
WHERE con.id = %1 AND ft.is_payment = 1
GROUP BY ft.id";
- $queryParams = array(
- 1 => array($contributionId, 'Integer'),
- 2 => array($feeFinancialAccount, 'Integer'),
- );
+ $queryParams = [
+ 1 => [$contributionId, 'Integer'],
+ 2 => [$feeFinancialAccount, 'Integer'],
+ ];
$resultDAO = CRM_Core_DAO::executeQuery($sql, $queryParams);
$statuses = CRM_Contribute_PseudoConstant::contributionStatus();
// show payment edit link only for payments done via backoffice form
$paymentEditLink = '';
if (empty($resultDAO->payment_processor_id) && CRM_Core_Permission::check('edit contributions')) {
- $links = array(
- CRM_Core_Action::UPDATE => array(
+ $links = [
+ CRM_Core_Action::UPDATE => [
'name' => "<i class='crm-i fa-pencil'></i>",
'url' => 'civicrm/payment/edit',
'class' => 'medium-popup',
'qs' => "reset=1&id=%%id%%&contribution_id=%%contribution_id%%",
'title' => ts('Edit Payment'),
- ),
- );
+ ],
+ ];
$paymentEditLink = CRM_Core_Action::formLink(
$links,
- CRM_Core_Action::mask(array(CRM_Core_Permission::EDIT)),
- array(
+ CRM_Core_Action::mask([CRM_Core_Permission::EDIT]),
+ [
'id' => $resultDAO->id,
'contribution_id' => $contributionId,
- )
+ ]
);
}
- $val = array(
+ $val = [
'id' => $resultDAO->id,
'total_amount' => $resultDAO->total_amount,
'financial_type' => $resultDAO->financial_account,
'status' => $statuses[$resultDAO->status_id],
'currency' => $resultDAO->currency,
'action' => $paymentEditLink,
- );
+ ];
if ($paidByName == 'Check') {
$val['check_number'] = $resultDAO->check_number;
}
$params['prevContribution'] = self::getOriginalContribution($params['id']);
}
- foreach (array('total_amount', 'financial_type_id', 'fee_amount') as $field) {
+ foreach (['total_amount', 'financial_type_id', 'fee_amount'] as $field) {
if (!isset($params[$field])) {
if ($field == 'total_amount' && $params['prevContribution']->tax_amount) {
// Tax amount gets added back on later....
// Assign tax Amount on update of contribution
if (!empty($params['prevContribution']->tax_amount)) {
$params['tax_amount'] = 'null';
- CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
+ CRM_Price_BAO_LineItem::getLineItemArray($params, [$params['id']]);
foreach ($params['line_item'] as $setID => $priceField) {
foreach ($priceField as $priceFieldID => $priceFieldValue) {
$params['line_item'][$setID][$priceFieldID]['tax_amount'] = $params['tax_amount'];
// Get Line Item on update of contribution
if (isset($params['id'])) {
- CRM_Price_BAO_LineItem::getLineItemArray($params, array($params['id']));
+ CRM_Price_BAO_LineItem::getLineItemArray($params, [$params['id']]);
}
else {
CRM_Price_BAO_LineItem::getLineItemArray($params);
}
elseif (isset($params['api.line_item.create'])) {
// Update total amount of contribution using lineItem
- $taxAmountArray = array();
+ $taxAmountArray = [];
foreach ($params['api.line_item.create'] as $key => $value) {
if (isset($value['financial_type_id']) && array_key_exists($value['financial_type_id'], $taxRates)) {
$taxRate = $taxRates[$value['financial_type_id']];
}
else {
// update line item of contrbution
- if (isset($params['financial_type_id']) && array_key_exists($params['financial_type_id'], $taxRates) && $isLineItem) {
+ if (isset($params['financial_type_id']) && array_key_exists($params['financial_type_id'], $taxRates) && $isLineItem) {
$taxRate = $taxRates[$params['financial_type_id']];
$taxAmount = CRM_Contribute_BAO_Contribution_Utils::calculateTaxAmount($params['line_total'], $taxRate, $unknownIfMoneyIsClean);
$params['tax_amount'] = round($taxAmount['tax_amount'], 2);
}
}
$sql = 'SELECT financial_type_id FROM civicrm_line_item WHERE contribution_id = %1 GROUP BY financial_type_id;';
- $params = array(
- '1' => array($contributionId, 'Integer'),
- );
+ $params = [
+ '1' => [$contributionId, 'Integer'],
+ ];
$result = CRM_Core_DAO::executeQuery($sql, $params);
if ($result->N > 1) {
$errors['financial_type_id'] = ts('One or more line items have a different financial type than the contribution. Editing the financial type is not yet supported in this situation.');
if ($updatePledgePaymentStatus) {
CRM_Pledge_BAO_PledgePayment::updatePledgePaymentStatus($pledgeID,
- array($pledgePaymentID),
+ [$pledgePaymentID],
$contribution_status_id,
NULL,
$total_amount,
/**
* Compute the stats values
*
- * @deprecated
- *
* @param string $stat either 'mode' or 'median'
* @param string $sql
* @param string $alias of civicrm_contribution
*
* @return array|null
+ * @deprecated
+ *
*/
public static function computeStats($stat, $sql, $alias = NULL) {
CRM_Core_Error::deprecatedFunctionWarning('computeStats is now deprecated');
* @throws \CiviCRM_API3_Exception
*/
public static function isSingleLineItem($id) {
- $lineItemCount = civicrm_api3('LineItem', 'getcount', array('contribution_id' => $id));
+ $lineItemCount = civicrm_api3('LineItem', 'getcount', ['contribution_id' => $id]);
return ($lineItemCount == 1);
}
$primaryContributionID = isset($contribution->id) ? $contribution->id : $objects['first_contribution']->id;
// The previous details are used when calculating line items so keep it before any code that 'does something'
if (!empty($contribution->id)) {
- $input['prevContribution'] = CRM_Contribute_BAO_Contribution::getValues(array('id' => $contribution->id),
+ $input['prevContribution'] = CRM_Contribute_BAO_Contribution::getValues(['id' => $contribution->id],
CRM_Core_DAO::$_nullArray, CRM_Core_DAO::$_nullArray);
}
- $inputContributionWhiteList = array(
+ $inputContributionWhiteList = [
'fee_amount',
'net_amount',
'trxn_id',
'contribution_status_id',
'card_type_id',
'pan_truncation',
- );
+ ];
if (self::isSingleLineItem($primaryContributionID)) {
$inputContributionWhiteList[] = 'financial_type_id';
}
$completedContributionStatusID = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed');
- $contributionParams = array_merge(array(
+ $contributionParams = array_merge([
'contribution_status_id' => $completedContributionStatusID,
'source' => self::getRecurringContributionDescription($contribution, $event),
- ), array_intersect_key($input, array_fill_keys($inputContributionWhiteList, 1)
+ ], array_intersect_key($input, array_fill_keys($inputContributionWhiteList, 1)
));
// CRM-20678 Ensure that the currency is correct in subseqent transcations.
self::repeatTransaction($contribution, $input, $contributionParams, $paymentProcessorId);
$contributionParams['financial_type_id'] = $contribution->financial_type_id;
- $values = array();
+ $values = [];
if (isset($input['is_email_receipt'])) {
$values['is_email_receipt'] = $input['is_email_receipt'];
}
CRM_Contribute_BAO_ContributionRecur::addrecurSoftCredit($objects['contributionRecur']->id, $contribution->id);
}
- $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', [
'labelColumn' => 'name',
'flip' => 1,
- ));
+ ]);
if (isset($input['prevContribution']) && (!$input['prevContribution']->is_pay_later && $input['prevContribution']->contribution_status_id == $contributionStatuses['Pending'])) {
$input['payment_processor'] = $paymentProcessorId;
}
if (!array_key_exists('is_email_receipt', $values) ||
$values['is_email_receipt'] == 1
) {
- civicrm_api3('Contribution', 'sendconfirmation', array(
+ civicrm_api3('Contribution', 'sendconfirmation', [
'id' => $contribution->id,
'payment_processor_id' => $paymentProcessorId,
- ));
+ ]);
CRM_Core_Error::debug_log_message("Receipt sent");
}
$values['contribution_status'] = CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $contribution->contribution_status_id);
$return = $contribution->composeMessageArray($input, $ids, $values, $returnMessageText);
if ((!isset($input['receipt_update']) || $input['receipt_update']) && empty($contribution->receipt_date)) {
- civicrm_api3('Contribution', 'create', array('receipt_date' => 'now', 'id' => $contribution->id));
+ civicrm_api3('Contribution', 'create', [
+ 'receipt_date' => 'now',
+ 'id' => $contribution->id,
+ ]);
}
return $return;
}
/**
* Generate From email and from name in an array values
+ *
* @param array $input
* @param \CRM_Contribute_BAO_Contribution $contribution
+ *
* @return array
*/
public static function generateFromEmailAndName($input, $contribution) {
// Use input value if supplied.
if (!empty($input['receipt_from_email'])) {
- return array(CRM_Utils_array::value('receipt_from_name', $input, ''), $input['receipt_from_email']);
+ return [
+ CRM_Utils_array::value('receipt_from_name', $input, ''),
+ $input['receipt_from_email'],
+ ];
}
// if we are still empty see if we can use anything from a contribution page.
- $pageValues = array();
+ $pageValues = [];
if (!empty($contribution->contribution_page_id)) {
- $pageValues = civicrm_api3('ContributionPage', 'getsingle', array('id' => $contribution->contribution_page_id));
+ $pageValues = civicrm_api3('ContributionPage', 'getsingle', ['id' => $contribution->contribution_page_id]);
}
// if we are still empty see if we can use anything from a contribution page.
if (!empty($pageValues['receipt_from_email'])) {
- return array($pageValues['receipt_from_name'], $pageValues['receipt_from_email']);
+ return [
+ $pageValues['receipt_from_name'],
+ $pageValues['receipt_from_email'],
+ ];
}
// If we are still empty fall back to the domain or logged in user information.
return CRM_Core_BAO_Domain::getDefaultReceiptFrom();
do {
$creditNoteNum++;
$creditNoteId = CRM_Utils_Array::value('credit_notes_prefix', $prefixValue) . "" . $creditNoteNum;
- $result = civicrm_api3('Contribution', 'getcount', array(
+ $result = civicrm_api3('Contribution', 'getcount', [
'sequential' => 1,
'creditnote_id' => $creditNoteId,
- ));
+ ]);
} while ($result > 0);
return $creditNoteId;
/**
* Load related memberships.
*
+ * @param array $ids
+ *
+ * @return array $ids
+ *
+ * @throws Exception
* @deprecated
*
* Note that in theory it should be possible to retrieve these from the line_item table
*
* I don't know if it never worked or broke as a result of https://issues.civicrm.org/jira/browse/CRM-14918.
*
- * @param array $ids
- *
- * @return array $ids
- *
- * @throws Exception
*/
public function loadRelatedMembershipObjects($ids = []) {
$query = "
SELECT membership_id
FROM civicrm_membership_payment
WHERE contribution_id = %1 ";
- $params = array(1 => array($this->id, 'Integer'));
- $ids['membership'] = (array) CRM_Utils_Array::value('membership', $ids, array());
+ $params = [1 => [$this->id, 'Integer']];
+ $ids['membership'] = (array) CRM_Utils_Array::value('membership', $ids, []);
$dao = CRM_Core_DAO::executeQuery($query, $params);
while ($dao->fetch()) {
return $contribution->source;
}
elseif (!empty($contribution->contribution_page_id) && is_numeric($contribution->contribution_page_id)) {
- $contributionPageTitle = civicrm_api3('ContributionPage', 'getvalue', array(
+ $contributionPageTitle = civicrm_api3('ContributionPage', 'getvalue', [
'id' => $contribution->contribution_page_id,
'return' => 'title',
- ));
+ ]);
return ts('Online Contribution') . ': ' . $contributionPageTitle;
}
elseif ($event) {
FROM civicrm_financial_trxn ft
INNER JOIN civicrm_entity_financial_trxn eft ON eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution'
WHERE eft.entity_id = %1 AND ft.is_payment = 1 ORDER BY ft.id DESC LIMIT 1";
- $contributionStatus = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array(
+ $contributionStatus = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', [
'labelColumn' => 'name',
- ));
+ ]);
foreach ($contributions as $contribution) {
if (!($contributionStatus[$contribution->contribution_status_id] == 'Partially paid'
|| CRM_Utils_Array::value($contributionStatusId, $contributionStatus) == 'Partially paid')
) {
continue;
}
- $ftDao = CRM_Core_DAO::executeQuery($ftSql, array(1 => array($contribution->id, 'Integer')));
+ $ftDao = CRM_Core_DAO::executeQuery($ftSql, [
+ 1 => [
+ $contribution->id,
+ 'Integer',
+ ],
+ ]);
$ftDao->fetch();
// store financial item Proportionaly.
- $trxnParams = array(
+ $trxnParams = [
'total_amount' => $ftDao->total_amount,
'contribution_id' => $contribution->id,
- );
+ ];
self::assignProportionalLineItems($trxnParams, $ftDao->id, $contribution->total_amount);
}
}
if (!empty($lineItems)) {
// get financial item
list($ftIds, $taxItems) = self::getLastFinancialItemIds($trxnParams['contribution_id']);
- $entityParams = array(
+ $entityParams = [
'contribution_total_amount' => $contributionTotalAmount,
'trxn_total_amount' => $trxnParams['total_amount'],
'trxn_id' => $trxnId,
- );
+ ];
self::createProportionalFinancialEntries($entityParams, $lineItems, $ftIds, $taxItems);
}
}
}
$contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus($params['contribution_status_id'], 'name');
- $preferredAccountsRelationships = array(
+ $preferredAccountsRelationships = [
'Refunded' => 'Credit/Contra Revenue Account is',
'Chargeback' => 'Chargeback Account is',
- );
+ ];
if (in_array($contributionStatus, array_keys($preferredAccountsRelationships))) {
$financialTypeID = !empty($params['financial_type_id']) ? $params['financial_type_id'] : $params['prevContribution']->financial_type_id;
* @return array
*/
protected function addContributionPageValuesToValuesHeavyHandedly(&$values) {
- $contributionPageValues = array();
+ $contributionPageValues = [];
CRM_Contribute_BAO_ContributionPage::setValues(
$this->contribution_page_id,
$contributionPageValues
);
- $valuesToCopy = array(
+ $valuesToCopy = [
// These are the values that I believe to be useful.
'id',
'title',
'thankyou_text',
'thankyou_title',
- );
+ ];
foreach ($valuesToCopy as $valueToCopy) {
if (isset($contributionPageValues[$valueToCopy])) {
$values[$valueToCopy] = $contributionPageValues[$valueToCopy];
return $statusMsg;
}
- $params = array(
+ $params = [
'contribution_id' => $contributionId,
'contribution_status_id' => $statusId,
'previous_contribution_status_id' => $previousStatusId,
'receive_date' => $receiveDate,
- );
+ ];
$updateResult = CRM_Contribute_BAO_Contribution::transitionComponents($params);
break;
}
- $statusMsg .= "<br />" . ts("Membership for %1 has been %2.", array(1 => $userDisplayName, 2 => $statusNameMsgPart));
+ $statusMsg .= "<br />" . ts("Membership for %1 has been %2.", [
+ 1 => $userDisplayName,
+ 2 => $statusNameMsgPart,
+ ]);
}
if ($componentName == 'CiviEvent') {
CRM_Event_PseudoConstant::participantStatus()
);
if ($updatedStatusName == 'Cancelled') {
- $statusMsg .= "<br />" . ts("Event Registration for %1 has been Cancelled.", array(1 => $userDisplayName));
+ $statusMsg .= "<br />" . ts("Event Registration for %1 has been Cancelled.", [1 => $userDisplayName]);
}
elseif ($updatedStatusName == 'Registered') {
- $statusMsg .= "<br />" . ts("Event Registration for %1 has been updated.", array(1 => $userDisplayName));
+ $statusMsg .= "<br />" . ts("Event Registration for %1 has been updated.", [1 => $userDisplayName]);
}
}
CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name')
);
if ($updatedStatusName == 'Cancelled') {
- $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been Cancelled.", array(1 => $userDisplayName));
+ $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been Cancelled.", [1 => $userDisplayName]);
}
elseif ($updatedStatusName == 'Failed') {
- $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been Failed.", array(1 => $userDisplayName));
+ $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been Failed.", [1 => $userDisplayName]);
}
elseif ($updatedStatusName == 'Completed') {
- $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been updated.", array(1 => $userDisplayName));
+ $statusMsg .= "<br />" . ts("Pledge Payment for %1 has been updated.", [1 => $userDisplayName]);
}
}
}
* @return \CRM_Contribute_BAO_Contribution|null
*/
private static function getOriginalContribution($contributionID) {
- return self::getValues(array('id' => $contributionID), CRM_Core_DAO::$_nullArray, CRM_Core_DAO::$_nullArray);
+ return self::getValues(['id' => $contributionID], CRM_Core_DAO::$_nullArray, CRM_Core_DAO::$_nullArray);
}
/**
* for historical reasons. Going forwards we can hope to add tests & improve readibility
* of that function
*
- * @todo move recordFinancialAccounts & helper functions to their own class?
- *
* @param array $params
* Params as passed to contribution.create
*
* @param int $previousLineItemTotal
*
* @return float
+ * @todo move recordFinancialAccounts & helper functions to their own class?
+ *
*/
protected static function getFinancialItemAmountFromParams($params, $context, $lineItemDetails, $isARefund, $previousLineItemTotal) {
if ($context == 'changedAmount') {
elseif (empty($lineItemDetails['line_total'])) {
// follow legacy code path
Civi::log()
- ->warning('Deprecated bit of code, please log a ticket explaining how you got here!', array('civi.tag' => 'deprecated'));
+ ->warning('Deprecated bit of code, please log a ticket explaining how you got here!', ['civi.tag' => 'deprecated']);
return $params['total_amount'];
}
else {
public static function updateMembershipBasedOnCompletionOfContribution($contribution, $primaryContributionID, $changeDate) {
$memberships = self::getRelatedMemberships($contribution->id);
foreach ($memberships as $membership) {
- $membershipParams = array(
+ $membershipParams = [
'id' => $membership['id'],
'contact_id' => $membership['contact_id'],
'is_test' => $membership['is_test'],
'membership_type_id' => $membership['membership_type_id'],
'membership_activity_status' => 'Completed',
- );
+ ];
$currentMembership = CRM_Member_BAO_Membership::getContactMembership($membershipParams['contact_id'],
$membershipParams['membership_type_id'],
);
// @todo remove all this stuff in favour of letting the api call further down handle in
// (it is a duplication of what the api does).
- $dates = array_fill_keys(array(
+ $dates = array_fill_keys([
'join_date',
'start_date',
'end_date',
- ), NULL);
+ ], NULL);
if ($currentMembership) {
/*
* Fixed FOR CRM-4433
// but not for Failed contributions, where we don't accept additional payments at the moment.
// (in some cases the contribution is 'Pending' and only the payment is failed. In those we
// do accept more payments agains them.
- return array();
+ return [];
}
- $actionLinks = array();
+ $actionLinks = [];
if ((int) $balance > 0) {
if (CRM_Core_Config::isEnabledBackOfficeCreditCardPayments()) {
- $actionLinks[] = array(
- 'url' => CRM_Utils_System::url('civicrm/payment', array(
+ $actionLinks[] = [
+ 'url' => CRM_Utils_System::url('civicrm/payment', [
'action' => 'add',
'reset' => 1,
'id' => $id,
'mode' => 'live',
- )),
+ ]),
'title' => ts('Submit Credit Card payment'),
- );
+ ];
}
- $actionLinks[] = array(
- 'url' => CRM_Utils_System::url('civicrm/payment', array(
+ $actionLinks[] = [
+ 'url' => CRM_Utils_System::url('civicrm/payment', [
'action' => 'add',
'reset' => 1,
'id' => $id,
- )),
+ ]),
'title' => ts('Record Payment'),
- );
+ ];
}
elseif ((int) $balance < 0) {
- $actionLinks[] = array(
- 'url' => CRM_Utils_System::url('civicrm/payment', array(
+ $actionLinks[] = [
+ 'url' => CRM_Utils_System::url('civicrm/payment', [
'action' => 'add',
'reset' => 1,
'id' => $id,
- )),
+ ]),
'title' => ts('Record Refund'),
- );
+ ];
}
return $actionLinks;
}
* @return null
*/
public static function recordAlwaysAccountsReceivable(&$trxnParams, $contributionParams) {
- if (!self::checkContributeSettings('always_post_to_accounts_receivable')) {
+ if (!Civi::settings()->get('always_post_to_accounts_receivable')) {
return NULL;
}
$statusId = $contributionParams['contribution']->contribution_status_id;
$previousContributionStatus = empty($contributionParams['prevContribution']) ? NULL : $contributionStatuses[$contributionParams['prevContribution']->contribution_status_id];
// Return if contribution status is not completed.
if (!($contributionStatus == 'Completed' && (empty($previousContributionStatus)
- || (!empty($previousContributionStatus) && $previousContributionStatus == 'Pending'
- && $contributionParams['prevContribution']->is_pay_later == 0
- )))
+ || (!empty($previousContributionStatus) && $previousContributionStatus == 'Pending'
+ && $contributionParams['prevContribution']->is_pay_later == 0
+ )))
) {
return NULL;
}
INNER JOIN civicrm_financial_account cfa ON ce.financial_account_id = cfa.id
WHERE `entity_table` = 'civicrm_financial_type' AND cfa.is_tax = 1 AND ce.account_relationship = %1 GROUP BY cfa.id";
$accountRel = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Sales Tax Account is' "));
- $queryParams = array(1 => array($accountRel, 'Integer'));
+ $queryParams = [1 => [$accountRel, 'Integer']];
$dao = CRM_Core_DAO::executeQuery($query, $queryParams);
- $financialAccount = array();
+ $financialAccount = [];
while ($dao->fetch()) {
$financialAccount[$dao->id] = $dao->id;
}
*
* @param array $eftParams
*
+ * @throws \CiviCRM_API3_Exception
*/
public static function createProportionalEntry($entityParams, $eftParams) {
$paid = 0;
FROM civicrm_financial_item fi
INNER JOIN civicrm_line_item li ON li.id = fi.entity_id and fi.entity_table = 'civicrm_line_item'
WHERE li.contribution_id = %1";
- $dao = CRM_Core_DAO::executeQuery($sql, array(1 => array($contributionId, 'Integer')));
- $ftIds = $taxItems = array();
+ $dao = CRM_Core_DAO::executeQuery($sql, [
+ 1 => [
+ $contributionId,
+ 'Integer',
+ ],
+ ]);
+ $ftIds = $taxItems = [];
$salesTaxFinancialAccount = self::getSalesTaxFinancialAccounts();
while ($dao->fetch()) {
/* if sales tax item*/
if (in_array($dao->financial_account_id, $salesTaxFinancialAccount)) {
- $taxItems[$dao->price_field_value_id] = array(
+ $taxItems[$dao->price_field_value_id] = [
'financial_item_id' => $dao->id,
'amount' => $dao->tax_amount,
- );
+ ];
}
else {
$ftIds[$dao->price_field_value_id] = $dao->id;
}
}
- return array($ftIds, $taxItems);
+ return [$ftIds, $taxItems];
}
/**
*
* @param array $taxItems
*
+ * @throws \CiviCRM_API3_Exception
*/
public static function createProportionalFinancialEntries($entityParams, $lineItems, $ftIds, $taxItems) {
- $eftParams = array(
+ $eftParams = [
'entity_table' => 'civicrm_financial_item',
'financial_trxn_id' => $entityParams['trxn_id'],
- );
+ ];
foreach ($lineItems as $key => $value) {
if ($value['qty'] == 0) {
continue;
* @throws \CRM_Core_Exception
*/
protected function loadRelatedEntitiesByID($ids) {
- $entities = array(
+ $entities = [
'contact' => 'CRM_Contact_BAO_Contact',
'contributionRecur' => 'CRM_Contribute_BAO_ContributionRecur',
'contributionType' => 'CRM_Financial_BAO_FinancialType',
'financialType' => 'CRM_Financial_BAO_FinancialType',
'contributionPage' => 'CRM_Contribute_BAO_ContributionPage',
- );
+ ];
foreach ($entities as $entity => $bao) {
if (!empty($ids[$entity])) {
$this->_relatedObjects[$entity] = new $bao();
* @param bool $escapeSmarty
*
* @return array
+ * @throws \CiviCRM_API3_Exception
*/
public static function replaceContributionTokens(
$contributionIds,
$escapeSmarty
) {
if (empty($contributionIds)) {
- return array();
+ return [];
}
- $contributionDetails = array();
+ $contributionDetails = [];
foreach ($contributionIds as $id) {
- $result = civicrm_api3('Contribution', 'get', array('id' => $id));
+ $result = civicrm_api3('Contribution', 'get', ['id' => $id]);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['subject'] = CRM_Utils_Token::replaceContributionTokens($subject, $result, FALSE, $subjectToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['text'] = CRM_Utils_Token::replaceContributionTokens($text, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
$contributionDetails[$result['values'][$result['id']]['contact_id']]['html'] = CRM_Utils_Token::replaceContributionTokens($html, $result, FALSE, $messageToken, FALSE, $escapeSmarty);
*
* Generated from xml/schema/CRM/Contribute/Contribution.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:99cdf75ae6e6bf73bc5ff6871a3baf82)
+ * (GenCodeChecksum:7a81b495b5661ae881321938d4ee38c9)
*/
/**
/**
* Contribution ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Financial Type for (total_amount - non_deductible_amount).
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* The Contribution Page which triggered this contribution
*
- * @var int unsigned
+ * @var int
*/
public $contribution_page_id;
/**
* FK to Payment Instrument
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
/**
* 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.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_recur_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
- * @var boolean
+ * @var bool
*/
public $is_pay_later;
/**
- * @var int unsigned
+ * @var int
*/
public $contribution_status_id;
/**
* Conditional foreign key to civicrm_address.id. We insert an address record for each contribution when we have associated billing name and address data.
*
- * @var int unsigned
+ * @var int
*/
public $address_id;
/**
* The campaign for which this contribution has been triggered.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'contribution_page_id' => [
'name' => 'contribution_page_id',
'table' => 'civicrm_contribution_page',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'payment_instrument_id' => [
'name' => 'payment_instrument_id',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
'receive_date' => [
'name' => 'receive_date',
'description' => ts('Portion of total amount which is NOT tax deductible. Equal to total_amount for non-deductible financial types.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution.non_deductible_amount',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution.total_amount',
'description' => ts('actual processor fee if known - may be 0.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution.fee_amount',
'description' => ts('actual funds transfer amount. total less fees. if processor does not report actual fee during transaction, this is set to total_amount.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution.net_amount',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'cancel_date' => [
'name' => 'cancel_date',
'pseudoconstant' => [
'optionGroupName' => 'contribution_status',
'optionEditPath' => 'civicrm/admin/options/contribution_status',
- ]
+ ],
],
'contribution_address_id' => [
'name' => 'address_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'creditnote_id' => [
'name' => 'creditnote_id',
'description' => ts('Total tax amount of this contribution.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution.tax_amount',
*
* Generated from xml/schema/CRM/Contribute/ContributionPage.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:923a4b6d8829d7aa6cc24e18d62114ff)
+ * (GenCodeChecksum:c6e11bf69550f2253d2a287e8ebeae3d)
*/
/**
/**
* Contribution Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* default financial type assigned to contributions submitted via this page, e.g. Contribution, Campaign Contribution
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* if true - processing logic must reject transaction at confirmation stage if pay method != credit card
*
- * @var boolean
+ * @var bool
*/
public $is_credit_card_only;
/**
* if true - allows real-time monetary transactions otherwise non-monetary transactions
*
- * @var boolean
+ * @var bool
*/
public $is_monetary;
/**
* if true - allows recurring contributions, valid only for PayPal_Standard
*
- * @var boolean
+ * @var bool
*/
public $is_recur;
/**
* if false, the confirm page in contribution pages gets skipped
*
- * @var boolean
+ * @var bool
*/
public $is_confirm_enabled;
/**
* if true - supports recurring intervals
*
- * @var boolean
+ * @var bool
*/
public $is_recur_interval;
/**
* if true - asks user for recurring installments
*
- * @var boolean
+ * @var bool
*/
public $is_recur_installments;
/**
* if true - user is able to adjust payment start date
*
- * @var boolean
+ * @var bool
*/
public $adjust_recur_start_date;
/**
* if true - allows the user to send payment directly to the org later
*
- * @var boolean
+ * @var bool
*/
public $is_pay_later;
/**
* is partial payment enabled for this online contribution page
*
- * @var boolean
+ * @var bool
*/
public $is_partial_payment;
/**
* if true, page will include an input text field where user can enter their own amount
*
- * @var boolean
+ * @var bool
*/
public $is_allow_other_amount;
/**
* FK to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $default_amount_id;
/**
* if true, receipt is automatically emailed to contact on success
*
- * @var boolean
+ * @var bool
*/
public $is_email_receipt;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $amount_block_is_active;
/**
* FK to civicrm_contact, who created this contribution page
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* The campaign for which we are collecting contributions with this page.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Can people share the contribution page through social media?
*
- * @var boolean
+ * @var bool
*/
public $is_share;
/**
* if true - billing block is required for online contribution page
*
- * @var boolean
+ * @var bool
*/
public $is_billing_required;
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'payment_processor' => [
'name' => 'payment_processor',
'table' => 'civicrm_payment_processor',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'is_credit_card_only' => [
'name' => 'is_credit_card_only',
'optionGroupName' => 'recur_frequency_units',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/recur_frequency_units',
- ]
+ ],
],
'is_recur_interval' => [
'name' => 'is_recur_interval',
'description' => ts('Minimum initial amount for partial payment'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_contribution_page.min_initial_amount',
'table_name' => 'civicrm_contribution_page',
'description' => ts('if other amounts allowed, user can configure minimum allowed.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_contribution_page.min_amount',
'table_name' => 'civicrm_contribution_page',
'description' => ts('if other amounts allowed, user can configure maximum allowed.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_contribution_page.max_amount',
'table_name' => 'civicrm_contribution_page',
'description' => ts('The target goal for this page, allows people to build a goal meter'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_contribution_page.goal_amount',
'table_name' => 'civicrm_contribution_page',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'campaign_id' => [
'name' => 'campaign_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'is_share' => [
'name' => 'is_share',
*
* Generated from xml/schema/CRM/Contribute/ContributionProduct.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b5a1b3fa2819c4dfe99635fef8583a42)
+ * (GenCodeChecksum:565e6473df8dd62f25ba951b18860b5c)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
- * @var int unsigned
+ * @var int
*/
public $product_id;
/**
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
/**
* FK to Financial Type(for membership price sets only).
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Contribute/ContributionRecur.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9859d3b98d51f0f1df207253199186ab)
+ * (GenCodeChecksum:02897f2c575bc43e915d0b7e8ee68fbb)
*/
/**
/**
* Contribution Recur ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to civicrm_contact.id.
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Number of time units for recurrence of payment.
*
- * @var int unsigned
+ * @var int
*/
public $frequency_interval;
/**
* Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.
*
- * @var int unsigned
+ * @var int
*/
public $installments;
/**
* Optionally used to store a link to a payment token used for this recurring contribution.
*
- * @var int unsigned
+ * @var int
*/
public $payment_token_id;
public $invoice_id;
/**
- * @var int unsigned
+ * @var int
*/
public $contribution_status_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
* Day in the period when the payment should be charged e.g. 1st of month, 15th etc.
*
- * @var int unsigned
+ * @var int
*/
public $cycle_day;
/**
* Number of failed charge attempts since last success. Business rule could be set to deactivate on more than x failures.
*
- * @var int unsigned
+ * @var int
*/
public $failure_count;
/**
* Some systems allow contributor to set a number of installments - but then auto-renew the subscription or commitment if they do not cancel.
*
- * @var boolean
+ * @var bool
*/
public $auto_renew;
/**
* Foreign key to civicrm_payment_processor.id
*
- * @var int unsigned
+ * @var int
*/
public $payment_processor_id;
/**
* FK to Financial Type
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* FK to Payment Instrument
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
/**
* The campaign for which this contribution has been triggered.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* if true, receipt is automatically emailed to contact on each successful payment
*
- * @var boolean
+ * @var bool
*/
public $is_email_receipt;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_contribution_recur.amount',
'table_name' => 'civicrm_contribution_recur',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'frequency_unit' => [
'name' => 'frequency_unit',
'optionGroupName' => 'recur_frequency_units',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/recur_frequency_units',
- ]
+ ],
],
'frequency_interval' => [
'name' => 'frequency_interval',
'pseudoconstant' => [
'optionGroupName' => 'contribution_status',
'optionEditPath' => 'civicrm/admin/options/contribution_status',
- ]
+ ],
],
'is_test' => [
'name' => 'is_test',
'table' => 'civicrm_payment_processor',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'financial_type_id' => [
'name' => 'financial_type_id',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'payment_instrument_id' => [
'name' => 'payment_instrument_id',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
'contribution_campaign_id' => [
'name' => 'campaign_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'is_email_receipt' => [
'name' => 'is_email_receipt',
*
* Generated from xml/schema/CRM/Contribute/ContributionSoft.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b9a4bdee130cdaf934a53e456cd0e3e8)
+ * (GenCodeChecksum:12f49d75296e9500e850dd63741372ea)
*/
/**
/**
* Soft Contribution ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to contribution table.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to civicrm_pcp.id
*
- * @var int unsigned
+ * @var int
*/
public $pcp_id;
/**
- * @var boolean
+ * @var bool
*/
public $pcp_display_in_roll;
/**
* Soft Credit Type ID.Implicit FK to civicrm_option_value where option_group = soft_credit_type.
*
- * @var int unsigned
+ * @var int
*/
public $soft_credit_type_id;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_contribution_soft.amount',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'pcp_id' => [
'name' => 'pcp_id',
'table' => 'civicrm_pcp',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'pcp_display_in_roll' => [
'name' => 'pcp_display_in_roll',
'pseudoconstant' => [
'optionGroupName' => 'soft_credit_type',
'optionEditPath' => 'civicrm/admin/options/soft_credit_type',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Contribute/Premium.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:09b04d3dd373d7dc64bc873b56b5e171)
+ * (GenCodeChecksum:5193d923732bb6b983b32e86e9441d72)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
public $entity_table;
/**
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* Is the Premiums feature enabled for this page?
*
- * @var boolean
+ * @var bool
*/
public $premiums_active;
/**
* Boolean. Should we automatically display minimum contribution amount text after the premium descriptions.
*
- * @var boolean
+ * @var bool
*/
public $premiums_display_min_contribution;
public $premiums_nothankyou_label;
/**
- * @var int unsigned
+ * @var int
*/
public $premiums_nothankyou_position;
*
* Generated from xml/schema/CRM/Contribute/PremiumsProduct.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b6944ad257ea16a60d6c1cf79ca391b0)
+ * (GenCodeChecksum:400970a4b33e5fc5af3784b5dbf9f90c)
*/
/**
/**
* Contribution ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to premiums settings record.
*
- * @var int unsigned
+ * @var int
*/
public $premiums_id;
/**
* Foreign key to each product object.
*
- * @var int unsigned
+ * @var int
*/
public $product_id;
/**
- * @var int unsigned
+ * @var int
*/
public $weight;
/**
* FK to Financial Type.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Contribute/Product.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7db77c58d48112d25da791aba4586080)
+ * (GenCodeChecksum:27002591d220b4bc2498b367bef17367)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Financial Type.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* Disabling premium removes it from the premiums_premium join table below.
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Rolling means we set start/end based on current day, fixed means we set start/end for current year or month
- (e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006)
+ * (e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006)
*
* @var string
*/
'description' => ts('Sell price or market value for premiums. For tax-deductible contributions, this will be stored as non_deductible_amount in the contribution record.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_product.price',
'table_name' => 'civicrm_product',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'financial_type_id' => [
'name' => 'financial_type_id',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'min_contribution' => [
'name' => 'min_contribution',
'description' => ts('Minimum contribution required to be eligible to select this premium.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_product.min_contribution',
'table_name' => 'civicrm_product',
'description' => ts('Actual cost of this product. Useful to determine net return from sale or using this as an incentive.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_product.cost',
'table_name' => 'civicrm_product',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::periodType',
- ]
+ ],
],
'fixed_period_start_day' => [
'name' => 'fixed_period_start_day',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getPremiumUnits',
- ]
+ ],
],
'duration_interval' => [
'name' => 'duration_interval',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getPremiumUnits',
- ]
+ ],
],
'frequency_interval' => [
'name' => 'frequency_interval',
*
* Generated from xml/schema/CRM/Contribute/Widget.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0605d26592e841a169687b225d891bc8)
+ * (GenCodeChecksum:c958a95fa7e2ff07a891780d343cd308)
*/
/**
/**
* Contribution Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The Contribution Page which triggered this contribution
*
- * @var int unsigned
+ * @var int
*/
public $contribution_page_id;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
* Is this contribution associated with an online
* financial transaction
*
- * @var boolean
+ * @var bool
*/
public $_online = FALSE;
* Is this contribution associated with an online.
* financial transaction
*
- * @var boolean
+ * @var bool
*/
public $_online = FALSE;
}
// CRM-16189, add Revenue Recognition Date
- if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (Civi::settings()->get('deferred_revenue_enabled')) {
$revenueDate = $this->add('date', 'revenue_recognition_date', ts('Revenue Recognition Date'), CRM_Core_SelectValues::date(NULL, 'M Y', NULL, 5));
if ($this->_id && !CRM_Contribute_BAO_Contribution::allowUpdateRevenueRecognitionDate($this->_id)) {
$revenueDate->freeze();
/**
* Contribution page supports memberships
- * @var boolean
+ * @var bool
*/
public $_useForMember;
/**
* Are we in single form mode or wizard mode?
*
- * @var boolean
+ * @var bool
*/
protected $_single;
/**
* Is this the first page?
*
- * @var boolean
+ * @var bool
*/
protected $_first = FALSE;
/**
* Is this the last page?
*
- * @var boolean
+ * @var bool
*/
protected $_last = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* The flag to tell if there are soft credits included.
*
- * @var boolean
+ * @var bool
*/
public $_includesSoftCredits = FALSE;
* Are we operating in "single mode", i.e. deleting one
* specific contribution?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. updating the task of only
* one specific contribution?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. updating the task of only
* one specific contribution?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. updating the task of only
* one specific contribution?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
public $_type;
/**
- * Is this field required
- * @var boolean
+ * Is this field required.
+ *
+ * @var bool
*/
public $_required;
/**
* Whether the file has a column header or not
*
- * @var boolean
+ * @var bool
*/
protected $_haveColumnHeader;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
return ["sms_phone_missing" => "Couldn't find recipient's phone number."];
}
+ // dev/core#369 If an SMS provider is deleted then the relevant row in the action_schedule_table is set to NULL
+ // So we need to exclude them.
+ if (CRM_Utils_System::isNull($schedule->sms_provider_id)) {
+ return ["sms_provider_missing" => "SMS reminder cannot be sent because the SMS provider has been deleted."];
+ }
+
$messageSubject = $tokenRow->render('subject');
$sms_body_text = $tokenRow->render('sms_body_text');
$params = [];
$sqlParamKey = 1;
+ $subType = '';
if (!empty($subTypes)) {
foreach ($subTypes as $key => $subType) {
$subTypeClauses[] = self::whereListHas("civicrm_custom_group.extends_entity_column_value", self::validateSubTypeByEntity($entityType, $subType));
}
if (empty($groupTree)) {
- $groupTree = $multipleFieldGroups = [];
- $crmDAO = CRM_Core_DAO::executeQuery($queryString, $params);
- $customValueTables = [];
-
- // process records
- while ($crmDAO->fetch()) {
- // get the id's
- $groupID = $crmDAO->civicrm_custom_group_id;
- $fieldId = $crmDAO->civicrm_custom_field_id;
- if ($crmDAO->civicrm_custom_group_is_multiple) {
- $multipleFieldGroups[$groupID] = $crmDAO->civicrm_custom_group_table_name;
- }
- // create an array for groups if it does not exist
- if (!array_key_exists($groupID, $groupTree)) {
- $groupTree[$groupID] = [];
- $groupTree[$groupID]['id'] = $groupID;
-
- // populate the group information
- foreach ($toReturn['custom_group'] as $fieldName) {
- $fullFieldName = "civicrm_custom_group_$fieldName";
- if ($fieldName == 'id' ||
- is_null($crmDAO->$fullFieldName)
- ) {
- continue;
- }
- // CRM-5507
- // This is an old bit of code - per the CRM number & probably does not work reliably if
- // that one contact sub-type exists.
- if ($fieldName == 'extends_entity_column_value' && !empty($subTypes[0])) {
- $groupTree[$groupID]['subtype'] = self::validateSubTypeByEntity($entityType, $subType);
- }
- $groupTree[$groupID][$fieldName] = $crmDAO->$fullFieldName;
- }
- $groupTree[$groupID]['fields'] = [];
-
- $customValueTables[$crmDAO->civicrm_custom_group_table_name] = [];
- }
-
- // add the fields now (note - the query row will always contain a field)
- // we only reset this once, since multiple values come is as multiple rows
- if (!array_key_exists($fieldId, $groupTree[$groupID]['fields'])) {
- $groupTree[$groupID]['fields'][$fieldId] = [];
- }
-
- $customValueTables[$crmDAO->civicrm_custom_group_table_name][$crmDAO->civicrm_custom_field_column_name] = 1;
- $groupTree[$groupID]['fields'][$fieldId]['id'] = $fieldId;
- // populate information for a custom field
- foreach ($toReturn['custom_field'] as $fieldName) {
- $fullFieldName = "civicrm_custom_field_$fieldName";
- if ($fieldName == 'id' ||
- is_null($crmDAO->$fullFieldName)
- ) {
- continue;
- }
- $groupTree[$groupID]['fields'][$fieldId][$fieldName] = $crmDAO->$fullFieldName;
- }
- }
-
- if (!empty($customValueTables)) {
- $groupTree['info'] = ['tables' => $customValueTables];
- }
+ list($multipleFieldGroups, $groupTree) = self::buildGroupTree($entityType, $toReturn, $subTypes, $queryString, $params, $subType);
$cache->set($cacheKey, $groupTree);
$cache->set($multipleFieldGroupCacheKey, $multipleFieldGroups);
return $multipleGroup;
}
+ /**
+ * Build the metadata tree for the custom group.
+ *
+ * @param string $entityType
+ * @param array $toReturn
+ * @param array $subTypes
+ * @param string $queryString
+ * @param array $params
+ * @param string $subType
+ *
+ * @return array
+ * @throws \CRM_Core_Exception
+ */
+ private static function buildGroupTree($entityType, $toReturn, $subTypes, $queryString, $params, $subType) {
+ $groupTree = $multipleFieldGroups = [];
+ $crmDAO = CRM_Core_DAO::executeQuery($queryString, $params);
+ $customValueTables = [];
+
+ // process records
+ while ($crmDAO->fetch()) {
+ // get the id's
+ $groupID = $crmDAO->civicrm_custom_group_id;
+ $fieldId = $crmDAO->civicrm_custom_field_id;
+ if ($crmDAO->civicrm_custom_group_is_multiple) {
+ $multipleFieldGroups[$groupID] = $crmDAO->civicrm_custom_group_table_name;
+ }
+ // create an array for groups if it does not exist
+ if (!array_key_exists($groupID, $groupTree)) {
+ $groupTree[$groupID] = [];
+ $groupTree[$groupID]['id'] = $groupID;
+
+ // populate the group information
+ foreach ($toReturn['custom_group'] as $fieldName) {
+ $fullFieldName = "civicrm_custom_group_$fieldName";
+ if ($fieldName == 'id' ||
+ is_null($crmDAO->$fullFieldName)
+ ) {
+ continue;
+ }
+ // CRM-5507
+ // This is an old bit of code - per the CRM number & probably does not work reliably if
+ // that one contact sub-type exists.
+ if ($fieldName == 'extends_entity_column_value' && !empty($subTypes[0])) {
+ $groupTree[$groupID]['subtype'] = self::validateSubTypeByEntity($entityType, $subType);
+ }
+ $groupTree[$groupID][$fieldName] = $crmDAO->$fullFieldName;
+ }
+ $groupTree[$groupID]['fields'] = [];
+
+ $customValueTables[$crmDAO->civicrm_custom_group_table_name] = [];
+ }
+
+ // add the fields now (note - the query row will always contain a field)
+ // we only reset this once, since multiple values come is as multiple rows
+ if (!array_key_exists($fieldId, $groupTree[$groupID]['fields'])) {
+ $groupTree[$groupID]['fields'][$fieldId] = [];
+ }
+
+ $customValueTables[$crmDAO->civicrm_custom_group_table_name][$crmDAO->civicrm_custom_field_column_name] = 1;
+ $groupTree[$groupID]['fields'][$fieldId]['id'] = $fieldId;
+ // populate information for a custom field
+ foreach ($toReturn['custom_field'] as $fieldName) {
+ $fullFieldName = "civicrm_custom_field_$fieldName";
+ if ($fieldName == 'id' ||
+ is_null($crmDAO->$fullFieldName)
+ ) {
+ continue;
+ }
+ $groupTree[$groupID]['fields'][$fieldId][$fieldName] = $crmDAO->$fullFieldName;
+ }
+ }
+
+ if (!empty($customValueTables)) {
+ $groupTree['info'] = ['tables' => $customValueTables];
+ }
+ return [$multipleFieldGroups, $groupTree];
+ }
+
}
/**
* Searching for contacts?
*
- * @var boolean
+ * @var bool
*/
protected $_contactSearch;
// we do this to prevent a autoloader errors with joomla / 3rd party packages
// Use absolute path, since we don't know the content of include_path yet.
// CRM-11304
- $file = dirname(__FILE__) . '/../../vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php';
+ $file = dirname(__FILE__) . '/../../packages/IDS/vendors/htmlpurifer/HTMLPurifier/Bootstrap.php';
if (file_exists($file)) {
return $file;
}
public $database;
/**
- * @var string|NULL path in which to store a marker that indicates the last execution of
- * GenCode. If a matching marker already exists, GenCode doesn't run.
+ * Path in which to store a marker that indicates the last execution of GenCode.
+ *
+ * If a matching marker already exists, GenCode doesn't run.
+ *
+ * @var string|null
*/
public $digestPath;
/**
- * @var string|NULL a digest of the inputs to the code-generator (eg the properties and source files)
+ * Digest of the inputs to the code-generator (eg the properties and source files).
+ *
+ * @var string|null
*/
public $sourceDigest;
// need this case since some versions of mysql do not have boolean as a valid column type and hence it
// is changed to tinyint. hopefully after 2 yrs this case can be removed.
$field['sqlType'] = 'tinyint';
- $field['phpType'] = $type;
+ $field['phpType'] = 'bool';
$field['crmType'] = 'CRM_Utils_Type::T_' . strtoupper($type);
break;
$field['sqlType'] = 'decimal(' . $length . ')';
$field['phpType'] = 'float';
$field['crmType'] = 'CRM_Utils_Type::T_MONEY';
- $field['precision'] = $length;
+ $field['precision'] = $length . ',';
break;
case 'float':
$field['phpType'] = $this->value('phpType', $fieldXML, $type);
$field['sqlType'] = $type;
if ($type == 'int unsigned') {
+ $field['phpType'] = 'int';
$field['crmType'] = 'CRM_Utils_Type::T_INT';
}
else {
$field['uniqueName'] = $this->value('uniqueName', $fieldXML);
$field['serialize'] = $this->value('serialize', $fieldXML);
$field['html'] = $this->value('html', $fieldXML);
+ $field['protected'] = $this->value('protected', $fieldXML);
if (!empty($field['html'])) {
$validOptions = [
'type',
*
* @package CRM
* @copyright CiviCRM LLC (c) 2004-2019
- * $Id$
- *
*/
abstract class CRM_Core_Component_Info {
const COMPONENT_MENU_XML = 'Menu';
/**
- * Stores component information.
- * @var array component settings as key/value pairs
+ * Component settings as key/value pairs.
+ *
+ * @var array
*/
public $info;
/**
- * Stores component keyword.
- * @var string name of component keyword
+ * Component keyword.
+ *
+ * @var string
*/
protected $keyword;
* so the display routine needs to not do any work. (The
* parent object takes care of the display)
*
- * @var boolean
+ * @var bool
*/
protected $_embedded = FALSE;
* Useful when we run form in non civicrm context
* and we need to transfer control back.(eg. drupal)
*
- * @var boolean
+ * @var bool
*/
protected $_skipRedirection = FALSE;
* Are we in print mode? if so we need to modify the display
* functionality to do a minimal display :)
*
- * @var boolean
+ * @var bool
*/
public $_print = 0;
/**
* Should we generate a qfKey, true by default
*
- * @var boolean
+ * @var bool
*/
public $_generateQFKey = TRUE;
*
* Generated from xml/schema/CRM/Core/ActionLog.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:38f897676ff054f67ba7188470e41dee)
+ * (GenCodeChecksum:2ccacada384ba37fcf929647dfa3d845)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to id of the entity that the action was performed on. Pseudo - FK.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to the action schedule that this action originated from.
*
- * @var int unsigned
+ * @var int
*/
public $action_schedule_id;
/**
* Was there any error sending the reminder?
*
- * @var boolean
+ * @var bool
*/
public $is_error;
/**
* Keeps track of the sequence number of this repetition.
*
- * @var int unsigned
+ * @var int
*/
public $repetition_number;
*
* Generated from xml/schema/CRM/Core/ActionMapping.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:eafaaa48176b2854e6b8a7f19fc1ebe6)
+ * (GenCodeChecksum:c7d2ed31b30490f0a1794fb81b700ac6)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
*
* Generated from xml/schema/CRM/Core/ActionSchedule.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4d6dca3786a9d3ab90b492be017b045b)
+ * (GenCodeChecksum:cb2618343c279fbf0baabe1f1ebd9973)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this the recipient criteria limited to OR in addition to?
*
- * @var boolean
+ * @var bool
*/
public $limit_to;
/**
* Reminder Interval.
*
- * @var int unsigned
+ * @var int
*/
public $start_action_offset;
public $start_action_date;
/**
- * @var boolean
+ * @var bool
*/
public $is_repeat;
/**
* Time interval for repeating the reminder.
*
- * @var int unsigned
+ * @var int
*/
public $repetition_frequency_interval;
/**
* Time interval till repeating the reminder.
*
- * @var int unsigned
+ * @var int
*/
public $end_frequency_interval;
/**
* Is this option active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Record Activity for this reminder?
*
- * @var boolean
+ * @var bool
*/
public $record_activity;
/**
* FK to Group
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
/**
* FK to the message template.
*
- * @var int unsigned
+ * @var int
*/
public $msg_template_id;
/**
* FK to the message template.
*
- * @var int unsigned
+ * @var int
*/
public $sms_template_id;
public $mode;
/**
- * @var int unsigned
+ * @var int
*/
public $sms_provider_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getRecurringFrequencyUnits',
- ]
+ ],
],
'start_action_condition' => [
'name' => 'start_action_condition',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getRecurringFrequencyUnits',
- ]
+ ],
],
'repetition_frequency_interval' => [
'name' => 'repetition_frequency_interval',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getRecurringFrequencyUnits',
- ]
+ ],
],
'end_frequency_interval' => [
'name' => 'end_frequency_interval',
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'msg_template_id' => [
'name' => 'msg_template_id',
'pseudoconstant' => [
'optionGroupName' => 'msg_mode',
'optionEditPath' => 'civicrm/admin/options/msg_mode',
- ]
+ ],
],
'sms_provider_id' => [
'name' => 'sms_provider_id',
*
* Generated from xml/schema/CRM/Core/Address.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a81d4789f6650c68145ab9bf1e4481a8)
+ * (GenCodeChecksum:4999e79688aae8d0958e46cbd320ae3a)
*/
/**
/**
* Unique Address ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Location does this address belong to.
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Is this the primary address.
*
- * @var boolean
+ * @var bool
*/
public $is_primary;
/**
* Is this the billing address.
*
- * @var boolean
+ * @var bool
*/
public $is_billing;
/**
* Concatenation of all routable street address components (prefix, street number, street name, suffix, unit
- number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail
- delivery, etc.).
+ * number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail
+ * delivery, etc.).
*
* @var string
*/
/**
* Which County does this address belong to.
*
- * @var int unsigned
+ * @var int
*/
public $county_id;
/**
* Which State_Province does this address belong to.
*
- * @var int unsigned
+ * @var int
*/
public $state_province_id;
/**
* Which Country does this address belong to.
*
- * @var int unsigned
+ * @var int
*/
public $country_id;
/**
* Is this a manually entered geo code
*
- * @var boolean
+ * @var bool
*/
public $manual_geo_code;
/**
* FK to Address ID
*
- * @var int unsigned
+ * @var int
*/
public $master_id;
'table' => 'civicrm_location_type',
'keyColumn' => 'id',
'labelColumn' => 'display_name',
- ]
+ ],
],
'is_primary' => [
'name' => 'is_primary',
'title' => ts('Street Address'),
'description' => ts('Concatenation of all routable street address components (prefix, street number, street name, suffix, unit
number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail
- delivery, etc.).
- '),
+ delivery, etc.).'),
'maxlength' => 96,
'size' => CRM_Utils_Type::HUGE,
'import' => TRUE,
'name' => 'street_number_suffix',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Street Number Suffix'),
- 'description' => ts('Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A
- '),
+ 'description' => ts('Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A'),
'maxlength' => 8,
'size' => CRM_Utils_Type::EIGHT,
'where' => 'civicrm_address.street_number_suffix',
'table' => 'civicrm_county',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'state_province_id' => [
'name' => 'state_province_id',
'table' => 'civicrm_state_province',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'postal_code_suffix' => [
'name' => 'postal_code_suffix',
'keyColumn' => 'id',
'labelColumn' => 'name',
'nameColumn' => 'iso_code',
- ]
+ ],
],
'geo_code_1' => [
'name' => 'geo_code_1',
*
* Generated from xml/schema/CRM/Core/AddressFormat.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:08e72cd783856c58dbdaeee364102c01)
+ * (GenCodeChecksum:144542b9aa31391600f73d885f819091)
*/
/**
/**
* Address Format Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
*
* Generated from xml/schema/CRM/Core/Cache.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0683b150dd60e1ec9b53c00957137a27)
+ * (GenCodeChecksum:2ed8c033a46531123b2a0bb158487c30)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Component that this menu item belongs to
*
- * @var int unsigned
+ * @var int
*/
public $component_id;
'table' => 'civicrm_component',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'created_date' => [
'name' => 'created_date',
*
* Generated from xml/schema/CRM/Core/Component.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b9121c01e72b5a9a2772dad9274f4549)
+ * (GenCodeChecksum:3259789de86a7fb333ce0b11d35fe6aa)
*/
/**
/**
* Component ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
public $name;
/**
- * Path to components main directory in a form of a class
- namespace.
+ * Path to components main directory in a form of a class namespace.
*
* @var string
*/
'name' => 'namespace',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Namespace reserved for component.'),
- 'description' => ts('Path to components main directory in a form of a class
- namespace.
- '),
+ 'description' => ts('Path to components main directory in a form of a class namespace.'),
'maxlength' => 128,
'size' => CRM_Utils_Type::HUGE,
'where' => 'civicrm_component.namespace',
*
* Generated from xml/schema/CRM/Core/Country.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a7e07335fea6b1eea5894c119eaa1c4e)
+ * (GenCodeChecksum:367384a5604d933a66247bddb06e96bb)
*/
/**
/**
* Country Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to civicrm_address_format.id.
*
- * @var int unsigned
+ * @var int
*/
public $address_format_id;
/**
* Foreign key to civicrm_worldregion.id.
*
- * @var int unsigned
+ * @var int
*/
public $region_id;
/**
* Should state/province be displayed as abbreviation for contacts from this country?
*
- * @var boolean
+ * @var bool
*/
public $is_province_abbreviated;
'table' => 'civicrm_worldregion',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'is_province_abbreviated' => [
'name' => 'is_province_abbreviated',
*
* Generated from xml/schema/CRM/Core/County.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:74b37d0061cdff5aa638ff68f3879b6c)
+ * (GenCodeChecksum:3ce3045eed44f727cbca947945315329)
*/
/**
/**
* County ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* ID of State/Province that County belongs
*
- * @var int unsigned
+ * @var int
*/
public $state_province_id;
*
* Generated from xml/schema/CRM/Core/CustomField.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a1a27e2af4724a92f37a959ee359428b)
+ * (GenCodeChecksum:58323f46f5ac021f96591e075b37cca6)
*/
/**
/**
* Unique Custom Field ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_custom_group.
*
- * @var int unsigned
+ * @var int
*/
public $custom_group_id;
/**
* Is a value required for this property.
*
- * @var boolean
+ * @var bool
*/
public $is_required;
/**
* Is this property searchable.
*
- * @var boolean
+ * @var bool
*/
public $is_searchable;
/**
* Is this property range searchable.
*
- * @var boolean
+ * @var bool
*/
public $is_search_range;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this property set by PHP Code? A code field is viewable but not editable
*
- * @var boolean
+ * @var bool
*/
public $is_view;
/**
* number of options per line for checkbox and radio
*
- * @var int unsigned
+ * @var int
*/
public $options_per_line;
/**
* field length if alphanumeric
*
- * @var int unsigned
+ * @var int
*/
public $text_length;
/**
* time format for custom date
*
- * @var int unsigned
+ * @var int
*/
public $time_format;
/**
* Number of columns in Note Field
*
- * @var int unsigned
+ * @var int
*/
public $note_columns;
/**
* Number of rows in Note Field
*
- * @var int unsigned
+ * @var int
*/
public $note_rows;
/**
* For elements with options, the option group id that is used
*
- * @var int unsigned
+ * @var int
*/
public $option_group_id;
/**
* Should the multi-record custom field values be displayed in tab table listing
*
- * @var boolean
+ * @var bool
*/
public $in_selector;
'table' => 'civicrm_custom_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'name' => [
'name' => 'name',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_BAO_CustomField::dataType',
- ]
+ ],
],
'html_type' => [
'name' => 'html_type',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::customHtmlType',
- ]
+ ],
],
'default_value' => [
'name' => 'default_value',
'table' => 'civicrm_option_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'filter' => [
'name' => 'filter',
*
* Generated from xml/schema/CRM/Core/CustomGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9131714b35a45d028cf14456d1e57170)
+ * (GenCodeChecksum:288ec5d75e51339f23a2057dc1a383d2)
*/
/**
/**
* Unique Custom Group ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_option_value.id (for option group custom_data_type.)
*
- * @var int unsigned
+ * @var int
*/
public $extends_entity_column_id;
/**
* Will this group be in collapsed or expanded mode on initial display ?
*
- * @var int unsigned
+ * @var int
*/
public $collapse_display;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Does this group hold multiple values?
*
- * @var boolean
+ * @var bool
*/
public $is_multiple;
/**
* minimum number of multiple records (typically 0?)
*
- * @var int unsigned
+ * @var int
*/
public $min_multiple;
/**
* maximum number of multiple records, if 0 - no max
*
- * @var int unsigned
+ * @var int
*/
public $max_multiple;
/**
* Will this group be in collapsed or expanded mode on advanced search display ?
*
- * @var int unsigned
+ * @var int
*/
public $collapse_adv_display;
/**
* FK to civicrm_contact, who created this custom group
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* Is this a reserved Custom Group?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this property public?
*
- * @var boolean
+ * @var bool
*/
public $is_public;
'pseudoconstant' => [
'optionGroupName' => 'custom_data_type',
'optionEditPath' => 'civicrm/admin/options/custom_data_type',
- ]
+ ],
],
'extends_entity_column_value' => [
'name' => 'extends_entity_column_value',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::customGroupStyle',
- ]
+ ],
],
'collapse_display' => [
'name' => 'collapse_display',
*
* Generated from xml/schema/CRM/Core/Dashboard.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:52a635955e779405d2eaa2b403c41092)
+ * (GenCodeChecksum:d1fc3dec2d559acdfedb070a6a5bd107)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Domain for dashboard
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Is this dashlet active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this dashlet reserved?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Number of minutes to cache dashlet content in browser localStorage.
*
- * @var int unsigned
+ * @var int
*/
public $cache_minutes;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'name' => [
'name' => 'name',
*
* Generated from xml/schema/CRM/Core/Discount.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:74c8162f321ac50b965c1416951fe93a)
+ * (GenCodeChecksum:a414d91af17f5a6cfd69e3a0fc8fb8ca)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to civicrm_price_set
*
- * @var int unsigned
+ * @var int
*/
public $price_set_id;
*
* Generated from xml/schema/CRM/Core/Domain.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c5d80d8a9e689b48c5f6373b9229c442)
+ * (GenCodeChecksum:74b35dfcc8ad2ade69e9bcb75e2f407b)
*/
/**
/**
* Domain ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID. This is specifically not an FK to avoid circular constraints
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
*
* Generated from xml/schema/CRM/Core/Email.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:198627a1fa129294e4c7be52939883e1)
+ * (GenCodeChecksum:6da9864657d2b5e46956386ab414d8d6)
*/
/**
/**
* Unique Email ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Location does this email belong to.
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Is this the primary?
*
- * @var boolean
+ * @var bool
*/
public $is_primary;
/**
* Is this the billing?
*
- * @var boolean
+ * @var bool
*/
public $is_billing;
/**
* Implicit FK to civicrm_option_value where option_group = email_on_hold.
*
- * @var int unsigned
+ * @var int
*/
public $on_hold;
/**
* Is this address for bulk mail ?
*
- * @var boolean
+ * @var bool
*/
public $is_bulkmail;
'table' => 'civicrm_location_type',
'keyColumn' => 'id',
'labelColumn' => 'display_name',
- ]
+ ],
],
'email' => [
'name' => 'email',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_PseudoConstant::emailOnHoldOptions',
- ]
+ ],
],
'is_bulkmail' => [
'name' => 'is_bulkmail',
*
* Generated from xml/schema/CRM/Core/EntityFile.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:febc5ccbfb965f8f4ba8477d4db0e5f3)
+ * (GenCodeChecksum:7a5ef1cb4866290ba8edac3fd92f1102)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to civicrm_file
*
- * @var int unsigned
+ * @var int
*/
public $file_id;
*
* Generated from xml/schema/CRM/Core/EntityTag.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:721b045d10e22535a86c5e927e489477)
+ * (GenCodeChecksum:16302a8c63dcb3978dbc0d089397be50)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to civicrm_tag
*
- * @var int unsigned
+ * @var int
*/
public $tag_id;
'pseudoconstant' => [
'optionGroupName' => 'tag_used_for',
'optionEditPath' => 'civicrm/admin/options/tag_used_for',
- ]
+ ],
],
'entity_id' => [
'name' => 'entity_id',
'table' => 'civicrm_tag',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/Extension.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:02c87fb773b6c1e61e48e0ddfac2bb5a)
+ * (GenCodeChecksum:d7421ef144f074ada5688f6e56ab8418)
*/
/**
/**
* Local Extension ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this extension active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getExtensionTypes',
- ]
+ ],
],
'full_name' => [
'name' => 'full_name',
*
* Generated from xml/schema/CRM/Core/File.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:994c11201c8b27ec0913d1ce505ef864)
+ * (GenCodeChecksum:0ddebff42aa9d0c2fe3114281ca95e70)
*/
/**
/**
* Unique ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Type of file (e.g. Transcript, Income Tax Return, etc). FK to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $file_type_id;
/**
* FK to civicrm_contact, who uploaded this file
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
*
* Generated from xml/schema/CRM/Core/IM.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c112fd2803d82fb22d2635f7929c391c)
+ * (GenCodeChecksum:5a7b60741331c475603af3bb180d2bd7)
*/
/**
/**
* Unique IM ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Location does this email belong to.
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Which IM Provider does this screen name belong to.
*
- * @var int unsigned
+ * @var int
*/
public $provider_id;
/**
* Is this the primary IM for this contact and location.
*
- * @var boolean
+ * @var bool
*/
public $is_primary;
/**
* Is this the billing?
*
- * @var boolean
+ * @var bool
*/
public $is_billing;
'table' => 'civicrm_location_type',
'keyColumn' => 'id',
'labelColumn' => 'display_name',
- ]
+ ],
],
'name' => [
'name' => 'name',
'pseudoconstant' => [
'optionGroupName' => 'instant_messenger_service',
'optionEditPath' => 'civicrm/admin/options/instant_messenger_service',
- ]
+ ],
],
'is_primary' => [
'name' => 'is_primary',
*
* Generated from xml/schema/CRM/Core/Job.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:6a87295b587fb722d7b2026e2f2dbfe7)
+ * (GenCodeChecksum:752f86f1ad35917f008e81c0bc45786e)
*/
/**
/**
* Job Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this scheduled job for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Is this job active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'run_frequency' => [
'name' => 'run_frequency',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getJobFrequency',
- ]
+ ],
],
'last_run' => [
'name' => 'last_run',
*
* Generated from xml/schema/CRM/Core/JobLog.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:68e8b90d050e64feef2b1868d83a7923)
+ * (GenCodeChecksum:647390b654065a0cc421975a24ae14f9)
*/
/**
/**
* Job log entry Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this scheduled job for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Pointer to job id - not a FK though, just for logging purposes
*
- * @var int unsigned
+ * @var int
*/
public $job_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'run_time' => [
'name' => 'run_time',
*
* Generated from xml/schema/CRM/Core/LocBlock.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:cc12c8f1ddd73d6d8b1d056dd04696e9)
+ * (GenCodeChecksum:f2893cf360fe552d5ff1d90e2eb9272c)
*/
/**
/**
* Unique ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
- * @var int unsigned
+ * @var int
*/
public $address_id;
/**
- * @var int unsigned
+ * @var int
*/
public $email_id;
/**
- * @var int unsigned
+ * @var int
*/
public $phone_id;
/**
- * @var int unsigned
+ * @var int
*/
public $im_id;
/**
- * @var int unsigned
+ * @var int
*/
public $address_2_id;
/**
- * @var int unsigned
+ * @var int
*/
public $email_2_id;
/**
- * @var int unsigned
+ * @var int
*/
public $phone_2_id;
/**
- * @var int unsigned
+ * @var int
*/
public $im_2_id;
*
* Generated from xml/schema/CRM/Core/LocationType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a97cc190a4fbeafa8846f48f47dcd63e)
+ * (GenCodeChecksum:aa147acf0dac148b113c33d4ca12876c)
*/
/**
/**
* Location Type ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this location type a predefined system location?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this location type the default?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
*
* Generated from xml/schema/CRM/Core/Log.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:38303a678c8e5104d63803ce900dc370)
+ * (GenCodeChecksum:ffaccbd0ebaf86e07a6302fe32e05ea8)
*/
/**
/**
* Log ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to Contact ID of person under whose credentials this data modification was made.
*
- * @var int unsigned
+ * @var int
*/
public $modified_id;
*
* Generated from xml/schema/CRM/Core/MailSettings.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:419c207b65557941ee6f58e31d1bb6d8)
+ * (GenCodeChecksum:1818e655bde2e2a0ecd15e7d645ba58a)
*/
/**
/**
* primary key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this match entry for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* whether this is the default set of settings for this domain
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* port to use when polling
*
- * @var int unsigned
+ * @var int
*/
public $port;
/**
* whether to use SSL or not
*
- * @var boolean
+ * @var bool
*/
public $is_ssl;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'name' => [
'name' => 'name',
'pseudoconstant' => [
'optionGroupName' => 'mail_protocol',
'optionEditPath' => 'civicrm/admin/options/mail_protocol',
- ]
+ ],
],
'server' => [
'name' => 'server',
'optionGroupName' => 'activity_status',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/activity_status',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/Managed.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:47e95661423fb2f97b3fd2069c4e404f)
+ * (GenCodeChecksum:79f57e32601e72d62755569fbf58c801)
*/
/**
/**
* Surrogate Key
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_ManagedEntities::getCleanupOptions',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/Mapping.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:26d8aa33c9340571c606aa5b8f085c1a)
+ * (GenCodeChecksum:e0576a33199627f5846830d076b12229)
*/
/**
/**
* Mapping ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Mapping Type
*
- * @var int unsigned
+ * @var int
*/
public $mapping_type_id;
'pseudoconstant' => [
'optionGroupName' => 'mapping_type',
'optionEditPath' => 'civicrm/admin/options/mapping_type',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/MappingField.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4c827f0d31c1d9304836b198b0d93374)
+ * (GenCodeChecksum:e18a4d7c43e3fded3e10bed98437577e)
*/
/**
/**
* Mapping Field ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Mapping to which this field belongs
*
- * @var int unsigned
+ * @var int
*/
public $mapping_id;
/**
* Column number for mapping set
*
- * @var int unsigned
+ * @var int
*/
public $column_number;
/**
* Location type of this mapping, if required
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Which type of phone does this number belongs.
*
- * @var int unsigned
+ * @var int
*/
public $phone_type_id;
/**
* Which type of IM Provider does this name belong.
*
- * @var int unsigned
+ * @var int
*/
public $im_provider_id;
/**
* Which type of website does this site belong
*
- * @var int unsigned
+ * @var int
*/
public $website_type_id;
/**
* Relationship type, if required
*
- * @var int unsigned
+ * @var int
*/
public $relationship_type_id;
/**
* Used to group mapping_field records into related sets (e.g. for criteria sets in search builder
- mappings).
+ * mappings).
*
- * @var int unsigned
+ * @var int
*/
public $grouping;
'pseudoconstant' => [
'optionGroupName' => 'instant_messenger_service',
'optionEditPath' => 'civicrm/admin/options/instant_messenger_service',
- ]
+ ],
],
'website_type_id' => [
'name' => 'website_type_id',
'pseudoconstant' => [
'optionGroupName' => 'website_type',
'optionEditPath' => 'civicrm/admin/options/website_type',
- ]
+ ],
],
'relationship_type_id' => [
'name' => 'relationship_type_id',
'type' => CRM_Utils_Type::T_INT,
'title' => ts('Grouping'),
'description' => ts('Used to group mapping_field records into related sets (e.g. for criteria sets in search builder
- mappings).
- '),
+ mappings).'),
'where' => 'civicrm_mapping_field.grouping',
'default' => '1',
'table_name' => 'civicrm_mapping_field',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getSearchBuilderOperators',
- ]
+ ],
],
'value' => [
'name' => 'value',
*
* Generated from xml/schema/CRM/Core/Menu.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ea477a411301cae7e78667099c0f654c)
+ * (GenCodeChecksum:2ba374f38c5906a6338e2c0de34208f6)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this menu item for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Component that this menu item belongs to
*
- * @var int unsigned
+ * @var int
*/
public $component_id;
/**
* Is this menu item active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this menu accessible to the public?
*
- * @var boolean
+ * @var bool
*/
public $is_public;
/**
* Is this menu exposed to the navigation system?
*
- * @var boolean
+ * @var bool
*/
public $is_exposed;
/**
* Should this menu be exposed via SSL if enabled?
*
- * @var boolean
+ * @var bool
*/
public $is_ssl;
/**
* skip this url being exposed to breadcrumb
*
- * @var boolean
+ * @var bool
*/
public $skipBreadcrumb;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'path' => [
'name' => 'path',
'table' => 'civicrm_component',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
*
* Generated from xml/schema/CRM/Core/MessageTemplate.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:988d404fbe6cd84e14a175f71b3f8440)
+ * (GenCodeChecksum:334135bbbd8614a2501e1cf56715eb46)
*/
/**
/**
* Message Template ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
public $msg_html;
/**
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* a pseudo-FK to civicrm_option_value
*
- * @var int unsigned
+ * @var int
*/
public $workflow_id;
/**
* is this the default message template for the workflow referenced by workflow_id?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* is this the reserved message template which we ship for the workflow referenced by workflow_id?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this message template used for sms?
*
- * @var boolean
+ * @var bool
*/
public $is_sms;
/**
* a pseudo-FK to civicrm_option_value containing PDF Page Format.
*
- * @var int unsigned
+ * @var int
*/
public $pdf_format_id;
'optionGroupName' => 'pdf_format',
'keyColumn' => 'id',
'optionEditPath' => 'civicrm/admin/options/pdf_format',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/Navigation.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f168de98d6c4d46c63abfd789f6fdf24)
+ * (GenCodeChecksum:377bbf9cfce4cb146a9638344c718b11)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this navigation item for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Parent navigation item, used for grouping
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Is this navigation item active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* If separator needs to be added after this menu item
*
- * @var boolean
+ * @var bool
*/
public $has_separator;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'label' => [
'name' => 'label',
'keyColumn' => 'id',
'labelColumn' => 'label',
'nameColumn' => 'name',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
*
* Generated from xml/schema/CRM/Core/Note.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:daafebd13390de67d82735263e9fa886)
+ * (GenCodeChecksum:c5b4c2796ae7a974e822e74d9e5b4338)
*/
/**
/**
* Note ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to Contact ID creator
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_BAO_Note::entityTables',
- ]
+ ],
],
'entity_id' => [
'name' => 'entity_id',
'pseudoconstant' => [
'optionGroupName' => 'note_privacy',
'optionEditPath' => 'civicrm/admin/options/note_privacy',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/OpenID.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8f43063bba0682c56356dbf7afa64658)
+ * (GenCodeChecksum:d63a37d228f3faa87726f65906737301)
*/
/**
/**
* Unique OpenID ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Location does this email belong to.
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Whether or not this user is allowed to login
*
- * @var boolean
+ * @var bool
*/
public $allowed_to_login;
/**
* Is this the primary email for this contact and location.
*
- * @var boolean
+ * @var bool
*/
public $is_primary;
*
* Generated from xml/schema/CRM/Core/OptionGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2437cfeb4ae146ce21397bb38dfa08e1)
+ * (GenCodeChecksum:c9ed24515dcc4ce676fb21518bd90791)
*/
/**
/**
* Option Group ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this a predefined system option group (i.e. it can not be deleted)?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this option group active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* A lock to remove the ability to add new options via the UI.
*
- * @var boolean
+ * @var bool
*/
public $is_locked;
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Utils_Type::dataTypes',
- ]
+ ],
],
'is_reserved' => [
'name' => 'is_reserved',
*
* Generated from xml/schema/CRM/Core/OptionValue.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:356278f04173ed064fa82cacafa7edbe)
+ * (GenCodeChecksum:803748252a3d5c50be80b18ccdb3132c)
*/
/**
/**
* Option ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Group which this option belongs to.
*
- * @var int unsigned
+ * @var int
*/
public $option_group_id;
/**
* Bitwise logic can be used to create subsets of options within an option_group for different uses.
*
- * @var int unsigned
+ * @var int
*/
public $filter;
/**
* Is this the default option for the group?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Controls display sort order.
*
- * @var int unsigned
+ * @var int
*/
public $weight;
/**
* Is this row simply a display header? Expected usage is to render these as OPTGROUP tags within a SELECT field list of options?
*
- * @var boolean
+ * @var bool
*/
public $is_optgroup;
/**
* Is this a predefined system object?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this option active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Component that this option value belongs/caters to.
*
- * @var int unsigned
+ * @var int
*/
public $component_id;
/**
* Which Domain is this option value for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
- * @var int unsigned
+ * @var int
*/
public $visibility_id;
'table' => 'civicrm_option_group',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'label' => [
'name' => 'label',
'table' => 'civicrm_component',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'domain_id' => [
'name' => 'domain_id',
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'visibility_id' => [
'name' => 'visibility_id',
'pseudoconstant' => [
'optionGroupName' => 'visibility',
'optionEditPath' => 'civicrm/admin/options/visibility',
- ]
+ ],
],
'icon' => [
'name' => 'icon',
*
* Generated from xml/schema/CRM/Core/Persistent.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0c52f813dd1e954e1709b819128790f3)
+ * (GenCodeChecksum:4044954800a1201a4e3c376d48342f4c)
*/
/**
/**
* Persistent Record Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Config Settings
*
- * @var boolean
+ * @var bool
*/
public $is_config;
*
* Generated from xml/schema/CRM/Core/Phone.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a3b4aba6b896154133688f4318ea866b)
+ * (GenCodeChecksum:ac451e083bb4bbf26f53556086b266bf)
*/
/**
/**
* Unique Phone ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Location does this phone belong to.
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Is this the primary phone for this contact and location.
*
- * @var boolean
+ * @var bool
*/
public $is_primary;
/**
* Is this the billing?
*
- * @var boolean
+ * @var bool
*/
public $is_billing;
/**
* Which Mobile Provider does this phone belong to.
*
- * @var int unsigned
+ * @var int
*/
public $mobile_provider_id;
/**
* Which type of phone does this number belongs.
*
- * @var int unsigned
+ * @var int
*/
public $phone_type_id;
'table' => 'civicrm_location_type',
'keyColumn' => 'id',
'labelColumn' => 'display_name',
- ]
+ ],
],
'is_primary' => [
'name' => 'is_primary',
'pseudoconstant' => [
'optionGroupName' => 'phone_type',
'optionEditPath' => 'civicrm/admin/options/phone_type',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/PreferencesDate.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:46e5c6a6ea6b21e1966679f41782c340)
+ * (GenCodeChecksum:18663ed2b585f1598a26a5a491c67ea6)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
*
* Generated from xml/schema/CRM/Core/PrevNextCache.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ec5d04442cf8976a3163cabeb3ba433c)
+ * (GenCodeChecksum:dba140c3d2ece863c512ed688df2ebcb)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id1;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id2;
public $data;
/**
- * @var boolean
+ * @var bool
*/
public $is_selected;
*
* Generated from xml/schema/CRM/Core/PrintLabel.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ca56833ea757bf1363d618add294960d)
+ * (GenCodeChecksum:2bf1df61a7093242ac2cde0d4d8ef1e0)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Implicit FK to civicrm_option_value row in NEW label_type option group
*
- * @var int unsigned
+ * @var int
*/
public $label_type_id;
/**
* Is this default?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Is this option active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this reserved label?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* FK to civicrm_contact, who created this label layout
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
'pseudoconstant' => [
'optionGroupName' => 'name_badge',
'optionEditPath' => 'civicrm/admin/options/name_badge',
- ]
+ ],
],
'label_type_id' => [
'name' => 'label_type_id',
'pseudoconstant' => [
'optionGroupName' => 'label_type',
'optionEditPath' => 'civicrm/admin/options/label_type',
- ]
+ ],
],
'data' => [
'name' => 'data',
*
* Generated from xml/schema/CRM/Core/RecurringEntity.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:810f5bce8bb650c96703532242f254e8)
+ * (GenCodeChecksum:9e730db130a597de8528532d06f2ad54)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Recurring Entity Parent ID
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Recurring Entity Child ID
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* 1-this entity, 2-this and the following entities, 3-all the entities
*
- * @var boolean
+ * @var bool
*/
public $mode;
*
* Generated from xml/schema/CRM/Core/Setting.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1af3984556a05189587658c306d09348)
+ * (GenCodeChecksum:7bbe096eb48d3744aa86453cccb99bfb)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this menu item for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* FK to Contact ID if the setting is localized to a contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Is this setting a contact specific or site wide setting?
*
- * @var boolean
+ * @var bool
*/
public $is_domain;
/**
* Component that this menu item belongs to
*
- * @var int unsigned
+ * @var int
*/
public $component_id;
/**
* FK to civicrm_contact, who created this setting
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'contact_id' => [
'name' => 'contact_id',
'table' => 'civicrm_component',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'created_date' => [
'name' => 'created_date',
*
* Generated from xml/schema/CRM/Core/StateProvince.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:66bbfa3f81cb6baec8d7175f5f32718a)
+ * (GenCodeChecksum:38620d39135bc4e42f0cc688dff9cb5b)
*/
/**
/**
* State/Province ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* ID of Country that State/Province belong
*
- * @var int unsigned
+ * @var int
*/
public $country_id;
*
* Generated from xml/schema/CRM/Core/StatusPreference.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b30c850f5621be00f3a7e828c7fe7c61)
+ * (GenCodeChecksum:777d59b72a077ecb4d4caa60e13bb479)
*/
/**
/**
* Unique Status Preference ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this Status Preference for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Hush messages up to and including this severity.
*
- * @var int unsigned
+ * @var int
*/
public $ignore_severity;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'name' => [
'name' => 'name',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Utils_Check::getSeverityList',
- ]
+ ],
],
'prefs' => [
'name' => 'prefs',
*
* Generated from xml/schema/CRM/Core/SystemLog.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:edcf9c070365c92afa56f7f3fe79acee)
+ * (GenCodeChecksum:a2276bcf3bb39a3947bf54b043fa0a05)
*/
/**
/**
* Primary key ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Optional Contact ID that created the log. Not an FK as we keep this regardless
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
*
* Generated from xml/schema/CRM/Core/Tag.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8c816585b0863674074b4aaf5c644cab)
+ * (GenCodeChecksum:3abd98f177e35fd993b77bf08b115e4a)
*/
/**
/**
* Tag ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Optional parent id for this tag.
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Is this tag selectable / displayed
*
- * @var boolean
+ * @var bool
*/
public $is_selectable;
/**
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
- * @var boolean
+ * @var bool
*/
public $is_tagset;
/**
* FK to civicrm_contact, who created this tag
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
'pseudoconstant' => [
'optionGroupName' => 'tag_used_for',
'optionEditPath' => 'civicrm/admin/options/tag_used_for',
- ]
+ ],
],
'created_id' => [
'name' => 'created_id',
*
* Generated from xml/schema/CRM/Core/Timezone.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e54363ef08090c4dfbed076c842edd03)
+ * (GenCodeChecksum:7a377d04c1e9cfede74c42b155e301f5)
*/
/**
/**
* Timezone Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Country Id
*
- * @var int unsigned
+ * @var int
*/
public $country_id;
*
* Generated from xml/schema/CRM/Core/UFField.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3acfd1d2bd5f1e54f8aee7f96328cb58)
+ * (GenCodeChecksum:4e6400ee9a0d081541d8e14366129502)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which form does this field belong to.
*
- * @var int unsigned
+ * @var int
*/
public $uf_group_id;
/**
* Is this field currently shareable? If false, hide the field for all sharing contexts.
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* the field is view only and not editable in user forms.
*
- * @var boolean
+ * @var bool
*/
public $is_view;
/**
* Is this field required when included in a user or registration form?
*
- * @var boolean
+ * @var bool
*/
public $is_required;
/**
* Is this field included as a column in the selector table?
*
- * @var boolean
+ * @var bool
*/
public $in_selector;
/**
* Is this field included search form of profile?
*
- * @var boolean
+ * @var bool
*/
public $is_searchable;
/**
* Location type of this mapping, if required
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
/**
* Phone Type Id, if required
*
- * @var int unsigned
+ * @var int
*/
public $phone_type_id;
/**
* Website Type Id, if required
*
- * @var int unsigned
+ * @var int
*/
public $website_type_id;
/**
* Is this field reserved for use by some other CiviCRM functionality?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Include in multi-record listing?
*
- * @var boolean
+ * @var bool
*/
public $is_multi_summary;
'table' => 'civicrm_uf_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'field_name' => [
'name' => 'field_name',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_BAO_UFField::getAvailableFieldTitles',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::ufVisibility',
- ]
+ ],
],
'in_selector' => [
'name' => 'in_selector',
'pseudoconstant' => [
'optionGroupName' => 'phone_type',
'optionEditPath' => 'civicrm/admin/options/phone_type',
- ]
+ ],
],
'website_type_id' => [
'name' => 'website_type_id',
'pseudoconstant' => [
'optionGroupName' => 'website_type',
'optionEditPath' => 'civicrm/admin/options/website_type',
- ]
+ ],
],
'label' => [
'name' => 'label',
*
* Generated from xml/schema/CRM/Core/UFGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0f78fb49440e1cf5d43fd3db5a43ee7e)
+ * (GenCodeChecksum:2a382dd695bc7d2ad3dca96996c5258b)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this form currently active? If false, hide all related fields for all sharing contexts.
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Group id, foreign key from civicrm_group
*
- * @var int unsigned
+ * @var int
*/
public $limit_listings_group_id;
/**
* foreign key to civicrm_group_id
*
- * @var int unsigned
+ * @var int
*/
public $add_to_group_id;
/**
* Should a CAPTCHA widget be included this Profile form.
*
- * @var boolean
+ * @var bool
*/
public $add_captcha;
/**
* Do we want to map results from this profile.
*
- * @var boolean
+ * @var bool
*/
public $is_map;
/**
* Should edit link display in profile selector
*
- * @var boolean
+ * @var bool
*/
public $is_edit_link;
/**
* Should we display a link to the website profile in profile selector
*
- * @var boolean
+ * @var bool
*/
public $is_uf_link;
/**
* Should we update the contact record if we find a duplicate
*
- * @var boolean
+ * @var bool
*/
public $is_update_dupe;
/**
* Should we create a cms user for this profile
*
- * @var boolean
+ * @var bool
*/
public $is_cms_user;
/**
* Is this group reserved for use by some other CiviCRM functionality?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* FK to civicrm_contact, who created this UF group
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* Should we include proximity search feature in this profile search form?
*
- * @var boolean
+ * @var bool
*/
public $is_proximity_search;
/**
* Should a Cancel button be included in this Profile form.
*
- * @var boolean
+ * @var bool
*/
public $add_cancel_button;
*
* Generated from xml/schema/CRM/Core/UFJoin.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:09aaa3fd826c1b3407d39966f0f11aa7)
+ * (GenCodeChecksum:00acc4bbb42aee2a24981b30456458c1)
*/
/**
/**
* Unique table ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this join currently active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* Which form does this field belong to.
*
- * @var int unsigned
+ * @var int
*/
public $uf_group_id;
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_BAO_UFJoin::entityTables',
- ]
+ ],
],
'entity_id' => [
'name' => 'entity_id',
'table' => 'civicrm_uf_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'module_data' => [
'name' => 'module_data',
*
* Generated from xml/schema/CRM/Core/UFMatch.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3dbbb5d21dec55536826e465629f7174)
+ * (GenCodeChecksum:b7305bf7df97967d214db393a34f740f)
*/
/**
/**
* System generated ID.
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this match entry for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* UF ID
*
- * @var int unsigned
+ * @var int
*/
public $uf_id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'uf_id' => [
'name' => 'uf_id',
*
* Generated from xml/schema/CRM/Core/Website.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3c7acea3980658a252658fd11578cfbe)
+ * (GenCodeChecksum:22c11a2bc194d075912df3279acc6a97)
*/
/**
/**
* Unique Website ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Which Website type does this website belong to.
*
- * @var int unsigned
+ * @var int
*/
public $website_type_id;
'pseudoconstant' => [
'optionGroupName' => 'website_type',
'optionEditPath' => 'civicrm/admin/options/website_type',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/WordReplacement.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:df2cde8fb1f65a25db724d35387a1342)
+ * (GenCodeChecksum:1f2d0542e46494b542dce1c0132a1643)
*/
/**
/**
* Word replacement ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this entry active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* FK to Domain ID. This is for Domain specific word replacement
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getWordReplacementMatchType',
- ]
+ ],
],
'domain_id' => [
'name' => 'domain_id',
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Core/Worldregion.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f326bc6047454a630b352baf190b0cac)
+ * (GenCodeChecksum:b607c0ba0b25b3f785779384fc6a6887)
*/
/**
/**
* Country Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Have we already done this search
*
- * @var boolean
+ * @var bool
*/
protected $_done;
'filter_type' => 'xml',
'filter_path' => "{$civicrm_root}/packages/IDS/default_filter.xml",
'tmp_path' => $tmpDir,
- 'HTML_Purifier_Path' => $civicrm_root . '/vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php',
+ 'HTML_Purifier_Path' => $civicrm_root . 'packages/IDS/vendors/htmlpurifer/HTMLPurifier.auto.php',
'HTML_Purifier_Cache' => $tmpDir,
'scan_keys' => '',
'exceptions' => ['__utmz', '__utmc'],
* so the display routine needs to not do any work. (The
* parent object takes care of the display)
*
- * @var boolean
+ * @var bool
*/
protected $_embedded = FALSE;
* Are we in print mode? if so we need to modify the display
* functionality to do a minimal display :)
*
- * @var boolean
+ * @var bool
*/
protected $_print = FALSE;
/**
* Is this user someone with access for the entire system.
*
- * @var boolean
+ * @var bool
*/
protected $_viewAdminUser = FALSE;
protected $_editAdminUser = FALSE;
/**
* Am in in view permission or edit permission?
- * @var boolean
+ *
+ * @var bool
*/
protected $_viewPermission = FALSE;
protected $_editPermission = FALSE;
/**
* Is this user someone with access for the entire system.
*
- * @var boolean
+ * @var bool
*/
protected $_viewAdminUser = FALSE;
protected $_editAdminUser = FALSE;
/**
* Am in in view permission or edit permission?
- * @var boolean
+ * @var bool
*/
protected $_viewPermission = FALSE;
protected $_editPermission = FALSE;
/**
* Is this user someone with access for the entire system.
*
- * @var boolean
+ * @var bool
*/
protected $_viewAdminUser = FALSE;
protected $_editAdminUser = FALSE;
/**
* Am in in view permission or edit permission?
- * @var boolean
+ * @var bool
*/
protected $_viewPermission = FALSE;
protected $_editPermission = FALSE;
/**
* Is this user someone with access for the entire system.
*
- * @var boolean
+ * @var bool
*/
protected $_viewAdminUser = FALSE;
protected $_editAdminUser = FALSE;
/**
* Am in in view permission or edit permission?
- * @var boolean
+ *
+ * @var bool
*/
protected $_viewPermission = FALSE;
protected $_editPermission = FALSE;
/**
* Whether the snippets array has been sorted
*
- * @var boolean
+ * @var bool
*/
public $_isSorted;
/**
* Whether the file has a column header or not
*
- * @var boolean
+ * @var bool
*/
protected $_haveColumnHeader;
*
* Generated from xml/schema/CRM/Cxn/Cxn.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:999790d380fa004a25265a1a0126fb95)
+ * (GenCodeChecksum:bd6f3b0785ec9b05984d8ad32f3b8464)
*/
/**
/**
* Connection ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is connection currently enabled?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Dedupe/Exception.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1f39e9ee1f80da1b62c054f6ca4119c5)
+ * (GenCodeChecksum:eec5ad673402f603903d6f35ad1bcd06)
*/
/**
/**
* Unique dedupe exception id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id1;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id2;
*
* Generated from xml/schema/CRM/Dedupe/Rule.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:99420d466d2982510873b69c179fd9f5)
+ * (GenCodeChecksum:a7697e9d93641b3240e23f97f4f92329)
*/
/**
/**
* Unique dedupe rule id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The id of the rule group this rule belongs to
*
- * @var int unsigned
+ * @var int
*/
public $dedupe_rule_group_id;
/**
* The length of the matching substring
*
- * @var int unsigned
+ * @var int
*/
public $rule_length;
*
* Generated from xml/schema/CRM/Dedupe/RuleGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:85fc439e89d4d0dfd403efdd1cf67531)
+ * (GenCodeChecksum:a0c7d9e893a3aec240db9ec4b0e8729d)
*/
/**
/**
* Unique dedupe rule group id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this a reserved rule - a rule group that has been optimized and cannot be changed by the admin
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
'keyColumn' => 'name',
'labelColumn' => 'label',
'condition' => 'parent_id IS NULL',
- ]
+ ],
],
'threshold' => [
'name' => 'threshold',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getDedupeRuleTypes',
- ]
+ ],
],
'name' => [
'name' => 'name',
// explicitly set to NULL if not 1 or 0 as part of grandfathering out the mystical '2' value.
$isSelected = NULL;
}
- $dupePairs = self::getDuplicatePairs($rgid, $gid, $reloadCacheIfEmpty, $batchLimit, $isSelected, '', ($mode == 'aggressive'), $criteria, $checkPermissions);
+ $dupePairs = self::getDuplicatePairs($rgid, $gid, $reloadCacheIfEmpty, $batchLimit, $isSelected, ($mode == 'aggressive'), $criteria, $checkPermissions);
$cacheParams = [
'cache_key_string' => self::getMergeCacheKeyString($rgid, $gid, $criteria, $checkPermissions),
* @param int $batchLimit
* @param bool $isSelected
* Limit to selected pairs.
- * @param array|string $orderByClause
* @param bool $includeConflicts
* @param array $criteria
* Additional criteria to narrow down the merge group.
*
* @return array
* Array of matches meeting the criteria.
+ *
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
- public static function getDuplicatePairs($rule_group_id, $group_id, $reloadCacheIfEmpty, $batchLimit, $isSelected, $orderByClause = '', $includeConflicts = TRUE, $criteria = [], $checkPermissions = TRUE, $searchLimit = 0) {
+ public static function getDuplicatePairs($rule_group_id, $group_id, $reloadCacheIfEmpty, $batchLimit, $isSelected, $includeConflicts = TRUE, $criteria = [], $checkPermissions = TRUE, $searchLimit = 0) {
$where = self::getWhereString($isSelected);
$cacheKeyString = self::getMergeCacheKeyString($rule_group_id, $group_id, $criteria, $checkPermissions);
$join = self::getJoinOnDedupeTable();
- $dupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, $join, $where, 0, $batchLimit, [], $orderByClause, $includeConflicts);
+ $dupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, $join, $where, 0, $batchLimit, [], '', $includeConflicts);
if (empty($dupePairs) && $reloadCacheIfEmpty) {
// If we haven't found any dupes, probably cache is empty.
// Try filling cache and give another try. We don't need to specify include conflicts here are there will not be any
// until we have done some processing.
CRM_Core_BAO_PrevNextCache::refillCache($rule_group_id, $group_id, $cacheKeyString, $criteria, $checkPermissions, $searchLimit);
- $dupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, $join, $where, 0, $batchLimit, [], $orderByClause, $includeConflicts);
+ $dupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, $join, $where, 0, $batchLimit, [], '', $includeConflicts);
return $dupePairs;
}
return $dupePairs;
*
* @return array
* Array of event summary values
+ *
+ * @throws \CiviCRM_API3_Exception
*/
public static function getEventSummary() {
$eventSummary = $eventIds = [];
// get permission and include them here
// does not scale, but rearranging code for now
// FIXME in a future release
- $permissions = CRM_Event_BAO_Event::checkPermission();
+ $permissions = self::getAllPermissions();
$validEventIDs = '';
if (empty($permissions[CRM_Core_Permission::VIEW])) {
$eventSummary['total_events'] = 0;
*
* Generated from xml/schema/CRM/Event/Cart/Cart.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:480e2fc6225765f7ff4930376c1ed70f)
+ * (GenCodeChecksum:71454cbda07a2fefd75041815b95ed0c)
*/
/**
/**
* Cart Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_contact who created this cart
*
- * @var int unsigned
+ * @var int
*/
public $user_id;
/**
- * @var boolean
+ * @var bool
*/
public $completed;
*
* Generated from xml/schema/CRM/Event/Cart/EventInCart.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0f1e8db14667dfe6351ce2610d4431bd)
+ * (GenCodeChecksum:b9da5d3acb0b71b79cc3f8d2f7e5ec50)
*/
/**
/**
* Event In Cart Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Event ID
*
- * @var int unsigned
+ * @var int
*/
public $event_id;
/**
* FK to Event Cart ID
*
- * @var int unsigned
+ * @var int
*/
public $event_cart_id;
*
* Generated from xml/schema/CRM/Event/Event.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:950e07f412225a94ad11a8220a8f2f19)
+ * (GenCodeChecksum:887208d4102061a0f26eda2a6f84ea09)
*/
/**
/**
* Event
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Event Type ID.Implicit FK to civicrm_option_value where option_group = event_type.
*
- * @var int unsigned
+ * @var int
*/
public $event_type_id;
/**
* Should we expose the participant list? Implicit FK to civicrm_option_value where option_group = participant_listing.
*
- * @var int unsigned
+ * @var int
*/
public $participant_listing_id;
/**
* Public events will be included in the iCal feeds. Access to private event information may be limited using ACLs.
*
- * @var boolean
+ * @var bool
*/
public $is_public;
/**
* If true, include registration link on Event Info page.
*
- * @var boolean
+ * @var bool
*/
public $is_online_registration;
/**
* Maximum number of registered participants to allow. After max is reached, a custom Event Full message is displayed. If NULL, allow unlimited number of participants.
*
- * @var int unsigned
+ * @var int
*/
public $max_participants;
/**
* If true, one or more fee amounts must be set and a Payment Processor must be configured for Online Event Registration.
*
- * @var boolean
+ * @var bool
*/
public $is_monetary;
/**
* Financial type assigned to paid event registrations for this event. Required if is_monetary is true.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* Include a map block on the Event Information page when geocode info is available and a mapping provider has been specified?
*
- * @var boolean
+ * @var bool
*/
public $is_map;
/**
* Is this Event enabled or disabled/cancelled?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* If true, show event location.
*
- * @var boolean
+ * @var bool
*/
public $is_show_location;
/**
* FK to Location Block ID
*
- * @var int unsigned
+ * @var int
*/
public $loc_block_id;
/**
* Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.
*
- * @var int unsigned
+ * @var int
*/
public $default_role_id;
/**
* If true, confirmation is automatically emailed to contact on successful registration.
*
- * @var boolean
+ * @var bool
*/
public $is_email_confirm;
/**
* FK to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $default_fee_id;
/**
* FK to civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $default_discount_fee_id;
/**
* if true - allows the user to send payment directly to the org later
*
- * @var boolean
+ * @var bool
*/
public $is_pay_later;
/**
* is partial payment enabled for this event
*
- * @var boolean
+ * @var bool
*/
public $is_partial_payment;
/**
* if true - allows the user to register multiple participants for event
*
- * @var boolean
+ * @var bool
*/
public $is_multiple_registrations;
/**
* Maximum number of additional participants that can be registered on a single booking
*
- * @var int unsigned
+ * @var int
*/
public $max_additional_participants;
/**
* if true - allows the user to register multiple registrations from same email address.
*
- * @var boolean
+ * @var bool
*/
public $allow_same_participant_emails;
/**
* Whether the event has waitlist support.
*
- * @var boolean
+ * @var bool
*/
public $has_waitlist;
/**
* Whether participants require approval before they can finish registering.
*
- * @var boolean
+ * @var bool
*/
public $requires_approval;
/**
* Expire pending but unconfirmed registrations after this many hours.
*
- * @var int unsigned
+ * @var int
*/
public $expiration_time;
/**
* Allow self service cancellation or transfer for event?
*
- * @var boolean
+ * @var bool
*/
public $allow_selfcancelxfer;
/**
* Number of hours prior to event start date to allow self-service cancellation or transfer.
*
- * @var int unsigned
+ * @var int
*/
public $selfcancelxfer_time;
/**
* whether the event has template
*
- * @var boolean
+ * @var bool
*/
public $is_template;
/**
* FK to civicrm_contact, who created this event
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* The campaign for which this event has been created.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Can people share the event through social media?
*
- * @var boolean
+ * @var bool
*/
public $is_share;
/**
* If false, the event booking confirmation screen gets skipped
*
- * @var boolean
+ * @var bool
*/
public $is_confirm_enabled;
/**
* Implicit FK to civicrm_event: parent event
*
- * @var int unsigned
+ * @var int
*/
public $parent_event_id;
/**
* Subevent slot label. Implicit FK to civicrm_option_value where option_group = conference_slot.
*
- * @var int unsigned
+ * @var int
*/
public $slot_label_id;
/**
* Rule to use when matching registrations for this event
*
- * @var int unsigned
+ * @var int
*/
public $dedupe_rule_group_id;
/**
* if true than billing block is required this event
*
- * @var boolean
+ * @var bool
*/
public $is_billing_required;
'pseudoconstant' => [
'optionGroupName' => 'event_type',
'optionEditPath' => 'civicrm/admin/options/event_type',
- ]
+ ],
],
'participant_listing_id' => [
'name' => 'participant_listing_id',
'pseudoconstant' => [
'optionGroupName' => 'participant_listing',
'optionEditPath' => 'civicrm/admin/options/participant_listing',
- ]
+ ],
],
'is_public' => [
'name' => 'is_public',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'payment_processor' => [
'name' => 'payment_processor',
'table' => 'civicrm_payment_processor',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'is_map' => [
'name' => 'is_map',
'pseudoconstant' => [
'optionGroupName' => 'participant_role',
'optionEditPath' => 'civicrm/admin/options/participant_role',
- ]
+ ],
],
'intro_text' => [
'name' => 'intro_text',
'description' => ts('Minimum initial amount for partial payment'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_event.min_initial_amount',
'table_name' => 'civicrm_event',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'campaign_id' => [
'name' => 'campaign_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'is_share' => [
'name' => 'is_share',
'keyColumn' => 'id',
'labelColumn' => 'title',
'nameColumn' => 'name',
- ]
+ ],
],
'is_billing_required' => [
'name' => 'is_billing_required',
*
* Generated from xml/schema/CRM/Event/Participant.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:07eafc5db4afa9fe7ca200110727d42f)
+ * (GenCodeChecksum:2c9fa9a933df6d5c4ec745b8031f9297)
*/
/**
/**
* Participant Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Event ID
*
- * @var int unsigned
+ * @var int
*/
public $event_id;
/**
* Participant status ID. FK to civicrm_participant_status_type. Default of 1 should map to status = Registered.
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that
- we store the label value and not the key
+ * we store the label value and not the key
*
* @var text
*/
public $fee_level;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
- * @var boolean
+ * @var bool
*/
public $is_pay_later;
/**
* FK to Participant ID
*
- * @var int unsigned
+ * @var int
*/
public $registered_by_id;
/**
* FK to Discount ID
*
- * @var int unsigned
+ * @var int
*/
public $discount_id;
/**
* The campaign for which this participant has been registered.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Discount Amount
*
- * @var int unsigned
+ * @var int
*/
public $discount_amount;
/**
* FK to civicrm_event_carts
*
- * @var int unsigned
+ * @var int
*/
public $cart_id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $transferred_to_contact_id;
'table' => 'civicrm_participant_status_type',
'keyColumn' => 'id',
'labelColumn' => 'label',
- ]
+ ],
],
'participant_role_id' => [
'name' => 'role_id',
'pseudoconstant' => [
'optionGroupName' => 'participant_role',
'optionEditPath' => 'civicrm/admin/options/participant_role',
- ]
+ ],
],
'participant_register_date' => [
'name' => 'register_date',
'type' => CRM_Utils_Type::T_TEXT,
'title' => ts('Fee level'),
'description' => ts('Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that
- we store the label value and not the key
- '),
+ we store the label value and not the key'),
'import' => TRUE,
'where' => 'civicrm_participant.fee_level',
'headerPattern' => '/^(f(ee\s)?level)$/i',
'description' => ts('actual processor fee if known - may be 0.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_participant.fee_amount',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'participant_campaign_id' => [
'name' => 'campaign_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'discount_amount' => [
'name' => 'discount_amount',
*
* Generated from xml/schema/CRM/Event/ParticipantPayment.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:33976e80c23c2f9eeaa844c812004b42)
+ * (GenCodeChecksum:26f5438e86ca3500888b49650bc6d9e8)
*/
/**
/**
* Participant Payment Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Participant Id (FK)
*
- * @var int unsigned
+ * @var int
*/
public $participant_id;
/**
* FK to contribution table.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
*
* Generated from xml/schema/CRM/Event/ParticipantStatusType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8279655ecdaf4a9ca6a0a3a76e945644)
+ * (GenCodeChecksum:a42abc9dbf891aa6cbb6513ca18067b9)
*/
/**
/**
* unique participant status type id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* whether this is a status type required by the system
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* whether this status type is active
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* whether this status type is counted against event size limit
*
- * @var boolean
+ * @var bool
*/
public $is_counted;
/**
* controls sort order
*
- * @var int unsigned
+ * @var int
*/
public $weight;
/**
* whether the status type is visible to the public, an implicit foreign key to option_value.value related to the `visibility` option_group
*
- * @var int unsigned
+ * @var int
*/
public $visibility_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Event_PseudoConstant::participantStatusClassOptions',
- ]
+ ],
],
'is_reserved' => [
'name' => 'is_reserved',
'pseudoconstant' => [
'optionGroupName' => 'visibility',
'optionEditPath' => 'civicrm/admin/options/visibility',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
/**
* Is this the first page?
*
- * @var boolean
+ * @var bool
*/
protected $_first = FALSE;
/**
* Are we in single form mode or wizard mode?
*
- * @var boolean
+ * @var bool
*/
protected $_single;
/**
* Are we actually managing an event template?
- * @var boolean
+ * @var bool
*/
protected $_isTemplate = FALSE;
$this->addElement('submit', $this->getButtonName('submit'), ts('Add Discount Set to Fee Table'),
['class' => 'crm-form-submit cancel']
);
- if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (Civi::settings()->get('deferred_revenue_enabled')) {
$deferredFinancialType = CRM_Financial_BAO_FinancialAccount::getDeferredFinancialType();
$this->assign('deferredFinancialType', array_keys($deferredFinancialType));
}
/**
* The values for the quickconfig for priceset.
*
- * @var boolean
+ * @var bool
*/
public $_quickConfig = NULL;
* Are we operating in "single mode", i.e. adding / editing only
* one participant record, or is this a batch add operation
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
$contributionParams = ['skipCleanMoney' => TRUE];
$lineItem = [];
$additionalParticipantDetails = [];
- if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (Civi::settings()->get('deferred_revenue_enabled')) {
$eventStartDate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_eventId, 'start_date');
if (strtotime($eventStartDate) > strtotime(date('Ymt'))) {
$contributionParams['revenue_recognition_date'] = date('Ymd', strtotime($eventStartDate));
/**
* Is participant able to walk registration wizard.
*
- * @var Boolean
+ * @var bool
*/
public $_allowConfirmation;
/**
* Is participant requires approval.
*
- * @var Boolean
+ * @var bool
*/
public $_requireApproval;
/**
* Is event configured for waitlist.
*
- * @var Boolean
+ * @var bool
*/
public $_allowWaitlist;
/**
* Is event already full.
*
- * @var boolean
+ * @var bool
*
*/
);
}
- if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (Civi::settings()->get('deferred_revenue_enabled')) {
$eventStartDate = CRM_Utils_Array::value(
'start_date',
CRM_Utils_Array::value(
/**
* Show fee block or not.
*
- * @var boolean determines if fee block should be shown or hidden
+ * @var bool determines if fee block should be shown or hidden
*/
public $_noFees;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
CRM_Contact_BAO_Query::processSpecialFormValue($this->_formValues, ['participant_status_id']);
}
- if (empty($this->_formValues)) {
+ if (empty($formValues)) {
$formValues = $this->controller->exportValues($this->_name);
}
* return @void
*/
public function transferParticipant($params) {
- $isBackOfficeArg = $this->isBackoffice ? '&is_backoffice=1' : '';
CRM_Utils_System::redirect(CRM_Utils_System::url(
'civicrm/event/selfsvctransfer',
[
'action' => 'add',
'pid' => $this->_participant_id,
'cs' => $this->_userChecksum,
+ 'is_backoffice' => $this->isBackoffice,
]
));
}
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. deleting one
* specific participation?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_noEmails = FALSE;
* Are we operating in "single mode", i.e. printing letter to one
* specific participant?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
/**
* Whether the file has a column header or not
*
- * @var boolean
+ * @var bool
*/
protected $_haveColumnHeader;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
/**
* Download Exported file.
- * @var boolean
+ * @var bool
*/
public $_isDownloadFile;
*
*/
public static function checkFinancialTypeHasDeferred($params, $contributionID = NULL, $priceSetFields = NULL) {
- if (!CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (!Civi::settings()->get('deferred_revenue_enabled')) {
return FALSE;
}
$recognitionDate = CRM_Utils_Array::value('revenue_recognition_date', $params);
*
* @throws \API_Exception
* @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
public static function create($params) {
$contribution = civicrm_api3('Contribution', 'getsingle', ['id' => $params['contribution_id']]);
}
if ($isPaymentCompletesContribution) {
- civicrm_api3('Contribution', 'completetransaction', ['id' => $contribution['id']]);
- // Get the trxn
- $trxnId = CRM_Core_BAO_FinancialTrxn::getFinancialTrxnId($contribution['id'], 'DESC');
- $ftParams = ['id' => $trxnId['financialTrxnId']];
- $trxn = CRM_Core_BAO_FinancialTrxn::retrieve($ftParams, CRM_Core_DAO::$_nullArray);
+ if ($contributionStatus == 'Pending refund') {
+ // Ideally we could still call completetransaction as non-payment related actions should
+ // be outside this class. However, for now we just update the contribution here.
+ // Unit test cover in CRM_Event_BAO_AdditionalPaymentTest::testTransactionInfo.
+ civicrm_api3('Contribution', 'create',
+ [
+ 'id' => $contribution['id'],
+ 'contribution_status_id' => 'Completed',
+ ]
+ );
+ }
+ else {
+ civicrm_api3('Contribution', 'completetransaction', ['id' => $contribution['id']]);
+ // Get the trxn
+ $trxnId = CRM_Core_BAO_FinancialTrxn::getFinancialTrxnId($contribution['id'], 'DESC');
+ $ftParams = ['id' => $trxnId['financialTrxnId']];
+ $trxn = CRM_Core_BAO_FinancialTrxn::retrieve($ftParams, CRM_Core_DAO::$_nullArray);
+ }
}
elseif ($contributionStatus === 'Pending') {
civicrm_api3('Contribution', 'create',
*
* Generated from xml/schema/CRM/Financial/Currency.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:19729d25ea5ad98f3fc2551acab9fa7a)
+ * (GenCodeChecksum:5490d115dbd495ebb39ce46a4149cbc2)
*/
/**
/**
* Currency Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
*
* Generated from xml/schema/CRM/Financial/EntityFinancialAccount.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f0a99b56fe094d649cc56eb930b4ae23)
+ * (GenCodeChecksum:3e195b6b8f9a99b338219723c2b509a7)
*/
/**
/**
* ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Links to an id in the entity_table, such as vid in civicrm_financial_type
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to a new civicrm_option_value (account_relationship)
*
- * @var int unsigned
+ * @var int
*/
public $account_relationship;
/**
* FK to the financial_account_id
*
- * @var int unsigned
+ * @var int
*/
public $financial_account_id;
'pseudoconstant' => [
'optionGroupName' => 'account_relationship',
'optionEditPath' => 'civicrm/admin/options/account_relationship',
- ]
+ ],
],
'financial_account_id' => [
'name' => 'financial_account_id',
'table' => 'civicrm_financial_account',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Financial/EntityFinancialTrxn.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b7687297d632a4658b6686a5b540f974)
+ * (GenCodeChecksum:14582d82c08fe5e2c4242e4bafc146d4)
*/
/**
/**
* ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
public $entity_table;
/**
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
- * @var int unsigned
+ * @var int
*/
public $financial_trxn_id;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_entity_financial_trxn.amount',
*
* Generated from xml/schema/CRM/Financial/FinancialAccount.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:99e6943d33c4b4081a8d74e611589dd7)
+ * (GenCodeChecksum:be1c13919aa1ff84b28ef61832132842)
*/
/**
/**
* ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID that is responsible for the funds in this account
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* pseudo FK into civicrm_option_value.
*
- * @var int unsigned
+ * @var int
*/
public $financial_account_type_id;
/**
* Parent ID in account hierarchy
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
/**
* Is this a header account which does not allow transactions to be posted against it directly, but only to its sub-accounts?
*
- * @var boolean
+ * @var bool
*/
public $is_header_account;
/**
* Is this account tax-deductible?
*
- * @var boolean
+ * @var bool
*/
public $is_deductible;
/**
* Is this account for taxes?
*
- * @var boolean
+ * @var bool
*/
public $is_tax;
/**
* Is this a predefined system object?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this account the default one (or default tax one) for its financial_account_type?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
'pseudoconstant' => [
'optionGroupName' => 'financial_account_type',
'optionEditPath' => 'civicrm/admin/options/financial_account_type',
- ]
+ ],
],
'accounting_code' => [
'name' => 'accounting_code',
'description' => ts('The percentage of the total_amount that is due for this tax.'),
'precision' => [
10,
- 8
+ 8,
],
'where' => 'civicrm_financial_account.tax_rate',
'table_name' => 'civicrm_financial_account',
*
* Generated from xml/schema/CRM/Financial/FinancialItem.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8ebea76ed5ae2b3e7fe0ddafa55a4aed)
+ * (GenCodeChecksum:49a455dafedd73005f06e17dcc99c365)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID of contact the item is from
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to civicrm_financial_account
*
- * @var int unsigned
+ * @var int
*/
public $financial_account_id;
/**
* Payment status: test, paid, part_paid, unpaid (if empty assume unpaid)
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* The specific source item that is responsible for the creation of this financial_item
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_financial_item.amount',
'headerPattern' => '/unit?.?amoun/i',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'financial_account_id' => [
'name' => 'financial_account_id',
'table' => 'civicrm_financial_account',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'status_id' => [
'name' => 'status_id',
'pseudoconstant' => [
'optionGroupName' => 'financial_item_status',
'optionEditPath' => 'civicrm/admin/options/financial_item_status',
- ]
+ ],
],
'entity_table' => [
'name' => 'entity_table',
*
* Generated from xml/schema/CRM/Financial/FinancialTrxn.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d30cfdb7f54eac46852246cf30654a97)
+ * (GenCodeChecksum:e130935b88e96b99dc58cb9003666e18)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to financial_account table.
*
- * @var int unsigned
+ * @var int
*/
public $from_financial_account_id;
/**
* FK to financial_financial_account table.
*
- * @var int unsigned
+ * @var int
*/
public $to_financial_account_id;
/**
* Is this entry either a payment or a reversal of a payment?
*
- * @var boolean
+ * @var bool
*/
public $is_payment;
/**
* pseudo FK to civicrm_option_value of contribution_status_id option_group
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* Payment Processor for this financial transaction
*
- * @var int unsigned
+ * @var int
*/
public $payment_processor_id;
/**
* FK to payment_instrument option group values
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
/**
* FK to accept_creditcard option group values
*
- * @var int unsigned
+ * @var int
*/
public $card_type_id;
'table' => 'civicrm_financial_account',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'to_financial_account_id' => [
'name' => 'to_financial_account_id',
'table' => 'civicrm_financial_account',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'trxn_date' => [
'name' => 'trxn_date',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_financial_trxn.total_amount',
'table_name' => 'civicrm_financial_trxn',
'description' => ts('actual processor fee if known - may be 0.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_financial_trxn.fee_amount',
'table_name' => 'civicrm_financial_trxn',
'description' => ts('actual funds transfer amount. total less fees. if processor does not report actual fee during transaction, this is set to total_amount.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_financial_trxn.net_amount',
'table_name' => 'civicrm_financial_trxn',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'is_payment' => [
'name' => 'is_payment',
'pseudoconstant' => [
'optionGroupName' => 'contribution_status',
'optionEditPath' => 'civicrm/admin/options/contribution_status',
- ]
+ ],
],
'payment_processor_id' => [
'name' => 'payment_processor_id',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
'financial_trxn_card_type_id' => [
'name' => 'card_type_id',
'pseudoconstant' => [
'optionGroupName' => 'accept_creditcard',
'optionEditPath' => 'civicrm/admin/options/accept_creditcard',
- ]
+ ],
],
'financial_trxn_check_number' => [
'name' => 'check_number',
*
* Generated from xml/schema/CRM/Financial/FinancialType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:760550280aaa0da48232ebdfb11170f9)
+ * (GenCodeChecksum:9395c8fe3d749ad60136065301a5c44f)
*/
/**
/**
* ID of original financial_type so you can search this table by the financial_type.id and then select the relevant version based on the timestamp
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this financial type tax-deductible? If true, contributions of this type may be fully OR partially deductible - non-deductible amount is stored in the Contribution record.
*
- * @var boolean
+ * @var bool
*/
public $is_deductible;
/**
* Is this a predefined system object?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Financial/PaymentProcessor.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:83f0467b531d70e84945e9c55a8824b6)
+ * (GenCodeChecksum:2d3189beedf083b35929eded03907d9f)
*/
/**
/**
* Payment Processor ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this match entry for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
public $description;
/**
- * @var int unsigned
+ * @var int
*/
public $payment_processor_type_id;
/**
* Is this processor active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this processor the default?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Is this processor for a test site?
*
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
* Billing Mode (deprecated)
*
- * @var int unsigned
+ * @var int
*/
public $billing_mode;
/**
* Can process recurring contributions
*
- * @var boolean
+ * @var bool
*/
public $is_recur;
/**
* Payment Type: Credit or Debit (deprecated)
*
- * @var int unsigned
+ * @var int
*/
public $payment_type;
/**
* Payment Instrument ID
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'name' => [
'name' => 'name',
'table' => 'civicrm_payment_processor_type',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
'accepted_credit_cards' => [
'name' => 'accepted_credit_cards',
*
* Generated from xml/schema/CRM/Financial/PaymentProcessorType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b8290611e8abcbd771b1006fd34e3ec5)
+ * (GenCodeChecksum:f412f0beac8a6387450f8fe19279d0ce)
*/
/**
/**
* Payment Processor Type ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this processor active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this processor the default?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Billing Mode (deprecated)
*
- * @var int unsigned
+ * @var int
*/
public $billing_mode;
/**
* Can process recurring contributions
*
- * @var boolean
+ * @var bool
*/
public $is_recur;
/**
* Payment Type: Credit or Debit (deprecated)
*
- * @var int unsigned
+ * @var int
*/
public $payment_type;
/**
* Payment Instrument ID
*
- * @var int unsigned
+ * @var int
*/
public $payment_instrument_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::billingMode',
- ]
+ ],
],
'is_recur' => [
'name' => 'is_recur',
'pseudoconstant' => [
'optionGroupName' => 'payment_instrument',
'optionEditPath' => 'civicrm/admin/options/payment_instrument',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Financial/PaymentToken.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:13e09ccc4d4ae2dade53c251d4345ed2)
+ * (GenCodeChecksum:9ef72f3d1fba1b5b89841d36382c3eb6)
*/
/**
/**
* Payment Token ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID for the owner of the token
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
- * @var int unsigned
+ * @var int
*/
public $payment_processor_id;
/**
* Contact ID of token creator
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* Flag if its a AR account type.
*
- * @var boolean
+ * @var bool
*/
protected $_isARFlag = FALSE;
/**
* Flag if its a AR account type.
*
- * @var boolean
+ * @var bool
*/
protected $_isARFlag = FALSE;
*
* Generated from xml/schema/CRM/Friend/Friend.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a0a82714195ed8bafcbb12ef6c829521)
+ * (GenCodeChecksum:a662628e986758095dcbfa2e56597acb)
*/
/**
/**
* Friend ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
public $thankyou_text;
/**
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Grant/Grant.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ea60d8cd875ca924d3cc34b4282c8a8a)
+ * (GenCodeChecksum:46934eeb5b7cc864460135cbbf1679ca)
*/
/**
/**
* Unique Grant id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Contact ID of contact record given grant belongs to.
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* Yes/No field stating whether grant report was received by donor.
*
- * @var boolean
+ * @var bool
*/
public $grant_report_received;
/**
* Type of grant. Implicit FK to civicrm_option_value in grant_type option_group.
*
- * @var int unsigned
+ * @var int
*/
public $grant_type_id;
/**
* Id of Grant status.
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* FK to Financial Type.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
'pseudoconstant' => [
'optionGroupName' => 'grant_type',
'optionEditPath' => 'civicrm/admin/options/grant_type',
- ]
+ ],
],
'amount_total' => [
'name' => 'amount_total',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_grant.amount_total',
'description' => ts('Requested grant amount, in original currency (optional).'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_grant.amount_requested',
'dataPattern' => '/^\d+(\.\d{2})?$/',
'description' => ts('Granted amount, in default currency.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_grant.amount_granted',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'rationale' => [
'name' => 'rationale',
'pseudoconstant' => [
'optionGroupName' => 'grant_status',
'optionEditPath' => 'civicrm/admin/options/grant_status',
- ]
+ ],
],
'financial_type_id' => [
'name' => 'financial_type_id',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. deleting one
* specific participation?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
$config = CRM_Core_Config::singleton();
}
- if (property_exists($mailing, 'language') && $mailing->language && $mailing->language != 'en_US') {
+ if (property_exists($mailing, 'language') && $mailing->language && $mailing->language != CRM_Core_I18n::getLocale()) {
$swapLang = CRM_Utils_AutoClean::swap('global://dbLocale?getter', 'call://i18n/setLocale', $mailing->language);
}
*
* Generated from xml/schema/CRM/Mailing/BouncePattern.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4c704cc977e01082612050ebc367ce1a)
+ * (GenCodeChecksum:767f24673857e91d2b76de45fce55649)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Type of bounce
*
- * @var int unsigned
+ * @var int
*/
public $bounce_type_id;
*
* Generated from xml/schema/CRM/Mailing/BounceType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:317021d6e37d4d4d6fd91e15aaef8f93)
+ * (GenCodeChecksum:32b467be869aa9e4539fe7f0824f96b3)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Number of bounces of this type required before the email address is put on bounce hold
*
- * @var int unsigned
+ * @var int
*/
public $hold_threshold;
*
* Generated from xml/schema/CRM/Mailing/Mailing.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5a53b90adc8124a3af37701d7a50b822)
+ * (GenCodeChecksum:c6f26fcb49da86f49a4a1ac885070ed6)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which site is this mailing for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* FK to the header component.
*
- * @var int unsigned
+ * @var int
*/
public $header_id;
/**
* FK to the footer component.
*
- * @var int unsigned
+ * @var int
*/
public $footer_id;
/**
* FK to the auto-responder component.
*
- * @var int unsigned
+ * @var int
*/
public $reply_id;
/**
* FK to the unsubscribe component.
*
- * @var int unsigned
+ * @var int
*/
public $unsubscribe_id;
/**
- * @var int unsigned
+ * @var int
*/
public $resubscribe_id;
/**
* FK to the opt-out component.
*
- * @var int unsigned
+ * @var int
*/
public $optout_id;
/**
* Should we track URL click-throughs for this mailing?
*
- * @var boolean
+ * @var bool
*/
public $url_tracking;
/**
* Should we forward replies back to the author?
*
- * @var boolean
+ * @var bool
*/
public $forward_replies;
/**
* Should we enable the auto-responder?
*
- * @var boolean
+ * @var bool
*/
public $auto_responder;
/**
* Should we track when recipients open/read this mailing?
*
- * @var boolean
+ * @var bool
*/
public $open_tracking;
/**
* Has at least one job associated with this mailing finished?
*
- * @var boolean
+ * @var bool
*/
public $is_completed;
/**
* FK to the message template.
*
- * @var int unsigned
+ * @var int
*/
public $msg_template_id;
/**
* Should we overrite VERP address in Reply-To
*
- * @var boolean
+ * @var bool
*/
public $override_verp;
/**
* FK to Contact ID who first created this mailing
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to Contact ID who scheduled this mailing
*
- * @var int unsigned
+ * @var int
*/
public $scheduled_id;
/**
* FK to Contact ID who approved this mailing
*
- * @var int unsigned
+ * @var int
*/
public $approver_id;
/**
* The status of this mailing. Values: none, approved, rejected
*
- * @var int unsigned
+ * @var int
*/
public $approval_status_id;
/**
* Is this mailing archived?
*
- * @var boolean
+ * @var bool
*/
public $is_archived;
/**
* The campaign for which this mailing has been initiated.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
/**
* Remove duplicate emails?
*
- * @var boolean
+ * @var bool
*/
public $dedupe_email;
/**
- * @var int unsigned
+ * @var int
*/
public $sms_provider_id;
/**
* With email_selection_method, determines which email address to use
*
- * @var int unsigned
+ * @var int
*/
public $location_type_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'header_id' => [
'name' => 'header_id',
],
'pseudoconstant' => [
'callback' => 'CRM_Mailing_PseudoConstant::mailingTypes',
- ]
+ ],
],
'from_name' => [
'name' => 'from_name',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Mailing_BAO_Mailing::getTemplateTypeNames',
- ]
+ ],
],
'template_options' => [
'name' => 'template_options',
'pseudoconstant' => [
'optionGroupName' => 'mail_approval_status',
'optionEditPath' => 'civicrm/admin/options/mail_approval_status',
- ]
+ ],
],
'approval_note' => [
'name' => 'approval_note',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::groupVisibility',
- ]
+ ],
],
'campaign_id' => [
'name' => 'campaign_id',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'dedupe_email' => [
'name' => 'dedupe_email',
'table' => 'civicrm_location_type',
'keyColumn' => 'id',
'labelColumn' => 'display_name',
- ]
+ ],
],
'email_selection_method' => [
'name' => 'email_selection_method',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::emailSelectMethods',
- ]
+ ],
],
'language' => [
'name' => 'language',
'optionGroupName' => 'languages',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/languages',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Mailing/MailingAB.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:507182363032ab7340b7d1e7383ce1dd)
+ * (GenCodeChecksum:a45895256f23784bb86ae1b4659abbe6)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The first experimental mailing ("A" condition)
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id_a;
/**
* The second experimental mailing ("B" condition)
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id_b;
/**
* The final, general mailing (derived from A or B)
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id_c;
/**
* Which site is this mailing for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
public $declare_winning_time;
/**
- * @var int unsigned
+ * @var int
*/
public $group_percentage;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Mailing_PseudoConstant::abStatus',
- ]
+ ],
],
'mailing_id_a' => [
'name' => 'mailing_id_a',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Mailing_PseudoConstant::abTestCriteria',
- ]
+ ],
],
'winner_criteria' => [
'name' => 'winner_criteria',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Mailing_PseudoConstant::abWinnerCriteria',
- ]
+ ],
],
'specific_url' => [
'name' => 'specific_url',
*
* Generated from xml/schema/CRM/Mailing/MailingComponent.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:955923daf1ea29949123b9b76bab36da)
+ * (GenCodeChecksum:e3b5498354f50a2badfa4425958511af)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Is this the default component for this component_type?
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Is this property active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::mailingComponents',
- ]
+ ],
],
'subject' => [
'name' => 'subject',
*
* Generated from xml/schema/CRM/Mailing/MailingGroup.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f39d14e245f10652e2fcea603ebc7610)
+ * (GenCodeChecksum:22f18bdbfea712ba8a6e1f0220ffb016)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The ID of a previous mailing to include/exclude recipients.
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id;
/**
* Foreign key to the referenced item.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getMailingGroupTypes',
- ]
+ ],
],
'entity_table' => [
'name' => 'entity_table',
'localizable' => 0,
'pseudoconstant' => [
'callback' => 'CRM_Mailing_BAO_Mailing::mailingGroupEntityTables',
- ]
+ ],
],
'entity_id' => [
'name' => 'entity_id',
*
* Generated from xml/schema/CRM/Mailing/MailingJob.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e362d1178fb0ca6293b31660e24ea375)
+ * (GenCodeChecksum:e7dbe1ca234cec93cb54192911b87297)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The ID of the mailing this Job will send.
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id;
/**
* Is this job for a test mail?
*
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
* Parent job id
*
- * @var int unsigned
+ * @var int
*/
public $parent_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::getMailingJobStatus',
- ]
+ ],
],
'is_test' => [
'name' => 'is_test',
*
* Generated from xml/schema/CRM/Mailing/Recipients.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:321767aa3e7c0ea7aac652b973d9603d)
+ * (GenCodeChecksum:006015b0e117746e7c97d656150badc3)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The ID of the mailing this Job will send.
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id;
/**
* FK to Contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Email
*
- * @var int unsigned
+ * @var int
*/
public $email_id;
/**
* FK to Phone
*
- * @var int unsigned
+ * @var int
*/
public $phone_id;
*
* Generated from xml/schema/CRM/Mailing/Spool.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:db7871e2d5313c106f01f1516beaf898)
+ * (GenCodeChecksum:55c696d855ff602c9e097bd9ccff0971)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* The ID of the Job .
*
- * @var int unsigned
+ * @var int
*/
public $job_id;
*
* Generated from xml/schema/CRM/Mailing/TrackableURL.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e0280e1322178bb6d56a8104589c1415)
+ * (GenCodeChecksum:36f444ad863c1eae8db4e8e1c768eb27)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to the mailing
*
- * @var int unsigned
+ * @var int
*/
public $mailing_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Bounce.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5243c65d5b727e60e1fdedb9fa3e84e2)
+ * (GenCodeChecksum:0b39ada8498cdc95e5eab7a4f060686a)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
/**
* What type of bounce was it?
*
- * @var int unsigned
+ * @var int
*/
public $bounce_type_id;
'table' => 'civicrm_mailing_bounce_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'bounce_reason' => [
'name' => 'bounce_reason',
*
* Generated from xml/schema/CRM/Mailing/Event/Confirm.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:627a4d86b1b115a52592e04270eadc78)
+ * (GenCodeChecksum:dd5f6d9d5ca3115b92e9f87a1d5bf503)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_mailing_event_subscribe
*
- * @var int unsigned
+ * @var int
*/
public $event_subscribe_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Delivered.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0bdd626b315c4ad541239662d6c52a82)
+ * (GenCodeChecksum:6327ad9e20e94a06bd9609fd3f56a3b4)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Forward.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:73d4b00ff9ea00d604d5e83963ba5597)
+ * (GenCodeChecksum:b178f318b31d833f478b236f268cbcec)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
/**
* FK to EventQueue for destination
*
- * @var int unsigned
+ * @var int
*/
public $dest_queue_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Opened.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:226ec9ccc51c88320e1b4108d5a85bf3)
+ * (GenCodeChecksum:77cca50f0bb75aecfc26f8e62037b93d)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Queue.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2b873b4e3dae5279b8b63b6e4de5adc0)
+ * (GenCodeChecksum:6ce46b44932d8dcdbf39af7d91a57a03)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Job
*
- * @var int unsigned
+ * @var int
*/
public $job_id;
/**
* FK to Email
*
- * @var int unsigned
+ * @var int
*/
public $email_id;
/**
* FK to Contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Phone
*
- * @var int unsigned
+ * @var int
*/
public $phone_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Reply.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:651380df4cde36fdfc999b5570cac1f9)
+ * (GenCodeChecksum:0ddff564744f8da4c3d5030ceb692b9c)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Subscribe.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a18362fb8ab1b7cd9b6f5450fcf367f5)
+ * (GenCodeChecksum:3f9398df2e81f38e0a24330928f85b47)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Group
*
- * @var int unsigned
+ * @var int
*/
public $group_id;
/**
* FK to Contact
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
'table' => 'civicrm_group',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
'contact_id' => [
'name' => 'contact_id',
*
* Generated from xml/schema/CRM/Mailing/Event/TrackableURLOpen.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1dd0644af19360b30531b6f23dde78c1)
+ * (GenCodeChecksum:ed0344e6d9483abfca366a5ba9735e56)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
/**
* FK to TrackableURL
*
- * @var int unsigned
+ * @var int
*/
public $trackable_url_id;
*
* Generated from xml/schema/CRM/Mailing/Event/Unsubscribe.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e2a14fa1a63bd3f7b4e4fb4864a8560e)
+ * (GenCodeChecksum:f3f2e48cc72b5cacff2aad1e146e70f8)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to EventQueue
*
- * @var int unsigned
+ * @var int
*/
public $event_queue_id;
/**
* Unsubscribe at org- or group-level
*
- * @var boolean
+ * @var bool
*/
public $org_unsubscribe;
/**
* Scheduled mailing.
*
- * @var boolean
+ * @var bool
*/
public $_scheduled;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
*
* Generated from xml/schema/CRM/Member/Membership.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f292ac185330c17ffa8c647359ab07b4)
+ * (GenCodeChecksum:458e89b098dbf4f91369a293406c38ba)
*/
/**
/**
* Membership Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Membership Type
*
- * @var int unsigned
+ * @var int
*/
public $membership_type_id;
/**
* FK to Membership Status
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* 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.
*
- * @var boolean
+ * @var bool
*/
public $is_override;
/**
* Optional FK to Parent Membership.
*
- * @var int unsigned
+ * @var int
*/
public $owner_membership_id;
public $max_related;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
- * @var boolean
+ * @var bool
*/
public $is_pay_later;
/**
* 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.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_recur_id;
/**
* The campaign for which this membership is attached.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
'table' => 'civicrm_membership_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'join_date' => [
'name' => 'join_date',
'table' => 'civicrm_membership_status',
'keyColumn' => 'id',
'labelColumn' => 'label',
- ]
+ ],
],
'is_override' => [
'name' => 'is_override',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Member/MembershipBlock.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:00a04451a5cee7da1ae6a4c255f40481)
+ * (GenCodeChecksum:0e7f3965fe1382ec1f850a9489b3f236)
*/
/**
/**
* Membership Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_contribution_page.id
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* Optional foreign key to membership_type
*
- * @var int unsigned
+ * @var int
*/
public $membership_type_default;
/**
* Display minimum membership fee
*
- * @var boolean
+ * @var bool
*/
public $display_min_fee;
/**
* Should membership transactions be processed separately
*
- * @var boolean
+ * @var bool
*/
public $is_separate_payment;
/**
* Is membership sign up optional
*
- * @var boolean
+ * @var bool
*/
public $is_required;
/**
* Is this membership_block enabled
*
- * @var boolean
+ * @var bool
*/
public $is_active;
*
* Generated from xml/schema/CRM/Member/MembershipLog.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2ae50fe99b0c911fbe971e12e2bed7ce)
+ * (GenCodeChecksum:82b26091e0c62f81060ae15de5a4a010)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Membership table
*
- * @var int unsigned
+ * @var int
*/
public $membership_id;
/**
* New status assigned to membership by this action. FK to Membership Status
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* FK to Contact ID of person under whose credentials this data modification was made.
*
- * @var int unsigned
+ * @var int
*/
public $modified_id;
/**
* FK to Membership Type.
*
- * @var int unsigned
+ * @var int
*/
public $membership_type_id;
*
* Generated from xml/schema/CRM/Member/MembershipPayment.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1296687b8bc4acb0b1db07fdd131d7ea)
+ * (GenCodeChecksum:63aaccfeac39fe31a88f69693e8b4302)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Membership table
*
- * @var int unsigned
+ * @var int
*/
public $membership_id;
/**
* FK to contribution table.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
*
* Generated from xml/schema/CRM/Member/MembershipStatus.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:125e59b6c34bc9ea478a12c18a66af01)
+ * (GenCodeChecksum:0cb23348cde6fff261da37c8cb309da1)
*/
/**
/**
* Membership Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Does this status aggregate to current members (e.g. New, Renewed, Grace might all be TRUE... while Unrenewed, Lapsed, Inactive would be FALSE).
*
- * @var boolean
+ * @var bool
*/
public $is_current_member;
/**
* Is this status for admin/manual assignment only.
*
- * @var boolean
+ * @var bool
*/
public $is_admin;
/**
* Assign this status to a membership record if no other status match is found.
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Is this membership_status enabled.
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this membership_status reserved.
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::eventDate',
- ]
+ ],
],
'start_event_adjust_unit' => [
'name' => 'start_event_adjust_unit',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::unitList',
- ]
+ ],
],
'start_event_adjust_interval' => [
'name' => 'start_event_adjust_interval',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::eventDate',
- ]
+ ],
],
'end_event_adjust_unit' => [
'name' => 'end_event_adjust_unit',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::unitList',
- ]
+ ],
],
'end_event_adjust_interval' => [
'name' => 'end_event_adjust_interval',
*
* Generated from xml/schema/CRM/Member/MembershipType.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:6652513077f7dc2a13004ef30408a051)
+ * (GenCodeChecksum:371e68c0fca2803c9b273bb25991a060)
*/
/**
/**
* Membership Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this match entry for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Owner organization for this membership type. FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $member_of_contact_id;
/**
* If membership is paid by a contribution - what financial type should be used. FK to civicrm_financial_type.id
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* 0 = No auto-renew option; 1 = Give option, but not required; 2 = Auto-renew required;
*
- * @var boolean
+ * @var bool
*/
public $auto_renew;
/**
* Is this membership_type enabled
*
- * @var boolean
+ * @var bool
*/
public $is_active;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'membership_type' => [
'name' => 'name',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'minimum_fee' => [
'name' => 'minimum_fee',
'description' => ts('Minimum fee for this membership (0 for free/complimentary memberships).'),
'precision' => [
18,
- 9
+ 9,
],
'where' => 'civicrm_membership_type.minimum_fee',
'default' => '0',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::membershipTypeUnitList',
- ]
+ ],
],
'duration_interval' => [
'name' => 'duration_interval',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::periodType',
- ]
+ ],
],
'fixed_period_start_day' => [
'name' => 'fixed_period_start_day',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::memberVisibility',
- ]
+ ],
],
'weight' => [
'name' => 'weight',
],
'pseudoconstant' => [
'callback' => 'CRM_Core_SelectValues::memberAutoRenew',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
$this->assign('membershipTypeId', $this->_id);
- if (CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled')) {
+ if (Civi::settings()->get('deferred_revenue_enabled')) {
$deferredFinancialType = CRM_Financial_BAO_FinancialAccount::getDeferredFinancialType();
$this->assign('deferredFinancialType', array_keys($deferredFinancialType));
}
* Are we operating in "single mode", i.e. deleting one
* specific membership?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_single = FALSE;
* Are we operating in "single mode", i.e. sending email to one
* specific contact?
*
- * @var boolean
+ * @var bool
*/
public $_noEmails = FALSE;
/**
* Is this field required
- * @var boolean
+ * @var bool
*/
public $_required;
/**
* Whether the file has a column header or not
*
- * @var boolean
+ * @var bool
*/
protected $_haveColumnHeader;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
*
* Generated from xml/schema/CRM/PCP/PCP.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4585e6f51f50242cba89fe9325c44c44)
+ * (GenCodeChecksum:e130d04d9fad8bcec628fac504ff9da7)
*/
/**
/**
* Personal Campaign Page ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Contact ID
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
* The Contribution or Event Page which triggered this pcp
*
- * @var int unsigned
+ * @var int
*/
public $page_id;
/**
* The pcp block that this pcp page was created from
*
- * @var int unsigned
+ * @var int
*/
public $pcp_block_id;
/**
- * @var int unsigned
+ * @var int
*/
public $is_thermometer;
/**
- * @var int unsigned
+ * @var int
*/
public $is_honor_roll;
/**
* Is Personal Campaign Page enabled/active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Notify owner via email when someone donates to page?
*
- * @var boolean
+ * @var bool
*/
public $is_notify;
'pseudoconstant' => [
'optionGroupName' => 'pcp_status',
'optionEditPath' => 'civicrm/admin/options/pcp_status',
- ]
+ ],
],
'title' => [
'name' => 'title',
'description' => ts('Goal amount of this Personal Campaign Page.'),
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_pcp.goal_amount',
'table_name' => 'civicrm_pcp',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'is_active' => [
'name' => 'is_active',
*
* Generated from xml/schema/CRM/PCP/PCPBlock.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7cd542a1105ef4cf3ca8596869042754)
+ * (GenCodeChecksum:deacae800c52be5e0de763f8bccf4578)
*/
/**
/**
* PCP block Id
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_contribution_page.id OR civicrm_event.id
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* The entity that this pcp targets
*
- * @var int unsigned
+ * @var int
*/
public $target_entity_id;
/**
* FK to civicrm_uf_group.id. Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?
*
- * @var int unsigned
+ * @var int
*/
public $supporter_profile_id;
/**
* FK to civicrm_option_group with name = PCP owner notifications
*
- * @var int unsigned
+ * @var int
*/
public $owner_notify_id;
/**
* Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?
*
- * @var boolean
+ * @var bool
*/
public $is_approval_needed;
/**
* Does Personal Campaign Page allow using tell a friend?
*
- * @var boolean
+ * @var bool
*/
public $is_tellfriend_enabled;
/**
* Maximum recipient fields allowed in tell a friend
*
- * @var int unsigned
+ * @var int
*/
public $tellfriend_limit;
/**
* Is Personal Campaign Page Block enabled/active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
'pseudoconstant' => [
'optionGroupName' => 'pcp_owner_notify',
'optionEditPath' => 'civicrm/admin/options/pcp_owner_notify',
- ]
+ ],
],
'is_approval_needed' => [
'name' => 'is_approval_needed',
/**
* Are we in single form mode or wizard mode?
*
- * @var boolean
+ * @var bool
*/
public $_single;
*
* Generated from xml/schema/CRM/Pledge/Pledge.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4c4aab1d03d146815017589777121bbb)
+ * (GenCodeChecksum:877e6098c175e69f385b22f61958b70c)
*/
/**
/**
* Pledge ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Foreign key to civicrm_contact.id .
*
- * @var int unsigned
+ * @var int
*/
public $contact_id;
/**
* FK to Financial Type
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* The Contribution Page which triggered this contribution
*
- * @var int unsigned
+ * @var int
*/
public $contribution_page_id;
/**
* Number of time units for recurrence of pledge payments.
*
- * @var int unsigned
+ * @var int
*/
public $frequency_interval;
/**
* Day in the period when the pledge payment is due e.g. 1st of month, 15th etc. Use this to set the scheduled dates for pledge payments.
*
- * @var int unsigned
+ * @var int
*/
public $frequency_day;
/**
* Total number of payments to be made.
*
- * @var int unsigned
+ * @var int
*/
public $installments;
/**
* The maximum number of payment reminders to send for any given payment.
*
- * @var int unsigned
+ * @var int
*/
public $max_reminders;
/**
* Send initial reminder this many days prior to the payment due date.
*
- * @var int unsigned
+ * @var int
*/
public $initial_reminder_day;
/**
* Send additional reminder this many days after last one sent, up to maximum number of reminders.
*
- * @var int unsigned
+ * @var int
*/
public $additional_reminder_day;
/**
* Implicit foreign key to civicrm_option_values in the pledge_status option group.
*
- * @var int unsigned
+ * @var int
*/
public $status_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_test;
/**
* The campaign for which this pledge has been initiated.
*
- * @var int unsigned
+ * @var int
*/
public $campaign_id;
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'pledge_contribution_page_id' => [
'name' => 'contribution_page_id',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_pledge.amount',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_pledge.original_installment_amount',
'export' => TRUE,
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'pledge_frequency_unit' => [
'name' => 'frequency_unit',
'optionGroupName' => 'recur_frequency_units',
'keyColumn' => 'name',
'optionEditPath' => 'civicrm/admin/options/recur_frequency_units',
- ]
+ ],
],
'pledge_frequency_interval' => [
'name' => 'frequency_interval',
'pseudoconstant' => [
'optionGroupName' => 'pledge_status',
'optionEditPath' => 'civicrm/admin/options/pledge_status',
- ]
+ ],
],
'pledge_is_test' => [
'name' => 'is_test',
'table' => 'civicrm_campaign',
'keyColumn' => 'id',
'labelColumn' => 'title',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Pledge/PledgeBlock.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:cdc529b617a76a84e18455737f4e7a03)
+ * (GenCodeChecksum:0ba3eca2bf0f4b6ebd0f9b3617d5bef0)
*/
/**
/**
* Pledge ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to entity table specified in entity_table column.
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* Is frequency interval exposed on the contribution form.
*
- * @var boolean
+ * @var bool
*/
public $is_pledge_interval;
/**
* The maximum number of payment reminders to send for any given payment.
*
- * @var int unsigned
+ * @var int
*/
public $max_reminders;
/**
* Send initial reminder this many days prior to the payment due date.
*
- * @var int unsigned
+ * @var int
*/
public $initial_reminder_day;
/**
* Send additional reminder this many days after last one sent, up to maximum number of reminders.
*
- * @var int unsigned
+ * @var int
*/
public $additional_reminder_day;
/**
* If true - recurring start date is shown.
*
- * @var boolean
+ * @var bool
*/
public $is_pledge_start_date_visible;
/**
* If true - recurring start date is editable.
*
- * @var boolean
+ * @var bool
*/
public $is_pledge_start_date_editable;
*
* Generated from xml/schema/CRM/Pledge/PledgePayment.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:79875dd118415179172c3ac425758b29)
+ * (GenCodeChecksum:afb095a766df0f45f3aed1ff3b24e852)
*/
/**
public static $_log = TRUE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to Pledge table
*
- * @var int unsigned
+ * @var int
*/
public $pledge_id;
/**
* FK to contribution table.
*
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
/**
* The number of payment reminders sent.
*
- * @var int unsigned
+ * @var int
*/
public $reminder_count;
/**
- * @var int unsigned
+ * @var int
*/
public $status_id;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_pledge_payment.scheduled_amount',
'description' => ts('Actual amount that is paid as the Pledged installment amount.'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_pledge_payment.actual_amount',
'keyColumn' => 'name',
'labelColumn' => 'full_name',
'nameColumn' => 'name',
- ]
+ ],
],
'pledge_payment_scheduled_date' => [
'name' => 'scheduled_date',
'pseudoconstant' => [
'optionGroupName' => 'contribution_status',
'optionEditPath' => 'civicrm/admin/options/contribution_status',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact.
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
* Are we operating in "single mode", i.e. deleting one
* specific pledge?
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_single = FALSE;
/**
* Are we restricting ourselves to a single contact
*
- * @var boolean
+ * @var bool
*/
protected $_limit = NULL;
*
* Generated from xml/schema/CRM/Price/LineItem.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:efca4ce3a24803ffca3180f7a81ea6f2)
+ * (GenCodeChecksum:6345c550c1c0605c0c25be1cc0382183)
*/
/**
/**
* Line Item
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* entry in table
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* FK to civicrm_contribution
*
- * @var int unsigned
+ * @var int
*/
public $contribution_id;
/**
* FK to civicrm_price_field
*
- * @var int unsigned
+ * @var int
*/
public $price_field_id;
/**
* Participant count for field
*
- * @var int unsigned
+ * @var int
*/
public $participant_count;
/**
* FK to civicrm_price_field_value
*
- * @var int unsigned
+ * @var int
*/
public $price_field_value_id;
/**
* FK to Financial Type.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_line_item.qty',
'table_name' => 'civicrm_line_item',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_line_item.unit_price',
'table_name' => 'civicrm_line_item',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_line_item.line_total',
'table_name' => 'civicrm_line_item',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'non_deductible_amount' => [
'name' => 'non_deductible_amount',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_line_item.non_deductible_amount',
'headerPattern' => '/non?.?deduct/i',
'description' => ts('tax of each item'),
'precision' => [
20,
- 2
+ 2,
],
'import' => TRUE,
'where' => 'civicrm_line_item.tax_amount',
*
* Generated from xml/schema/CRM/Price/PriceField.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e9ff5a22489167a421efd2f415ba4f58)
+ * (GenCodeChecksum:ccea318a7e83c8fd6d03734e20798b15)
*/
/**
/**
* Price Field
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_price_set
*
- * @var int unsigned
+ * @var int
*/
public $price_set_id;
/**
* Enter a quantity for this field?
*
- * @var boolean
+ * @var bool
*/
public $is_enter_qty;
/**
* Should the price be displayed next to the label for each option?
*
- * @var boolean
+ * @var bool
*/
public $is_display_amounts;
/**
* number of options per line for checkbox and radio
*
- * @var int unsigned
+ * @var int
*/
public $options_per_line;
/**
* Is this price field active
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Is this price field required (value must be > 1)
*
- * @var boolean
+ * @var bool
*/
public $is_required;
/**
* Implicit FK to civicrm_option_group with name = 'visibility'
*
- * @var int unsigned
+ * @var int
*/
public $visibility_id;
],
'pseudoconstant' => [
'callback' => 'CRM_Price_BAO_PriceField::htmlTypes',
- ]
+ ],
],
'is_enter_qty' => [
'name' => 'is_enter_qty',
'pseudoconstant' => [
'optionGroupName' => 'visibility',
'optionEditPath' => 'civicrm/admin/options/visibility',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Price/PriceFieldValue.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a3de204f039daa85984316fae2c60975)
+ * (GenCodeChecksum:6c2bd575335eeb9915683296952b2c3e)
*/
/**
/**
* Price Field Value
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* FK to civicrm_price_field
*
- * @var int unsigned
+ * @var int
*/
public $price_field_id;
/**
* Number of participants per field option
*
- * @var int unsigned
+ * @var int
*/
public $count;
/**
* Max number of participants per field options
*
- * @var int unsigned
+ * @var int
*/
public $max_value;
/**
* FK to Membership Type
*
- * @var int unsigned
+ * @var int
*/
public $membership_type_id;
/**
* Number of terms for this membership
*
- * @var int unsigned
+ * @var int
*/
public $membership_num_terms;
/**
* Is this default price field option
*
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
* Is this price field value active
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* FK to Financial Type.
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* Implicit FK to civicrm_option_group with name = 'visibility'
*
- * @var int unsigned
+ * @var int
*/
public $visibility_id;
'required' => TRUE,
'precision' => [
18,
- 9
+ 9,
],
'where' => 'civicrm_price_field_value.amount',
'table_name' => 'civicrm_price_field_value',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'non_deductible_amount' => [
'name' => 'non_deductible_amount',
'required' => TRUE,
'precision' => [
20,
- 2
+ 2,
],
'where' => 'civicrm_price_field_value.non_deductible_amount',
'headerPattern' => '/non?.?deduct/i',
'pseudoconstant' => [
'optionGroupName' => 'visibility',
'optionEditPath' => 'civicrm/admin/options/visibility',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
*
* Generated from xml/schema/CRM/Price/PriceSet.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a66d639b335e9df4c3133ade2aa16a9b)
+ * (GenCodeChecksum:5dcf30888df8309f20fa347780f16f4d)
*/
/**
/**
* Price Set
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this price-set for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Is this price set active
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* FK to Financial Type(for membership price sets only).
*
- * @var int unsigned
+ * @var int
*/
public $financial_type_id;
/**
* Is set if edited on Contribution or Event Page rather than through Manage Price Sets
*
- * @var boolean
+ * @var bool
*/
public $is_quick_config;
/**
* Is this a predefined system price set (i.e. it can not be deleted, edited)?
*
- * @var boolean
+ * @var bool
*/
public $is_reserved;
/**
* Minimum Amount required for this set.
*
- * @var int unsigned
+ * @var int
*/
public $min_amount;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'name' => [
'name' => 'name',
'table' => 'civicrm_component',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'financial_type_id' => [
'name' => 'financial_type_id',
'table' => 'civicrm_financial_type',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'is_quick_config' => [
'name' => 'is_quick_config',
*
* Generated from xml/schema/CRM/Price/PriceSetEntity.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ba2a78bcd5c6c34e2a81d1bcef776ca3)
+ * (GenCodeChecksum:8bd26effd43fe4ee752addf11e6a4769)
*/
/**
/**
* Price Set Entity
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Item in table
*
- * @var int unsigned
+ * @var int
*/
public $entity_id;
/**
* price set being used
*
- * @var int unsigned
+ * @var int
*/
public $price_set_id;
/**
* The price set is reserved or not.
*
- * @var boolean
+ * @var bool
*/
protected $_isSetReserved = FALSE;
/**
* The price set is reserved or not.
*
- * @var boolean
+ * @var bool
*/
protected $_isSetReserved = FALSE;
/**
* Should we bypass permissions.
*
- * @var boolean
+ * @var bool
*/
protected $_skipPermission;
/**
* Do we enable mapping of users.
*
- * @var boolean
+ * @var bool
*/
protected $_map;
/**
* Do we enable edit link.
*
- * @var boolean
+ * @var bool
*/
protected $_editLink;
/**
* Should we link to the UF Profile.
*
- * @var boolean
+ * @var bool
*/
protected $_linkToUF;
*
* Generated from xml/schema/CRM/Queue/QueueItem.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c9e273e55020d73d90150ef7d6e04312)
+ * (GenCodeChecksum:375c90f10f805de0cc712cad771cf15e)
*/
/**
public static $_log = FALSE;
/**
- * @var int unsigned
+ * @var int
*/
public $id;
*
* Generated from xml/schema/CRM/Report/ReportInstance.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:08099952886e51709d4f1ecbd9feefaf)
+ * (GenCodeChecksum:22eeac140cc540874af36a422c548078)
*/
/**
/**
* Report Instance ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* Which Domain is this instance for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
/**
* Is this entry active?
*
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* FK to contact table.
*
- * @var int unsigned
+ * @var int
*/
public $created_id;
/**
* FK to contact table.
*
- * @var int unsigned
+ * @var int
*/
public $owner_id;
/**
* FK to navigation ID
*
- * @var int unsigned
+ * @var int
*/
public $navigation_id;
/**
* FK to instance ID drilldown to
*
- * @var int unsigned
+ * @var int
*/
public $drilldown_id;
/**
- * @var boolean
+ * @var bool
*/
public $is_reserved;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
'title' => [
'name' => 'title',
/**
* Flag to indicate if result-set is to be stored in a class variable which could be retrieved using getResultSet() method.
*
- * @var boolean
+ * @var bool
*/
protected $_storeResultSet = FALSE;
/**
* When _storeResultSet Flag is set use this var to store result set in form of array
*
- * @var boolean
+ * @var bool
*/
protected $_resultSet = [];
/**
* Variables to hold the acl inner join and where clause
- * @var string|NULL
+ * @var string|null
*/
protected $_aclFrom = NULL;
protected $_aclWhere = NULL;
*
* (it's unclear if this could be merged with outputMode at this stage)
*
- * @var string|NULL
+ * @var string|null
*/
protected $_format;
public $_havingClauses = [];
/**
- * DashBoardRowCount Dashboard row count
- * @var Integer
+ * DashBoardRowCount Dashboard row count.
+ *
+ * @var int
*/
public $_dashBoardRowCount;
/**
* Is this being called without a form controller (ie. the report is being render outside the normal form
- * - e.g the api is retrieving the rows
- * @var boolean
+ * - e.g the api is retrieving the rows.
+ *
+ * @var bool
*/
public $noController = FALSE;
/**
- * Variable to hold the currency alias
- * @var string|NULL
+ * Variable to hold the currency alias.
+ *
+ * @var string|null
*/
protected $_currencyColumn = NULL;
$contriSQL = "SELECT {$contriQuery} {$group} {$this->_having}";
$contriDAO = CRM_Core_DAO::executeQuery($contriSQL);
-
+ $this->addToDeveloperTab($contriSQL);
$totalAmount = $average = $mode = $median = $softTotalAmount = $softAverage = array();
$count = $softCount = 0;
while ($contriDAO->fetch()) {
if ($softCredit) {
$softDAO = CRM_Core_DAO::executeQuery($softSQL);
+ $this->addToDeveloperTab($softSQL);
while ($softDAO->fetch()) {
$softTotalAmount[]
= CRM_Utils_Money::format($softDAO->civicrm_contribution_soft_soft_amount_sum, $softDAO->currency) .
*/
public function buildRows($sql, &$rows) {
$dao = CRM_Core_DAO::executeQuery($sql);
+ $this->addToDeveloperTab($sql);
if (!is_array($rows)) {
$rows = array();
}
$this->customDataFrom();
$contriSQL = "{$this->_select} {$this->_from} {$this->_where} {$this->_groupBy} {$this->_having} {$this->_orderBy} {$this->_limit}";
$contriDAO = CRM_Core_DAO::executeQuery($contriSQL);
+ $this->addToDeveloperTab($contriSQL);
$contriFields = array(
'civicrm_contribution_total_amount_sum',
'civicrm_contribution_total_amount_avg',
*
* Generated from xml/schema/CRM/SMS/Provider.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a24ea48b652eba8827a5275a127df61e)
+ * (GenCodeChecksum:73f7f33374bc59a6251529cd2ba704cf)
*/
/**
/**
* SMS Provider ID
*
- * @var int unsigned
+ * @var int
*/
public $id;
/**
* points to value in civicrm_option_value for group sms_api_type
*
- * @var int unsigned
+ * @var int
*/
public $api_type;
public $api_params;
/**
- * @var boolean
+ * @var bool
*/
public $is_default;
/**
- * @var boolean
+ * @var bool
*/
public $is_active;
/**
* Which Domain is this sms provider for
*
- * @var int unsigned
+ * @var int
*/
public $domain_id;
'table' => 'civicrm_domain',
'keyColumn' => 'id',
'labelColumn' => 'name',
- ]
+ ],
],
];
CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
* Is this profile has searchable field.
* or is any field having in selector true.
*
- * @var boolean.
+ * @var bool.
*/
protected $_hasSearchableORInSelector;
/**
* Upgrade for multilingual.
*
- * @var boolean
+ * @var bool
*/
public $multilingual = FALSE;
}
+ /**
+ * Re-save any valid values from contribute settings into the normal setting
+ * format.
+ *
+ * We render the array of contribution_invoice_settings and any that have
+ * metadata defined we add to the correct key. This is safe to run even if no
+ * settings are to be converted, per the test in
+ * testConvertUpgradeContributeSettings.
+ *
+ * @param $ctx
+ *
+ * @return bool
+ */
+ public static function updateContributeSettings($ctx) {
+ $settings = Civi::settings()->get('contribution_invoice_settings');
+ $metadata = \Civi\Core\SettingsMetadata::getMetadata();
+ $conversions = array_intersect_key((array) $settings, $metadata);
+ foreach ($conversions as $key => $conversion) {
+ Civi::settings()->set($key, $conversion);
+ }
+ return TRUE;
+ }
+
/**
* Do any relevant smart group updates.
*
* (change the x in the function name):
*/
- // /**
- // * Upgrade function.
- // *
- // * @param string $rev
- // */
- // public function upgrade_5_0_x($rev) {
- // $this->addTask(ts('Upgrade DB to %1: SQL', array(1 => $rev)), 'runSql', $rev);
- // $this->addTask('Do the foo change', 'taskFoo', ...);
- // // Additional tasks here...
- // // Note: do not use ts() in the addTask description because it adds unnecessary strings to transifex.
- // // The above is an exception because 'Upgrade DB to %1: SQL' is generic & reusable.
- // }
-
- // public static function taskFoo(CRM_Queue_TaskContext $ctx, ...) {
- // return TRUE;
- // }
+ /**
+ * Upgrade function.
+ *
+ * @param string $rev
+ */
+ public function upgrade_5_15_alpha1($rev) {
+ $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
+ $this->addTask('Fix errant deferred revenue settings', 'updateContributeSettings');
+ }
}
) {
$query = html_entity_decode($query);
+ $config = CRM_Core_Config::singleton();
+ $base = $absolute ? $config->userFrameworkBaseURL : 'internal:/';
+
$url = \Drupal\civicrm\CivicrmHelper::parseURL("{$path}?{$query}");
// Not all links that CiviCRM generates are Drupal routes, so we use the weaker ::fromUri method.
try {
- $url = \Drupal\Core\Url::fromUri("base:{$url['path']}", [
+ $url = \Drupal\Core\Url::fromUri("{$base}{$url['path']}", array(
'query' => $url['query'],
'fragment' => $fragment,
'absolute' => $absolute,
- ])->toString();
+ ))->toString();
}
catch (Exception $e) {
- // @Todo: log to watchdog
- $url = '';
+ \Drupal::logger('civicrm')->error($e->getMessage());
}
// Special case: CiviCRM passes us "*path*?*query*" as a skeleton, but asterisks
*/
public function getCurrentLanguage() {
// Drupal might not be bootstrapped if being called by the REST API.
- if (!class_exists('Drupal')) {
+ if (!class_exists('Drupal') || !\Drupal::hasContainer()) {
return NULL;
}
$e->list[] = 'js/crm.drupal8.js';
}
+ /**
+ * @inheritDoc
+ */
+ public function setUFLocale($civicrm_language) {
+ $langcode = substr(str_replace('_', '', $civicrm_language), 0, 2);
+ $languageManager = \Drupal::languageManager();
+ $languages = $languageManager->getLanguages();
+
+ if (isset($languages[$langcode])) {
+ $languageManager->setConfigOverrideLanguage($languages[$langcode]);
+
+ // Config must be re-initialized to reset the base URL
+ // otherwise links will have the wrong language prefix/domain.
+ $config = CRM_Core_Config::singleton();
+ $config->free();
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function languageNegotiationURL($url, $addLanguagePart = TRUE, $removeLanguagePart = FALSE) {
+ if (empty($url)) {
+ return $url;
+ }
+
+ // Drupal might not be bootstrapped if being called by the REST API.
+ if (!class_exists('Drupal') || !\Drupal::hasContainer()) {
+ return NULL;
+ }
+
+ $language = $this->getCurrentLanguage();
+ if (\Drupal::service('module_handler')->moduleExists('language')) {
+ $config = \Drupal::config('language.negotiation')->get('url');
+
+ //does user configuration allow language
+ //support from the URL (Path prefix or domain)
+ $enabledLanguageMethods = \Drupal::config('language.types')->get('negotiation.language_interface.enabled') ?: [];
+ if (array_key_exists(\Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl::METHOD_ID, $enabledLanguageMethods)) {
+ $urlType = $config['source'];
+
+ //url prefix
+ if ($urlType == \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl::CONFIG_PATH_PREFIX) {
+ if (!empty($language)) {
+ if ($addLanguagePart && !empty($config['prefixes'][$language])) {
+ $url .= $config['prefixes'][$language] . '/';
+ }
+ if ($removeLanguagePart) {
+ $url = str_replace("/" . $config['prefixes'][$language] . "/", '/', $url);
+ }
+ }
+ }
+ //domain
+ if ($urlType == \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl::CONFIG_DOMAIN) {
+ if (isset($language->domain) && $language->domain) {
+ if ($addLanguagePart) {
+ $url = (CRM_Utils_System::isSSL() ? 'https' : 'http') . '://' . $config['domains'][$language] . base_path();
+ }
+ if ($removeLanguagePart && defined('CIVICRM_UF_BASEURL')) {
+ $url = str_replace('\\', '/', $url);
+ $parseUrl = parse_url($url);
+
+ //kinda hackish but not sure how to do it right
+ //hope http_build_url() will help at some point.
+ if (is_array($parseUrl) && !empty($parseUrl)) {
+ $urlParts = explode('/', $url);
+ $hostKey = array_search($parseUrl['host'], $urlParts);
+ $ufUrlParts = parse_url(CIVICRM_UF_BASEURL);
+ $urlParts[$hostKey] = $ufUrlParts['host'];
+ $url = implode('/', $urlParts);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return $url;
+ }
+
}
return strtolower(\CRM_Utils_String::munge($action));
}
+ public static function getNextId() {
+ return self::$nextId++;
+ }
+
}
/**
* Date filter -- the field name.
- * @var string|NULL
+ * @var string|null
* Ex: 'event_start_date'
*/
private $entity_date_start;
/**
* Date filter -- the field name.
- * @var string|NULL
+ * @var string|null
* Ex: 'event_end_date'.
*/
private $entity_date_end;
protected $modules;
/**
- * @var array|NULL
+ * @var array|null
*/
protected $crmApp = NULL;
protected $res = NULL;
/**
- * @var array|NULL
+ * Modules.
+ *
+ * @var array|null
* Each item has some combination of these keys:
* - ext: string
* The Civi extension which defines the Angular module.
* The result of combining default values, mandatory
* values, and user values.
*
- * @var array|NULL
+ * @var array|null
* Array(string $settingName => mixed $value).
*/
protected $combined;
protected $bagsByContact = [];
/**
- * @var array|NULL
+ * @var array|null
* Array(string $entity => array(string $settingName => mixed $value)).
* Ex: $mandatory['domain']['uploadDir'].
* NULL means "autoload from $civicrm_setting".
/**
* The name of the output file.
*
- * @var string|NULL
+ * @var string|null
*/
private $file = NULL;
private $steps = [];
/**
- * @var string|NULL
+ * @var string|null
* A digest of the values in $steps.
*/
private $targetSignature = NULL;
*
* @return int
* id of Household created
+ * @throws \Exception
*/
public function householdCreate($params = array(), $seq = 0) {
$params = array_merge($this->sampleContact('Household', $seq), $params);
registerGlobalListener($injector);
options.format = options.format || 'json';
- var fmt = formats[options.format];
+ var fmt = _.clone(formats[options.format]);
if (options.deep) {
fmt.watcher = '$watch';
}
if (options.default === undefined) {
options.default = fmt.default;
}
- var _scope = this;
+ var value,
+ _scope = this,
+ $route = $injector.get('$route'),
+ $timeout = $injector.get('$timeout');
- var $route = $injector.get('$route'), $timeout = $injector.get('$timeout');
-
- var value;
if (options.param in $route.current.params) {
value = fmt.decode($route.current.params[options.param]);
}
// Keep the URL bar up-to-date.
_scope[fmt.watcher](options.expr, function (newValue) {
var encValue = fmt.encode(newValue);
- if ($route.current.params[options.param] === encValue) return;
+ if (!_.isEqual(newValue, options.default) && $route.current.params[options.param] === encValue) {
+ return;
+ }
pendingUpdates = pendingUpdates || {};
pendingUpdates[options.param] = encValue;
var p = angular.extend({}, $route.current.params, pendingUpdates);
- angular.forEach(ignorable, function(v,k){ if (p[k] === v) delete p[k]; });
+
+ angular.forEach(ignorable, function(v, k) {
+ if (p[k] === v) {
+ delete p[k];
+ }
+ });
+
+ // Remove params from url if they equal their defaults
+ if (_.isEqual(newValue, options.default)) {
+ p[options.param] = null;
+ }
+
$route.updateParams(p);
if (activeTimer) $timeout.cancel(activeTimer);
"psr/simple-cache": "~1.0.1",
"cweagans/composer-patches": "~1.0",
"pear/log": "1.13.1",
- "ezyang/htmlpurifier": "4.10",
"katzien/php-mime-type": "2.1.0"
},
"scripts": {
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "2a06373b9174ae3aa2bfb820e2e5a35e",
+ "content-hash": "a786aecfcc51b68f1ebafb0f43f99d08",
"packages": [
{
"name": "civicrm/civicrm-cxn-rpc",
"homepage": "http://code.google.com/p/phpquery/",
"time": "2013-03-21T12:39:33+00:00"
},
- {
- "name": "ezyang/htmlpurifier",
- "version": "v4.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "d85d39da4576a6934b72480be6978fb10c860021"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021",
- "reference": "d85d39da4576a6934b72480be6978fb10c860021",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2"
- },
- "require-dev": {
- "simpletest/simpletest": "^1.1"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "HTMLPurifier": "library/"
- },
- "files": [
- "library/HTMLPurifier.composer.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL"
- ],
- "authors": [
- {
- "name": "Edward Z. Yang",
- "email": "admin@htmlpurifier.org",
- "homepage": "http://ezyang.com"
- }
- ],
- "description": "Standards compliant HTML filter written in PHP",
- "homepage": "http://htmlpurifier.org/",
- "keywords": [
- "html"
- ],
- "time": "2018-02-23T01:58:20+00:00"
- },
{
"name": "guzzlehttp/guzzle",
"version": "6.3.0",
* @package CRM
* @copyright CiviCRM LLC (c) 2004-2019
* $Id$
+ *
+ * This script processes "Instant Payment Notifications" (IPNs). Modern
+ * Payment Processors use the /civicrm/payment/ipn/123 endpoint instead (where
+ * 123 is the payment processor ID), however a quirk in the way PayPal works
+ * means that we need to maintain this script.
+ *
+ * Note on PayPal.
+ *
+ * Using PayPal Website Standard (which uses the old PayPal button API) the IPN
+ * endpoint is passed to PayPal with every transaction, and it is then stored
+ * by PayPal who unhelpfully do not give you any way to retrieve or change
+ * this.
+ *
+ * This means that if you provide URL1 when setting up a recurring
+ * contribution, then you will always need to maintain URL1 because all
+ * recurring payments against that will be sent to URL1.
+ *
+ * Note that this also affects you if you were to move your CiviCRM instance to
+ * another domain (if you do, get the webserver at the original domain to emit
+ * a 307 redirect to the new one, PayPal will re-send).
+ *
+ * Therefore, for the sake of these old recurring contributions, CiviCRM should
+ * maintain this script as part of core.
*/
if (defined('PANTHEON_ENVIRONMENT')) {
// @todo upgrade standard per Pro
}
try {
- //CRM-18245
- if ($config->userFramework == 'Joomla') {
- CRM_Utils_System::loadBootStrap();
+ switch ($config->userFramework) {
+ case 'Joomla':
+ // CRM-18245
+ CRM_Utils_System::loadBootStrap();
+ break;
+
+ case 'Drupal':
+ case 'Backdrop':
+ // Gitlab issue: #973
+ CRM_Utils_System::loadBootStrap([], FALSE);
+ break;
+
}
$paypalIPN->main();
}
<p>{ts 1=$docLink}ACLs (Access Control Lists) allow you control access to CiviCRM data. An ACL consists of an <strong>Operation</strong> (e.g. 'View' or 'Edit'), a <strong>set of Data</strong> that the operation can be performed on (e.g. a group of contacts), and a <strong>Role</strong> that has permission to do this operation. Refer to the %1 for more info.{/ts}
{if $config->userSystem->is_drupal EQ '1'}{ts}Note that a CiviCRM ACL Role is not related to the Drupal Role.{/ts}{/if}</p>
<p>{ts}<strong>EXAMPLE:</strong> 'Team Leaders' (<em>ACL Role</em>) can 'Edit' (<em>Operation</em>) all contacts in the 'Active Volunteers Group' (<em>Data</em>).{/ts}</p>
- {if $config->userSystem->is_drupal EQ '1'}
- <p>{ts 1=$ufAccessURL}Use <a href='%1'>Drupal Access Control</a> to manage basic access to CiviCRM components and menu items. Use CiviCRM ACLs to control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events Profiles, and/or Custom Data Fields.{/ts}</p>
- {elseif $config->userFramework EQ 'Joomla'}
- <p>{ts 1=$ufAccessURL 2=$jAccessParams}Use <a href='%1' %2>Joomla Access Control</a> to manage basic access to CiviCRM components and menu items. Use CiviCRM ACLs to control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events, Profiles, and/or Custom Data Fields.{/ts}</p>
- {elseif $config->userFramework EQ 'WordPress'}
- <p>{ts 1=$ufAccessURL}Use <a href='%1'>WordPress Access Control</a> to manage basic access to CiviCRM components and menu items. Use CiviCRM ACLs to control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events, Profiles, and/or Custom Data Fields.{/ts}</p>
- {/if}
+ <p>{ts 1=$ufAccessURL 2=$jAccessParams 3=$config->userFramework}Use <a href='%1' %2>%3 Access Control</a> to manage basic access to CiviCRM components and menu items. Use CiviCRM ACLs to control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events, Profiles, and/or Custom Data Fields.{/ts}</p>
<p>{ts 1=$config->userFramework}Note that %1 Access Control permissions take precedence over CiviCRM ACLs. If you wish to use CiviCRM ACLs, first disable the related permission in %1 Access control for a user role, and then gradually add ACLs to replace that permission for certain groups of contacts.{/ts}
</div>
<table class="report">
<tr>
- {if $config->userSystem->is_drupal EQ '1'}
- <td class="nowrap"><a href="{$ufAccessURL}" id="adminAccess">» {ts}Drupal Access Control{/ts}</a></td>
+ <td class="nowrap"><a href="{$ufAccessURL}" {$jAccessParams} id="adminAccess">» {ts 1=$config->userFramework}%1 Access Control{/ts}</a></td>
<td>{ts}Grant access to CiviCRM components and other CiviCRM permissions.{/ts}</td>
- {elseif $config->userFramework EQ 'Joomla'}
- <td class="nowrap"><a href="{$ufAccessURL}" {$jAccessParams} id="adminAccess">» {ts}Joomla Access Control{/ts}</a></td>
- <td>{ts}Grant access to CiviCRM components and other CiviCRM permissions.{/ts}</td>
- {elseif $config->userFramework EQ 'WordPress'}
- <td class="nowrap"><a href="{$ufAccessURL}" id="adminAccess">» {ts}WordPress Access Control{/ts}</a></td>
- <td>{ts}Grant access to CiviCRM components and other CiviCRM permissions.{/ts}</td>
- {/if}
</tr>
<tr><td colspan="2" class="separator"><strong>{ts}Use following steps if you need to control View and/or Edit permissions for specific contact groups, specific profiles or specific custom data fields.{/ts}</strong></td></tr>
<tr>
parent::tearDown();
}
- /**
- * Setup or clean up SMS tests
- * @param bool $teardown
- *
- * @throws \CiviCRM_API3_Exception
- */
- public function setupForSmsTests($teardown = FALSE) {
- require_once 'CiviTest/CiviTestSMSProvider.php';
-
- // Option value params for CiviTestSMSProvider
- $groupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'sms_provider_name', 'id', 'name');
- $params = array(
- 'option_group_id' => $groupID,
- 'label' => 'unittestSMS',
- 'value' => 'unit.test.sms',
- 'name' => 'CiviTestSMSProvider',
- 'is_default' => 1,
- 'is_active' => 1,
- 'version' => 3,
- );
-
- if ($teardown) {
- // Test completed, delete provider
- $providerOptionValueResult = civicrm_api3('option_value', 'get', $params);
- civicrm_api3('option_value', 'delete', array('id' => $providerOptionValueResult['id']));
- return;
- }
-
- // Create an SMS provider "CiviTestSMSProvider". Civi handles "CiviTestSMSProvider" as a special case and allows it to be instantiated
- // in CRM/Sms/Provider.php even though it is not an extension.
- civicrm_api3('option_value', 'create', $params);
- }
-
/**
* Test case for create() method.
*/
parent::setUp();
}
+ /**
+ * Clean up after test.
+ *
+ * @throws \Exception
+ */
public function tearDown() {
$this->quickCleanUpFinancialEntities();
- $tablesToTruncate = array(
+ $tablesToTruncate = [
'civicrm_group_contact',
'civicrm_group',
'civicrm_saved_search',
'civicrm_tag',
'civicrm_contact',
'civicrm_address',
- );
+ ];
$this->quickCleanup($tablesToTruncate);
}
* @param $full
*/
public function testSearch($fv, $count, $ids, $full) {
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createFlatXMLDataSet(
- dirname(__FILE__) . '/queryDataset.xml'
- )
- );
+ $this->callAPISuccess('SavedSearch', 'create', ['form_values' => 'a:9:{s:5:"qfKey";s:32:"0123456789abcdef0123456789abcdef";s:13:"includeGroups";a:1:{i:0;s:1:"3";}s:13:"excludeGroups";a:0:{}s:11:"includeTags";a:0:{}s:11:"excludeTags";a:0:{}s:4:"task";s:2:"14";s:8:"radio_ts";s:6:"ts_all";s:14:"customSearchID";s:1:"4";s:17:"customSearchClass";s:36:"CRM_Contact_Form_Search_Custom_Group";}']);
+ $this->callAPISuccess('SavedSearch', 'create', ['form_values' => 'a:9:{s:5:"qfKey";s:32:"0123456789abcdef0123456789abcdef";s:13:"includeGroups";a:1:{i:0;s:1:"3";}s:13:"excludeGroups";a:0:{}s:11:"includeTags";a:0:{}s:11:"excludeTags";a:0:{}s:4:"task";s:2:"14";s:8:"radio_ts";s:6:"ts_all";s:14:"customSearchID";s:1:"4";s:17:"customSearchClass";s:36:"CRM_Contact_Form_Search_Custom_Group";}']);
+
+ $tag7 = $this->ids['Tag'][7] = $this->tagCreate(['name' => 'Test Tag 7', 'description' => 'Test Tag 7'])['id'];
+ $tag9 = $this->ids['Tag'][9] = $this->tagCreate(['name' => 'Test Tag 9', 'description' => 'Test Tag 9'])['id'];
+ $this->tagCreate(['name' => 'Test Tag 10']);
+ $groups = [
+ 3 => ['name' => 'Test Group 3'],
+ 4 => ['name' => 'Test Smart Group 4', 'saved_search_id' => 1],
+ 5 => ['name' => 'Test Group 5'],
+ 6 => ['name' => 'Test Smart Group 6', 'saved_search_id' => 2],
+ ];
+
+ foreach ($groups as $id => $group) {
+ $this->ids['Group'][$id] = $this->groupCreate(array_merge($group, ['title' => $group['name']]));
+ }
+ $individuals = [
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 9', 'gender_id' => 1, 'prefix_id' => 1, 'suffix_id' => 1],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 10', 'gender_id' => 2, 'prefix_id' => 2, 'suffix_id' => 2, 'api.entity_tag.create' => ['tag_id' => $tag9]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 11', 'gender_id' => 3, 'prefix_id' => 3, 'suffix_id' => 3, 'api.entity_tag.create' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 12', 'gender_id' => 3, 'prefix_id' => 4, 'suffix_id' => 4, 'api.entity_tag.create' => ['tag_id' => $tag9], 'api.entity_tag.create.2' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 13', 'gender_id' => 2, 'prefix_id' => 2, 'suffix_id' => 2],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 14', 'gender_id' => 3, 'prefix_id' => 4, 'suffix_id' => 4, 'api.entity_tag.create' => ['tag_id' => $tag9]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 15', 'gender_id' => 3, 'prefix_id' => 4, 'suffix_id' => 5, 'api.entity_tag.create' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 16', 'gender_id' => 3, 'prefix_id' => 4, 'suffix_id' => 6, 'api.entity_tag.create' => ['tag_id' => $tag9], 'api.entity_tag.create.2' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 17', 'gender_id' => 2, 'prefix_id' => 4, 'suffix_id' => 7],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 18', 'gender_id' => 2, 'prefix_id' => 4, 'suffix_id' => 4, 'api.entity_tag.create' => ['tag_id' => $tag9]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 19', 'gender_id' => 2, 'prefix_id' => 4, 'suffix_id' => 6, 'api.entity_tag.create.2' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 20', 'gender_id' => 1, 'prefix_id' => 4, 'suffix_id' => 6, 'api.entity_tag.create' => ['tag_id' => $tag9], 'api.entity_tag.create.2' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 21', 'gender_id' => 3, 'prefix_id' => 1, 'suffix_id' => 6],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 22', 'gender_id' => 1, 'prefix_id' => 1, 'suffix_id' => 1, 'api.entity_tag.create' => ['tag_id' => $tag9]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 23', 'gender_id' => 3, 'prefix_id' => 1, 'suffix_id' => 1, 'api.entity_tag.create' => ['tag_id' => $tag7]],
+ ['first_name' => 'Test', 'last_name' => 'Test Contact 24', 'gender_id' => 3, 'prefix_id' => 3, 'suffix_id' => 2, 'api.entity_tag.create' => ['tag_id' => $tag9], 'api.entity_tag.create.2' => ['tag_id' => $tag7]],
+ ];
+ foreach ($individuals as $individual) {
+ $this->ids['Contact'][$individual['last_name']] = $this->individualCreate($individual);
+ }
+ $groupContacts = [
+ [5 => 13],
+ [5 => 14],
+ [5 => 15],
+ [5 => 16],
+ [5 => 21],
+ [5 => 22],
+ [5 => 23],
+ [5 => 24],
+ [3 => 17],
+ [3 => 18],
+ [3 => 19],
+ [3 => 20],
+ [3 => 21],
+ [3 => 22],
+ [3 => 23],
+ [3 => 24],
+ ];
+ foreach ($groupContacts as $group) {
+ $groupID = $this->ids['Group'][key($group)];
+ $contactID = $this->ids['Contact']['Test Contact ' . reset($group)];
+ $this->callAPISuccess('GroupContact', 'create', ['group_id' => $groupID, 'contact_id' => $contactID, 'status' => 'Added']);
+ }
+
+ // We have migrated from a hard-coded dataset to a dynamic one but are still working with the same
+ // dataprovider at this stage -> wrangle.
+ foreach ($fv as $key => $value) {
+ $entity = ucfirst($key);
+ if (!array_key_exists($entity, $this->ids)) {
+ continue;
+ }
+ if (is_numeric($value)) {
+ $fv[$key] = $this->ids[$entity][$value];
+ }
+ elseif (!empty($value[0])) {
+ foreach ($value as $index => $oldGroup) {
+ $fv[$key][$index] = $this->ids[$entity][$oldGroup];
+ }
+ }
+ else {
+ foreach (array_keys($value) as $index) {
+ unset($fv[$key][$index]);
+ $fv[$key][$this->ids[$entity][$index]] = 1;
+ }
+ }
+ }
$params = CRM_Contact_BAO_Query::convertFormValues($fv);
$obj = new CRM_Contact_BAO_Query($params);
$dao = $obj->searchQuery();
- $contacts = array();
+ $contacts = [];
while ($dao->fetch()) {
$contacts[] = $dao->contact_id;
}
sort($contacts, SORT_NUMERIC);
- $this->assertEquals($ids, $contacts);
+ $expectedIDs = [];
+ foreach ($ids as $id) {
+ $expectedIDs[] = $this->ids['Contact']['Test Contact ' . $id];
+ }
+ $this->assertEquals($expectedIDs, $contacts);
}
/**
$this->assertEquals("$ 200.00 - STUDENT", $activity->subject, 'Check for total amount in activity.');
}
- /**
- * Test checkContributeSettings.
- */
- public function testCheckContributeSettings() {
- $settings = CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled');
- $this->assertNull($settings);
- $params = array(
- 'contribution_invoice_settings' => array(
- 'deferred_revenue_enabled' => '1',
- ),
- );
- $this->callAPISuccess('Setting', 'create', $params);
- $settings = CRM_Contribute_BAO_Contribution::checkContributeSettings('deferred_revenue_enabled');
- $this->assertEquals($settings, 1, 'Check for settings has failed');
- }
-
/**
* Test allowUpdateRevenueRecognitionDate.
*/
), $checkAgainst);
}
+ /**
+ * https://lab.civicrm.org/dev/financial/issues/56
+ * Changing financial type on a contribution records correct financial items
+ */
+ public function testChangingFinancialTypeWithoutTax() {
+ $ids = $values = [];
+ $contactId = $this->individualCreate();
+ $params = array(
+ 'contact_id' => $contactId,
+ 'receive_date' => date('YmdHis'),
+ 'total_amount' => 100.00,
+ 'financial_type_id' => 'Donation',
+ 'contribution_status_id' => 'Completed',
+ );
+ /* first test the scenario when sending an email */
+ $contributionId = $this->callAPISuccess(
+ 'contribution',
+ 'create',
+ $params
+ )['id'];
+
+ // Update Financial Type.
+ $this->callAPISuccess('contribution', 'create', [
+ 'id' => $contributionId,
+ 'financial_type_id' => 'Event Fee',
+ ]);
+
+ // Get line item
+ $lineItem = $this->callAPISuccessGetSingle('LineItem', [
+ 'contribution_id' => $contributionId,
+ 'return' => ["financial_type_id.name", "line_total"],
+ ]);
+
+ $this->assertEquals(
+ $lineItem['line_total'],
+ 100.00,
+ 'Invalid line amount.'
+ );
+
+ $this->assertEquals(
+ $lineItem['financial_type_id.name'],
+ 'Event Fee',
+ 'Invalid Financial Type stored.'
+ );
+
+ // Get Financial Items.
+ $financialItems = $this->callAPISuccess('FinancialItem', 'get', [
+ 'entity_id' => $lineItem['id'],
+ 'sequential' => 1,
+ 'entity_table' => 'civicrm_line_item',
+ 'options' => ['sort' => "id"],
+ 'return' => ["financial_account_id.name", "amount", "description"],
+ ]);
+
+ $this->assertEquals($financialItems['count'], 3, 'Count mismatch.');
+
+ $toCheck = [
+ ['Donation', 100.00],
+ ['Donation', -100.00],
+ ['Event Fee', 100.00],
+ ];
+
+ foreach ($financialItems['values'] as $key => $values) {
+ $this->assertEquals(
+ $values['financial_account_id.name'],
+ $toCheck[$key][0],
+ 'Invalid Financial Account stored.'
+ );
+ $this->assertEquals(
+ $values['amount'],
+ $toCheck[$key][1],
+ 'Amount mismatch.'
+ );
+ $this->assertEquals(
+ $values['description'],
+ 'Contribution Amount',
+ 'Description mismatch.'
+ );
+ }
+
+ // Check transactions.
+ $financialTransactions = $this->callAPISuccess('EntityFinancialTrxn', 'get', [
+ 'return' => ["financial_trxn_id"],
+ 'entity_table' => "civicrm_contribution",
+ 'entity_id' => $contributionId,
+ 'sequential' => 1,
+ ]);
+ $this->assertEquals($financialTransactions['count'], 3, 'Count mismatch.');
+
+ foreach ($financialTransactions['values'] as $key => $values) {
+ $this->callAPISuccessGetCount('EntityFinancialTrxn', [
+ 'financial_trxn_id' => $values['financial_trxn_id'],
+ 'amount' => $toCheck[$key][1],
+ 'financial_trxn_id.total_amount' => $toCheck[$key][1],
+ ], 2);
+ }
+ }
+
/**
* CRM-21424 Check if the receipt update is set after composing the receipt message
*/
/**
* Class CRM_Dedupe_DedupeMergerTest
+ *
* @group headless
*/
class CRM_Dedupe_MergerTest extends CiviUnitTestCase {
protected $_groupId;
- protected $_contactIds = array();
+ protected $_contactIds = [];
+
+ /**
+ * Tear down.
+ *
+ * @throws \Exception
+ */
public function tearDown() {
- $this->quickCleanup(array('civicrm_contact', 'civicrm_group_contact', 'civicrm_group'));
+ $this->quickCleanup([
+ 'civicrm_contact',
+ 'civicrm_group_contact',
+ 'civicrm_group',
+ ]);
parent::tearDown();
}
public function createDupeContacts() {
// create a group to hold contacts, so that dupe checks don't consider any other contacts in the DB
- $params = array(
- 'name' => 'Test Dupe Merger Group',
- 'title' => 'Test Dupe Merger Group',
- 'domain_id' => 1,
- 'is_active' => 1,
+ $params = [
+ 'name' => 'Test Dupe Merger Group',
+ 'title' => 'Test Dupe Merger Group',
+ 'domain_id' => 1,
+ 'is_active' => 1,
'visibility' => 'Public Pages',
- );
+ ];
$result = $this->callAPISuccess('group', 'create', $params);
$this->_groupId = $result['id'];
// will - dale - dale@example.com
// will - dale - will@example.com
// will - dale - will@example.com
- $params = array(
- array(
+ $params = [
+ [
'first_name' => 'robin',
'last_name' => 'hood',
'email' => 'robin@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'robin',
'last_name' => 'hood',
'email' => 'robin@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'robin',
'last_name' => 'hood',
'email' => 'hood@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'robin',
'last_name' => 'dale',
'email' => 'robin@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'little',
'last_name' => 'dale',
'email' => 'dale@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'little',
'last_name' => 'dale',
'email' => 'dale@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'will',
'last_name' => 'dale',
'email' => 'dale@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'will',
'last_name' => 'dale',
'email' => 'will@example.com',
'contact_type' => 'Individual',
- ),
- array(
+ ],
+ [
'first_name' => 'will',
'last_name' => 'dale',
'email' => 'will@example.com',
'contact_type' => 'Individual',
- ),
- );
+ ],
+ ];
$count = 1;
foreach ($params as $param) {
$contact = civicrm_api('contact', 'create', $param);
$this->_contactIds[$count++] = $contact['id'];
- $grpParams = array(
+ $grpParams = [
'contact_id' => $contact['id'],
- 'group_id' => $this->_groupId,
- 'version' => 3,
- );
+ 'group_id' => $this->_groupId,
+ 'version' => 3,
+ ];
$this->callAPISuccess('group_contact', 'create', $grpParams);
}
}
@$object->run();
// Retrieve pairs from prev next cache table
- $select = array('pn.is_selected' => 'is_selected');
+ $select = ['pn.is_selected' => 'is_selected'];
$cacheKeyString = CRM_Dedupe_Merger::getMergeCacheKeyString($dao->id, $this->_groupId);
$pnDupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, NULL, NULL, 0, 0, $select);
@$object->run();
// Retrieve pairs from prev next cache table
- $select = array('pn.is_selected' => 'is_selected');
+ $select = ['pn.is_selected' => 'is_selected'];
$cacheKeyString = CRM_Dedupe_Merger::getMergeCacheKeyString($dao->id, $this->_groupId);
$pnDupePairs = CRM_Core_BAO_PrevNextCache::retrieve($cacheKeyString, NULL, NULL, 0, 0, $select);
* @return array
*/
public function getHackedInCIDRef() {
- return array(
- 'civicrm_entity_tag' => array(
+ return [
+ 'civicrm_entity_tag' => [
0 => 'entity_id',
- ),
- );
+ ],
+ ];
}
/**
* Test function that gets duplicate pairs.
*
- * It turns out there are 2 code paths retrieving this data so my initial focus is on ensuring
- * they match.
+ * It turns out there are 2 code paths retrieving this data so my initial
+ * focus is on ensuring they match.
*/
public function testGetMatches() {
$this->setupMatchData();
FALSE
);
- $this->assertEquals(array(
- 0 => array(
+ $this->assertEquals([
+ 0 => [
'srcID' => $this->contacts[1]['id'],
'srcName' => 'Mr. Mickey Mouse II',
'dstID' => $this->contacts[0]['id'],
'dstName' => 'Mr. Mickey Mouse II',
'weight' => 20,
'canMerge' => TRUE,
- ),
- 1 => array(
+ ],
+ 1 => [
'srcID' => $this->contacts[3]['id'],
'srcName' => 'Mr. Minnie Mouse II',
'dstID' => $this->contacts[2]['id'],
'dstName' => 'Mr. Minnie Mouse II',
'weight' => 20,
'canMerge' => TRUE,
- ),
- ), $pairs);
+ ],
+ ], $pairs);
}
/**
* Test function that gets organization pairs.
*
- * Note the rule will match on organization_name OR email - hence lots of matches.
+ * Note the rule will match on organization_name OR email - hence lots of
+ * matches.
+ *
+ * @throws \Exception
*/
public function testGetOrganizationMatches() {
$this->setupMatchData();
- $ruleGroups = $this->callAPISuccessGetSingle('RuleGroup', array('contact_type' => 'Organization', 'used' => 'Supervised'));
+ $ruleGroups = $this->callAPISuccessGetSingle('RuleGroup', [
+ 'contact_type' => 'Organization',
+ 'used' => 'Supervised',
+ ]);
$pairs = CRM_Dedupe_Merger::getDuplicatePairs(
$ruleGroups['id'],
FALSE
);
- $expectedPairs = array(
- 0 => array(
+ $expectedPairs = [
+ 0 => [
'srcID' => $this->contacts[5]['id'],
'srcName' => 'Walt Disney Ltd',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 20,
'canMerge' => TRUE,
- ),
- 1 => array(
+ ],
+ 1 => [
'srcID' => $this->contacts[7]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[6]['id'],
'dstName' => 'Walt Disney',
'weight' => 10,
'canMerge' => TRUE,
- ),
- 2 => array(
+ ],
+ 2 => [
'srcID' => $this->contacts[6]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 10,
'canMerge' => TRUE,
- ),
- 3 => array(
+ ],
+ 3 => [
'srcID' => $this->contacts[6]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[5]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 10,
'canMerge' => TRUE,
- ),
- );
- usort($pairs, array(__CLASS__, 'compareDupes'));
- usort($expectedPairs, array(__CLASS__, 'compareDupes'));
+ ],
+ ];
+ usort($pairs, [__CLASS__, 'compareDupes']);
+ usort($expectedPairs, [__CLASS__, 'compareDupes']);
$this->assertEquals($expectedPairs, $pairs);
}
*
* @param array $a
* @param array $b
+ *
* @return int
*/
public static function compareDupes($a, $b) {
- foreach (array('srcName', 'dstName', 'srcID', 'dstID') as $field) {
+ foreach (['srcName', 'dstName', 'srcID', 'dstID'] as $field) {
if ($a[$field] != $b[$field]) {
return ($a[$field] < $b[$field]) ? 1 : -1;
}
/**
* Test function that gets organization duplicate pairs.
+ *
+ * @throws \Exception
*/
public function testGetOrganizationMatchesInGroup() {
$this->setupMatchData();
- $ruleGroups = $this->callAPISuccessGetSingle('RuleGroup', array('contact_type' => 'Organization', 'used' => 'Supervised'));
+ $ruleGroups = $this->callAPISuccessGetSingle('RuleGroup', [
+ 'contact_type' => 'Organization',
+ 'used' => 'Supervised',
+ ]);
- $groupID = $this->groupCreate(array('title' => 'she-mice'));
+ $groupID = $this->groupCreate(['title' => 'she-mice']);
- $this->callAPISuccess('GroupContact', 'create', array('group_id' => $groupID, 'contact_id' => $this->contacts[4]['id']));
+ $this->callAPISuccess('GroupContact', 'create', [
+ 'group_id' => $groupID,
+ 'contact_id' => $this->contacts[4]['id'],
+ ]);
$pairs = CRM_Dedupe_Merger::getDuplicatePairs(
$ruleGroups['id'],
FALSE
);
- $this->assertEquals(array(
- 0 => array(
+ $this->assertEquals([
+ 0 => [
'srcID' => $this->contacts[5]['id'],
'srcName' => 'Walt Disney Ltd',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 20,
'canMerge' => TRUE,
- ),
- 1 => array(
+ ],
+ 1 => [
'srcID' => $this->contacts[6]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 10,
'canMerge' => TRUE,
- ),
- ), $pairs);
+ ],
+ ], $pairs);
- $this->callAPISuccess('GroupContact', 'create', array('group_id' => $groupID, 'contact_id' => $this->contacts[5]['id']));
+ $this->callAPISuccess('GroupContact', 'create', [
+ 'group_id' => $groupID,
+ 'contact_id' => $this->contacts[5]['id'],
+ ]);
CRM_Core_DAO::executeQuery("DELETE FROM civicrm_prevnext_cache");
$pairs = CRM_Dedupe_Merger::getDuplicatePairs(
$ruleGroups['id'],
FALSE
);
- $this->assertEquals(array(
- 0 => array(
+ $this->assertEquals([
+ 0 => [
'srcID' => $this->contacts[5]['id'],
'srcName' => 'Walt Disney Ltd',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 20,
'canMerge' => TRUE,
- ),
- 1 => array(
+ ],
+ 1 => [
'srcID' => $this->contacts[6]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[4]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 10,
'canMerge' => TRUE,
- ),
- 2 => array(
+ ],
+ 2 => [
'srcID' => $this->contacts[6]['id'],
'srcName' => 'Walt Disney',
'dstID' => $this->contacts[5]['id'],
'dstName' => 'Walt Disney Ltd',
'weight' => 10,
'canMerge' => TRUE,
- ),
- ), $pairs);
+ ],
+ ], $pairs);
}
/**
* Test function that gets duplicate pairs.
*
- * It turns out there are 2 code paths retrieving this data so my initial focus is on ensuring
- * they match.
+ * It turns out there are 2 code paths retrieving this data so my initial
+ * focus is on ensuring they match.
*/
public function testGetMatchesInGroup() {
$this->setupMatchData();
- $groupID = $this->groupCreate(array('title' => 'she-mice'));
+ $groupID = $this->groupCreate(['title' => 'she-mice']);
- $this->callAPISuccess('GroupContact', 'create', array('group_id' => $groupID, 'contact_id' => $this->contacts[3]['id']));
+ $this->callAPISuccess('GroupContact', 'create', [
+ 'group_id' => $groupID,
+ 'contact_id' => $this->contacts[3]['id'],
+ ]);
$pairs = CRM_Dedupe_Merger::getDuplicatePairs(
1,
FALSE
);
- $this->assertEquals(array(
- 0 => array(
+ $this->assertEquals([
+ 0 => [
'srcID' => $this->contacts[3]['id'],
'srcName' => 'Mr. Minnie Mouse II',
'dstID' => $this->contacts[2]['id'],
'dstName' => 'Mr. Minnie Mouse II',
'weight' => 20,
'canMerge' => TRUE,
- ),
- ), $pairs);
+ ],
+ ], $pairs);
}
/**
* Test the special info handling is unchanged after cleanup.
*
- * Note the handling is silly - we are testing to lock in over short term changes not to imply any contract on the
- * function.
+ * Note the handling is silly - we are testing to lock in over short term
+ * changes not to imply any contract on the function.
*/
- public function testgetRowsElementsAndInfoSpecialInfo() {
- $contact1 = $this->individualCreate(['preferred_communication_method' => [], 'communication_style_id' => 'Familiar', 'prefix_id' => 'Mrs.', 'suffix_id' => 'III']);
- $contact2 = $this->individualCreate(['preferred_communication_method' => ['SMS', 'Fax'], 'communication_style_id' => 'Formal', 'gender_id' => 'Female']);
+ public function testGetRowsElementsAndInfoSpecialInfo() {
+ $contact1 = $this->individualCreate([
+ 'preferred_communication_method' => [],
+ 'communication_style_id' => 'Familiar',
+ 'prefix_id' => 'Mrs.',
+ 'suffix_id' => 'III',
+ ]);
+ $contact2 = $this->individualCreate([
+ 'preferred_communication_method' => [
+ 'SMS',
+ 'Fax',
+ ],
+ 'communication_style_id' => 'Formal',
+ 'gender_id' => 'Female',
+ ]);
$rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo($contact1, $contact2);
$rows = $rowsElementsAndInfo['rows'];
- $this->assertEquals(['main' => 'Mrs.', 'other' => 'Mr.', 'title' => 'Individual Prefix'], $rows['move_prefix_id']);
- $this->assertEquals(['main' => 'III', 'other' => 'II', 'title' => 'Individual Suffix'], $rows['move_suffix_id']);
- $this->assertEquals(['main' => '', 'other' => 'Female', 'title' => 'Gender'], $rows['move_gender_id']);
- $this->assertEquals(['main' => 'Familiar', 'other' => 'Formal', 'title' => 'Communication Style'], $rows['move_communication_style_id']);
+ $this->assertEquals([
+ 'main' => 'Mrs.',
+ 'other' => 'Mr.',
+ 'title' => 'Individual Prefix',
+ ], $rows['move_prefix_id']);
+ $this->assertEquals([
+ 'main' => 'III',
+ 'other' => 'II',
+ 'title' => 'Individual Suffix',
+ ], $rows['move_suffix_id']);
+ $this->assertEquals([
+ 'main' => '',
+ 'other' => 'Female',
+ 'title' => 'Gender',
+ ], $rows['move_gender_id']);
+ $this->assertEquals([
+ 'main' => 'Familiar',
+ 'other' => 'Formal',
+ 'title' => 'Communication Style',
+ ], $rows['move_communication_style_id']);
$this->assertEquals(1, $rowsElementsAndInfo['migration_info']['move_communication_style_id']);
- $this->assertEquals(['main' => '', 'other' => 'SMS, Fax', 'title' => 'Preferred Communication Method'], $rows['move_preferred_communication_method']);
+ $this->assertEquals([
+ 'main' => '',
+ 'other' => 'SMS, Fax',
+ 'title' => 'Preferred Communication Method',
+ ], $rows['move_preferred_communication_method']);
$this->assertEquals('\ 14\ 15\ 1', $rowsElementsAndInfo['migration_info']['move_preferred_communication_method']);
}
//Add Membership for the duplicate contact.
$memTypeId = $this->membershipTypeCreate();
- $membership = $this->callAPISuccess('Membership', 'create', [
+ $this->callAPISuccess('Membership', 'create', [
'membership_type_id' => $memTypeId,
'contact_id' => $duplicateContactID,
]);
*/
public function testCustomDataOverwrite() {
// Create Custom Field
- $createGroup = $this->setupCustomGroupForIndividual();
+ $createGroup = $this->setupCustomGroupForIndividual();
$createField = $this->setupCustomField('Graduation', $createGroup);
$customFieldName = "custom_" . $createField['id'];
$duplicateContactID2 = $this->contacts[2]['id'];
// update the text custom field for original contact with value 'abc'
- $this->callAPISuccess('Contact', 'create', array(
+ $this->callAPISuccess('Contact', 'create', [
'id' => $originalContactID,
"{$customFieldName}" => 'abc',
- ));
+ ]);
$this->assertCustomFieldValue($originalContactID, 'abc', $customFieldName);
// update the text custom field for duplicate contact 1 with value 'def'
- $this->callAPISuccess('Contact', 'create', array(
+ $this->callAPISuccess('Contact', 'create', [
'id' => $duplicateContactID1,
"{$customFieldName}" => 'def',
- ));
+ ]);
$this->assertCustomFieldValue($duplicateContactID1, 'def', $customFieldName);
// update the text custom field for duplicate contact 2 with value 'ghi'
- $this->callAPISuccess('Contact', 'create', array(
+ $this->callAPISuccess('Contact', 'create', [
'id' => $duplicateContactID2,
"{$customFieldName}" => 'ghi',
- ));
+ ]);
$this->assertCustomFieldValue($duplicateContactID2, 'ghi', $customFieldName);
/*** USE-CASE 1: DO NOT OVERWRITE CUSTOM FIELD VALUE **/
- $this->mergeContacts($originalContactID, $duplicateContactID1, array(
+ $this->mergeContacts($originalContactID, $duplicateContactID1, [
"move_{$customFieldName}" => NULL,
- ));
+ ]);
$this->assertCustomFieldValue($originalContactID, 'abc', $customFieldName);
/*** USE-CASE 2: OVERWRITE CUSTOM FIELD VALUE **/
- $this->mergeContacts($originalContactID, $duplicateContactID2, array(
+ $this->mergeContacts($originalContactID, $duplicateContactID2, [
"move_{$customFieldName}" => 'ghi',
- ));
+ ]);
$this->assertCustomFieldValue($originalContactID, 'ghi', $customFieldName);
// cleanup created custom set
- $this->callAPISuccess('CustomField', 'delete', array('id' => $createField['id']));
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $createGroup['id']));
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $createField['id']]);
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $createGroup['id']]);
}
/**
*/
public function testMigrationOfUnselectedCustomDataOnEmptyCustomRecord() {
// Create Custom Fields
- $createGroup = $this->setupCustomGroupForIndividual();
+ $createGroup = $this->setupCustomGroupForIndividual();
$customField1 = $this->setupCustomField('TestField', $createGroup);
// Create multi-value custom field
$multiGroup = $this->CustomGroupMultipleCreateByParams();
- $multiField = $this->customFieldCreate(array(
+ $multiField = $this->customFieldCreate([
'custom_group_id' => $multiGroup['id'],
'label' => 'field_1' . $multiGroup['id'],
'in_selector' => 1,
- ));
+ ]);
// Contacts setup
$this->setupMatchData();
$duplicateContactID = $this->contacts[1]['id'];
// Update the text custom fields for duplicate contact
- $this->callAPISuccess('Contact', 'create', array(
+ $this->callAPISuccess('Contact', 'create', [
'id' => $duplicateContactID,
"custom_{$customField1['id']}" => 'abc',
"custom_{$multiField['id']}" => 'def',
- ));
+ ]);
$this->assertCustomFieldValue($duplicateContactID, 'abc', "custom_{$customField1['id']}");
$this->assertCustomFieldValue($duplicateContactID, 'def', "custom_{$multiField['id']}");
// Merge, and ensure that no value was migrated
- $this->mergeContacts($originalContactID, $duplicateContactID, array(
+ $this->mergeContacts($originalContactID, $duplicateContactID, [
"move_custom_{$customField1['id']}" => NULL,
"move_rel_table_custom_{$multiGroup['id']}" => NULL,
- ));
+ ]);
$this->assertCustomFieldValue($originalContactID, '', "custom_{$customField1['id']}");
$this->assertCustomFieldValue($originalContactID, '', "custom_{$multiField['id']}");
// cleanup created custom set
- $this->callAPISuccess('CustomField', 'delete', array('id' => $customField1['id']));
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $createGroup['id']));
- $this->callAPISuccess('CustomField', 'delete', array('id' => $multiField['id']));
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $multiGroup['id']));
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $customField1['id']]);
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $createGroup['id']]);
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $multiField['id']]);
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $multiGroup['id']]);
}
/**
*/
public function testMigrationOfSomeCustomDataOnEmptyCustomRecord() {
// Create Custom Fields
- $createGroup = $this->setupCustomGroupForIndividual();
+ $createGroup = $this->setupCustomGroupForIndividual();
$customField1 = $this->setupCustomField('Test1', $createGroup);
$customField2 = $this->setupCustomField('Test2', $createGroup);
// Create multi-value custom field
$multiGroup = $this->CustomGroupMultipleCreateByParams();
- $multiField = $this->customFieldCreate(array(
+ $multiField = $this->customFieldCreate([
'custom_group_id' => $multiGroup['id'],
'label' => 'field_1' . $multiGroup['id'],
'in_selector' => 1,
- ));
+ ]);
// Contacts setup
$this->setupMatchData();
$duplicateContactID = $this->contacts[1]['id'];
// Update the text custom fields for duplicate contact
- $this->callAPISuccess('Contact', 'create', array(
+ $this->callAPISuccess('Contact', 'create', [
'id' => $duplicateContactID,
"custom_{$customField1['id']}" => 'abc',
"custom_{$customField2['id']}" => 'def',
"custom_{$multiField['id']}" => 'ghi',
- ));
+ ]);
$this->assertCustomFieldValue($duplicateContactID, 'abc', "custom_{$customField1['id']}");
$this->assertCustomFieldValue($duplicateContactID, 'def', "custom_{$customField2['id']}");
$this->assertCustomFieldValue($duplicateContactID, 'ghi', "custom_{$multiField['id']}");
// Perform merge
- $this->mergeContacts($originalContactID, $duplicateContactID, array(
+ $this->mergeContacts($originalContactID, $duplicateContactID, [
"move_custom_{$customField1['id']}" => NULL,
"move_custom_{$customField2['id']}" => 'def',
"move_rel_table_custom_{$multiGroup['id']}" => '1',
- ));
+ ]);
$this->assertCustomFieldValue($originalContactID, '', "custom_{$customField1['id']}");
$this->assertCustomFieldValue($originalContactID, 'def', "custom_{$customField2['id']}");
$this->assertCustomFieldValue($originalContactID, 'ghi', "custom_{$multiField['id']}");
// cleanup created custom set
- $this->callAPISuccess('CustomField', 'delete', array('id' => $customField1['id']));
- $this->callAPISuccess('CustomField', 'delete', array('id' => $customField2['id']));
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $createGroup['id']));
- $this->callAPISuccess('CustomField', 'delete', array('id' => $multiField['id']));
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $multiGroup['id']));
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $customField1['id']]);
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $customField2['id']]);
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $createGroup['id']]);
+ $this->callAPISuccess('CustomField', 'delete', ['id' => $multiField['id']]);
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $multiGroup['id']]);
}
/**
* @param $params
* Array of fields to be merged from source into target contact, of the form
* ['move_<fieldName>' => <fieldValue>]
+ *
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
private function mergeContacts($originalContactID, $duplicateContactID, $params) {
$rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo($originalContactID, $duplicateContactID);
- $migrationData = array(
+ $migrationData = [
'main_details' => $rowsElementsAndInfo['main_details'],
'other_details' => $rowsElementsAndInfo['other_details'],
- );
+ ];
// Migrate data of duplicate contact
CRM_Dedupe_Merger::moveAllBelongings($originalContactID, $duplicateContactID, array_merge($migrationData, $params));
* @param $customFieldName
*/
private function assertCustomFieldValue($contactID, $expectedValue, $customFieldName) {
- $data = $this->callAPISuccess('Contact', 'getsingle', array(
+ $data = $this->callAPISuccess('Contact', 'getsingle', [
'id' => $contactID,
- 'return' => array($customFieldName),
- ));
+ 'return' => [$customFieldName],
+ ]);
$this->assertEquals($expectedValue, $data[$customFieldName], "Custom field value was supposed to be '{$expectedValue}', '{$data[$customFieldName]}' found.");
}
* Data for the created custom group record
*/
private function setupCustomGroupForIndividual() {
- $customGroup = $this->callAPISuccess('custom_group', 'get', array(
+ $customGroup = $this->callAPISuccess('custom_group', 'get', [
'name' => 'test_group',
- ));
+ ]);
if ($customGroup['count'] > 0) {
- $this->callAPISuccess('CustomGroup', 'delete', array('id' => $customGroup['id']));
+ $this->callAPISuccess('CustomGroup', 'delete', ['id' => $customGroup['id']]);
}
- $customGroup = $this->callAPISuccess('custom_group', 'create', array(
+ $customGroup = $this->callAPISuccess('custom_group', 'create', [
'title' => 'Test_Group',
'name' => 'test_group',
- 'extends' => array('Individual'),
+ 'extends' => ['Individual'],
'style' => 'Inline',
'is_multiple' => FALSE,
'is_active' => 1,
- ));
+ ]);
return $customGroup;
}
* Data for the created custom field record
*/
private function setupCustomField($fieldLabel, $createGroup) {
- return $this->callAPISuccess('custom_field', 'create', array(
+ return $this->callAPISuccess('custom_field', 'create', [
'label' => $fieldLabel,
'data_type' => 'Alphanumeric',
'html_type' => 'Text',
'custom_group_id' => $createGroup['id'],
- ));
+ ]);
}
/**
* Set up some contacts for our matching.
*/
public function setupMatchData() {
- $fixtures = array(
- array(
+ $fixtures = [
+ [
'first_name' => 'Mickey',
'last_name' => 'Mouse',
'email' => 'mickey@mouse.com',
- ),
- array(
+ ],
+ [
'first_name' => 'Mickey',
'last_name' => 'Mouse',
'email' => 'mickey@mouse.com',
- ),
- array(
+ ],
+ [
'first_name' => 'Minnie',
'last_name' => 'Mouse',
'email' => 'mickey@mouse.com',
- ),
- array(
+ ],
+ [
'first_name' => 'Minnie',
'last_name' => 'Mouse',
'email' => 'mickey@mouse.com',
- ),
- );
+ ],
+ ];
foreach ($fixtures as $fixture) {
$contactID = $this->individualCreate($fixture);
- $this->contacts[] = array_merge($fixture, array('id' => $contactID));
+ $this->contacts[] = array_merge($fixture, ['id' => $contactID]);
}
- $organizationFixtures = array(
- array(
+ $organizationFixtures = [
+ [
'organization_name' => 'Walt Disney Ltd',
'email' => 'walt@disney.com',
- ),
- array(
+ ],
+ [
'organization_name' => 'Walt Disney Ltd',
'email' => 'walt@disney.com',
- ),
- array(
+ ],
+ [
'organization_name' => 'Walt Disney',
'email' => 'walt@disney.com',
- ),
- array(
+ ],
+ [
'organization_name' => 'Walt Disney',
'email' => 'walter@disney.com',
- ),
- );
+ ],
+ ];
foreach ($organizationFixtures as $fixture) {
$contactID = $this->organizationCreate($fixture);
- $this->contacts[] = array_merge($fixture, array('id' => $contactID));
+ $this->contacts[] = array_merge($fixture, ['id' => $contactID]);
}
}
*
* This is a statically maintained (in this test list).
*
- * There is also a check against an automated list but having both seems to add extra stability to me. They do
- * not change often.
+ * There is also a check against an automated list but having both seems to
+ * add extra stability to me. They do not change often.
*/
public function getStaticCIDRefs() {
- return array(
- 'civicrm_acl_cache' => array(
+ return [
+ 'civicrm_acl_cache' => [
0 => 'contact_id',
- ),
- 'civicrm_acl_contact_cache' => array(
+ ],
+ 'civicrm_acl_contact_cache' => [
0 => 'contact_id',
- ),
- 'civicrm_action_log' => array(
+ ],
+ 'civicrm_action_log' => [
0 => 'contact_id',
- ),
- 'civicrm_activity_contact' => array(
+ ],
+ 'civicrm_activity_contact' => [
0 => 'contact_id',
- ),
- 'civicrm_address' => array(
+ ],
+ 'civicrm_address' => [
0 => 'contact_id',
- ),
- 'civicrm_batch' => array(
+ ],
+ 'civicrm_batch' => [
0 => 'created_id',
1 => 'modified_id',
- ),
- 'civicrm_campaign' => array(
+ ],
+ 'civicrm_campaign' => [
0 => 'created_id',
1 => 'last_modified_id',
- ),
- 'civicrm_case_contact' => array(
+ ],
+ 'civicrm_case_contact' => [
0 => 'contact_id',
- ),
- 'civicrm_contact' => array(
+ ],
+ 'civicrm_contact' => [
0 => 'primary_contact_id',
1 => 'employer_id',
- ),
- 'civicrm_contribution' => array(
+ ],
+ 'civicrm_contribution' => [
0 => 'contact_id',
- ),
- 'civicrm_contribution_page' => array(
+ ],
+ 'civicrm_contribution_page' => [
0 => 'created_id',
- ),
- 'civicrm_contribution_recur' => array(
+ ],
+ 'civicrm_contribution_recur' => [
0 => 'contact_id',
- ),
- 'civicrm_contribution_soft' => array(
+ ],
+ 'civicrm_contribution_soft' => [
0 => 'contact_id',
- ),
- 'civicrm_custom_group' => array(
+ ],
+ 'civicrm_custom_group' => [
0 => 'created_id',
- ),
- 'civicrm_dashboard_contact' => array(
+ ],
+ 'civicrm_dashboard_contact' => [
0 => 'contact_id',
- ),
- 'civicrm_dedupe_exception' => array(
+ ],
+ 'civicrm_dedupe_exception' => [
0 => 'contact_id1',
1 => 'contact_id2',
- ),
- 'civicrm_domain' => array(
+ ],
+ 'civicrm_domain' => [
0 => 'contact_id',
- ),
- 'civicrm_email' => array(
+ ],
+ 'civicrm_email' => [
0 => 'contact_id',
- ),
- 'civicrm_event' => array(
+ ],
+ 'civicrm_event' => [
0 => 'created_id',
- ),
- 'civicrm_event_carts' => array(
+ ],
+ 'civicrm_event_carts' => [
0 => 'user_id',
- ),
- 'civicrm_financial_account' => array(
+ ],
+ 'civicrm_financial_account' => [
0 => 'contact_id',
- ),
- 'civicrm_financial_item' => array(
+ ],
+ 'civicrm_financial_item' => [
0 => 'contact_id',
- ),
- 'civicrm_grant' => array(
+ ],
+ 'civicrm_grant' => [
0 => 'contact_id',
- ),
- 'civicrm_group' => array(
+ ],
+ 'civicrm_group' => [
0 => 'created_id',
1 => 'modified_id',
- ),
- 'civicrm_group_contact' => array(
+ ],
+ 'civicrm_group_contact' => [
0 => 'contact_id',
- ),
- 'civicrm_group_contact_cache' => array(
+ ],
+ 'civicrm_group_contact_cache' => [
0 => 'contact_id',
- ),
- 'civicrm_group_organization' => array(
+ ],
+ 'civicrm_group_organization' => [
0 => 'organization_id',
- ),
- 'civicrm_im' => array(
+ ],
+ 'civicrm_im' => [
0 => 'contact_id',
- ),
- 'civicrm_log' => array(
+ ],
+ 'civicrm_log' => [
0 => 'modified_id',
- ),
- 'civicrm_mailing' => array(
+ ],
+ 'civicrm_mailing' => [
0 => 'created_id',
1 => 'scheduled_id',
2 => 'approver_id',
- ),
- 'civicrm_file' => array(
+ ],
+ 'civicrm_file' => [
'created_id',
- ),
- 'civicrm_mailing_abtest' => array(
+ ],
+ 'civicrm_mailing_abtest' => [
0 => 'created_id',
- ),
- 'civicrm_mailing_event_queue' => array(
+ ],
+ 'civicrm_mailing_event_queue' => [
0 => 'contact_id',
- ),
- 'civicrm_mailing_event_subscribe' => array(
+ ],
+ 'civicrm_mailing_event_subscribe' => [
0 => 'contact_id',
- ),
- 'civicrm_mailing_recipients' => array(
+ ],
+ 'civicrm_mailing_recipients' => [
0 => 'contact_id',
- ),
- 'civicrm_membership' => array(
+ ],
+ 'civicrm_membership' => [
0 => 'contact_id',
- ),
- 'civicrm_membership_log' => array(
+ ],
+ 'civicrm_membership_log' => [
0 => 'modified_id',
- ),
- 'civicrm_membership_type' => array(
+ ],
+ 'civicrm_membership_type' => [
0 => 'member_of_contact_id',
- ),
- 'civicrm_note' => array(
+ ],
+ 'civicrm_note' => [
0 => 'contact_id',
- ),
- 'civicrm_openid' => array(
+ ],
+ 'civicrm_openid' => [
0 => 'contact_id',
- ),
- 'civicrm_participant' => array(
+ ],
+ 'civicrm_participant' => [
0 => 'contact_id',
//CRM-16761
1 => 'transferred_to_contact_id',
- ),
- 'civicrm_payment_token' => array(
+ ],
+ 'civicrm_payment_token' => [
0 => 'contact_id',
1 => 'created_id',
- ),
- 'civicrm_pcp' => array(
+ ],
+ 'civicrm_pcp' => [
0 => 'contact_id',
- ),
- 'civicrm_phone' => array(
+ ],
+ 'civicrm_phone' => [
0 => 'contact_id',
- ),
- 'civicrm_pledge' => array(
+ ],
+ 'civicrm_pledge' => [
0 => 'contact_id',
- ),
- 'civicrm_print_label' => array(
+ ],
+ 'civicrm_print_label' => [
0 => 'created_id',
- ),
- 'civicrm_relationship' => array(
+ ],
+ 'civicrm_relationship' => [
0 => 'contact_id_a',
1 => 'contact_id_b',
- ),
- 'civicrm_report_instance' => array(
+ ],
+ 'civicrm_report_instance' => [
0 => 'created_id',
1 => 'owner_id',
- ),
- 'civicrm_setting' => array(
+ ],
+ 'civicrm_setting' => [
0 => 'contact_id',
1 => 'created_id',
- ),
- 'civicrm_subscription_history' => array(
+ ],
+ 'civicrm_subscription_history' => [
0 => 'contact_id',
- ),
- 'civicrm_survey' => array(
+ ],
+ 'civicrm_survey' => [
0 => 'created_id',
1 => 'last_modified_id',
- ),
- 'civicrm_tag' => array(
+ ],
+ 'civicrm_tag' => [
0 => 'created_id',
- ),
- 'civicrm_uf_group' => array(
+ ],
+ 'civicrm_uf_group' => [
0 => 'created_id',
- ),
- 'civicrm_uf_match' => array(
+ ],
+ 'civicrm_uf_match' => [
0 => 'contact_id',
- ),
- 'civicrm_value_testgetcidref_1' => array(
+ ],
+ 'civicrm_value_testgetcidref_1' => [
0 => 'entity_id',
- ),
- 'civicrm_website' => array(
+ ],
+ 'civicrm_website' => [
0 => 'contact_id',
- ),
- );
+ ],
+ ];
}
/**
* Get a list of CIDs that is calculated off the schema.
*
- * Note this is an expensive and table locking query. Should be safe in tests though.
+ * Note this is an expensive and table locking query. Should be safe in tests
+ * though.
*/
public function getCalculatedCIDRefs() {
- $cidRefs = array();
+ $cidRefs = [];
$sql = "
SELECT
table_name,
$result = $this->addParticipantWithPayment($feeAmt, $amtPaid);
$contributionID = $result['contribution']['id'];
- //Complete the partial payment.
- $submittedValues = array(
+ $this->callAPISuccess('Payment', 'create', [
+ 'contribution_id' => $contributionID,
'total_amount' => 20,
'payment_instrument_id' => 3,
- );
- CRM_Contribute_BAO_Contribution::recordAdditionalPayment($contributionID, $submittedValues, 'owed', $result['participant']['id']);
+ 'participant_id' => $result['participant']['id'],
+ ]);
//Change selection to a lower amount.
$params['price_2'] = 50;
CRM_Price_BAO_LineItem::changeFeeSelections($params, $result['participant']['id'], 'participant', $contributionID, $result['feeBlock'], $result['lineItem']);
- //Record a refund of the remaining amount.
- $submittedValues['total_amount'] = 50;
- CRM_Contribute_BAO_Contribution::recordAdditionalPayment($contributionID, $submittedValues, 'refund', $result['participant']['id']);
+ $this->callAPISuccess('Payment', 'create', [
+ 'total_amount' => -50,
+ 'contribution_id' => $contributionID,
+ 'participant_id' => $result['participant']['id'],
+ 'payment_instrument_id' => 3,
+ ]);
$paymentInfo = CRM_Contribute_BAO_Contribution::getPaymentInfo($result['participant']['id'], 'event', TRUE);
$transaction = $paymentInfo['transaction'];
$contributionBalance = ($this->_cheapFee - $actualPaidAmount);
$this->assertEquals($contributionBalance, CRM_Contribute_BAO_Contribution::getContributionBalance($this->_contributionId));
- //Complete the refund payment.
- $submittedValues = array(
- 'total_amount' => 120,
+ $this->callAPISuccess('Payment', 'create', [
+ 'contribution_id' => $this->_contributionId,
+ 'total_amount' => -120,
'payment_instrument_id' => 3,
- );
- CRM_Contribute_BAO_Contribution::recordAdditionalPayment($this->_contributionId, $submittedValues, 'refund', $this->_participantId);
+ 'participant_id' => $this->_participantId,
+ ]);
$contributionBalance += 120;
$this->assertEquals($contributionBalance, CRM_Contribute_BAO_Contribution::getContributionBalance($this->_contributionId));
* Test for validating financial type has deferred revenue account relationship.
*/
public function testcheckFinancialTypeHasDeferred() {
- Civi::settings()->set('contribution_invoice_settings', array('deferred_revenue_enabled' => '1'));
- $params = array();
+ Civi::settings()->set('deferred_revenue_enabled', 1);
+ $params = [];
$valid = CRM_Financial_BAO_FinancialAccount::checkFinancialTypeHasDeferred($params);
$this->assertFalse($valid, "This should have been false");
$cid = $this->individualCreate();
/**
* Test renaming multiple fields.
+ *
+ * @throws Exception
*/
public function testRenameFields() {
$this->callAPISuccess('SavedSearch', 'create', [
$this->assertEquals('activity_date_time_relative', $savedSearch['form_values'][1][0]);
}
+ /**
+ * Test that a mis-saved variable in 'contribute settings' can be converted to a
+ * 'proper' setting.
+ */
+ public function testConvertUpgradeContributeSettings() {
+ Civi::settings()->set('contribution_invoice_settings', ['foo' => 'bar', 'deferred_revenue_enabled' => 1]);
+ $this->assertEquals(0, Civi::settings()->get('deferred_revenue_enabled'));
+ CRM_Upgrade_Incremental_Base::updateContributeSettings(NULL, 5.1);
+ $this->assertEquals(1, Civi::settings()->get('deferred_revenue_enabled'));
+ }
+
}
* and request the error in array format
*/
public function testCheckParamsWithDuplicateContact2() {
- // Insert a row in civicrm_contact creating individual contact
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/../../api/v3/dataset/contact_17.xml'
- )
- );
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/../../api/v3/dataset/email_contact_17.xml'
- )
- );
+ $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact', 'email' => 'TestContact@example.com']);
- $params = array(
+ $params = [
'first_name' => 'Test',
'last_name' => 'Contact',
'email' => 'TestContact@example.com',
'contact_type' => 'Individual',
- );
+ ];
$contact = _civicrm_api3_deprecated_contact_check_params($params, TRUE);
$this->assertEquals(1, $contact['is_error']);
- $this->assertRegexp("/matching contacts.*17/s",
+ $this->assertRegexp("/matching contacts.*1/s",
$contact['error_message']['message']
);
}
--- /dev/null
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 5 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2019 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Trait Custom Data trait.
+ *
+ * Trait for setting up custom data in tests.
+ */
+trait CRMTraits_Custom_CustomDataTrait {
+
+ /**
+ * Create a custom group.
+ *
+ * @param array $params
+ *
+ * @return int
+ */
+ public function createCustomGroup($params = []) {
+ $params = array_merge([
+ 'title' => 'Custom Group',
+ 'extends' => [$this->entity],
+ 'weight' => 5,
+ 'style' => 'Inline',
+ 'max_multiple' => 0,
+ ], $params);
+ $this->ids['CustomGroup'][$params['title']] = $this->callAPISuccess('CustomGroup', 'create', $params)['id'];
+ return $this->ids['CustomGroup'][$params['title']];
+ }
+
+ /**
+ * @return array
+ */
+ public function createCustomFieldsOfAllTypes() {
+ $customGroupID = $this->ids['CustomGroup']['Custom Group'];
+ $ids = [];
+ $params = [
+ 'custom_group_id' => $customGroupID,
+ 'label' => 'Enter text here',
+ 'html_type' => 'Text',
+ 'data_type' => 'String',
+ 'default_value' => 'xyz',
+ 'weight' => 1,
+ 'is_required' => 1,
+ ];
+
+ $customField = $this->callAPISuccess('CustomField', 'create', $params);
+ $ids[] = $customField['id'];
+
+ $optionValue[] = [
+ 'label' => 'Red',
+ 'value' => 'R',
+ 'weight' => 1,
+ 'is_active' => 1,
+ ];
+ $optionValue[] = [
+ 'label' => 'Yellow',
+ 'value' => 'Y',
+ 'weight' => 2,
+ 'is_active' => 1,
+ ];
+ $optionValue[] = [
+ 'label' => 'Green',
+ 'value' => 'G',
+ 'weight' => 3,
+ 'is_active' => 1,
+ ];
+
+ $params = [
+ 'label' => 'Pick Color',
+ 'html_type' => 'Select',
+ 'data_type' => 'String',
+ 'weight' => 2,
+ 'is_required' => 1,
+ 'is_searchable' => 0,
+ 'is_active' => 1,
+ 'option_values' => $optionValue,
+ 'custom_group_id' => $customGroupID,
+ ];
+
+ $customField = $this->callAPISuccess('custom_field', 'create', $params);
+ $ids[] = $customField['id'];
+
+ $params = [
+ 'custom_group_id' => $customGroupID,
+ 'name' => 'test_date',
+ 'label' => 'test_date',
+ 'html_type' => 'Select Date',
+ 'data_type' => 'Date',
+ 'default_value' => '20090711',
+ 'weight' => 3,
+ 'is_required' => 1,
+ 'is_searchable' => 0,
+ 'is_active' => 1,
+ ];
+
+ $customField = $this->callAPISuccess('custom_field', 'create', $params);
+
+ $ids[] = $customField['id'];
+ $params = [
+ 'custom_group_id' => $customGroupID,
+ 'name' => 'test_link',
+ 'label' => 'test_link',
+ 'html_type' => 'Link',
+ 'data_type' => 'Link',
+ 'default_value' => 'http://civicrm.org',
+ 'weight' => 4,
+ 'is_required' => 1,
+ 'is_searchable' => 0,
+ 'is_active' => 1,
+ ];
+
+ $customField = $this->callAPISuccess('custom_field', 'create', $params);
+ $ids[] = $customField['id'];
+ return $ids;
+ }
+
+}
/**
* Database has been initialized.
*
- * @var boolean
+ * @var bool
*/
private static $dbInit = FALSE;
protected $tempDirs;
/**
- * @var boolean populateOnce allows to skip db resets in setUp
+ * @var bool populateOnce allows to skip db resets in setUp
*
* WARNING! USE WITH CAUTION - IT'LL RENDER DATA DEPENDENCIES
* BETWEEN TESTS WHEN RUN IN SUITE. SUITABLE FOR LOCAL, LIMITED
public static $populateOnce = FALSE;
/**
- * @var boolean DBResetRequired allows skipping DB reset
+ * @var bool DBResetRequired allows skipping DB reset
* in specific test case. If you still need
* to reset single test (method) of such case, call
* $this->cleanDB() in the first line of this
*/
private $tx = NULL;
+ /**
+ * Array of IDs created to support the test.
+ *
+ * e.g
+ * $this->ids = ['Contact' => ['descriptive_key' => $contactID], 'Group' => [$groupID]];
+ *
+ * @var array
+ */
+ protected $ids = [];
+
/**
* Class used for hooks during tests.
*
// disable any left-over test extensions
CRM_Core_DAO::executeQuery('DELETE FROM civicrm_extension WHERE full_name LIKE "test.%"');
+ $extensions = \CRM_Extension_System::singleton()->getManager();
+ $api4Status = $extensions->getStatus('org.civicrm.api4');
+ if ($api4Status != $extensions::STATUS_INSTALLED && $api4Status != $extensions::STATUS_UNKNOWN) {
+ $extensions->enable(['org.civicrm.api4']);
+ }
+
// reset all the caches
CRM_Utils_System::flushCache();
$this->getConnection()->getConnection()->query("SET FOREIGN_KEY_CHECKS = 0;");
- $xmlFiles = glob($fixturesDir . '/*.xml');
- foreach ($xmlFiles as $xmlFixture) {
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $dataset = $this->createXMLDataSet($xmlFixture);
- $this->_tablesToTruncate = array_merge($this->_tablesToTruncate, $dataset->getTableNames());
- $op->execute($this->_dbconn, $dataset);
- }
-
$yamlFiles = glob($fixturesDir . '/*.yaml');
foreach ($yamlFiles as $yamlFixture) {
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$dbLocale = '_en_US';
}
+ /**
+ * Setup or clean up SMS tests
+ * @param bool $teardown
+ *
+ * @throws \CiviCRM_API3_Exception
+ */
+ public function setupForSmsTests($teardown = FALSE) {
+ require_once 'CiviTest/CiviTestSMSProvider.php';
+
+ // Option value params for CiviTestSMSProvider
+ $groupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'sms_provider_name', 'id', 'name');
+ $params = array(
+ 'option_group_id' => $groupID,
+ 'label' => 'unittestSMS',
+ 'value' => 'unit.test.sms',
+ 'name' => 'CiviTestSMSProvider',
+ 'is_default' => 1,
+ 'is_active' => 1,
+ 'version' => 3,
+ );
+
+ if ($teardown) {
+ // Test completed, delete provider
+ $providerOptionValueResult = civicrm_api3('option_value', 'get', $params);
+ civicrm_api3('option_value', 'delete', array('id' => $providerOptionValueResult['id']));
+ return;
+ }
+
+ // Create an SMS provider "CiviTestSMSProvider". Civi handles "CiviTestSMSProvider" as a special case and allows it to be instantiated
+ // in CRM/Sms/Provider.php even though it is not an extension.
+ return civicrm_api3('option_value', 'create', $params);
+ }
+
}
* Verify successful update of individual contact.
*/
public function testUpdateIndividualWithAll() {
- // Insert a row in civicrm_contact creating individual contact.
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_ind.xml'
- )
- );
+ $contactID = $this->individualCreate();
- $params = array(
- 'id' => 23,
+ $params = [
+ 'id' => $contactID,
'first_name' => 'abcd',
'contact_type' => 'Individual',
'nick_name' => 'This is nickname first',
'external_identifier' => '1928837465',
'image_URL' => 'http://some.url.com/image.jpg',
'home_url' => 'http://www.example.org',
-
- );
+ ];
$this->callAPISuccess('Contact', 'Update', $params);
$getResult = $this->callAPISuccess('Contact', 'Get', $params);
//reducing this test partially back to api v2 level to get it through
unset($params['home_url']);
foreach ($params as $key => $value) {
- $this->assertEquals($value, $getResult['values'][23][$key]);
+ $this->assertEquals($value, $getResult['values'][$contactID][$key]);
}
- // Check updated civicrm_contact against expected.
- $expected = $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_ind_upd.xml'
- );
- $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataSet(
- $this->_dbconn
- );
- $actual->addTable('civicrm_contact');
- $expected->matches($actual);
}
/**
* Verify successful update of organization contact.
+ *
+ * @throws \Exception
*/
public function testUpdateOrganizationWithAll() {
- // Insert a row in civicrm_contact creating organization contact
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_org.xml'
- )
- );
+ $contactID = $this->organizationCreate();
- $params = array(
- 'id' => 24,
+ $params = [
+ 'id' => $contactID,
'organization_name' => 'WebAccess India Pvt Ltd',
'legal_name' => 'WebAccess',
'sic_code' => 'ABC12DEF',
'contact_type' => 'Organization',
- );
+ ];
$this->callAPISuccess('Contact', 'Update', $params);
-
- // Check updated civicrm_contact against expected.
- $expected = $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_org_upd.xml'
- );
- $actual = new PHPUnit_Extensions_Database_DataSet_QueryDataSet(
- $this->_dbconn
- );
- $actual->addTable('civicrm_contact');
- $expected->matches($actual);
+ $this->getAndCheck($params, $contactID, 'Contact');
}
/**
* Verify successful update of household contact.
*/
public function testUpdateHouseholdWithAll() {
- // Insert a row in civicrm_contact creating household contact
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_hld.xml'
- )
- );
+ $contactID = $this->householdCreate();
- $params = array(
- 'id' => 25,
+ $params = [
+ 'id' => $contactID ,
'household_name' => 'ABC household',
'nick_name' => 'ABC House',
'contact_type' => 'Household',
- );
+ ];
$result = $this->callAPISuccess('Contact', 'Update', $params);
- $expected = array(
+ $expected = [
'contact_type' => 'Household',
'is_opt_out' => 0,
'sort_name' => 'ABC household',
'display_name' => 'ABC household',
'nick_name' => 'ABC House',
- );
+ ];
$this->getAndCheck($expected, $result['id'], 'contact');
}
* CRM-7645.
*/
public function testUpdateCreateWithID() {
- // Insert a row in civicrm_contact creating individual contact.
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_ind.xml'
- )
- );
-
- $params = array(
- 'id' => 23,
+ $contactID = $this->individualCreate();
+ $this->callAPISuccess('Contact', 'Update', [
+ 'id' => $contactID,
'first_name' => 'abcd',
'last_name' => 'wxyz',
- );
- $this->callAPISuccess('Contact', 'Update', $params);
+ ]);
}
/**
* Test civicrm_contact_getquick() with empty name param.
*/
public function testContactGetQuick() {
- // Insert a row in civicrm_contact creating individual contact.
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_17.xml'
- )
- );
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/email_contact_17.xml'
- )
- );
- $params = array(
- 'name' => "T",
- );
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact', 'email' => 'TestContact@example.com']);
- $result = $this->callAPISuccess('contact', 'getquick', $params);
- $this->assertEquals(17, $result['values'][0]['id']);
- $params = array(
+ $result = $this->callAPISuccess('contact', 'getquick', ['name' => 'T']);
+ $this->assertEquals($contactID, $result['values'][0]['id']);
+ $params = [
'name' => "TestContact@example.com",
'field_name' => 'sort_name',
- );
+ ];
$result = $this->callAPISuccess('contact', 'getquick', $params);
- $this->assertEquals(17, $result['values'][0]['id']);
+ $this->assertEquals($contactID, $result['values'][0]['id']);
}
/**
* Test civicrm_contact_get) with empty params.
*/
public function testContactGetEmptyParams() {
- $this->callAPISuccess('contact', 'get', array());
+ $this->callAPISuccess('contact', 'get', []);
}
/**
* Test civicrm_contact_get(,true) with no matches.
*/
public function testContactGetOldParamsNoMatches() {
- // Insert a row in civicrm_contact creating contact 17.
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_17.xml'
- )
- );
-
- $params = array(
- 'first_name' => 'Fred',
- );
- $result = $this->callAPISuccess('contact', 'get', $params);
+ $this->individualCreate();
+ $result = $this->callAPISuccess('contact', 'get', ['first_name' => 'Fred']);
$this->assertEquals(0, $result['count']);
}
* Test civicrm_contact_get(,true) with one match.
*/
public function testContactGetOldParamsOneMatch() {
- // Insert a row in civicrm_contact creating contact 17
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(dirname(__FILE__) . '/dataset/contact_17.xml'
- )
- );
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
- $params = array(
- 'first_name' => 'Test',
- );
- $result = $this->callAPISuccess('contact', 'get', $params);
- $this->assertEquals(17, $result['values'][17]['contact_id']);
- $this->assertEquals(17, $result['id']);
+ $result = $this->callAPISuccess('contact', 'get', ['first_name' => 'Test']);
+ $this->assertEquals($contactID, $result['values'][$contactID]['contact_id']);
+ $this->assertEquals($contactID, $result['id']);
}
/**
* Test TrueFalse format - I couldn't come up with an easy way to get an error on Get.
*/
public function testContactGetFormatIsSuccessTrue() {
- $this->createContactFromXML();
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
$description = "This demonstrates use of the 'format.is_success' param.
This param causes only the success or otherwise of the function to be returned as BOOLEAN";
$subfile = "FormatIsSuccess_True";
- $params = array('id' => 17, 'format.is_success' => 1);
+ $params = ['id' => $contactID, 'format.is_success' => 1];
$result = $this->callAPIAndDocument('Contact', 'Get', $params, __FUNCTION__, __FILE__, $description, $subfile);
$this->assertEquals(1, $result);
$this->callAPISuccess('Contact', 'Delete', $params);
* Test Single Entity format.
*/
public function testContactGetSingleEntityArray() {
- $this->createContactFromXML();
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
$description = "This demonstrates use of the 'format.single_entity_array' param.
This param causes the only contact to be returned as an array without the other levels.
It will be ignored if there is not exactly 1 result";
$subfile = "GetSingleContact";
- $params = array('id' => 17);
- $result = $this->callAPIAndDocument('Contact', 'GetSingle', $params, __FUNCTION__, __FILE__, $description, $subfile);
- $this->assertEquals('Test Contact', $result['display_name']);
- $this->callAPISuccess('Contact', 'Delete', $params);
+ $result = $this->callAPIAndDocument('Contact', 'GetSingle', ['id' => $contactID], __FUNCTION__, __FILE__, $description, $subfile);
+ $this->assertEquals('Mr. Test Contact II', $result['display_name']);
+ $this->callAPISuccess('Contact', 'Delete', ['id' => $contactID]);
}
/**
* Test Single Entity format.
*/
public function testContactGetFormatCountOnly() {
- $this->createContactFromXML();
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
$description = "This demonstrates use of the 'getCount' action.
This param causes the count of the only function to be returned as an integer.";
- $params = array('id' => 17);
+ $params = ['id' => $contactID];
$result = $this->callAPIAndDocument('Contact', 'GetCount', $params, __FUNCTION__, __FILE__, $description,
'GetCountContact');
$this->assertEquals('1', $result);
* Test id only format.
*/
public function testContactGetFormatIDOnly() {
- $this->createContactFromXML();
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
$description = "This demonstrates use of the 'format.id_only' param.
This param causes the id of the only entity to be returned as an integer.
It will be ignored if there is not exactly 1 result";
$subfile = "FormatOnlyID";
- $params = array('id' => 17, 'format.only_id' => 1);
+ $params = ['id' => $contactID, 'format.only_id' => 1];
$result = $this->callAPIAndDocument('Contact', 'Get', $params, __FUNCTION__, __FILE__, $description, $subfile);
- $this->assertEquals('17', $result);
+ $this->assertEquals($contactID, $result);
$this->callAPISuccess('Contact', 'Delete', $params);
}
* Test id only format.
*/
public function testContactGetFormatSingleValue() {
- $this->createContactFromXML();
+ $contactID = $this->individualCreate(['first_name' => 'Test', 'last_name' => 'Contact']);
$description = "This demonstrates use of the 'format.single_value' param.
This param causes only a single value of the only entity to be returned as an string.
It will be ignored if there is not exactly 1 result";
$subFile = "FormatSingleValue";
- $params = array('id' => 17, 'return' => 'display_name');
+ $params = ['id' => $contactID, 'return' => 'display_name'];
$result = $this->callAPIAndDocument('Contact', 'getvalue', $params, __FUNCTION__, __FILE__, $description, $subFile);
- $this->assertEquals('Test Contact', $result);
+ $this->assertEquals('Mr. Test Contact II', $result);
$this->callAPISuccess('Contact', 'Delete', $params);
}
$this->callAPISuccess('contact', 'update', $params);
}
- /**
- * Set up helper to create a contact.
- */
- public function createContactFromXML() {
- // Insert a row in civicrm_contact creating contact 17.
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/contact_17.xml'
- )
- );
- }
-
/**
* Test contact proximity api.
*/
*/
class api_v3_CustomValueTest extends CiviUnitTestCase {
protected $_apiversion = 3;
- protected $ids;
+
protected $optionGroup;
public $DBResetRequired = FALSE;
* @group headless
*/
class api_v3_GroupNestingTest extends CiviUnitTestCase {
- protected $_apiversion;
/**
* Sets up the fixture, for example, opens a network connection.
+ *
* This method is called before a test is executed.
*/
protected function setUp() {
- $this->_apiversion = 3;
parent::setUp();
- // Insert a row in civicrm_group creating option group
- // from_email_address group
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/group_admins.xml'
- )
- );
-
- // Insert a row in civicrm_group creating option group
- // from_email_address group
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/group_subscribers.xml'
- )
- );
+ $this->ids['Group'] = [];
+ $this->ids['Group']['parent'] = $this->callAPISuccess('Group', 'create', [
+ 'name' => 'Administrators',
+ 'title' => 'Administrators',
+ ])['id'];
+ $this->ids['Group']['child'] = $this->callAPISuccess('Group', 'create', [
+ 'name' => 'Newsletter Subscribers',
+ 'title' => 'Newsletter Subscribers',
+ 'parents' => $this->ids['Group']['parent'],
+ ])['id'];
+ $this->ids['Group']['child2'] = $this->callAPISuccess('Group', 'create', [
+ 'name' => 'Another Newsletter Subscribers',
+ 'title' => 'Another Newsletter Subscribers',
+ 'parents' => $this->ids['Group']['parent'],
+ ])['id'];
+ $this->ids['Group']['child3'] = $this->callAPISuccess('Group', 'create', [
+ 'name' => 'Super Special Newsletter Subscribers',
+ 'title' => 'Super Special Newsletter Subscribers',
+ 'parents' => [$this->ids['Group']['parent'], $this->ids['Group']['child']],
+ ])['id'];
- // Insert a row in civicrm_group creating option group
- // from_email_address group
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/group_nesting.xml'
- )
- );
}
/**
- * Tears down the fixture, for example, closes a network connection.
+ * Tears down the fixture.
+ *
* This method is called after a test is executed.
+ *
+ * @throws \Exception
*/
protected function tearDown() {
- // Truncate the tables
$this->quickCleanup(
- array(
+ [
'civicrm_group',
'civicrm_group_nesting',
'civicrm_contact',
'civicrm_uf_group',
'civicrm_uf_join',
'civicrm_uf_match',
- )
+ ]
);
}
- ///////////////// civicrm_group_nesting_get methods
-
/**
* Test civicrm_group_nesting_get.
*/
public function testGet() {
- $params = array(
- 'parent_group_id' => 1,
- 'child_group_id' => 2,
- );
+ $params = [
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ 'child_group_id' => $this->ids['Group']['child'],
+ ];
$result = $this->callAPIAndDocument('group_nesting', 'get', $params, __FUNCTION__, __FILE__);
- // expected data loaded in setUp
- $expected = array(
- 1 => array(
+ $expected = [
+ 1 => [
'id' => 1,
- 'child_group_id' => 2,
- 'parent_group_id' => 1,
- ),
- );
+ 'child_group_id' => $this->ids['Group']['child'],
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ],
+ ];
$this->assertEquals($expected, $result['values']);
}
/**
- * Test civicrm_group_nesting_get with just one
- * param (child_group_id).
+ * Test civicrm_group_nesting_get with just one param (child_group_id).
*/
public function testGetWithChildGroupId() {
- $params = array(
- 'child_group_id' => 4,
- );
+ $params = [
+ 'child_group_id' => $this->ids['Group']['child3'],
+ ];
$result = $this->callAPISuccess('group_nesting', 'get', $params);
// expected data loaded in setUp
- $expected = array(
- 3 => array(
+ $expected = [
+ 3 => [
'id' => 3,
- 'child_group_id' => 4,
- 'parent_group_id' => 1,
- ),
- 4 => array(
+ 'child_group_id' => $this->ids['Group']['child3'],
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ],
+ 4 => [
'id' => 4,
- 'child_group_id' => 4,
- 'parent_group_id' => 2,
- ),
- );
+ 'child_group_id' => $this->ids['Group']['child3'],
+ 'parent_group_id' => $this->ids['Group']['child'],
+ ],
+ ];
$this->assertEquals($expected, $result['values']);
}
/**
- * Test civicrm_group_nesting_get with just one
- * param (parent_group_id).
+ * Test civicrm_group_nesting_get with just one param (parent_group_id).
*/
public function testGetWithParentGroupId() {
- $params = array(
- 'parent_group_id' => 1,
- );
+ $params = [
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ];
$result = $this->callAPISuccess('group_nesting', 'get', $params);
// expected data loaded in setUp
- $expected = array(
- 1 => array(
+ $expected = [
+ 1 => [
'id' => 1,
- 'child_group_id' => 2,
- 'parent_group_id' => 1,
- ),
- 2 => array(
+ 'child_group_id' => $this->ids['Group']['child'],
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ],
+ 2 => [
'id' => 2,
- 'child_group_id' => 3,
- 'parent_group_id' => 1,
- ),
- 3 => array(
+ 'child_group_id' => $this->ids['Group']['child2'],
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ],
+ 3 => [
'id' => 3,
- 'child_group_id' => 4,
- 'parent_group_id' => 1,
- ),
- );
+ 'child_group_id' => $this->ids['Group']['child3'],
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ ],
+ ];
$this->assertEquals($expected, $result['values']);
}
/**
* Test civicrm_group_nesting_get for no records results.
+ *
* Success expected. (these tests are of marginal value as are in syntax conformance,
* don't copy & paste
*/
public function testGetEmptyResults() {
- $params = array(
- 'parent_group_id' => 1,
+ $params = [
+ 'parent_group_id' => $this->ids['Group']['parent'],
'child_group_id' => 700,
- );
+ ];
$this->callAPISuccess('group_nesting', 'get', $params);
}
- ///////////////// civicrm_group_nesting_create methods
-
/**
* Test civicrm_group_nesting_create.
+ *
+ * @throws \Exception
*/
public function testCreate() {
- // groups id=1 and id=2 loaded in setUp
- $params = array(
- 'parent_group_id' => 1,
- 'child_group_id' => 3,
- );
+ $params = [
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ 'child_group_id' => $this->ids['Group']['child2'],
+ ];
$this->callAPIAndDocument('group_nesting', 'create', $params, __FUNCTION__, __FILE__);
$this->callAPISuccessGetCount('GroupNesting', $params, 1);
* Test civicrm_group_nesting_remove.
*/
public function testDelete() {
- // groups id=1 and id=2 loaded in setUp
- $getparams = array(
- 'parent_group_id' => 1,
- 'child_group_id' => 2,
- );
+ $params = [
+ 'parent_group_id' => $this->ids['Group']['parent'],
+ 'child_group_id' => $this->ids['Group']['child'],
+ ];
- $result = $this->callAPISuccess('group_nesting', 'get', $getparams);
- $params = array('id' => $result['id']);
+ $result = $this->callAPISuccess('group_nesting', 'get', $params);
+ $params = ['id' => $result['id']];
$this->callAPIAndDocument('group_nesting', 'delete', $params, __FUNCTION__, __FILE__);
- $this->assertEquals(0, $this->callAPISuccess('group_nesting', 'getcount', $getparams));
+ $this->assertEquals(0, $this->callAPISuccess('group_nesting', 'getcount', $params));
}
/**
* Error expected.
*/
public function testDeleteWithEmptyParams() {
- $this->callAPIFailure('group_nesting', 'delete', array());
+ $this->callAPIFailure('group_nesting', 'delete', []);
}
}
* We create 3 contacts - 1 is in our group, 1 has our membership & the chosen one has both
* & check that only the chosen one got the reminder
*/
- public function testCallSendReminderLimitTo() {
+ public function testCallSendReminderLimitToSMS() {
$membershipTypeID = $this->membershipTypeCreate();
$this->membershipStatusCreate();
$createTotal = 3;
$groupID = $this->groupCreate(array('name' => 'Texan drawlers', 'title' => 'a...'));
for ($i = 1; $i <= $createTotal; $i++) {
$contactID = $this->individualCreate();
+ $this->callAPISuccess('Phone', 'create', [
+ 'contact_id' => $contactID,
+ 'phone' => '555 123 1234',
+ 'phone_type_id' => 'Mobile',
+ 'location_type_id' => 'Billing',
+ ]);
if ($i == 2) {
$theChosenOneID = $contactID;
}
));
}
}
+ $this->setupForSmsTests();
+ $provider = civicrm_api3('SmsProvider', 'create', array(
+ 'name' => "CiviTestSMSProvider",
+ 'api_type' => "1",
+ "username" => "1",
+ "password" => "1",
+ "api_type" => "1",
+ "api_url" => "1",
+ "api_params" => "a=1",
+ "is_default" => "1",
+ "is_active" => "1",
+ "domain_id" => "1",
+ ));
$this->callAPISuccess('action_schedule', 'create', array(
'title' => " remind all Texans",
'subject' => "drawling renewal",
'start_action_unit' => 'day',
'group_id' => $groupID,
'limit_to' => TRUE,
+ 'sms_provider_id' => $provider['id'],
+ 'mode' => 'User_Preference',
));
$this->callAPISuccess('job', 'send_reminder', array());
$successfulCronCount = CRM_Core_DAO::singleValueQuery("SELECT count(*) FROM civicrm_action_log");
$this->assertEquals($successfulCronCount, 1);
$sentToID = CRM_Core_DAO::singleValueQuery("SELECT contact_id FROM civicrm_action_log");
$this->assertEquals($sentToID, $theChosenOneID);
+ $this->assertEquals(0, CRM_Core_DAO::singleValueQuery("SELECT is_error FROM civicrm_action_log"));
+ $this->setupForSmsTests(TRUE);
}
public function testCallDisableExpiredRelationships() {
$this->contactDelete($orgID);
}
+ /**
+ * Test scheduled reminders respect limit to (since above identified addition_to handling issue).
+ *
+ * We create 3 contacts - 1 is in our group, 1 has our membership & the chosen one has both
+ * & check that only the chosen one got the reminder
+ *
+ * Also check no hard fail on cron job with running a reminder that has a deleted SMS provider
+ */
+ public function testCallSendReminderLimitToSMSWithDeletedProviderr() {
+ $membershipTypeID = $this->membershipTypeCreate();
+ $this->membershipStatusCreate();
+ $createTotal = 3;
+ $groupID = $this->groupCreate(array('name' => 'Texan drawlers', 'title' => 'a...'));
+ for ($i = 1; $i <= $createTotal; $i++) {
+ $contactID = $this->individualCreate();
+ $this->callAPISuccess('Phone', 'create', [
+ 'contact_id' => $contactID,
+ 'phone' => '555 123 1234',
+ 'phone_type_id' => 'Mobile',
+ 'location_type_id' => 'Billing',
+ ]);
+ if ($i == 2) {
+ $theChosenOneID = $contactID;
+ }
+ if ($i < 3) {
+ $this->callAPISuccess('group_contact', 'create', array(
+ 'contact_id' => $contactID,
+ 'status' => 'Added',
+ 'group_id' => $groupID,
+ ));
+ }
+ if ($i > 1) {
+ $this->callAPISuccess('membership', 'create', array(
+ 'contact_id' => $contactID,
+ 'membership_type_id' => $membershipTypeID,
+ 'join_date' => 'now',
+ 'start_date' => '+ 1 day',
+ ));
+ }
+ }
+ $this->setupForSmsTests();
+ $provider = civicrm_api3('SmsProvider', 'create', array(
+ 'name' => "CiviTestSMSProvider",
+ 'api_type' => "1",
+ "username" => "1",
+ "password" => "1",
+ "api_type" => "1",
+ "api_url" => "1",
+ "api_params" => "a=1",
+ "is_default" => "1",
+ "is_active" => "1",
+ "domain_id" => "1",
+ ));
+ $this->callAPISuccess('action_schedule', 'create', array(
+ 'title' => " remind all Texans",
+ 'subject' => "drawling renewal",
+ 'entity_value' => $membershipTypeID,
+ 'mapping_id' => 4,
+ 'start_action_date' => 'membership_start_date',
+ 'start_action_offset' => 1,
+ 'start_action_condition' => 'before',
+ 'start_action_unit' => 'day',
+ 'group_id' => $groupID,
+ 'limit_to' => TRUE,
+ 'sms_provider_id' => $provider['id'],
+ 'mode' => 'SMS',
+ ));
+ $this->callAPISuccess('SmsProvider', 'delete', ['id' => $provider['id']]);
+ $this->callAPISuccess('job', 'send_reminder', array());
+ $cronCount = CRM_Core_DAO::singleValueQuery("SELECT count(*) FROM civicrm_action_log");
+ $this->assertEquals($cronCount, 1);
+ $sentToID = CRM_Core_DAO::singleValueQuery("SELECT contact_id FROM civicrm_action_log");
+ $this->assertEquals($sentToID, $theChosenOneID);
+ $cronlog = CRM_Core_DAO::executeQuery("SELECT * FROM civicrm_action_log")->fetchAll()[0];
+ $this->assertEquals(1, $cronlog['is_error']);
+ $this->assertEquals('SMS reminder cannot be sent because the SMS provider has been deleted.', $cronlog['message']);
+ $this->setupForSmsTests(TRUE);
+ }
+
/**
* Test the batch merge function.
*
* @group headless
*/
class api_v3_MailingContactTest extends CiviUnitTestCase {
- protected $_apiversion = 3;
protected $_entity = 'mailing';
public function setUp() {
parent::setUp();
- $params = array(
+ $params = [
'first_name' => 'abc1',
'contact_type' => 'Individual',
'last_name' => 'xyz1',
- );
+ ];
$this->_contact = $this->callAPISuccess("contact", "create", $params);
}
public function tearDown() {
- $this->callAPISuccess("contact", "delete", array('id' => $this->_contact['id']));
+ $this->callAPISuccess("contact", "delete", ['id' => $this->_contact['id']]);
parent::tearDown();
}
* belongs in the SyntaxConformance class
*/
public function testMailingNoContactID() {
- $params = array(
- 'something' => 'This is not a real field',
- );
- $this->callAPIFailure('MailingContact', 'get', $params);
+ $this->callAPIFailure('MailingContact', 'get', ['something' => 'This is not a real field']);
}
/**
* belongs in the SyntaxConformance class
*/
public function testMailingContactInvalidContactID() {
- $params = array('contact_id' => 'This is not a number');
- $this->callAPIFailure('MailingContact', 'get', $params);
+ $this->callAPIFailure('MailingContact', 'get', ['contact_id' => 'This is not a number']);
}
/**
* Test that the API returns a mailing properly when there is only one.
*/
public function testMailingContactDelivered() {
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- //Create the User
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/mailing_contact.xml'
- )
- );
- // Create the Mailing and connections to the user.
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/mailing_delivered.xml'
- )
- );
+ list($contactID, $mailingID, $eventQueueID) = $this->setupEventQueue();
+ CRM_Core_DAO::executeQuery("INSERT INTO civicrm_mailing_event_delivered (event_queue_id) VALUES(%1)", [1 => [$eventQueueID, 'Integer']]);
- $params = array(
- 'contact_id' => 23,
+ $params = [
+ 'contact_id' => $contactID,
'type' => 'Delivered',
- );
+ ];
$result = $this->callAPISuccess('MailingContact', 'get', $params);
$count = $this->callAPISuccess('MailingContact', 'getcount', $params);
$this->assertFalse(empty($result['values']));
$this->assertEquals($result['values'][1]['mailing_id'], 1);
$this->assertEquals($result['values'][1]['subject'], "Some Subject");
- $this->assertEquals($result['values'][1]['creator_id'], 3);
- $this->assertEquals($result['values'][1]['creator_name'], "xyz1, abc1");
+ $this->assertEquals(CRM_Core_Session::getLoggedInContactID(), $result['values'][1]['creator_id']);
}
/**
- * Test that the API returns only the "Bounced" mailings when instructed to do so.
+ * Test that the API returns only the "Bounced" mailings when instructed to
+ * do so.
+ *
+ * @throws \Exception
*/
public function testMailingContactBounced() {
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- // Create the User.
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/mailing_contact.xml'
- )
- );
- // Create the Mailing and connections to the user.
- $op->execute($this->_dbconn,
- $this->createXMLDataSet(
- dirname(__FILE__) . '/dataset/mailing_bounced.xml'
- )
- );
+ list($contactID, $mailingID, $eventQueueID) = $this->setupEventQueue();
+ CRM_Core_DAO::executeQuery("INSERT INTO civicrm_mailing_event_bounce (event_queue_id, bounce_type_id) VALUES(%1, 6)", [1 => [$eventQueueID, 'Integer']]);
- $params = array(
- 'contact_id' => 23,
+ $params = [
+ 'contact_id' => $contactID,
'type' => 'Bounced',
- );
+ ];
- $result = $this->callAPISuccess('MailingContact', 'get', $params);
- $this->assertEquals($result['count'], 1);
- $this->assertFalse(empty($result['values']));
- $this->assertEquals($result['values'][2]['mailing_id'], 2);
- $this->assertEquals($result['values'][2]['subject'], "Some Subject");
- $this->assertEquals($result['values'][2]['creator_id'], 3);
- $this->assertEquals($result['values'][2]['creator_name'], "xyz1, abc1");
+ $result = $this->callAPISuccess('MailingContact', 'get', $params)['values'];
+ $this->assertEquals(1, count($result));
+ $this->assertEquals($mailingID, $result[$mailingID]['mailing_id']);
+ $this->assertEquals('Some Subject', $result[$mailingID]['subject']);
+ $this->assertEquals(CRM_Core_Session::getLoggedInContactID(), $result[$mailingID]['creator_id'], 3);
+ }
+
+ /**
+ * @return array
+ * @throws \Exception
+ */
+ public function setupEventQueue() {
+ $contactID = $this->individualCreate(['first_name' => 'Test']);
+ $emailID = $this->callAPISuccessGetValue('Email', [
+ 'return' => 'id',
+ 'contact_id' => $contactID,
+ ]);
+ $this->createLoggedInUser();
+ $mailingID = $this->callAPISuccess('Mailing', 'create', [
+ 'name' => 'Test Mailing',
+ 'subject' => 'Some Subject',
+ ])['id'];
+ $mailingJobID = $this->callAPISuccess('MailingJob', 'create', ['mailing_id' => $mailingID])['id'];
+ $eventQueueID = $this->callAPISuccess('MailingEventQueue', 'create', [
+ 'contact_id' => $contactID,
+ 'mailing_id' => $mailingID,
+ 'email_id' => $emailID,
+ 'job_id' => $mailingJobID,
+ ])['id'];
+ return [$contactID, $mailingID, $eventQueueID];
}
}
* @group headless
*/
class api_v3_ProfileTest extends CiviUnitTestCase {
- protected $_apiversion;
+
protected $_profileID = 0;
+
protected $_membershipTypeID;
+
protected $_contactID;
+ /**
+ * Set up for test.
+ */
public function setUp() {
- $this->_apiversion = 3;
parent::setUp();
$config = CRM_Core_Config::singleton();
$countryLimit = $config->countryLimit;
$this->_membershipTypeID = $this->membershipTypeCreate();
}
+ /**
+ * Cleanup after test.
+ *
+ * @throws \Exception
+ */
public function tearDown() {
- $this->quickCleanup(array(
+ $this->quickCleanup([
'civicrm_contact',
'civicrm_phone',
'civicrm_address',
'civicrm_membership',
'civicrm_contribution',
'civicrm_uf_match',
- ), TRUE);
- $this->callAPISuccess('membership_type', 'delete', array('id' => $this->_membershipTypeID));
- // ok can't be bothered wring an api to do this & truncating is crazy
- CRM_Core_DAO::executeQuery(" DELETE FROM civicrm_uf_group WHERE id IN ($this->_profileID, 26)");
+ ], TRUE);
+ $this->callAPISuccess('membership_type', 'delete', ['id' => $this->_membershipTypeID]);
+ CRM_Core_DAO::executeQuery(" DELETE FROM civicrm_uf_group WHERE id = $this->_profileID OR name = 'test_contact_activity_profile'");
+ parent::tearDown();
}
/**
* Check Without ProfileId.
*/
public function testProfileGetWithoutProfileId() {
- $this->callAPIFailure('profile', 'get', array('contact_id' => 1),
+ $this->callAPIFailure('profile', 'get', ['contact_id' => 1],
'Mandatory key(s) missing from params array: profile_id'
);
}
* Check with no invalid profile Id.
*/
public function testProfileGetInvalidProfileId() {
- $this->callAPIFailure('profile', 'get', array('contact_id' => 1, 'profile_id' => 1000));
+ $this->callAPIFailure('profile', 'get', [
+ 'contact_id' => 1,
+ 'profile_id' => 1000,
+ ]);
}
/**
$profileFieldValues = $this->_createIndividualContact();
$expected = reset($profileFieldValues);
$contactId = key($profileFieldValues);
- $params = array(
+ $params = [
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
- );
- $result = $this->callAPISuccess('profile', 'get', $params);
+ ];
+ $result = $this->callAPISuccess('profile', 'get', $params)['values'];
foreach ($expected as $profileField => $value) {
- $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result['values']));
+ $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result));
}
}
+ /**
+ * Test getting multiple profiles.
+ */
public function testProfileGetMultiple() {
$profileFieldValues = $this->_createIndividualContact();
$expected = reset($profileFieldValues);
$contactId = key($profileFieldValues);
- $params = array(
- 'profile_id' => array($this->_profileID, 1, 'Billing'),
+ $params = [
+ 'profile_id' => [$this->_profileID, 1, 'Billing'],
'contact_id' => $contactId,
- );
+ ];
- $result = $this->callAPIAndDocument('profile', 'get', $params, __FUNCTION__, __FILE__);
+ $result = $this->callAPIAndDocument('profile', 'get', $params, __FUNCTION__, __FILE__)['values'];
foreach ($expected as $profileField => $value) {
- $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result['values'][$this->_profileID]), " error message: " . "missing/mismatching value for {$profileField}");
+ $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result[$this->_profileID]), " error message: " . "missing/mismatching value for {$profileField}");
}
- $this->assertEquals('abc1', $result['values'][1]['first_name'], " error message: " . "missing/mismatching value for {$profileField}");
- $this->assertFalse(array_key_exists('email-Primary', $result['values'][1]), 'profile 1 doesn not include email');
- $this->assertEquals($result['values']['Billing'], array(
+ $this->assertEquals('abc1', $result[1]['first_name'], " error message: " . "missing/mismatching value for first name");
+ $this->assertFalse(array_key_exists('email-Primary', $result[1]), 'profile 1 does not include email');
+ $this->assertEquals($result['Billing'], [
'billing_first_name' => 'abc1',
'billing_middle_name' => 'J.',
'billing_last_name' => 'xyz1',
'billing_postal_code-5' => '90210',
'billing-email-5' => 'abc1.xyz1@yahoo.com',
'email-5' => 'abc1.xyz1@yahoo.com',
- ));
+ ]);
}
+ /**
+ * Test getting billing profile filled using is_billing.
+ */
public function testProfileGetBillingUseIsBillingLocation() {
$individual = $this->_createIndividualContact();
$contactId = key($individual);
- $this->callAPISuccess('address', 'create', array(
+ $this->callAPISuccess('address', 'create', [
'is_billing' => 1,
'street_address' => 'is billing st',
'location_type_id' => 2,
'contact_id' => $contactId,
- ));
+ ]);
- $params = array(
- 'profile_id' => array($this->_profileID, 1, 'Billing'),
+ $params = [
+ 'profile_id' => [$this->_profileID, 1, 'Billing'],
'contact_id' => $contactId,
- );
+ ];
- $result = $this->callAPISuccess('profile', 'get', $params);
- $this->assertEquals('abc1', $result['values'][1]['first_name']);
- $this->assertEquals(array(
+ $result = $this->callAPISuccess('profile', 'get', $params)['values'];
+ $this->assertEquals('abc1', $result[1]['first_name']);
+ $this->assertEquals([
'billing_first_name' => 'abc1',
'billing_middle_name' => 'J.',
'billing_last_name' => 'xyz1',
'billing-email-5' => 'abc1.xyz1@yahoo.com',
'email-5' => 'abc1.xyz1@yahoo.com',
'billing_postal_code-5' => '',
- ), $result['values']['Billing']);
+ ], $result['Billing']);
}
+ /**
+ * Test getting multiple profiles, including billing.
+ */
public function testProfileGetMultipleHasBillingLocation() {
$individual = $this->_createIndividualContact();
$contactId = key($individual);
- $this->callAPISuccess('address', 'create', array(
+ $this->callAPISuccess('address', 'create', [
'contact_id' => $contactId,
'street_address' => '25 Big Street',
'city' => 'big city',
'location_type_id' => 5,
- ));
- $this->callAPISuccess('email', 'create', array(
+ ]);
+ $this->callAPISuccess('email', 'create', [
'contact_id' => $contactId,
'email' => 'big@once.com',
'location_type_id' => 2,
'is_billing' => 1,
- ));
+ ]);
- $params = array(
- 'profile_id' => array($this->_profileID, 1, 'Billing'),
+ $params = [
+ 'profile_id' => [$this->_profileID, 1, 'Billing'],
'contact_id' => $contactId,
- );
+ ];
$result = $this->callAPISuccess('profile', 'get', $params);
$this->assertEquals('abc1', $result['values'][1]['first_name']);
- $this->assertEquals($result['values']['Billing'], array(
+ $this->assertEquals($result['values']['Billing'], [
'billing_first_name' => 'abc1',
'billing_middle_name' => 'J.',
'billing_last_name' => 'xyz1',
'billing-email-5' => 'big@once.com',
'email-5' => 'big@once.com',
'billing_postal_code-5' => '',
- ));
+ ]);
}
/**
- * Get Billing empty contact - this will return generic defaults
+ * Get Billing empty contact - this will return generic defaults.
*/
public function testProfileGetBillingEmptyContact() {
$this->callAPISuccess('Setting', 'create', ['defaultContactCountry' => 1228]);
- $params = array(
- 'profile_id' => array('Billing'),
- );
+ $params = [
+ 'profile_id' => ['Billing'],
+ ];
- $result = $this->callAPISuccess('profile', 'get', $params);
- $this->assertEquals(array(
+ $result = $this->callAPISuccess('profile', 'get', $params)['values'];
+ $this->assertEquals([
'billing_first_name' => '',
'billing_middle_name' => '',
'billing_last_name' => '',
'billing_email-5' => '',
'email-5' => '',
'billing_postal_code-5' => '',
- ), $result['values']['Billing']);
+ ], $result['Billing']);
}
/**
/**
* Check contact activity profile with wrong activity type.
+ *
+ * @throws \Exception
*/
public function testContactActivityGetWrongActivityType() {
- //flush cache by calling with reset
- $activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, TRUE, 'name', TRUE);
-
- $sourceContactId = $this->householdCreate();
-
- $activityparams = array(
- 'source_contact_id' => $sourceContactId,
+ $activity = $this->callAPISuccess('activity', 'create', [
+ 'source_contact_id' => $this->householdCreate(),
'activity_type_id' => '2',
'subject' => 'Test activity',
'activity_date_time' => '20110316',
'duration' => '120',
- 'location' => 'Pensulvania',
+ 'location' => 'Pennsylvania',
'details' => 'a test activity',
'status_id' => '1',
'priority_id' => '1',
- );
-
- $activity = $this->callAPISuccess('activity', 'create', $activityparams);
+ ])['values'];
- $activityValues = array_pop($activity['values']);
+ $activityValues = array_pop($activity);
list($params) = $this->_createContactWithActivity();
public function testGetFields() {
$this->_createIndividualProfile();
$this->_addCustomFieldToProfile($this->_profileID);
- $result = $this->callAPIAndDocument('profile', 'getfields', array(
+ $result = $this->callAPIAndDocument('profile', 'getfields', [
'action' => 'submit',
'profile_id' => $this->_profileID,
- ), __FUNCTION__, __FILE__,
+ ], __FUNCTION__, __FILE__,
'demonstrates retrieving profile fields passing in an id');
$this->assertArrayKeyExists('first_name', $result['values']);
$this->assertEquals('2', $result['values']['first_name']['type']);
}
/**
- * Check getfields works & gives us our fields - partipant profile
+ * Check getfields works & gives us our fields - participant profile
*/
public function testGetFieldsParticipantProfile() {
- $result = $this->callAPISuccess('profile', 'getfields', array(
+ $result = $this->callAPISuccess('profile', 'getfields', [
'action' => 'submit',
'profile_id' => 'participant_status',
'get_options' => 'all',
- ));
+ ]);
$this->assertTrue(array_key_exists('participant_status_id', $result['values']));
$this->assertEquals('Attended', $result['values']['participant_status_id']['options'][2]);
- $this->assertEquals(array('participant_status'), $result['values']['participant_status_id']['api.aliases']);
+ $this->assertEquals(['participant_status'], $result['values']['participant_status_id']['api.aliases']);
}
/**
* (getting to the end with no e-notices is pretty good evidence it's working)
*/
public function testGetFieldsMembershipBatchProfile() {
- $result = $this->callAPISuccess('profile', 'getfields', array(
+ $result = $this->callAPISuccess('profile', 'getfields', [
'action' => 'submit',
'profile_id' => 'membership_batch_entry',
'get_options' => 'all',
- ));
+ ]);
$this->assertTrue(array_key_exists('total_amount', $result['values']));
$this->assertTrue(array_key_exists('financial_type_id', $result['values']));
- $this->assertEquals(array(
+ $this->assertEquals([
'contribution_type_id',
'contribution_type',
'financial_type',
- ), $result['values']['financial_type_id']['api.aliases']);
+ ], $result['values']['financial_type_id']['api.aliases']);
$this->assertTrue(!array_key_exists('financial_type', $result['values']));
$this->assertEquals(12, $result['values']['receive_date']['type']);
}
* (getting to the end with no e-notices is pretty good evidence it's working)
*/
public function testGetFieldsAllProfiles() {
- $result = $this->callAPISuccess('uf_group', 'get', array('return' => 'id'));
- $profileIDs = array_keys($result['values']);
+ $result = $this->callAPISuccess('uf_group', 'get', ['return' => 'id'])['values'];
+ $profileIDs = array_keys($result);
foreach ($profileIDs as $profileID) {
- $this->callAPISuccess('profile', 'getfields', array(
+ $this->callAPISuccess('profile', 'getfields', [
'action' => 'submit',
'profile_id' => $profileID,
'get_options' => 'all',
- ));
+ ]);
}
}
* Check Without ProfileId.
*/
public function testProfileSubmitWithoutProfileId() {
- $params = array(
+ $params = [
'contact_id' => 1,
- );
+ ];
$this->callAPIFailure('profile', 'submit', $params,
'Mandatory key(s) missing from params array: profile_id'
);
* Check with no invalid profile Id.
*/
public function testProfileSubmitInvalidProfileId() {
- $params = array(
+ $params = [
'contact_id' => 1,
'profile_id' => 1000,
- );
- $result = $this->callAPIFailure('profile', 'submit', $params);
+ ];
+ $this->callAPIFailure('profile', 'submit', $params);
}
/**
public function testProfileSubmitCheckProfileRequired() {
$profileFieldValues = $this->_createIndividualContact();
$contactId = key($profileFieldValues);
- $updateParams = array(
+ $updateParams = [
'first_name' => 'abc2',
'last_name' => 'xyz2',
'phone-1-1' => '022 321 826',
'country-1' => '1013',
'state_province-1' => '1000',
- );
+ ];
- $params = array_merge(array('profile_id' => $this->_profileID, 'contact_id' => $contactId),
+ $params = array_merge([
+ 'profile_id' => $this->_profileID,
+ 'contact_id' => $contactId,
+ ],
$updateParams
);
$profileFieldValues = $this->_createIndividualContact();
$contactId = key($profileFieldValues);
- $updateParams = array(
+ $updateParams = [
'first_name' => 'abc2',
'last_name' => 'xyz2',
'email-primary' => 'abc2.xyz2@gmail.com',
'phone-1-1' => '022 321 826',
'country-1' => '1013',
'state_province-1' => '1000',
- );
+ ];
- $params = array_merge(array(
+ $params = array_merge([
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
- ), $updateParams);
+ ], $updateParams);
$this->callAPIAndDocument('profile', 'submit', $params, __FUNCTION__, __FILE__);
- $getParams = array(
+ $getParams = [
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
- );
+ ];
$profileDetails = $this->callAPISuccess('profile', 'get', $getParams);
foreach ($updateParams as $profileField => $value) {
/**
* Ensure caches are being cleared so we don't get into a debugging trap because of cached metadata
- * First we delete & create to increment the version & then check for caching probs
+ * First we delete & create to increment the version & then check for caching problems.
*/
public function testProfileSubmitCheckCaching() {
- $this->callAPISuccess('membership_type', 'delete', array('id' => $this->_membershipTypeID));
+ $this->callAPISuccess('membership_type', 'delete', ['id' => $this->_membershipTypeID]);
$this->_membershipTypeID = $this->membershipTypeCreate();
- $membershipTypes = $this->callAPISuccess('membership_type', 'get', array());
- $profileFields = $this->callAPISuccess('profile', 'getfields', array(
+ $membershipTypes = $this->callAPISuccess('membership_type', 'get', []);
+ $profileFields = $this->callAPISuccess('profile', 'getfields', [
'get_options' => 'all',
'action' => 'submit',
'profile_id' => 'membership_batch_entry',
- ));
- $getoptions = $this->callAPISuccess('membership', 'getoptions', array(
+ ]);
+ $getoptions = $this->callAPISuccess('membership', 'getoptions', [
'field' => 'membership_type',
'context' => 'validate',
- ));
+ ]);
$this->assertEquals(array_keys($membershipTypes['values']), array_keys($getoptions['values']));
$this->assertEquals(array_keys($membershipTypes['values']), array_keys($profileFields['values']['membership_type_id']['options']));
* Test that the fields are returned in the right order despite the faffing around that goes on.
*/
public function testMembershipGetFieldsOrder() {
- $result = $this->callAPISuccess('profile', 'getfields', array(
+ $result = $this->callAPISuccess('profile', 'getfields', [
'action' => 'submit',
'profile_id' => 'membership_batch_entry',
- ));
+ ])['values'];
$weight = 1;
- foreach ($result['values'] as $fieldName => $field) {
+ foreach ($result as $fieldName => $field) {
if ($fieldName == 'profile_id') {
continue;
}
*/
public function testProfileSubmitMembershipBatch() {
$this->_contactID = $this->individualCreate();
- $this->callAPISuccess('profile', 'submit', array(
+ $this->callAPISuccess('profile', 'submit', [
'profile_id' => 'membership_batch_entry',
'financial_type_id' => 1,
'membership_type' => $this->_membershipTypeID,
'contribution_status_id' => 1,
'receive_date' => 'now',
'contact_id' => $this->_contactID,
- ));
+ ]);
}
/**
$profileFieldValues = $this->_createIndividualContact();
$contactId = key($profileFieldValues);
- $updateParams = array(
+ $updateParams = [
'first_name' => 'abc2',
'last_name' => 'xyz2',
'email-Primary' => 'abc2.xyz2@gmail.com',
'phone-1-1' => '022 321 826',
'country-1' => '1013',
'state_province-1' => '1000',
- );
+ ];
- $params = array_merge(array(
+ $params = array_merge([
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
- ), $updateParams);
+ ], $updateParams);
$result = $this->callAPISuccess('profile', 'set', $params);
$this->assertArrayKeyExists('values', $result);
- $getParams = array(
+ $getParams = [
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
- );
+ ];
$profileDetails = $this->callAPISuccess('profile', 'get', $getParams);
foreach ($updateParams as $profileField => $value) {
$params = array_merge($params, $expected);
unset($params['activity_id']);
- $result = $this->callAPIFailure('profile', 'submit', $params);
- $this->assertEquals($result['error_message'], 'Mandatory key(s) missing from params array: activity_id');
+ $this->callAPIFailure('profile', 'submit', $params, 'Mandatory key(s) missing from params array: activity_id');
}
/**
list($params, $expected) = $this->_createContactWithActivity();
$params = array_merge($params, $expected);
$params['activity_id'] = 100001;
- $result = $this->callAPIFailure('profile', 'submit', $params);
- $this->assertEquals($result['error_message'], 'Invalid Activity Id (aid).');
+ $this->callAPIFailure('profile', 'submit', $params, 'Invalid Activity Id (aid).');
}
/**
* Check contact activity profile with wrong activity type.
+ *
+ * @throws \Exception
*/
public function testContactActivitySubmitWrongActivityType() {
- //flush cache by calling with reset
- CRM_Core_PseudoConstant::activityType(TRUE, TRUE, TRUE, 'name', TRUE);
$sourceContactId = $this->householdCreate();
- $activityparams = array(
+ $activityParams = [
'source_contact_id' => $sourceContactId,
'activity_type_id' => '2',
'subject' => 'Test activity',
'activity_date_time' => '20110316',
'duration' => '120',
- 'location' => 'Pensulvania',
+ 'location' => 'Pennsylvania',
'details' => 'a test activity',
'status_id' => '1',
'priority_id' => '1',
- );
+ ];
- $activity = $this->callAPISuccess('activity', 'create', $activityparams);
+ $activity = $this->callAPISuccess('activity', 'create', $activityParams);
$activityValues = array_pop($activity['values']);
public function testContactActivitySubmitSuccess() {
list($params) = $this->_createContactWithActivity();
- $updateParams = array(
+ $updateParams = [
'first_name' => 'abc2',
'last_name' => 'xyz2',
'email-Primary' => 'abc2.xyz2@yahoo.com',
'activity_duration' => '100',
'activity_date_time' => '2010-03-08 00:00:00',
'activity_status_id' => '2',
- );
+ ];
$profileParams = array_merge($params, $updateParams);
$this->callAPISuccess('profile', 'submit', $profileParams);
- $result = $this->callAPISuccess('profile', 'get', $params);
+ $result = $this->callAPISuccess('profile', 'get', $params)['values'];
foreach ($updateParams as $profileField => $value) {
- $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result['values']), " error message: " . "missing/mismatching value for {$profileField}"
+ $this->assertEquals($value, CRM_Utils_Array::value($profileField, $result), " error message: " . "missing/mismatching value for {$profileField}"
);
}
}
* Check profile apply Without ProfileId.
*/
public function testProfileApplyWithoutProfileId() {
- $params = array(
+ $params = [
'contact_id' => 1,
- );
+ ];
$this->callAPIFailure('profile', 'apply', $params,
'Mandatory key(s) missing from params array: profile_id');
}
* Check profile apply with no invalid profile Id.
*/
public function testProfileApplyInvalidProfileId() {
- $params = array(
+ $params = [
'contact_id' => 1,
'profile_id' => 1000,
- );
+ ];
$this->callAPIFailure('profile', 'apply', $params);
}
current($profileFieldValues);
$contactId = key($profileFieldValues);
- $params = array(
+ $params = [
'profile_id' => $this->_profileID,
'contact_id' => $contactId,
'first_name' => 'abc2',
'phone-1-1' => '022 321 826',
'country-1' => '1013',
'state_province-1' => '1000',
- );
+ ];
$result = $this->callAPIAndDocument('profile', 'apply', $params, __FUNCTION__, __FILE__);
// Expected field values
- $expected['contact'] = array(
+ $expected['contact'] = [
'contact_id' => $contactId,
'contact_type' => 'Individual',
'first_name' => 'abc2',
'last_name' => 'xyz2',
- );
- $expected['email'] = array(
+ ];
+ $expected['email'] = [
'location_type_id' => 1,
'is_primary' => 1,
'email' => 'abc2.xyz2@gmail.com',
- );
+ ];
- $expected['phone'] = array(
+ $expected['phone'] = [
'location_type_id' => 1,
'is_primary' => 1,
'phone_type_id' => 1,
'phone' => '022 321 826',
- );
- $expected['address'] = array(
+ ];
+ $expected['address'] = [
'location_type_id' => 1,
'is_primary' => 1,
'country_id' => 1013,
'state_province_id' => 1000,
- );
+ ];
foreach ($expected['contact'] as $field => $value) {
- $this->assertEquals($value, CRM_Utils_Array::value($field, $result['values']), "In line " . __LINE__ . " error message: " . "missing/mismatching value for {$field}"
+ $this->assertEquals($value, CRM_Utils_Array::value($field, $result['values']), "missing/mismatching value for {$field}"
);
}
- foreach (array(
- 'email',
- 'phone',
- 'address',
- ) as $fieldType) {
+ foreach (['email', 'phone', 'address'] as $fieldType) {
$typeValues = array_pop($result['values'][$fieldType]);
foreach ($expected[$fieldType] as $field => $value) {
- $this->assertEquals($value, CRM_Utils_Array::value($field, $typeValues), "In line " . __LINE__ . " error message: " . "missing/mismatching value for {$field} ({$fieldType})"
+ $this->assertEquals($value, CRM_Utils_Array::value($field, $typeValues), "missing/mismatching value for {$field} ({$fieldType})"
);
}
}
$params['profile_id'] = $this->_profileID;
$params['contact_id'] = $contactId;
- $this->callAPISuccess('ufField', 'create', array(
+ $this->callAPISuccess('ufField', 'create', [
'uf_group_id' => $this->_profileID,
'field_name' => 'tag',
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'label' => 'Tags',
- ));
+ ]);
$tag_1 = $this->callAPISuccess('tag', 'create', ['name' => 'abc'])['id'];
$tag_2 = $this->callAPISuccess('tag', 'create', ['name' => 'def'])['id'];
$params['tag'] = "$tag_1,$tag_2";
- $result = $this->callAPISuccess('profile', 'submit', $params);
+ $this->callAPISuccess('profile', 'submit', $params);
$tags = $this->callAPISuccess('entityTag', 'get', ['entity_id' => $contactId]);
$this->assertEquals(2, $tags['count']);
$params['tag'] = [$tag_1];
- $result = $this->callAPISuccess('profile', 'submit', $params);
+ $this->callAPISuccess('profile', 'submit', $params);
$tags = $this->callAPISuccess('entityTag', 'get', ['entity_id' => $contactId]);
$this->assertEquals(1, $tags['count']);
$params['tag'] = '';
- $result = $this->callAPISuccess('profile', 'submit', $params);
+ $this->callAPISuccess('profile', 'submit', $params);
$tags = $this->callAPISuccess('entityTag', 'get', ['entity_id' => $contactId]);
$this->assertEquals(0, $tags['count']);
/**
* Check success with a note.
+ *
+ * @throws \Exception
*/
public function testSubmitWithNote() {
$profileFieldValues = $this->_createIndividualContact();
$params['profile_id'] = $this->_profileID;
$params['contact_id'] = $contactId;
- $this->callAPISuccess('ufField', 'create', array(
+ $this->callAPISuccess('ufField', 'create', [
'uf_group_id' => $this->_profileID,
'field_name' => 'note',
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'label' => 'Note',
- ));
+ ]);
$params['note'] = "Hello 123";
$this->callAPISuccess('profile', 'submit', $params);
/**
* Check handling a custom greeting.
+ *
+ * @throws \CiviCRM_API3_Exception
*/
public function testSubmitGreetingFields() {
$profileFieldValues = $this->_createIndividualContact();
$params['profile_id'] = $this->_profileID;
$params['contact_id'] = $contactId;
- $this->callAPISuccess('ufField', 'create', array(
+ $this->callAPISuccess('ufField', 'create', [
'uf_group_id' => $this->_profileID,
'field_name' => 'email_greeting',
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'label' => 'Email Greeting',
- ));
+ ]);
$emailGreetings = array_column(civicrm_api3('OptionValue', 'get', ['option_group_id' => "email_greeting"])['values'], NULL, 'name');
/**
* Helper function to create an Individual with address/email/phone info. Import UF Group and UF Fields
+ *
* @param array $params
*
* @return mixed
*/
- public function _createIndividualContact($params = array()) {
- $contactParams = array_merge(array(
+ public function _createIndividualContact($params = []) {
+ $contactParams = array_merge([
'first_name' => 'abc1',
'last_name' => 'xyz1',
'email' => 'abc1.xyz1@yahoo.com',
- 'api.address.create' => array(
+ 'api.address.create' => [
'location_type_id' => 1,
'is_primary' => 1,
'street_address' => '5 Saint Helier St',
'postal_code' => '90210',
'city' => 'Gotham City',
'is_billing' => 0,
- ),
- 'api.phone.create' => array(
+ ],
+ 'api.phone.create' => [
'location_type_id' => '1',
'phone' => '021 512 755',
'phone_type_id' => '1',
'is_primary' => '1',
- ),
- ), $params);
+ ],
+ ], $params);
$this->_contactID = $this->individualCreate($contactParams);
$this->_createIndividualProfile();
// expected result of above created profile with contact Id $contactId
- $profileData[$this->_contactID] = array(
+ $profileData[$this->_contactID] = [
'first_name' => 'abc1',
'last_name' => 'xyz1',
'email-primary' => 'abc1.xyz1@yahoo.com',
'phone-1-1' => '021 512 755',
'country-1' => '1228',
'state_province-1' => '1021',
- );
+ ];
return $profileData;
}
* @return array
*/
public function _createContactWithActivity() {
- // @TODO: Create profile with custom fields
- $op = new PHPUnit_Extensions_Database_Operation_Insert();
- $op->execute($this->_dbconn,
- $this->createFlatXMLDataSet(
- dirname(__FILE__) . '/dataset/uf_group_contact_activity_26.xml'
- )
- );
- // hack: xml data set do not accept \ 1 (CRM_Core_DAO::VALUE_SEPARATOR)
- CRM_Core_DAO::setFieldValue('CRM_Core_DAO_UFGroup', '26', 'group_type', 'Individual,Contact,Activity' . CRM_Core_DAO::VALUE_SEPARATOR . 'ActivityType:1');
+ $ufGroupID = $this->callAPISuccess('UFGroup', 'create', [
+ 'group_type' => 'Individual,Contact,Activity',
+ 'title' => 'Test Contact-Activity Profile',
+ 'name' => 'test_contact_activity_profile',
+ ])['id'];
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'first_name',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'First Name',
+ 'field_type' => 'Individual',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'last_name',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Last Name',
+ 'field_type' => 'Individual',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'email',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Email',
+ 'field_type' => 'Contact',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'activity_subject',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Activity Subject',
+ 'is_searchable' => TRUE,
+ 'field_type' => 'Activity',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'activity_details',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Activity Details',
+ 'is_searchable' => TRUE,
+ 'field_type' => 'Activity',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'activity_duration',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Activity Duration',
+ 'is_searchable' => TRUE,
+ 'field_type' => 'Activity',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'activity_date_time',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Activity Date',
+ 'is_searchable' => TRUE,
+ 'field_type' => 'Activity',
+ ]);
+ $this->callAPISuccess('UFField', 'create', [
+ 'uf_group_id' => $ufGroupID,
+ 'field_name' => 'activity_status_id',
+ 'is_required' => TRUE,
+ 'visibility' => 'Public Pages and Listings',
+ 'label' => 'Activity Status',
+ 'is_searchable' => TRUE,
+ 'field_type' => 'Activity',
+ ]);
+
+ // hack: xml data set did not accept \ 1 (CRM_Core_DAO::VALUE_SEPARATOR) - should be possible
+ // to unhack now we use the api.
+ CRM_Core_DAO::setFieldValue('CRM_Core_DAO_UFGroup', $ufGroupID, 'group_type', 'Individual,Contact,Activity' . CRM_Core_DAO::VALUE_SEPARATOR . 'ActivityType:1');
$sourceContactId = $this->individualCreate();
- $contactParams = array(
+ $contactParams = [
'first_name' => 'abc1',
'last_name' => 'xyz1',
'contact_type' => 'Individual',
'email' => 'abc1.xyz1@yahoo.com',
- 'api.address.create' => array(
+ 'api.address.create' => [
'location_type_id' => 1,
'is_primary' => 1,
'name' => 'Saint Helier St',
'supplemental_address_1' => 'Hallmark Ct',
'supplemental_address_2' => 'Jersey Village',
'supplemental_address_3' => 'My Town',
- ),
- );
+ ],
+ ];
$contact = $this->callAPISuccess('contact', 'create', $contactParams);
$this->assertEquals(0, $contact['values'][$contactId]['api.address.create']['is_error'], " error message: " . CRM_Utils_Array::value('error_message', $contact['values'][$contactId]['api.address.create'])
);
- $activityParams = array(
+ $activityParams = [
'source_contact_id' => $sourceContactId,
'assignee_contact_id' => $contactId,
'activity_type_id' => '1',
'subject' => 'Make-it-Happen Meeting',
'activity_date_time' => '2011-03-16 00:00:00',
'duration' => '120',
- 'location' => 'Pensulvania',
+ 'location' => 'Pennsylvania',
'details' => 'a test activity',
'status_id' => '1',
'priority_id' => '1',
- );
+ ];
$activity = $this->callAPISuccess('activity', 'create', $activityParams);
$activityValues = array_pop($activity['values']);
// valid parameters for above profile
- $profileParams = array(
- 'profile_id' => 26,
+ $profileParams = [
+ 'profile_id' => $ufGroupID,
'contact_id' => $contactId,
'activity_id' => $activityValues['id'],
- );
+ ];
// expected result of above created profile
- $expected = array(
+ $expected = [
'first_name' => 'abc1',
'last_name' => 'xyz1',
'email-Primary' => 'abc1.xyz1@yahoo.com',
'activity_duration' => '120',
'activity_date_time' => '2011-03-16 00:00:00',
'activity_status_id' => '1',
- );
+ ];
- return array($profileParams, $expected);
+ return [$profileParams, $expected];
}
/**
* Create a profile.
*/
public function _createIndividualProfile() {
- $ufGroupParams = array(
+ $ufGroupParams = [
'group_type' => 'Individual,Contact',
// really we should remove this & test the ufField create sets it
'name' => 'test_individual_contact_profile',
'title' => 'Flat Coffee',
- 'api.uf_field.create' => array(
- array(
+ 'api.uf_field.create' => [
+ [
'field_name' => 'first_name',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'field_type' => 'Individual',
'label' => 'First Name',
- ),
- array(
+ ],
+ [
'field_name' => 'last_name',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'field_type' => 'Individual',
'label' => 'Last Name',
- ),
- array(
+ ],
+ [
'field_name' => 'email',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'label' => 'Email',
- ),
- array(
+ ],
+ [
'field_name' => 'phone',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'location_type_id' => 1,
'phone_type_id' => 1,
'label' => 'Phone',
- ),
- array(
+ ],
+ [
'field_name' => 'country',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'location_type_id' => 1,
'label' => 'Country',
- ),
- array(
+ ],
+ [
'field_name' => 'state_province',
'is_required' => 1,
'visibility' => 'Public Pages and Listings',
'field_type' => 'Contact',
'location_type_id' => 1,
'label' => 'State Province',
- ),
- array(
+ ],
+ [
'field_name' => 'postal_code',
'is_required' => 0,
'field_type' => 'Contact',
'location_type_id' => 1,
'label' => 'State Province',
- ),
- ),
- );
+ ],
+ ],
+ ];
$profile = $this->callAPISuccess('uf_group', 'create', $ufGroupParams);
$this->_profileID = $profile['id'];
}
*/
public function _addCustomFieldToProfile($profileID) {
$ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, '');
- $this->uFFieldCreate(array(
+ $this->uFFieldCreate([
'uf_group_id' => $profileID,
'field_name' => 'custom_' . $ids['custom_field_id'],
'contact_type' => 'Contact',
- ));
+ ]);
}
}
* @group headless
*/
class api_v3_RelationshipTest extends CiviUnitTestCase {
+
+ use CRMTraits_Custom_CustomDataTrait;
+
protected $_apiversion = 3;
protected $_cId_a;
/**
*/
protected $_cId_b2;
protected $_relTypeID;
- protected $_ids = array();
- protected $_customGroupId = NULL;
+ protected $_ids = [];
protected $_customFieldId = NULL;
protected $_params;
- protected $_entity;
+ protected $entity;
/**
* Set up function.
));
$this->_cId_b = $this->organizationCreate();
$this->_cId_b2 = $this->organizationCreate(array('organization_name' => ' Org 2'));
- $this->_entity = 'relationship';
+ $this->entity = 'Relationship';
//Create a relationship type.
$relTypeParams = array(
'name_a_b' => 'Relation 1 for delete',
*/
public function testRelationshipCreateEditWithCustomData() {
$this->createCustomGroup();
- $this->_ids = $this->createCustomField();
+ $this->_ids = $this->createCustomFieldsOfAllTypes();
//few custom Values for comparing
$custom_params = array(
"custom_{$this->_ids[0]}" => 'Hello! this is custom data for relationship',
$params = $this->_params;
$params['custom_' . $ids['custom_field_id']] = "custom string";
- $result = $this->callAPISuccess($this->_entity, 'create', $params);
+ $result = $this->callAPISuccess($this->entity, 'create', $params);
$this->assertEquals($result['id'], $result['values'][$result['id']]['id']);
$getParams = array('id' => $result['id']);
- $check = $this->callAPIAndDocument($this->_entity, 'get', $getParams, __FUNCTION__, __FILE__);
+ $check = $this->callAPIAndDocument($this->entity, 'get', $getParams, __FUNCTION__, __FILE__);
$this->assertEquals("custom string", $check['values'][$check['id']]['custom_' . $ids['custom_field_id']], ' in line ' . __LINE__);
$this->customFieldDelete($ids['custom_field_id']);
$this->customGroupDelete($ids['custom_group_id']);
}
- /**
- * @return mixed
- */
- public function createCustomGroup() {
- $params = array(
- 'title' => 'Custom Group',
- 'extends' => array('Relationship'),
- 'weight' => 5,
- 'style' => 'Inline',
- 'is_active' => 1,
- 'max_multiple' => 0,
- );
- $customGroup = $this->callAPISuccess('custom_group', 'create', $params);
- $this->_customGroupId = $customGroup['id'];
- return $customGroup['id'];
- }
-
- /**
- * @return array
- */
- public function createCustomField() {
- $ids = array();
- $params = array(
- 'custom_group_id' => $this->_customGroupId,
- 'label' => 'Enter text about relationship',
- 'html_type' => 'Text',
- 'data_type' => 'String',
- 'default_value' => 'xyz',
- 'weight' => 1,
- 'is_required' => 1,
- 'is_searchable' => 0,
- 'is_active' => 1,
- );
-
- $customField = $this->callAPISuccess('CustomField', 'create', $params);
- $ids[] = $customField['id'];
-
- $optionValue[] = array(
- 'label' => 'Red',
- 'value' => 'R',
- 'weight' => 1,
- 'is_active' => 1,
- );
- $optionValue[] = array(
- 'label' => 'Yellow',
- 'value' => 'Y',
- 'weight' => 2,
- 'is_active' => 1,
- );
- $optionValue[] = array(
- 'label' => 'Green',
- 'value' => 'G',
- 'weight' => 3,
- 'is_active' => 1,
- );
-
- $params = array(
- 'label' => 'Pick Color',
- 'html_type' => 'Select',
- 'data_type' => 'String',
- 'weight' => 2,
- 'is_required' => 1,
- 'is_searchable' => 0,
- 'is_active' => 1,
- 'option_values' => $optionValue,
- 'custom_group_id' => $this->_customGroupId,
- );
-
- $customField = $this->callAPISuccess('custom_field', 'create', $params);
- $ids[] = $customField['id'];
-
- $params = array(
- 'custom_group_id' => $this->_customGroupId,
- 'name' => 'test_date',
- 'label' => 'test_date',
- 'html_type' => 'Select Date',
- 'data_type' => 'Date',
- 'default_value' => '20090711',
- 'weight' => 3,
- 'is_required' => 1,
- 'is_searchable' => 0,
- 'is_active' => 1,
- );
-
- $customField = $this->callAPISuccess('custom_field', 'create', $params);
-
- $ids[] = $customField['id'];
- $params = array(
- 'custom_group_id' => $this->_customGroupId,
- 'name' => 'test_link',
- 'label' => 'test_link',
- 'html_type' => 'Link',
- 'data_type' => 'Link',
- 'default_value' => 'http://civicrm.org',
- 'weight' => 4,
- 'is_required' => 1,
- 'is_searchable' => 0,
- 'is_active' => 1,
- );
-
- $customField = $this->callAPISuccess('custom_field', 'create', $params);
- $ids[] = $customField['id'];
- return $ids;
- }
-
/**
* Check with empty array.
*/
*/
public function testRelationshipCreateDuplicateWithCustomFields() {
$this->createCustomGroup();
- $this->_ids = $this->createCustomField();
+ $this->_ids = $this->createCustomFieldsOfAllTypes();
$custom_params_1 = array(
"custom_{$this->_ids[0]}" => 'Hello! this is custom data for relationship',
*/
public function testRelationshipCreateDuplicateWithCustomFields2() {
$this->createCustomGroup();
- $this->_ids = $this->createCustomField();
+ $this->_ids = $this->createCustomFieldsOfAllTypes();
$custom_params_2 = array(
"custom_{$this->_ids[0]}" => 'Hello! this is other custom data',
*/
public function testRelationshipCreateDuplicateWithCustomFields3() {
$this->createCustomGroup();
- $this->_ids = $this->createCustomField();
+ $this->_ids = $this->createCustomFieldsOfAllTypes();
$custom_params_1 = array(
"custom_{$this->_ids[0]}" => 'Hello! this is other custom data',
* an incorrect one
*/
public function testGetRelationshipByTypeReciprocal() {
- $created = $this->callAPISuccess($this->_entity, 'create', $this->_params);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $created = $this->callAPISuccess($this->entity, 'create', $this->_params);
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id' => $this->_cId_a,
'relationship_type_id' => $this->_relTypeID,
));
$this->assertEquals(1, $result['count']);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id' => $this->_cId_a,
'relationship_type_id' => $this->_relTypeID + 1,
));
$this->assertEquals(0, $result['count']);
- $this->callAPISuccess($this->_entity, 'delete', array('id' => $created['id']));
+ $this->callAPISuccess($this->entity, 'delete', array('id' => $created['id']));
}
/**
* an incorrect one
*/
public function testGetRelationshipByTypeDAO() {
- $this->_ids['relationship'] = $this->callAPISuccess($this->_entity, 'create', array('format.only_id' => TRUE) +
+ $this->_ids['relationship'] = $this->callAPISuccess($this->entity, 'create', array('format.only_id' => TRUE) +
$this->_params);
- $this->callAPISuccess($this->_entity, 'getcount', array(
+ $this->callAPISuccess($this->entity, 'getcount', array(
'contact_id_a' => $this->_cId_a,
), 1);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id_a' => $this->_cId_a,
'relationship_type_id' => $this->_relTypeID,
));
$this->assertEquals(1, $result['count']);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id_a' => $this->_cId_a,
'relationship_type_id' => $this->_relTypeID + 1,
));
* an incorrect one
*/
public function testGetRelationshipByTypeArrayDAO() {
- $this->callAPISuccess($this->_entity, 'create', $this->_params);
+ $this->callAPISuccess($this->entity, 'create', $this->_params);
$org3 = $this->organizationCreate();
// lets just assume built in ones aren't being messed with!
$relType2 = 5;
$relType3 = 6;
// Relationship 2.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType2,
'contact_id_b' => $this->_cId_b2,
);
// Relationship 3.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType3,
'contact_id_b' => $org3,
))
);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id_a' => $this->_cId_a,
'relationship_type_id' => array('IN' => array($this->_relTypeID, $relType3)),
));
* an incorrect one
*/
public function testGetRelationshipByTypeArrayReciprocal() {
- $this->callAPISuccess($this->_entity, 'create', $this->_params);
+ $this->callAPISuccess($this->entity, 'create', $this->_params);
$org3 = $this->organizationCreate();
// lets just assume built in ones aren't being messed with!
$relType2 = 5;
$relType3 = 6;
// Relationship 2.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType2,
'contact_id_b' => $this->_cId_b2,
);
// Relationship 3.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType3,
'contact_id_b' => $org3,
))
);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id' => $this->_cId_a,
'relationship_type_id' => array('IN' => array($this->_relTypeID, $relType3)),
));
* an incorrect one
*/
public function testGetRelationshipByMembershipTypeDAO() {
- $this->callAPISuccess($this->_entity, 'create', $this->_params);
+ $this->callAPISuccess($this->entity, 'create', $this->_params);
$org3 = $this->organizationCreate();
// lets just assume built in ones aren't being messed with!
));
// Relationship 2.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType2,
'contact_id_b' => $this->_cId_b2,
);
// Relationship 3.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType3,
'contact_id_b' => $org3,
);
// Relationship 4 with reversal.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType1,
'contact_id_a' => $this->_cId_a,
))
);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id_a' => $this->_cId_a,
'membership_type_id' => $memberType,
));
* an incorrect one
*/
public function testGetRelationshipByMembershipTypeReciprocal() {
- $this->callAPISuccess($this->_entity, 'create', $this->_params);
+ $this->callAPISuccess($this->entity, 'create', $this->_params);
$org3 = $this->organizationCreate();
// Let's just assume built in ones aren't being messed with!
));
// Relationship 2.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType2,
'contact_id_b' => $this->_cId_b2,
);
// Relationship 4.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType3,
'contact_id_b' => $org3,
);
// Relationship 4 with reversal.
- $this->callAPISuccess($this->_entity, 'create',
+ $this->callAPISuccess($this->entity, 'create',
array_merge($this->_params, array(
'relationship_type_id' => $relType1,
'contact_id_a' => $this->_cId_a,
))
);
- $result = $this->callAPISuccess($this->_entity, 'get', array(
+ $result = $this->callAPISuccess($this->entity, 'get', array(
'contact_id' => $this->_cId_a,
'membership_type_id' => $memberType,
));
* Check for e-notices on enable & disable as reported in CRM-14350
*/
public function testSetActive() {
- $relationship = $this->callAPISuccess($this->_entity, 'create', $this->_params);
- $this->callAPISuccess($this->_entity, 'create', array('id' => $relationship['id'], 'is_active' => 0));
- $this->callAPISuccess($this->_entity, 'create', array('id' => $relationship['id'], 'is_active' => 1));
+ $relationship = $this->callAPISuccess($this->entity, 'create', $this->_params);
+ $this->callAPISuccess($this->entity, 'create', array('id' => $relationship['id'], 'is_active' => 0));
+ $this->callAPISuccess($this->entity, 'create', array('id' => $relationship['id'], 'is_active' => 1));
}
/**
use CRMTraits_ACL_PermissionTrait;
use CRMTraits_PCP_PCPTestTrait;
- protected $_apiversion = 3;
-
protected $contactIDs = [];
/**
*/
public function testReportTemplateGetRowsContactSummary() {
$description = "Retrieve rows from a report template (optionally providing the instance_id).";
- $result = $this->callApiSuccess('report_template', 'getrows', array(
+ $result = $this->callAPISuccess('report_template', 'getrows', array(
'report_id' => 'contact/summary',
'options' => array('metadata' => array('labels', 'title')),
), __FUNCTION__, __FILE__, $description, 'Getrows');
return array(array('member/detail'));
}
+ /**
+ * Get the membership and contribution reports to test.
+ *
+ * @return array
+ */
public static function getMembershipAndContributionReportTemplatesForGroupTests() {
$templates = array_merge(self::getContributionReportTemplates(), self::getMembershipReportTemplates());
foreach ($templates as $key => $value) {
);
$c3 = $this->contributionCreate($contribution3params);
// Now the soft contribution.
- $p = array(
+ $p = [
'contribution_id' => $c3,
'pcp_id' => $pcp2->id,
'contact_id' => $pcpOwnerContact2Id,
'amount' => 200.00,
'currency' => 'USD',
'soft_credit_type_id' => $pcp_soft_credit_type_id,
- );
+ ];
$this->callAPISuccess('contribution_soft', 'create', $p);
$template = 'contribute/pcp';
*/
public function testGetAddressColumns() {
$template = 'event/participantlisting';
- $rows = $this->callAPISuccess('report_template', 'getrows', [
+ $this->callAPISuccess('report_template', 'getrows', [
'report_id' => $template,
'fields' => [
'sort_name' => '1',
/**
* Test class for UFGroup API - civicrm_uf_*
+ *
* @todo Split UFGroup and UFJoin tests
*
* @package CiviCRM
* @group headless
*/
class api_v3_UFFieldTest extends CiviUnitTestCase {
+
/**
* ids from the uf_group_test.xml fixture
+ *
* @var int
*/
protected $_ufGroupId = 11;
+
protected $_ufFieldId;
+
protected $_contactId = 69;
+
protected $_apiversion = 3;
+
protected $_params;
+
protected $_entity = 'uf_field';
/**
protected function setUp() {
parent::setUp();
$this->quickCleanup(
- array(
+ [
'civicrm_group',
'civicrm_contact',
'civicrm_uf_group',
'civicrm_uf_field',
'civicrm_uf_join',
'civicrm_uf_match',
- )
+ ]
);
$op = new PHPUnit_Extensions_Database_Operation_Insert();
$this->createFlatXMLDataSet(dirname(__FILE__) . '/dataset/uf_group_test.xml')
);
- $this->callAPISuccess('uf_field', 'getfields', array('cache_clear' => 1));
+ $this->callAPISuccess('uf_field', 'getfields', ['cache_clear' => 1]);
- $this->_params = array(
+ $this->_params = [
'field_name' => 'phone',
'field_type' => 'Contact',
'visibility' => 'Public Pages and Listings',
'location_type_id' => 1,
'phone_type_id' => 1,
'uf_group_id' => $this->_ufGroupId,
- );
+ ];
}
/**
*/
public function tearDown() {
$this->quickCleanup(
- array(
+ [
'civicrm_group',
'civicrm_contact',
'civicrm_uf_group',
'civicrm_uf_join',
'civicrm_uf_match',
- )
+ ]
);
}
* Failure test for bad parameters.
*/
public function testCreateUFFieldWithWrongParams() {
- $this->callAPIFailure('uf_field', 'create', array('field_name' => 'test field'));
- $this->callAPIFailure('uf_field', 'create', array('label' => 'name-less field'));
+ $this->callAPIFailure('uf_field', 'create', ['field_name' => 'test field']);
+ $this->callAPIFailure('uf_field', 'create', ['label' => 'name-less field']);
}
/**
$params1 = $this->_params;
$ufField1 = $this->callAPISuccess('uf_field', 'create', $params1);
$this->assertEquals(1, $ufField1['values'][$ufField1['id']]['weight']);
- $this->assertDBQuery(1, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', array(
- 1 => array($ufField1['id'], 'Int'),
- ));
+ $this->assertDBQuery(1, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', [
+ 1 => [$ufField1['id'], 'Int'],
+ ]);
$params2 = $this->_params;
// needs to be a different field
$params2['location_type_id'] = 2;
$ufField2 = $this->callAPISuccess('uf_field', 'create', $params2);
$this->assertEquals(1, $ufField2['values'][$ufField2['id']]['weight']);
- $this->assertDBQuery(1, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', array(
- 1 => array($ufField2['id'], 'Int'),
- ));
- $this->assertDBQuery(2, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', array(
- 1 => array($ufField1['id'], 'Int'),
- ));
+ $this->assertDBQuery(1, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', [
+ 1 => [$ufField2['id'], 'Int'],
+ ]);
+ $this->assertDBQuery(2, 'SELECT weight FROM civicrm_uf_field WHERE id = %1', [
+ 1 => [$ufField1['id'], 'Int'],
+ ]);
}
/**
*/
public function testDeleteUFField() {
$ufField = $this->callAPISuccess('uf_field', 'create', $this->_params);
- $params = array(
+ $params = [
'field_id' => $ufField['id'],
- );
+ ];
$this->callAPIAndDocument('uf_field', 'delete', $params, __FUNCTION__, __FILE__);
}
*/
public function testGetUFFieldSuccess() {
$this->callAPISuccess($this->_entity, 'create', $this->_params);
- $result = $this->callAPIAndDocument($this->_entity, 'get', array(), __FUNCTION__, __FILE__);
+ $result = $this->callAPIAndDocument($this->_entity, 'get', [], __FUNCTION__, __FILE__);
$this->getAndCheck($this->_params, $result['id'], $this->_entity);
}
* Create / updating field.
*/
public function testReplaceUFFields() {
- $baseFields = array();
- $baseFields[] = array(
+ $baseFields = [];
+ $baseFields[] = [
'field_name' => 'first_name',
'field_type' => 'Contact',
'visibility' => 'Public Pages and Listings',
'label' => 'Test First Name',
'is_searchable' => 1,
'is_active' => 1,
- );
- $baseFields[] = array(
+ ];
+ $baseFields[] = [
'field_name' => 'country',
'field_type' => 'Contact',
'visibility' => 'Public Pages and Listings',
'is_searchable' => 1,
'is_active' => 1,
'location_type_id' => 1,
- );
- $baseFields[] = array(
+ ];
+ $baseFields[] = [
'field_name' => 'phone',
'field_type' => 'Contact',
'visibility' => 'Public Pages and Listings',
'is_active' => 1,
'location_type_id' => 1,
'phone_type_id' => 1,
- );
+ ];
- $params = array(
+ $params = [
'uf_group_id' => $this->_ufGroupId,
'option.autoweight' => FALSE,
'values' => $baseFields,
'check_permissions' => TRUE,
- );
+ ];
$result = $this->callAPIAndDocument('uf_field', 'replace', $params, __FUNCTION__, __FILE__);
- $inputsByName = CRM_Utils_Array::index(array('field_name'), $params['values']);
+ $inputsByName = CRM_Utils_Array::index(['field_name'], $params['values']);
$this->assertEquals(count($params['values']), count($result['values']));
foreach ($result['values'] as $outUfField) {
$this->assertTrue(is_string($outUfField['field_name']));
*/
public function testProfilesWithoutACL() {
$this->createLoggedInUser();
- $baseFields[] = array(
+ $baseFields[] = [
'field_name' => 'first_name',
'field_type' => 'Contact',
'visibility' => 'Public Pages and Listings',
'label' => 'Test First Name',
'is_searchable' => 1,
'is_active' => 1,
- );
- CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
- $params = array(
+ ];
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = ['access CiviCRM'];
+ $params = [
'uf_group_id' => $this->_ufGroupId,
'option.autoweight' => FALSE,
'values' => $baseFields,
'check_permissions' => TRUE,
- );
+ ];
$this->_loggedInUser = CRM_Core_Session::singleton()->get('userID');
$this->callAPIFailure('uf_field', 'replace', $params);
}
*/
public function testACLPermissionforProfiles() {
$this->createLoggedInUser();
- $this->_permissionedGroup = $this->groupCreate(array(
+ $this->_permissionedGroup = $this->groupCreate([
'title' => 'Edit Profiles',
'is_active' => 1,
'name' => 'edit-profiles',
- ));
+ ]);
$this->setupACL(TRUE);
$this->testReplaceUFFields();
}
/**
* Should CiviCRM log any modifications to this table in the civicrm_log table.
*
- * @var boolean
+ * @var bool
*/
protected static $_log = FALSE;
/**
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- $Id: email_contact_17.xml 30511 2010-11-03 11:36:36Z shot $ -->
-<dataset>
- <table name="civicrm_email">
- <column>id</column>
- <column>contact_id</column>
- <column>location_type_id</column>
- <column>email</column>
- <column>is_primary</column>
- <column>is_billing</column>
- <column>on_hold</column>
- <column>is_bulkmail</column>
- <column>hold_date</column>
- <column>reset_date</column>
- <row>
- <value>100</value> <!-- id -->
- <value>17</value> <!-- contact_id -->
- <value>1</value> <!-- location_type_id -->
- <value>TestContact@example.com</value> <!-- email -->
- <value>1</value> <!-- is_primary -->
- <value>1</value> <!-- is_billing -->
- <value>0</value> <!-- on_hold -->
- <value>0</value> <!-- is_bulkmail -->
- <null /> <!-- hold_date -->
- <null /> <!-- reset_date -->
- </row>
- </table>
-</dataset>
<import>true</import>
<headerPattern>/legal\s?id/i</headerPattern>
<dataPattern>/\w+?\d{5,}/</dataPattern>
- <comment>May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.
- </comment>
+ <comment>May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.</comment>
<add>1.1</add>
<html>
<type>Text</type>
<length>32</length>
<comment>API Key for validating requests related to this contact.</comment>
<add>2.2</add>
+ <protected>true</protected>
</field>
<index>
<name>index_api_key</name>
<title>Contact Subtype A</title>
<type>varchar</type>
<length>64</length>
- <comment>If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.
- </comment>
+ <comment>If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.</comment>
<add>3.1</add>
<html>
<type>Select</type>
<title>Contact Subtype B</title>
<type>varchar</type>
<length>64</length>
- <comment>If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.
- </comment>
+ <comment>If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.</comment>
<add>3.1</add>
<html>
<type>Select</type>
<title>Relationship Type is Active</title>
<type>boolean</type>
<default>1</default>
- <comment>Is this relationship type currently active (i.e. can be used when creating or editing relationships)?
- </comment>
+ <comment>Is this relationship type currently active (i.e. can be used when creating or editing relationships)?</comment>
<html>
<type>CheckBox</type>
</html>
<dataPattern>/^(\d{1,5}( [0-9A-Za-z]+)+)$|^(P\.?O\.\? Box \d{1,5})$/i</dataPattern>
<comment>Concatenation of all routable street address components (prefix, street number, street name, suffix, unit
number OR P.O. Box). Apps should be able to determine physical location with this data (for mapping, mail
- delivery, etc.).
- </comment>
+ delivery, etc.).</comment>
<add>1.1</add>
<html>
<type>Text</type>
<type>varchar</type>
<length>8</length>
<export>true</export>
- <comment>Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A
- </comment>
+ <comment>Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A</comment>
<add>1.1</add>
<html>
<type>Text</type>
<title>Namespace reserved for component.</title>
<type>varchar</type>
<length>128</length>
- <comment>Path to components main directory in a form of a class
- namespace.
- </comment>
+ <comment>Path to components main directory in a form of a class namespace.</comment>
<add>2.0</add>
</field>
</table>
<type>int unsigned</type>
<default>1</default>
<comment>Used to group mapping_field records into related sets (e.g. for criteria sets in search builder
- mappings).
- </comment>
+ mappings).</comment>
<add>1.5</add>
</field>
<field>
<import>true</import>
<serialize>SEPARATOR_BOOKEND</serialize>
<comment>Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that
- we store the label value and not the key
- </comment>
+ we store the label value and not the key</comment>
<add>1.7</add>
</field>
<field>
{foreach from=$table.fields item=field}
/**
{if $field.comment}
- * {$field.comment}
+ * {$field.comment|regex_replace:"/\n[ ]*/":"\n* "}
*
{/if}
* @var {$field.phpType}
{if $field.rule}
'rule' => '{$field.rule}',
{/if} {* field.rule *}
+{if $field.protected}
+ 'protected' => '{$field.protected}',
+{/if}
{if $field.default || $field.default === '0'}
'default' => '{if ($field.default[0]=="'" or $field.default[0]=='"')}{$field.default|substring:1:-1}{else}{$field.default}{/if}',
{/if} {* field.default *}
),
{/if}
{if $field.pseudoconstant}
- 'pseudoconstant' => {$field.pseudoconstant|@print_array}
+ 'pseudoconstant' => {$field.pseudoconstant|@print_array},
{/if} {* field.pseudoconstant *} ),
{/foreach} {* table.fields *}
);