/** * function __construct * <pre> * Initialize the Class ... * </pre> * @param $personyear_id [INTEGER] value used to initialize the list. * @param $sortBy [STRING] the field name to sort list by * @return [void] */ function __construct($campus_id = -1, $assignment_status_list = '', $sortBy = '') { // NOTE: if you need to narrow the field of the search then uncommnet // the following and set the proper search criteria. if ($campus_id == '') { $campus_id = -1; } if ($sortBy == '') { $sortBy = 'personyear_id'; } $personYearManager = new RowManager_PersonYearManager(); $campusAssignments = new RowManager_AssignmentsManager(); $campusAssignments->setCampusID($campus_id); $person = new RowManager_PersonManager(); $searchManager = new MultiTableManager(); //new RowManager_PersonYearManager(); $searchManager->addRowManager($campusAssignments); $searchManager->addRowManager($personYearManager, new JoinPair($personYearManager->getJoinOnPersonID(), $campusAssignments->getJoinOnPersonID(), JOIN_TYPE_LEFT)); $searchManager->addRowManager($person, new JoinPair($person->getJoinOnPersonID(), $personYearManager->getJoinOnPersonID())); if ($assignment_status_list != '') { $searchManager->addSearchCondition('assignmentstatus_id in (' . $assignment_status_list . ')'); // filter results by student-campus status } $searchManager->setSortOrder($sortBy); // $this->resultSet = $searchManager->find(); $foundIterator = $searchManager->getListIterator(); $foundArray = $foundIterator->getDataList(); /** Add new person year entries as required **/ reset($foundArray); foreach (array_keys($foundArray) as $k) { $record = current($foundArray); $person_id = $record['person_id']; // person_id must exist given join condition, personyear_id and/or year_id may not $personyear_id = $record['personyear_id']; /** Add new person year entry if person doesn't have one yet **/ if ($personyear_id == "") { $newPersonYear = new RowManager_PersonYearManager(); $newPersonYear->setPersonID($person_id); $newPersonYear->setYear(RowManager_PersonYearManager::OTHER); $newPersonYear->createNewEntry(); } next($foundArray); } $keepList = 'campus_id'; $searchManager->deleteValuesExceptSome($keepList); $this->resultSet = $searchManager->find(); // echo "record array = <pre>".print_r($foundArray,true)."</pre>"; // $searchManager->setValueByFieldName("campus_id", $campus_id ); //$searchManager->setValueByFieldName('module_isCommonLook', '1' ); }