X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCase%2FBAO%2FCase.php;h=089a5ae665ed695781dc6eb3644e3f012b4a7167;hb=0558143313697ef74e71e517f4365026a9284082;hp=e870ec13091ceea41662a3f2ab523d2230d83330;hpb=ed0d980a1603209bcb6cfd5ac308a9d96db7e70b;p=civicrm-core.git diff --git a/CRM/Case/BAO/Case.php b/CRM/Case/BAO/Case.php index e870ec1309..089a5ae665 100644 --- a/CRM/Case/BAO/Case.php +++ b/CRM/Case/BAO/Case.php @@ -109,7 +109,7 @@ class CRM_Case_BAO_Case extends CRM_Case_DAO_Case { static function &create(&$params) { $transaction = new CRM_Core_Transaction(); - if (CRM_Utils_Array::value('id', $params)) { + if (!empty($params['id'])) { CRM_Utils_Hook::pre('edit', 'Case', $params['id'], $params); } else { @@ -118,7 +118,7 @@ class CRM_Case_BAO_Case extends CRM_Case_DAO_Case { $case = self::add($params); - if (CRM_Utils_Array::value('custom', $params) && + if (!empty($params['custom']) && is_array($params['custom']) ) { CRM_Core_BAO_CustomValueTable::store($params['custom'], 'civicrm_case', $case->id); @@ -129,7 +129,7 @@ class CRM_Case_BAO_Case extends CRM_Case_DAO_Case { return $case; } - if (CRM_Utils_Array::value('id', $params)) { + if (!empty($params['id'])) { CRM_Utils_Hook::post('edit', 'Case', $case->id, $case); } else { @@ -578,6 +578,13 @@ t_act.id as case_recent_activity_id, t_act.act_type_name as case_recent_activity_type_name, t_act.act_type AS case_recent_activity_type "; } + elseif ( $type == 'any' ) { + $query .= " +t_act.desired_date as case_activity_date, +t_act.id as case_activity_id, +t_act.act_type_name as case_activity_type_name, +t_act.act_type AS case_activity_type "; + } $query .= " FROM civicrm_case INNER JOIN civicrm_case_contact ON civicrm_case.id = civicrm_case_contact.case_id @@ -624,6 +631,21 @@ LEFT JOIN civicrm_option_group aog ON aog.name='activity_type' LEFT JOIN civicrm_option_value aov ON ( aov.option_group_id = aog.id AND aov.value = act.activity_type_id ) ) AS t_act "; } + elseif ( $type == 'any' ) { + $query .= " LEFT JOIN +( + SELECT ca4.case_id, act4.id AS id, act4.activity_date_time AS desired_date, act4.activity_type_id, act4.status_id, aov.name AS act_type_name, aov.label AS act_type + FROM civicrm_activity act4 + LEFT JOIN civicrm_case_activity ca4 + ON ca4.activity_id = act4.id + AND act4.is_current_revision = 1 + LEFT JOIN civicrm_option_group aog + ON aog.name='activity_type' + LEFT JOIN civicrm_option_value aov + ON aov.option_group_id = aog.id + AND aov.value = act4.activity_type_id +) AS t_act"; + } $query .= " ON t_act.case_id = civicrm_case.id @@ -662,6 +684,9 @@ LEFT JOIN civicrm_option_group aog ON aog.name='activity_type' elseif ($type == 'recent') { $query .= " ORDER BY case_recent_activity_date ASC "; } + elseif ( $type == 'any' ) { + $query .= " ORDER BY case_activity_date ASC "; + } return $query; } @@ -706,8 +731,7 @@ LEFT JOIN civicrm_option_group aog ON aog.name='activity_type' if (!$allCases) { $condition .= " AND case_relationship.contact_id_b = {$userID} "; } - - if ($type == 'upcoming') { + if ( $type == 'upcoming' || $type == 'any' ) { $closedId = CRM_Core_OptionGroup::getValue('case_status', 'Closed', 'name'); $condition .= " AND civicrm_case.status_id != $closedId"; @@ -751,6 +775,12 @@ AND civicrm_case.status_id != $closedId"; $resultFields[] = 'case_recent_activity_type'; $resultFields[] = 'case_recent_activity_id'; } + elseif ( $type == 'any' ) { + $resultFields[] = 'case_activity_date'; + $resultFields[] = 'case_activity_type_name'; + $resultFields[] = 'case_activity_type'; + $resultFields[] = 'case_activity_id'; + } // we're going to use the usual actions, so doesn't make sense to duplicate definitions $actions = CRM_Case_Selector_Search::links(); @@ -897,7 +927,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type $res = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray); while ($res->fetch()) { - if (CRM_Utils_Array::value($res->case_type, $rows) && CRM_Utils_Array::value($res->case_status, $rows[$res->case_type])) { + if (!empty($rows[$res->case_type]) && !empty($rows[$res->case_type][$res->case_status])) { $rows[$res->case_type][$res->case_status]['count'] = $rows[$res->case_type][$res->case_status]['count'] + 1; } else { @@ -1027,29 +1057,29 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type $where = 'WHERE cca.case_id= %1 AND ca.is_current_revision = 1'; - if (CRM_Utils_Array::value('reporter_id', $params)) { + if (!empty($params['reporter_id'])) { $where .= " AND cac.contact_id = " . CRM_Utils_Type::escape($params['reporter_id'], 'Integer'); } - if (CRM_Utils_Array::value('status_id', $params)) { + if (!empty($params['status_id'])) { $where .= " AND ca.status_id = " . CRM_Utils_Type::escape($params['status_id'], 'Integer'); } - if (CRM_Utils_Array::value('activity_deleted', $params)) { + if (!empty($params['activity_deleted'])) { $where .= " AND ca.is_deleted = 1"; } else { $where .= " AND ca.is_deleted = 0"; } - if (CRM_Utils_Array::value('activity_type_id', $params)) { + if (!empty($params['activity_type_id'])) { $where .= " AND ca.activity_type_id = " . CRM_Utils_Type::escape($params['activity_type_id'], 'Integer'); } - if (CRM_Utils_Array::value('activity_date_low', $params)) { + if (!empty($params['activity_date_low'])) { $fromActivityDate = CRM_Utils_Type::escape(CRM_Utils_Date::processDate($params['activity_date_low']), 'Date'); } - if (CRM_Utils_Array::value('activity_date_high', $params)) { + if (!empty($params['activity_date_high'])) { $toActivityDate = CRM_Utils_Type::escape(CRM_Utils_Date::processDate($params['activity_date_high']), 'Date'); $toActivityDate = $toActivityDate ? $toActivityDate + 235959 : NULL; } @@ -1214,7 +1244,8 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type //check for view activity. $subject = (empty($dao->subject)) ? '(' . ts('no subject') . ')' : $dao->subject; if ($allowView) { - $subject = '' . $subject . ''; + $url = CRM_Utils_System::url('civicrm/case/activity/view', array('cid' => $contactID, 'aid' => $dao->id)); + $subject = '' . $subject . ''; } $values[$dao->id]['subject'] = $subject; @@ -1230,34 +1261,33 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type $values[$dao->id]['reporter'] .= ' / ' . ts('(multiple)'); } } + // FIXME: Why are we not using CRM_Core_Action for these links? This is too much manual work and likely to get out-of-sync with core markup. $url = ""; + $css = 'class="action-item crm-hover-button"'; $additionalUrl = "&id={$dao->id}"; if (!$dao->deleted) { //hide edit link of activity type email.CRM-4530. if (!in_array($dao->type, $emailActivityTypeIDs)) { //hide Edit link if activity type is NOT editable (special case activities).CRM-5871 if ($allowEdit) { - $url = '' . ts('Edit') . ' '; + $url = '' . ts('Edit') . ' '; } } if ($allowDelete) { - if (!empty($url)) { - $url .= " | "; - } - $url .= '' . ts('Delete') . ''; + $url .= ' ' . ts('Delete') . ''; } } elseif (!$caseDeleted) { - $url = '' . ts('Restore') . ''; + $url = ' ' . ts('Restore') . ''; $values[$dao->id]['status'] = $values[$dao->id]['status'] . '
(deleted)'; } //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)) { @@ -1272,7 +1302,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type NULL, FALSE ); - $url .= " | " . "" . ts('View Attachment') . ' '; + $url .= " "; } } @@ -1371,7 +1401,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type if ($caseId) { $activityTypeId = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $activityId, 'activity_type_id'); $nonCaseActivityTypes = CRM_Core_PseudoConstant::activityType(); - if (CRM_Utils_Array::value($activityTypeId, $nonCaseActivityTypes)) { + if (!empty($nonCaseActivityTypes[$activityTypeId])) { $anyActivity = TRUE; } else { @@ -1569,7 +1599,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type // (Or for efficiency call the global one outside the loop and then union with this each time.) $contactDetails = self::getRelatedContacts($caseId, TRUE); - if (CRM_Utils_Array::value($result['from']['id'], $contactDetails)) { + if (!empty($contactDetails[$result['from']['id']])) { $params = array(); $params['subject'] = $result['subject']; $params['activity_date_time'] = $result['date']; @@ -1727,9 +1757,8 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type $groupInfo['id'] = $results['id']; $groupInfo['title'] = $results['title']; $params = array(array('group', 'IN', array($groupInfo['id'] => 1), 0, 0)); - $return = array('sort_name' => 1, 'display_name' => 1, 'email' => 1, 'phone' => 1); $return = array('contact_id' => 1, 'sort_name' => 1, 'display_name' => 1, 'email' => 1, 'phone' => 1); - list($globalContacts, $_) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount); + list($globalContacts) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount); if ($returnOnlyCount) { return $globalContacts; @@ -1737,7 +1766,7 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type if ($showLinks) { foreach ($globalContacts as $idx => $contact) { - $globalContacts[$idx]['sort_name'] = '' . $contact['sort_name'] . ''; + $globalContacts[$idx]['sort_name'] = '' . $contact['sort_name'] . ''; } } } @@ -1789,13 +1818,13 @@ SELECT case_status.label AS case_status, status_id, case_type.label AS case_type } if ($latestDate) { - if (CRM_Utils_Array::value('activity_type_id', $criteriaParams)) { + if (!empty($criteriaParams['activity_type_id'])) { $where .= " AND ca.activity_type_id = " . CRM_Utils_Type::escape($criteriaParams['activity_type_id'], 'Integer'); $where .= " AND ca.is_current_revision = 1"; $groupBy .= " GROUP BY ca.activity_type_id"; } - if (CRM_Utils_Array::value('newest', $criteriaParams)) { + if (!empty($criteriaParams['newest'])) { $selectDate = " max(ca.activity_date_time) "; } else { @@ -2042,7 +2071,7 @@ SELECT civicrm_contact.id as casemanager_id, static $accessibleCaseIds; if (!is_array($accessibleCaseIds)) { $session = CRM_Core_Session::singleton(); - $accessibleCaseIds = array_keys(self::getCases(FALSE, $session->get('userID'))); + $accessibleCaseIds = array_keys(self::getCases(FALSE, $session->get('userID'), 'any')); } //no need of further processing. if (empty($accessibleCaseIds)) { @@ -2201,7 +2230,7 @@ INNER JOIN civicrm_case_contact ON ( civicrm_case.id = civicrm_case_contact.cas if (!$doFilterCases || array_key_exists($dao->id, $filterCases)) { $caseViewStr = "reset=1&id={$dao->id}&cid={$dao->client_id}&action=view&context=case&selectedChild=case"; $caseViewUrl = CRM_Utils_System::url("civicrm/contact/view/case", $caseViewStr); - $caseView = "" . ts('View Case') . ""; + $caseView = "" . ts('View Case') . ""; } $clientView = $dao->client_name; if ($hasViewContact) { @@ -2657,7 +2686,7 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')'; 'activity_type_id', 'id' ); - if (CRM_Utils_Array::value('isCaseActivity', $tplParams)) { + if (!empty($tplParams['isCaseActivity'])) { $tplParams['editActURL'] = CRM_Utils_System::url('civicrm/case/activity', "reset=1&cid={$activityParams['target_id']}&caseid={$activityParams['case_id']}&action=update&id={$activityParams['source_record_id']}", TRUE );