216 lines
6.1 KiB
PHP
216 lines
6.1 KiB
PHP
<?php
|
|
/*
|
|
+--------------------------------------------------------------------+
|
|
| CiviCRM version 4.7 |
|
|
+--------------------------------------------------------------------+
|
|
| Copyright CiviCRM LLC (c) 2004-2017 |
|
|
+--------------------------------------------------------------------+
|
|
| 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 |
|
|
+--------------------------------------------------------------------+
|
|
*/
|
|
|
|
/**
|
|
*
|
|
* @package CRM
|
|
* @copyright CiviCRM LLC (c) 2004-2017
|
|
*/
|
|
|
|
/**
|
|
* This class holds all the Pseudo constants that are specific for CiviCase.
|
|
*/
|
|
class CRM_Case_PseudoConstant extends CRM_Core_PseudoConstant {
|
|
|
|
/**
|
|
* Activity type
|
|
* @var array
|
|
*/
|
|
static $activityTypeList = array();
|
|
|
|
/**
|
|
* Get all the case statues.
|
|
*
|
|
*
|
|
* @param string $column
|
|
* @param bool $onlyActive
|
|
* @param null $condition
|
|
* @param bool $fresh
|
|
*
|
|
* @return array
|
|
* array reference of all case statues
|
|
*/
|
|
public static function caseStatus($column = 'label', $onlyActive = TRUE, $condition = NULL, $fresh = FALSE) {
|
|
if (!$condition) {
|
|
$condition = 'AND filter = 0';
|
|
}
|
|
|
|
return CRM_Core_OptionGroup::values('case_status',
|
|
FALSE, FALSE, FALSE, $condition,
|
|
$column, $onlyActive, $fresh
|
|
);
|
|
|
|
}
|
|
|
|
/**
|
|
* Get all the redaction rules.
|
|
*
|
|
*
|
|
* @param null $filter
|
|
*
|
|
* @return array
|
|
* array reference of all redaction rules
|
|
*/
|
|
public static function redactionRule($filter = NULL) {
|
|
$condition = NULL;
|
|
if ($filter === 0) {
|
|
$condition = " AND (v.filter = 0 OR v.filter IS NULL)";
|
|
}
|
|
elseif ($filter === 1) {
|
|
$condition = " AND v.filter = 1";
|
|
}
|
|
|
|
return CRM_Core_OptionGroup::values('redaction_rule', TRUE, FALSE, FALSE, $condition);
|
|
}
|
|
|
|
/**
|
|
* Get all the case type.
|
|
*
|
|
*
|
|
* @param string $column
|
|
* @param bool $onlyActive
|
|
*
|
|
* @return array
|
|
* array reference of all case type
|
|
*/
|
|
public static function caseType($column = 'title', $onlyActive = TRUE) {
|
|
if ($onlyActive) {
|
|
$condition = " is_active = 1 ";
|
|
}
|
|
else {
|
|
$condition = NULL;
|
|
}
|
|
$caseType = NULL;
|
|
// FIXME: deprecated?
|
|
CRM_Core_PseudoConstant::populate(
|
|
$caseType,
|
|
'CRM_Case_DAO_CaseType',
|
|
TRUE,
|
|
$column,
|
|
'',
|
|
$condition,
|
|
'weight',
|
|
'id'
|
|
);
|
|
|
|
return $caseType;
|
|
}
|
|
|
|
/**
|
|
* Get all the Encounter Medium.
|
|
*
|
|
*
|
|
* @param string $column
|
|
* @param bool $onlyActive
|
|
*
|
|
* @return array
|
|
* array reference of all Encounter Medium.
|
|
*/
|
|
public static function encounterMedium($column = 'label', $onlyActive = TRUE) {
|
|
return CRM_Core_OptionGroup::values('encounter_medium',
|
|
FALSE, FALSE, FALSE, NULL,
|
|
$column, $onlyActive
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get all Activity types for the CiviCase component.
|
|
*
|
|
* The static array activityType is returned
|
|
*
|
|
* @param bool $indexName
|
|
* True return activity name in array.
|
|
* key else activity id as array key.
|
|
*
|
|
* @param bool $all
|
|
*
|
|
*
|
|
* @return array
|
|
* array reference of all activity types.
|
|
*/
|
|
public static function &caseActivityType($indexName = TRUE, $all = FALSE) {
|
|
$cache = (int) $indexName . '_' . (int) $all;
|
|
|
|
if (!array_key_exists($cache, self::$activityTypeList)) {
|
|
self::$activityTypeList[$cache] = array();
|
|
|
|
$query = "
|
|
SELECT v.label as label ,v.value as value, v.name as name, v.description as description, v.icon
|
|
FROM civicrm_option_value v,
|
|
civicrm_option_group g
|
|
WHERE v.option_group_id = g.id
|
|
AND g.name = 'activity_type'
|
|
AND v.is_active = 1
|
|
AND g.is_active = 1";
|
|
|
|
if (!$all) {
|
|
$componentId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Component',
|
|
'CiviCase',
|
|
'id', 'name'
|
|
);
|
|
$query .= " AND v.component_id = {$componentId} ";
|
|
}
|
|
|
|
$query .= " ORDER BY v.weight";
|
|
|
|
$dao = CRM_Core_DAO::executeQuery($query);
|
|
|
|
$activityTypes = array();
|
|
while ($dao->fetch()) {
|
|
if ($indexName) {
|
|
$index = $dao->name;
|
|
}
|
|
else {
|
|
$index = $dao->value;
|
|
}
|
|
$activityTypes[$index] = array();
|
|
$activityTypes[$index]['id'] = $dao->value;
|
|
$activityTypes[$index]['label'] = $dao->label;
|
|
$activityTypes[$index]['name'] = $dao->name;
|
|
$activityTypes[$index]['icon'] = $dao->icon;
|
|
$activityTypes[$index]['description'] = $dao->description;
|
|
}
|
|
self::$activityTypeList[$cache] = $activityTypes;
|
|
}
|
|
return self::$activityTypeList[$cache];
|
|
}
|
|
|
|
/**
|
|
* Flush given pseudoconstant so it can be reread from db
|
|
* next time it's requested.
|
|
*
|
|
*
|
|
* @param bool|string $name pseudoconstant to be flushed
|
|
*/
|
|
public static function flush($name = 'cache') {
|
|
if (isset(self::$$name)) {
|
|
self::$$name = NULL;
|
|
}
|
|
}
|
|
|
|
}
|