public function applyFilter($filter_field, $value) { if ($filter_field['comparison'] == 'special') { if ($filter_field['input_type'] == 'boolean') { if (!is_null($value) && $value != $filter_field['default']) { $rates_coll = Billrun_Factory::db()->ratesCollection(); $unrated_rate = $rates_coll->query("key", "UNRATED")->cursor()->setReadPreference(Billrun_Factory::config()->getConfigValue('read_only_db_pref'))->current()->createRef($rates_coll); $month_ago = new MongoDate(strtotime("1 month ago")); return array('$or' => array(array('arate' => $unrated_rate), array('sid' => false), array('$and' => array(array('arate' => array('$exists' => true, '$nin' => array(false, $unrated_rate))), array('sid' => array('$exists' => true, '$ne' => false)), array('urt' => array('$lt' => $month_ago)), array('aprice' => array('$exists' => false)))))); } } } else { return parent::applyFilter($filter_field, $value); } }
public function applyFilter($filter_field, $value) { if ($filter_field['input_type'] == 'date' && is_array($filter_field['db_key'])) { if (is_string($value)) { $value = new MongoDate((new Zend_Date($value, null, new Zend_Locale('he_IL')))->getTimestamp()); return array('$and' => array(array($filter_field['db_key'][0] => array($filter_field['comparison'][0] => $value), $filter_field['db_key'][1] => array($filter_field['comparison'][1] => $value)))); } } else { return parent::applyFilter($filter_field, $value); } }