示例#1
0
 /** 
  * 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;
 }