*/
class CRM_Case_BAO_Query {
- static function &getFields() {
+ static function &getFields($excludeActivityFields = FALSE) {
$fields = array();
$fields = CRM_Case_BAO_Case::exportableFields();
// add activity related fields
- $fields = array_merge($fields, CRM_Activity_BAO_Activity::exportableFields('Case'));
+ if (!$excludeActivityFields) {
+ $fields = array_merge($fields, CRM_Activity_BAO_Activity::exportableFields('Case'));
+ }
return $fields;
}
}
}
+ if (CRM_Core_Permission::access('CiviCase')) {
+ $caseFields = CRM_Case_BAO_Query::getFields(TRUE);
+ $caseFields = array_merge($caseFields, CRM_Core_BAO_CustomField::getFieldsForImport('Case'));
+ if ($caseFields) {
+ // Remove fields not supported by profiles
+ CRM_Utils_Array::remove($caseFields,
+ 'case_id',
+ 'case_type',
+ 'case_start_date',
+ 'case_end_date',
+ 'case_role',
+ 'case_status',
+ 'case_deleted'
+ );
+ }
+ $fields['Case'] = $caseFields;
+ }
+
$activityFields = CRM_Activity_BAO_Activity::getProfileFields();
if ($activityFields) {
// campaign related fields.
$customFields = CRM_Core_BAO_CustomField::getFieldsForImport($ctype, FALSE, FALSE, FALSE, TRUE, TRUE);
// hack to add custom data for components
- $components = array('Contribution', 'Participant', 'Membership', 'Activity');
+ $components = array('Contribution', 'Participant', 'Membership', 'Activity', 'Case');
foreach ($components as $value) {
$customFields = array_merge($customFields, CRM_Core_BAO_CustomField::getFieldsForImport($value));
}
return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_UFGroup', $gId, 'group_type', 'null');
}
- $componentGroupTypes = array('Contribution', 'Participant', 'Membership', 'Activity');
+ $componentGroupTypes = array('Contribution', 'Participant', 'Membership', 'Activity', 'Case');
$validGroupTypes = array_merge(array('Contact', 'Individual', 'Organization', 'Household'), $componentGroupTypes, CRM_Contact_BAO_ContactType::subTypes());
$gTypes = $gTypeValues = array();
$this->_fields = array_merge(CRM_Event_BAO_Query::getParticipantFields(), $this->_fields);
}
+ if (CRM_Core_Permission::access('CiviCase')) {
+ $this->_fields = array_merge(CRM_Case_BAO_Query::getFields(), $this->_fields);
+ }
+
$this->_fields = array_merge($this->_fields, CRM_Contact_BAO_Query_Hook::singleton()->getFields());
$this->_selectFields = array();
$sel1['Membership'] = 'Membership';
}
+ if (!empty($fields['Case'])) {
+ $sel1['Case'] = 'Case';
+ }
+
if (!empty($fields['Formatting'])) {
$sel1['Formatting'] = 'Formatting';
}
//reset other field is searchable and in selector settings, CRM-4363
if ($this->_hasSearchableORInSelector &&
- in_array($ufField->field_type, array('Participant', 'Contribution', 'Membership', 'Activity'))
+ in_array($ufField->field_type, array('Participant', 'Contribution', 'Membership', 'Activity', 'Case'))
) {
CRM_Core_BAO_UFField::resetInSelectorANDSearchable($this->_gid);
}
static function formRuleCustomDataExtentColumnValue($customField, $gid, $fieldType, &$errors) {
// fix me : check object $customField
if (in_array($fieldType, array(
- 'Participant', 'Contribution', 'Membership', 'Activity'))) {
+ 'Participant', 'Contribution', 'Membership', 'Activity', 'Case'))) {
$params = array('id' => $customField->custom_group_id);
$customGroup = array();
CRM_Core_BAO_CustomGroup::retrieve($params, $customGroup);
}
$groupTypes = self::extractGroupTypes($value['group_type']);
- $groupComponents = array('Contribution', 'Membership', 'Activity', 'Participant');
+ $groupComponents = array('Contribution', 'Membership', 'Activity', 'Participant', 'Case');
// drop Create, Edit and View mode links if profile group_type is Contribution, Membership, Activities or Participant
$componentFound = array_intersect($groupComponents, array_keys($groupTypes));
$typeName = 'Activity';
$valueLabels = CRM_Core_PseudoConstant::ActivityType(TRUE, TRUE, FALSE, 'label', TRUE);
break;
+ case 'CaseType':
+ $typeName = 'Case';
+ $valueLabels = CRM_Case_PseudoConstant::caseType();
+ break;
}
foreach ($valueParts as $val) {