Fix Date Range search for Mailing search.
authorSaurabh Batra <saurabh.batra96@gmail.com>
Fri, 4 Mar 2016 08:08:46 +0000 (13:38 +0530)
committerSaurabh Batra <saurabh.batra96@gmail.com>
Fri, 4 Mar 2016 08:08:46 +0000 (13:38 +0530)
CRM/Contribute/BAO/Query.php
CRM/Mailing/BAO/Query.php

index 71ff84dd98d9b4a3485363dd885878b948cf834e..ab886b8877eb6c0f36a2328eddc4e99bfbce9569 100644 (file)
@@ -1220,7 +1220,6 @@ class CRM_Contribute_BAO_Query {
     $highDate = strtotime($fields['contribution_date_high']);
 
     if ($lowDate > $highDate) {
-
       $errors['contribution_date_range_error'] = ts('Please check that your Date Range is in correct chronological order.');
     }
     return empty($errors) ? TRUE : $errors;
index 2cf2f04cd846e384a07b6aaf4d3008c523be57f6..a0f4251bbd6041dc17fed8e63dd50a9203e69102 100644 (file)
@@ -407,6 +407,8 @@ class CRM_Mailing_BAO_Query {
     }
 
     CRM_Core_Form_Date::buildDateRange($form, 'mailing_date', 1, '_low', '_high', ts('From'), FALSE);
+    $form->addElement('hidden', 'mailing_date_range_error');
+    $form->addFormRule(array('CRM_Mailing_BAO_Query', 'formRule'), $form);
 
     $mailingJobStatuses = array(
       '' => ts('- select -'),
@@ -494,4 +496,28 @@ class CRM_Mailing_BAO_Query {
     $query->_tables[$tableName] = $query->_whereTables[$tableName] = 1;
   }
 
+  /**
+   * Check if the values in the date range are in correct chronological order.
+   *
+   * @param array $fields
+   * @param array $files
+   * @param CRM_Core_Form $form
+   *
+   * @return bool|array
+   */
+  public static function formRule($fields, $files, $form) {
+    $errors = array();
+
+    if (empty($fields['mailing_date_high']) || empty($fields['mailing_date_low'])) {
+      return TRUE;
+    }
+    $lowDate = strtotime($fields['mailing_date_low']);
+    $highDate = strtotime($fields['mailing_date_high']);
+
+    if ($lowDate > $highDate) {
+      $errors['mailing_date_range_error'] = ts('Please check that your Date Range is in correct chronological order.');
+    }
+    return empty($errors) ? TRUE : $errors;
+  }
+
 }