Ejemplo n.º 1
0
 /**
  * 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' );
 }