createQuery() ->addWhere('valid_from <= ?', $date) ->addWhere('valid_to >= ?', $date) ->orderBy('valid_to DESC') ->fetchOne(); if($top instanceof TopJob) { return date('Y-m-d', strtotime('+1 day', strtotime($top->getValidTo()))); } return date('Y-m-d'); } /** * * @return TopJob */ public function getTopJobNow() { $date = date('Y-m-d'); return Doctrine::getTable('TopJob')->createQuery() ->addWhere('is_active = ?', true) ->addWhere('valid_from <= ?', $date) ->addWhere('valid_to >= ?', $date) ->fetchOne(); } /** * * @param date $from * @param date $to * @param TopJob $without * @return TopJob */ public function getTopJob($from, $to, TopJob $without = null) { $query = Doctrine::getTable('TopJob')->createQuery() ->addWhere('is_active = ?', true) ->addWhere('(valid_from <= ? AND valid_to >= ?) OR (valid_from <= ? AND valid_to >= ?) OR (valid_from <= ? AND valid_to >= ?)', array($from, $to, $from, $from, $to, $to)); if(!is_null($without)) { $query->addWhere('id != ?', $without->getId()); } return $query->fetchOne(); } }