/** * Returns a list of performances for the given Program * @param int id * @return array Performances */ function getPerformances($eventId) { global $logger; $logger->debug(get_class($this) . "::getPerformances({$eventId})"); $result = array(); // this could be refactored as a subselect $db = $this->getDbo(); $query = 'SELECT distinct a.eoid as oid, a.scope, a.ticketCode' . ' FROM Activity as a, _ez_relation_ as r, Program as e' . ' WHERE r.oid_b = a.eoid and r.class_a="Program" and r.class_b="Performance"' . ' AND r.oid_a=' . $eventId; $db->setQuery($query); $perfs = $db->loadAssocList(); // now get the schedules foreach ($perfs as $perf) { $performance = new Performance($perf); $query = 'SELECT DISTINCT s.eoid as oid, s.startTime, s.endTime ' . ' FROM Schedule as s ' . ' WHERE s.eoid IN ' . ' (select r.oid_b ' . ' from _ez_relation_ as r' . ' where r.class_a="Performance" and r.class_b="Schedule"' . ' AND r.oid_a=' . $performance->getOid() . ')'; $db->setQuery($query); $schedule = new Schedule($db->loadAssoc()); $performance->setSchedule($schedule); $result[] = $performance; } return $result; }