X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCase%2FBAO%2FCase.php;h=39823568ebe26d6af7fca940f8e40d62e7e05bed;hb=9c41996008a0cb938cd30d8996cdec462c6a61a7;hp=74233ba5ed664e6377c0cd144466234427d293fd;hpb=f2a84e5c7c916f6c0d4c7fce69b844b019c17dd1;p=civicrm-core.git
diff --git a/CRM/Case/BAO/Case.php b/CRM/Case/BAO/Case.php
index 74233ba5ed..39823568eb 100644
--- a/CRM/Case/BAO/Case.php
+++ b/CRM/Case/BAO/Case.php
@@ -1307,10 +1307,10 @@ SELECT case_status.label AS case_status, status_id, civicrm_case_type.title AS c
//check for operations.
if (self::checkPermission($dao->id, 'Move To Case', $dao->activity_type_id)) {
- $url .= ' ' . ts('Move To Case') . ' ';
+ $url .= ' ' . ts('Move To Case') . ' ';
}
if (self::checkPermission($dao->id, 'Copy To Case', $dao->activity_type_id)) {
- $url .= ' ' . ts('Copy To Case') . ' ';
+ $url .= ' ' . ts('Copy To Case') . ' ';
}
// if there are file attachments we will return how many and, if only one, add a link to it
if (!empty($dao->attachment_ids)) {
@@ -1375,13 +1375,18 @@ SELECT case_status.label AS case_status, status_id, civicrm_case_type.title AS c
*/
static function getRelatedContacts($caseID, $skipDetails = FALSE) {
$values = array();
- $query = 'SELECT cc.display_name as name, cc.sort_name as sort_name, cc.id, crt.label_b_a as role, ce.email
- FROM civicrm_relationship cr
- LEFT JOIN civicrm_relationship_type crt ON crt.id = cr.relationship_type_id
- LEFT JOIN civicrm_contact cc ON cc.id = cr.contact_id_b
- LEFT JOIN civicrm_email ce ON ce.contact_id = cc.id
- WHERE cr.case_id = %1 AND ce.is_primary= 1
- GROUP BY cc.id';
+ $query = '
+ SELECT cc.display_name as name, cc.sort_name as sort_name, cc.id, crt.label_b_a as role, ce.email
+ FROM civicrm_relationship cr
+ LEFT JOIN civicrm_relationship_type crt
+ ON crt.id = cr.relationship_type_id
+ LEFT JOIN civicrm_contact cc
+ ON cc.id = cr.contact_id_b
+ LEFT JOIN civicrm_email ce
+ ON ce.contact_id = cc.id
+ AND ce.is_primary= 1
+ WHERE cr.case_id = %1
+ GROUP BY cc.id';
$params = array(1 => array($caseID, 'Integer'));
$dao = CRM_Core_DAO::executeQuery($query, $params);
@@ -2038,9 +2043,9 @@ SELECT civicrm_contact.id as casemanager_id,
*
* @return array of case and related data keyed on case id
*/
- static function getUnclosedCases($params = array(), $excludeCaseIds = array(), $excludeDeleted = TRUE) {
+ static function getUnclosedCases($params = array(), $excludeCaseIds = array(), $excludeDeleted = TRUE, $includeClosed = FALSE) {
//params from ajax call.
- $where = array('( ca.end_date is null )');
+ $where = array($includeClosed ? '(1)' : '(ca.end_date is null)');
if ($caseType = CRM_Utils_Array::value('case_type', $params)) {
$where[] = "( civicrm_case_type.title LIKE '%$caseType%' )";
}
@@ -2049,6 +2054,9 @@ SELECT civicrm_contact.id as casemanager_id,
$search = ($config->includeWildCardInName) ? "%$sortName%" : "$sortName%";
$where[] = "( sort_name LIKE '$search' )";
}
+ if ($cid = CRM_Utils_Array::value('contact_id', $params)) {
+ $where[] = " c.id = $cid ";
+ }
if (is_array($excludeCaseIds) &&
!CRM_Utils_System::isNull($excludeCaseIds)
) {
@@ -2079,15 +2087,19 @@ SELECT civicrm_contact.id as casemanager_id,
ca.id,
ca.subject as case_subject,
civicrm_case_type.title as case_type,
- ca.start_date as start_date
+ ca.start_date as start_date,
+ ca.end_date as end_date,
+ ca.status_id
FROM civicrm_case ca INNER JOIN civicrm_case_contact cc ON ca.id=cc.case_id
INNER JOIN civicrm_contact c ON cc.contact_id=c.id
INNER JOIN civicrm_case_type ON ca.case_type_id = civicrm_case_type.id
WHERE {$whereClause}
- ORDER BY c.sort_name
+ ORDER BY c.sort_name, ca.end_date
{$limitClause}
";
$dao = CRM_Core_DAO::executeQuery($query);
+ $statuses = CRM_Case_BAO_Case::buildOptions('status_id', 'create');
+
$unclosedCases = array();
while ($dao->fetch()) {
if ($doFilterCases && !array_key_exists($dao->id, $filterCases)) {
@@ -2098,7 +2110,9 @@ SELECT civicrm_contact.id as casemanager_id,
'case_type' => $dao->case_type,
'contact_id' => $dao->contact_id,
'start_date' => $dao->start_date,
+ 'end_date' => $dao->end_date,
'case_subject' => $dao->case_subject,
+ 'case_status' => $statuses[$dao->status_id],
);
}
$dao->free();