| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
*/
/**
- * This class contains the functions for Case Management
+ * This class contains the functions for Case Management.
*
*/
class CRM_Case_BAO_Case extends CRM_Case_DAO_Case {
/**
- * Static field for all the case information that we can potentially export
+ * Static field for all the case information that we can potentially export.
*
* @var array
- * @static
*/
static $_exportableFields = NULL;
/**
+ * Class constructor.
*/
public function __construct() {
parent::__construct();
}
/**
- * Takes an associative array and creates a case object
+ * Create a case object.
*
- * the function extract all the params it needs to initialize the create a
+ * The function extracts all the params it needs to initialize the create a
* case object. the params array could contain additional unused name/value
* pairs
*
* @param array $params
* (reference ) an assoc array of name/value pairs.
*
- * @return CRM_Case_BAO_Case object
- * @static
+ * @return CRM_Case_BAO_Case
*/
public static function add(&$params) {
$caseDAO = new CRM_Case_DAO_Case();
/**
* Given the list of params in the params array, fetch the object
- * and store the values in the values array
+ * and store the values in the values array.
*
* @param array $params
* Input parameters to find object.
* @param array $ids
* The array that holds all the db ids.
*
- * @return CRM_Case_BAO_Case|null the found object or null
- * @static
+ * @return CRM_Case_BAO_Case|null
+ * The found object or null
*/
public static function &getValues(&$params, &$values, &$ids) {
$case = new CRM_Case_BAO_Case();
}
/**
- * Takes an associative array and creates a case object
+ * Takes an associative array and creates a case object.
*
* @param array $params
- * (reference ) an assoc array of name/value pairs.
+ * (reference) an assoc array of name/value pairs.
*
- * @return CRM_Case_BAO_Case object
- * @static
+ * @return CRM_Case_BAO_Case
*/
public static function &create(&$params) {
$transaction = new CRM_Core_Transaction();
}
/**
- * Create case contact record
+ * Create case contact record.
*
- * @param array case_id, contact_id
+ * @param array $params
+ * case_id, contact_id
*
* @return object
*/
}
/**
- * Delet case contact record
+ * Delete case contact record.
*
- * @param int case_id
- *
- * @return Void
+ * @param int $caseID
*/
public static function deleteCaseContact($caseID) {
$caseContact = new CRM_Case_DAO_CaseContact();
}
/**
- * convert associative array names to values
- * and vice-versa.
+ * Convert associative array names to values and vice-versa.
*
* This function is used by both the web form layer and the api. Note that
* the api needs the name => value conversion, also the view layer typically
* requires value => name conversion
+ *
+ * @param array $defaults
+ * @param string $property
+ * @param array $lookup
+ * @param bool $reverse
+ *
+ * @return bool
*/
public static function lookupValue(&$defaults, $property, &$lookup, $reverse) {
$id = $property . '_id';
}
/**
- * Takes a bunch of params that are needed to match certain criteria and
- * retrieves the relevant objects. We'll tweak this function to be more
- * full featured over a period of time. This is the inverse function of
- * create. It also stores all the retrieved values in the default array
+ * Retrieve DB object based on input parameters.
+ *
+ * It also stores all the retrieved values in the default array.
*
* @param array $params
* (reference ) an assoc array of name/value pairs.
* @param array $ids
* (reference) the array that holds all the db ids.
*
- * @return CRM_Case_BAO_Case object
- * @static
+ * @return CRM_Case_BAO_Case
*/
public static function retrieve(&$params, &$defaults, &$ids) {
$case = CRM_Case_BAO_Case::getValues($params, $defaults, $ids);
* @param array $params
* (reference ) an assoc array of name/value pairs.
*
- * @static
*/
public static function processCaseActivity(&$params) {
$caseActivityDAO = new CRM_Case_DAO_CaseActivity();
}
/**
- * Get the case subject for Activity
+ * Get the case subject for Activity.
*
* @param int $activityId
* Activity id.
*
* @return string|null
- * @static
*/
public static function getCaseSubject($activityId) {
$caseActivity = new CRM_Case_DAO_CaseActivity();
*
* @return string
* case type
- * @static
*/
public static function getCaseType($caseId, $colName = 'title') {
$query = "
}
/**
- * Delete the record that are associated with this case
+ * Delete the record that are associated with this case.
* record are deleted from case
*
* @param int $caseId
*
* @return bool
* is successful
- * @static
*/
public static function deleteCase($caseId, $moveToTrash = FALSE) {
CRM_Utils_Hook::pre('delete', 'Case', $caseId, CRM_Core_DAO::$_nullArray);
}
/**
- * Enable disable case related relationships
+ * Enable disable case related relationships.
*
* @param int $caseId
* Case id.
* Action.
*
* @return void
- * @static
*/
public static function enableDisableCaseRelationships($caseId, $enable) {
$contactIds = self::retrieveContactIdsByCaseId($caseId);
}
/**
- * Delete the activities related to case
+ * Delete the activities related to case.
*
* @param int $activityId
* Id of the activity.
*
* @return void
- * @static
*/
public static function deleteCaseActivity($activityId) {
$case = new CRM_Case_DAO_CaseActivity();
}
/**
- * Retrieve contact_id by case_id
+ * Retrieve contact_id by case_id.
*
* @param int $caseId
* ID of the case.
}
/**
- * Look up a case using an activity ID
+ * Look up a case using an activity ID.
*
* @param int $activityId
*
}
/**
- * Retrieve contact names by caseId
+ * Retrieve contact names by caseId.
*
* @param int $caseId
* ID of the case.
}
/**
- * Retrieve case_id by contact_id
+ * Retrieve case_id by contact_id.
*
* @param int $contactID
* @param bool $includeDeleted
}
/**
- * Retrieve cases related to particular contact or whole contact
- * used in Dashboad and Tab
+ * Retrieve cases related to particular contact or whole contact used in Dashboard and Tab.
*
* @param bool $allCases
*
}
/**
- * Get Case roles
+ * Get Case roles.
*
* @param int $contactID
* Contact id.
* @return array
* case role / relationships
*
- * @static
*/
public static function getCaseRoles($contactID, $caseID, $relationshipID = NULL) {
$query = '
}
/**
- * Get Case Activities
+ * Get Case Activities.
*
* @param int $caseID
* Case id.
* @param null $type
*
* @return array
- * of case activities
+ * Array of case activities
*
- * @static
*/
public static function getCaseActivity($caseID, &$params, $contactID, $context = NULL, $userID = NULL, $type = NULL) {
$values = array();
}
if ($allowEdit) {
- $values[$dao->id]['status'] = '<a class="crm-activity-status crm-activity-status-' . $dao->id . ' ' . $values[$dao->id]['class'] . ' crm-activity-change-status crm-editable-enabled" activity_id=' . $dao->id . ' current_status=' . $dao->status . ' case_id=' . $caseID . ' href="#" title=\'' . $statusTitle . '\'>' . $values[$dao->id]['status'] . '</a>';
+ $values[$dao->id]['status'] = '<div class="crmf-status_id crm-activity-status-' . $dao->id . ' ' . $values[$dao->id]['class'] . ' crm-editable" data-type="select" data-action="create" data-refresh="true">' . $values[$dao->id]['status'] . '</div>';
}
}
$dao->free();
}
/**
- * Get Case Related Contacts
+ * Get Case Related Contacts.
*
* @param int $caseID
* Case id.
* @return array
* array of return properties
*
- * @static
*/
public static function getRelatedContacts($caseID, $skipDetails = FALSE) {
$values = array();
}
/**
- * Create an activity for a case via email
+ * Create an activity for a case via email.
*
* @param int $file
* Email sent.
*
* @return array|void
* $activity object of newly creted activity via email
- * @access public
*/
public static function recordActivityViaEmail($file) {
if (!file_exists($file) ||
}
/**
- * Retrieve the scheduled activity type and date
+ * Retrieve the scheduled activity type and date.
*
* @param array $cases
* Array of contact and case id.
* Array of scheduled activity type and date
*
*
- * @static
*/
public static function getNextScheduledActivity($cases, $type = 'upcoming') {
$session = CRM_Core_Session::singleton();
}
/**
- * Combine all the exportable fields from the lower levels object
+ * Combine all the exportable fields from the lower levels object.
*
* @return array
* array of exportable Fields
- * @static
*/
public static function &exportableFields() {
if (!self::$_exportableFields) {
}
/**
- * Restore the record that are associated with this case
+ * Restore the record that are associated with this case.
*
* @param int $caseId
* Id of the case to restore.
*
* @return bool
- * @static
*/
public static function restoreCase($caseId) {
//restore activities
}
/**
- * Convenience function to get both case contacts and global in one array
+ * Convenience function to get both case contacts and global in one array.
* @param int $caseId
*
* @return array
* @return array
* case activities due dates
*
- * @static
*/
public static function getCaseActivityDates($caseID, $criteriaParams = array(), $latestDate = FALSE) {
$values = array();
$where = $groupBy = ' ';
if (!$caseID) {
- return;
+ return NULL;
}
if ($latestDate) {
* @return void
* on success creates activity and case activity
*
- * @static
*/
public static function createCaseRoleActivity($caseId, $relationshipId, $relContactId = NULL, $contactId = NULL) {
if (!$caseId || !$relationshipId || empty($relationshipId)) {
* @return array
* array of contact on success otherwise empty
*
- * @static
*/
public static function getCaseManagerContact($caseType, $caseId) {
if (!$caseType || !$caseId) {
- return;
+ return NULL;
}
$caseManagerContact = array();
}
/**
- * Get all cases with no end dates
+ * Get all cases with no end dates.
*
* @param array $params
* @param array $excludeCaseIds
* @param bool $excludeDeleted
*
+ * @param bool $includeClosed
+ *
* @return array
- * case and related data keyed on case id
+ * Case and related data keyed on case id
*/
public static function getUnclosedCases($params = array(), $excludeCaseIds = array(), $excludeDeleted = TRUE, $includeClosed = FALSE) {
//params from ajax call.
* @see CRM_Dedupe_Merger::cpTables()
*
* TODO: use the 3rd $sqls param to append sql statements rather than executing them here
+ *
+ * @param int $mainContactId
+ * @param int $otherContactId
*/
public static function mergeContacts($mainContactId, $otherContactId) {
self::mergeCases($mainContactId, NULL, $otherContactId);
*
* @param bool $changeClient
*
- * @return integer|NULL
- * @static
+ * @return int|NULL
*/
- static function mergeCases(
+ public static function mergeCases(
$mainContactId, $mainCaseId = NULL, $otherContactId = NULL,
$otherCaseId = NULL, $changeClient = FALSE) {
$moveToTrash = TRUE;
}
}
- //create merge activity record.
+ //Create merge activity record. Source for merge activity is the logged in user's contact ID ($currentUserId).
$activityParams = array(
'subject' => $mergeActSubject,
'details' => $mergeActSubjectDetails,
'status_id' => array_search('Completed', $activityStatuses),
'activity_type_id' => $mergeActType,
- 'source_contact_id' => $mainContactId,
+ 'source_contact_id' => $currentUserId,
'activity_date_time' => date('YmdHis'),
);
* Info of the activity.
*
* @return void
- * @static
*/
public static function buildPermissionLinks(&$tplParams, $activityParams) {
$activityTypeId = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $activityParams['source_record_id'],
* @param bool $checkComponent
* Do we need to check component enabled.
*
- * @return boolean
- * @static
+ * @return bool
*/
public static function checkPermission($activityId, $operation, $actTypeId = NULL, $contactId = NULL, $checkComponent = TRUE) {
$allow = FALSE;
}
/**
- * Verify user has permission to access a case
+ * Verify user has permission to access a case.
*
* @param int $caseId
* @param bool $denyClosed
}
/**
- * Check whether activity is a case Activity
+ * Check whether activity is a case Activity.
*
* @param int $activityID
* Activity id.
*
- * @return boolean
+ * @return bool
*/
public static function isCaseActivity($activityID) {
$isCaseActivity = FALSE;
}
/**
- * Get all the case type ids currently in use
+ * Get all the case type ids currently in use.
*
* @return array
*/
}
/**
- * Get all the case status ids currently in use
+ * Get all the case status ids currently in use.
*
* @return array
*/
}
/**
- * Get all the encounter medium ids currently in use
+ * Get all the encounter medium ids currently in use.
*
* @return array
*/
}
/**
- * Used during case component enablement and during ugprade
+ * Used during case component enablement and during ugprade.
*
* @return bool
*/
/**
* Helper function, also used by the upgrade in case of error
*
+ * @param string $section
+ *
* @return string
*/
public static function createCaseViewsQuery($section = 'upcoming') {
}
/**
- * Get the list of clients for a case
+ * Get the list of clients for a case.
*
* @param int $caseId
*
* @return array
* associated array with client ids
- * @static
*/
public static function getCaseClients($caseId) {
$clients = array();
*
* @param string $fieldName
* @param string $context
- * @see CRM_Core_DAO::buildOptionsContext.
+ * @see CRM_Core_DAO::buildOptionsContext
* @param array $props
* Whatever is known about this dao object.
*
- * @return Array|bool
+ * @return array|bool
*/
public static function buildOptions($fieldName, $context = NULL, $props = array()) {
$className = __CLASS__;
}
return CRM_Core_PseudoConstant::get($className, $fieldName, $params, $context);
}
+
}