}
/**
- * @param $values
- * @param $query
+ * Get where clause for field.
+ *
+ * @todo most of this could be replaced by using metadata.
+ *
+ * @param array $values
+ * @param \CRM_Contact_BAO_Query $query
+ *
+ * @throws \CRM_Core_Exception
*/
public static function whereClauseSingle(&$values, &$query) {
+ if ($query->buildDateRangeQuery($values)) {
+ // @todo - move this to Contact_Query in or near the call to
+ // $this->buildRelativeDateQuery($values);
+ return;
+ }
list($name, $op, $value, $grouping, $wildcard) = $values;
switch ($name) {
- case 'pledge_create_date_low':
- case 'pledge_create_date_high':
- // process to / from date
- $query->dateQueryBuilder($values,
- 'civicrm_pledge', 'pledge_create_date', 'create_date', 'Pledge Made'
- );
- case 'pledge_start_date_low':
- case 'pledge_start_date_high':
- // process to / from date
- $query->dateQueryBuilder($values,
- 'civicrm_pledge', 'pledge_start_date', 'start_date', 'Pledge Start Date'
- );
- return;
-
- case 'pledge_end_date_low':
- case 'pledge_end_date_high':
- // process to / from date
- $query->dateQueryBuilder($values,
- 'civicrm_pledge', 'pledge_end_date', 'end_date', 'Pledge End Date'
- );
- return;
-
- case 'pledge_payment_date_low':
- case 'pledge_payment_date_high':
- // process to / from date
- $query->dateQueryBuilder($values,
- 'civicrm_pledge_payment', 'pledge_payment_date', 'scheduled_date', 'Payment Scheduled'
- );
- return;
-
- case 'pledge_payment_scheduled_date_low':
- case 'pledge_payment_scheduled_date_high':
- // process to / from date
- $query->dateQueryBuilder($values,
- 'civicrm_pledge_payment', 'pledge_payment_scheduled_date', 'scheduled_date', 'Payment Scheduled'
- );
- return;
-
case 'pledge_amount':
case 'pledge_amount_low':
case 'pledge_amount_high':