CRM-16203 conflict fix in master
authormonishdeb <monish.deb@webaccessglobal.com>
Tue, 24 Nov 2015 07:33:03 +0000 (13:03 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Tue, 24 Nov 2015 07:33:03 +0000 (13:03 +0530)
----------------------------------------
* CRM-16203:
  https://issues.civicrm.org/jira/browse/CRM-16203

CRM/Report/Form.php

index 1bd2b024f66be49e9b7e93bc5132e61fe08645f8..d8adc66607b541c0a50792864246f5274e2abd85 100644 (file)
@@ -1792,33 +1792,13 @@ class CRM_Report_Form extends CRM_Core_Form {
         break;
 
       case 'mhas':
-        // mhas == multiple has
-        if ($value !== NULL && count($value) > 0) {
-          $sqlOP = $this->getSQLOperator($op);
-          foreach ($value as $key => $val) {
-            $val = str_replace('(', '[[.left-parenthesis.]]', $val);
-            $val = str_replace(')', '[[.right-parenthesis.]]', $val);
-            $value[$key] = $val;
-          }
-          $sp = CRM_Core_DAO::VALUE_SEPARATOR;
-          $clause
-            = "{$field['dbAlias']} REGEXP '$sp" . implode("$sp|$sp", $value) . "$sp'";
-        }
-        break;
-
       case 'mnot':
         // multiple has or multiple not
         if ($value !== NULL && count($value) > 0) {
-          $sqlOP = $this->getSQLOperator($op);
-          foreach ($value as $key => $val) {
-            $val = str_replace('(', '[[.left-parenthesis.]]', $val);
-            $val = str_replace(')', '[[.right-parenthesis.]]', $val);
-            $value[$key] = $val;
-          }
-          $sp = CRM_Core_DAO::VALUE_SEPARATOR;
-          $clause
-            = "( {$field['dbAlias']} NOT REGEXP '$sp" . implode("$sp|$sp", $value) .
-            "$sp' OR {$field['dbAlias']} IS NULL )";
+          $value = CRM_Utils_Type::escapeAll($value, $type);
+          $operator = $op == 'mnot' ? 'NOT' : '';
+          $regexp = "[[:cntrl:]]*" . implode('[[:>:]]*|[[:<:]]*', (array) $value) . "[[:cntrl:]]*";
+          $clause = "{$field['dbAlias']} {$operator} REGEXP '{$regexp}'";
         }
         break;