Merge pull request #7181 from eileenmcnaughton/CRM-17335-2
[civicrm-core.git] / CRM / Case / BAO / Query.php
index e7a2c7a84f127af9eaaf62be0f4ecb2d496112b4..64a592d27b9ccf9107aef293ce24325c14c280a5 100644 (file)
@@ -40,7 +40,6 @@ class CRM_Case_BAO_Query {
    * @return array
    */
   public static function &getFields($excludeActivityFields = FALSE) {
-    $fields = array();
     $fields = CRM_Case_BAO_Case::exportableFields();
 
     // add activity related fields
@@ -54,7 +53,7 @@ class CRM_Case_BAO_Query {
   /**
    * Build select for Case.
    *
-   * @param $query
+   * @param CRM_Contact_BAO_Query $query
    */
   public static function select(&$query) {
     if (($query->_mode & CRM_Contact_BAO_Query::MODE_CASE) || !empty($query->_returnProperties['case_id'])) {
@@ -218,7 +217,7 @@ class CRM_Case_BAO_Query {
   /**
    * Given a list of conditions in query generate the required where clause.
    *
-   * @param CRM_Case_BAO_Query $query
+   * @param CRM_Contact_BAO_Query $query
    */
   public static function where(&$query) {
     foreach ($query->_params as $id => $values) {
@@ -230,7 +229,6 @@ class CRM_Case_BAO_Query {
         if ($query->_mode == CRM_Contact_BAO_Query::MODE_CONTACTS) {
           $query->_useDistinct = TRUE;
         }
-        $grouping = $query->_params[$id][3];
         self::whereClauseSingle($query->_params[$id], $query);
       }
     }
@@ -239,8 +237,18 @@ class CRM_Case_BAO_Query {
   /**
    * Where clause for a single field.
    *
+   * CRM-17120 adds a test that checks the Qill on some of these parameters.
+   * However, I couldn't find a way, other than via test, to access the
+   * case_activity options in the code below and invalid sql was returned.
+   * Perhaps the options are just legacy?
+   *
+   * Also, CRM-17120 locks in the Qill - but it probably is not quite right as I
+   * see 'Activity Type = Scheduled' (rather than activity status).
+   *
+   * See CRM_Case_BAO_QueryTest for more.
+   *
    * @param array $values
-   * @param CRM_Case_BAO_Query $query
+   * @param CRM_Contact_BAO_Query $query
    */
   public static function whereClauseSingle(&$values, &$query) {
     list($name, $op, $value, $grouping, $wildcard) = $values;
@@ -350,7 +358,7 @@ class CRM_Case_BAO_Query {
 
       case 'case_recent_activity_type':
         $names = $value;
-        if ($activityType = CRM_Core_OptionGroup::getLabel('activity_type', $value, 'value')) {
+        if (($activityType = CRM_Core_PseudoConstant::getLabel('CRM_Activity_BAO_Activity', 'activity_type_id', $value)) != FALSE) {
           $names = $activityType;
         }
 
@@ -364,7 +372,7 @@ class CRM_Case_BAO_Query {
 
       case 'case_activity_status_id':
         $names = $value;
-        if ($activityStatus = CRM_Core_OptionGroup::getLabel('activity_status', $value, 'value')) {
+        if (($activityStatus = CRM_Core_PseudoConstant::getLabel('CRM_Activity_BAO_Activity', 'status_id', $value)) != FALSE) {
           $names = $activityStatus;
         }
 
@@ -386,7 +394,7 @@ class CRM_Case_BAO_Query {
 
       case 'case_activity_medium_id':
         $names = $value;
-        if ($activityMedium = CRM_Core_OptionGroup::getLabel('encounter_medium', $value, 'value')) {
+        if (($activityMedium = CRM_Core_PseudoConstant::getLabel('CRM_Activity_BAO_Activity', 'medium_id', $value)) != FALSE) {
           $names = $activityMedium;
         }
 
@@ -483,9 +491,11 @@ class CRM_Case_BAO_Query {
   }
 
   /**
+   * Build from clause.
+   *
    * @param string $name
-   * @param $mode
-   * @param $side
+   * @param string $mode
+   * @param string $side
    *
    * @return string
    */
@@ -615,6 +625,10 @@ case_relation_type.id = case_relationship.relationship_type_id )";
 
   /**
    * This includes any extra fields that might need for export etc.
+   *
+   * @param string $mode
+   *
+   * @return array|null
    */
   public static function extraReturnProperties($mode) {
     $properties = NULL;