province abbreviation patch - issue 724
[civicrm-core.git] / CRM / Contact / BAO / Query.php
index ce5ca8eebec0d7910325a0b87b863a4b5342122e..a42a4032d68875223a84b0de6fb5c9848b19104f 100644 (file)
@@ -6071,7 +6071,16 @@ AND   displayRelType.is_active = 1
           }
         }
         elseif ($value['pseudoField'] == 'state_province_abbreviation') {
-          $dao->$key = CRM_Core_PseudoConstant::stateProvinceAbbreviation($val);
+               // old bad code:
+//          $dao->$key = CRM_Core_PseudoConstant::stateProvinceAbbreviation($val);
+         // iank: Return abbreviation if its a province from a country that uses abbreviations,
+         // otherwise return the name of the province.
+         // https://lab.civicrm.org/dev/core/issues/724
+         if (is_numeric(CRM_Core_PseudoConstant::stateProvinceAbbreviation($val))) {
+           $dao->$key = CRM_Core_PseudoConstant::stateProvince($val);
+         } else {
+           $dao->$key = CRM_Core_PseudoConstant::stateProvinceAbbreviation($val);
+         }
         }
         // @todo handle this in the section above for pseudoconstants.
         elseif (in_array($value['pseudoField'], ['participant_role_id', 'participant_role'])) {
@@ -6309,15 +6318,13 @@ AND   displayRelType.is_active = 1
   public static function getWildCardedValue($wildcard, $op, $value) {
     if ($wildcard && $op === 'LIKE') {
       if (CRM_Core_Config::singleton()->includeWildCardInName && (substr($value, 0, 1) != '%')) {
-        return "%$value%";
+        $value = "%$value";
       }
-      else {
-        return "$value%";
+      if (substr($value, -1, 1) != '%') {
+        $value = "$value%";
       }
     }
-    else {
-      return "$value";
-    }
+    return "$value";
   }
 
   /**