- case 'case_status':
- case 'case_status_id':
- $statuses = CRM_Case_PseudoConstant::caseStatus();
- // Standardize input from checkboxes or single value
- if (is_array($value) && $query->_mode == CRM_Contact_BAO_Query::MODE_CASE) {
- $value = array_keys($value, 1);
- }
- foreach ((array) $value as $k) {
- if ($k && isset($statuses[$k])) {
- $val[$k] = $k;
- $names[] = $statuses[$k];
- }
- elseif ($k && ($v = CRM_Utils_Array::key($k, $statuses))) {
- $val[$v] = $v;
- $names[] = $k;
- }
- }
- if ($val) {
- $query->_where[$grouping][] = "civicrm_case.status_id IN (" . implode(',', $val) . ")";
- }
- else {
- $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause('civicrm_case.status_id', $op, $value, "Integer");
- }
- $query->_qill[$grouping][] = ts('Case Status is %1', array(1 => implode(' ' . ts('or') . ' ', $names)));
- $query->_tables['civicrm_case'] = $query->_whereTables['civicrm_case'] = 1;
- return;