/** * 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' ); }
protected function assignCampus($personID) { if (isset($this->campus_id) && $this->campus_id != '') { $campusAssign = new RowManager_AssignmentsManager(); $campusAssign->setPersonID($personID); $campusAssign->setCampusID($this->campus_id); $updateValues = array(); $updateValues['person_id'] = $personID; $updateValues['campus_id'] = $this->campus_id; // Store values in AssignmentsManager object $campusAssign->loadFromArray($updateValues); // echo "<pre>".print_r($updateValues ,true)."</pre>"; // store new information $campusAssign->createNewEntry(); } }
/** * function __construct * <pre> * Initialize the object. * </pre> * @param $pathModuleRoot [STRING] The path to this module's root directory * @param $viewer [OBJECT] The viewer object. * @param $formAction [STRING] The action on a form submit * @param $event_id [INTEGER] Value used to initialize the dataManager * @return [void] */ function __construct($pathModuleRoot, $viewer, $formAction, $event_id, $campus_id = '', $to_email_opt = '', $base_opt_value = '') { // NOTE: be sure to call the parent constructor before trying to // use the ->formXXX arrays... // $this->person_id = $person_id; $this->event_id = $event_id; $this->campus_id = $campus_id; if ($to_email_opt == '') { $this->to_email_choice = FormProcessor_EmailComposer::DEFAULT_RECIPIENTS; } else { $this->to_email_choice = $to_email_opt; } $this->base_opt_value = $base_opt_value; $this->viewer = $viewer; // if ((!isset($person_id))||($person_id == '')) // { // $this->person_id = $this->getPersonIDfromViewerID(); // $formAction .= '&'.modulecim_reg::PERSON_ID.'='.$this->person_id; // } // if (($isInRegProcess == true)&&($registration_id == '')) // { // $this->setRegistrationID(); // get registration ID for the rest of the process // $formAction .= '&'.modulecim_reg::REG_ID.'='.$this->registration_id; // // also note that person_id is set above if it is also not set yet // if ($person_id == -1) // { // // pass on new person_id to GET parameters // $formAction = str_replace( modulecim_reg::PERSON_ID.'=-1', modulecim_reg::PERSON_ID.'='.$this->person_id, $formAction); // } // // } $fieldList = FormProcessor_EmailComposer::FORM_FIELDS; $fieldDisplayTypes = FormProcessor_EmailComposer::FORM_FIELD_TYPES; parent::__construct($formAction, $fieldList, $fieldDisplayTypes); $this->pathModuleRoot = $pathModuleRoot; // if ($this->pageType == FormProcessor_EmailComposer::CAMPUS_EMAIL) if ($this->campus_id != '') { $this->TO_ADDRESS_OPTIONS = array('0' => 'All Campus Registrants', '1' => 'Campus Registrants - Completed', '2' => 'Campus Registrants - Incomplete', '3' => 'Campus Registrants - Cancelled', '4' => 'Campus Registrants - Males', '5' => 'Campus Registrants - Females', '6' => 'Custom List of Campus Registrants...'); //, '6'=>'All Campus Club Students' } else { $this->TO_ADDRESS_OPTIONS = array('0' => 'All Event Registrants', '1' => 'Event Registrants - Completed', '2' => 'Event Registrants - Incomplete', '3' => 'Event Registrants - Cancelled', '4' => 'Event Registrants - Males', '5' => 'Event Registrants - Females', '6' => 'Custom List of Event Registrants...'); } // To make sure this is not exploited to edit any other person's id. // If the user has no privileges, this sets the viewer id to be his/her own, // even if the variable given to it is not the viewer's person id. // NOTE: anyone with higher previliges can edit any person's info, by simply // changing the posted variable value. // NOTE: this code was causing problems in app_cim_reg module // Now load the access Priviledge manager of this viewer // $this->accessPrivManager = new RowManager_AdminManager( ); // // Get the person ID // $accessManager = new RowManager_AccessManager( ); // $accessManager->loadByViewerID( $this->viewer->getViewerID( ) ); // $personID = $accessManager->getPersonID(); // // Get the permissions the person has. // $this->accessPrivManager->loadByPersonID( $personID ); // if ( !$this->accessPrivManager->isLoaded() ) { // $this->person_id=$personID; // / } //End of check. // figure out the important fields for the dataManager // $fieldsOfInterest = implode(',', $this->formFields); $this->dataManager = new MultiTableManager(); $persons = new RowManager_PersonManager(); //$this->person_id $registrations = new RowManager_RegistrationManager(); $registrations->setEventID($this->event_id); $this->dataManager->addRowManager($persons); $this->dataManager->addRowManager($registrations, new JoinPair($persons->getJoinOnPersonID(), $registrations->getJoinOnPersonID())); if ($this->campus_id != '') { $assignments = new RowManager_AssignmentsManager(); $assignments->setCampusID($this->campus_id); $this->dataManager->addRowManager($assignments, new JoinPair($assignments->getJoinOnPersonID(), $persons->getJoinOnPersonID())); } $this->dataManager->setSortOrder('person_lname,person_fname'); // $this->dataManager->setFieldsOfInterest( $fieldsOfInterest ); $this->formValues = $this->dataManager->getArrayOfValues(); // echo "form values:<br><pre>".print_r($this->formValues,true)."</pre>"; // $eventInfo = new RowManager_EventManager($this->event_id); // $event_email = $eventInfo->getEventEmail(); // echo $event_email; $this->formValues['from_email'] = $this->getPersonEmailfromViewerID(); $this->formValues['to_email'] = $this->base_opt_value . $this->to_email_choice; // set jumplist SELECTED value // $this->formValues['email_subject'] = $campus_name.' - '.$event_name.' Notice'; // now initialize the labels for this page // start by loading the default field labels for this Module $languageID = $viewer->getLanguageID(); $seriesKey = modulecim_reg::MULTILINGUAL_SERIES_KEY; $pageKey = modulecim_reg::MULTILINGUAL_PAGE_FIELDS; $this->labels = new MultilingualManager($languageID, $seriesKey, $pageKey); // then load the page specific labels for this page $pageKey = FormProcessor_EmailComposer::MULTILINGUAL_PAGE_KEY; $this->labels->loadPageLabels($pageKey); // load the site default form link labels $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORMERRORS); }
private function generateRegistrantsDroplist() { // $content = $this->_controller->loadEditCampusRegistrations_OffflineRegBox(); //$content = $this->registrants_dropList->getHTML(); $people = new RowManager_PersonManager(); $access = new RowManager_AccessManager(); // ADDED Nov 21, 2007 $viewers = new RowManager_ViewerManager(); // ADDED Nov 21, 2007 $assignment = new RowManager_AssignmentsManager(); $assignment->setCampusID($this->campus_id); $registrants = new MultiTableManager(); $registrants->addRowManager($people); $registrants->addRowManager($assignment, new JoinPair($people->getJoinOnPersonID(), $assignment->getJoinOnPersonID())); $registrants->addRowManager($access, new JoinPair($people->getJoinOnPersonID(), $access->getJoinOnPersonID())); // ADDED Nov 21, 2007 $registrants->addRowManager($viewers, new JoinPair($access->getJoinOnViewerID(), $viewers->getJoinOnViewerID())); // ADDED Nov 21, 2007 // get sub-query data for filtering out registrants that have already been registered for event $regs = new RowManager_RegistrationManager(); $regs->setEventID($this->event_id); // $regs->setPersonID($this->person_id); $status = new RowManager_StatusManager(); $status->setStatusDesc(RowManager_StatusManager::REGISTERED); $regData = new MultiTableManager(); $regData->addRowManager($regs); $regData->addRowManager($status, new JoinPair($regs->getJoinOnStatus(), $status->getJoinOnStatusID())); $regData->setFieldList('person_id'); $registered_SQL = $regData->createSQL(); // echo "<br>CREATED SQL 1 = ".$registered_SQL; // actually creates the sub-query ensuring that registrants in drop-down list are NOT registered $negateSubQuery = true; $addSubQuery = true; $registrants->constructSubQuery('person_id', $registered_SQL, $negateSubQuery, $addSubQuery); $registrants->setSortOrder('person_lname'); $peopleManager = $registrants->getListIterator(); $registrantsArray = $peopleManager->getDataList(); // echo "<br>CREATED SQL 2 = ".$registrants->createSQL(); $registrant = array(); // NOTE: the drop-down list stealthily passes PERSON_ID to controller (see name="SV43") $dropList = '<form name="Form" id="Form" method="post" action="' . $this->registrant_formAction . '">' . 'Select a registrant for offline registration, or choose "New Registrant" :<br><br>' . '<select name="' . modulecim_reg::PERSON_ID . '">' . '<option selected="selected" value="-1">New Registrant</option>'; // retrieve person first and last name from database array reset($registrantsArray); foreach (array_keys($registrantsArray) as $k) { $personData = current($registrantsArray); // $registrant['person_fname'] = $personData['person_fname']; // $registrant['person_lname'] = $personData['person_lname']; // add registrant names to drop-down list // for ($i = 0; $i < $totalPeople; $i++) // { $dropList .= '<option value=' . $personData['person_id'] . '>' . $personData['person_lname'] . ', ' . $personData['person_fname'] . ' (' . $personData['viewer_userID'] . ')</option>'; // } next($registrantsArray); } // $totalPeople = count($ $dropList .= '</select>' . ' <input name="REGISTER" type="submit" value="REGISTER" /></form>'; return $dropList; }
/** * function processData * <pre> * Processes the data for this form. * </pre> * @return [void] */ function processData() { // save the value of the Foriegn Key(s) /*[RAD_ADMINBOX_FOREIGNKEY]*/ // store values in table manager object. $this->dataManager->loadFromArray($this->formValues); // now update the DB with the values if (!$this->dataManager->isLoaded()) { $this->dataManager->createNewEntry(); //Assign the person to a campus if this is a new entry. $personID = $this->dataManager->getPersonID(); $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID($personID); $assignmentManager->setCampusID($this->campus_id); $assignmentManager->createNewEntry(); } else { $this->dataManager->updateDBTable(); } }
/** * function __construct * <pre> * Initialize the object. * </pre> * @param $pathModuleRoot [STRING] The path to the module's root dir. * @param $viewer [OBJECT] The viewer object. * @param $sortBy [STRING] Field data to sort listManager by. * @param $managerInit [INTEGER] Initialization value for the listManager. * @return [void] */ function __construct($pathModuleRoot, $viewer, $sortBy, $campus_id = "") { parent::__construct(page_PeoplebyCampuses::DISPLAY_FIELDS); $this->pathModuleRoot = $pathModuleRoot; $this->viewer = $viewer; $this->campus_id = $campus_id; // echo 'campusID['.$this->campus_id.']<br/>'; // $this->managerInit = $managerInit; // Now load the access Priviledge manager of this viewer $this->adminManager = new RowManager_AdminManager(); // Get the person ID $accessManager = new RowManager_AccessManager(); $accessManager->loadByViewerID($this->viewer->getViewerID()); $personID = $accessManager->getPersonID(); // Get the permissions the person has. $this->adminManager->loadByPersonID($personID); if ($this->adminManager->hasSitePriv()) { $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $this->campusList = $campusManager->getListIterator(); $this->accessibleCampuses = $this->campusList->getDropListArray(); } else { if ($this->adminManager->hasCampusPriv()) { $campusAdminManager = new RowManager_CampusAdminManager(); $adminID = $this->adminManager->getID(); // echo 'adminID['.$adminID.']<br/>'; $campusAdminManager->setAdminID($adminID); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($campusAdminManager); $multiTableManager->setSortOrder('campus_desc'); $campusManager = new RowManager_CampusManager(); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $campusAdminManager->getJoinOnCampusID())); $this->campusList = $multiTableManager->getListIterator(); $this->accessibleCampuses = array(); $this->campusList->setFirst(); while ($this->campusList->moveNext()) { $campusAdminObject = $this->campusList->getCurrent(new RowManager_CampusAdminManager()); $campusObject = $this->campusList->getCurrent(new RowManager_CampusManager()); $this->accessibleCampuses[$campusAdminObject->getCampusID()] = $campusObject->getLabel(); } } else { if ($this->adminManager->isStaff($viewer->getID())) { $staffManager = new RowManager_StaffManager(); $staffManager->setPersonID($personID); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($staffManager); $multiTableManager->setSortOrder('campus_desc'); $assignmentManager = new RowManager_AssignmentsManager(); $multiTableManager->addRowManager($assignmentManager, new JoinPair($assignmentManager->getJoinOnPersonID(), $staffManager->getJoinOnPersonID())); $campusManager = new RowManager_CampusManager(); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $assignmentManager->getJoinOnCampusID())); $this->campusList = $multiTableManager->getListIterator(); $this->accessibleCampuses = array(); $this->campusList->setFirst(); while ($this->campusList->moveNext()) { $campusAssignObject = $this->campusList->getCurrent(new RowManager_AssignmentsManager()); $campusObject = $this->campusList->getCurrent(new RowManager_CampusManager()); $this->accessibleCampuses[$campusAssignObject->getCampusID()] = $campusObject->getLabel(); } } else { $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $this->campusList = $campusManager->getListIterator(); $this->accessibleCampuses = $this->campusList->getDropListArray(); } } } // modify the campus_id if necessary if ($this->campus_id == page_PeoplebyCampuses::DISPLAY_ALL_ID) { // setting the campus id to blank will get entries from all the campuses $this->campus_id = ''; } else { if ($this->campus_id == '') { // no campus has been specified // choose a default campus if none specified // echo 'No campus specified<br/>'; // get the first element from the accessible list foreach ($this->accessibleCampuses as $key => $value) { $this->campus_id = $key; break; } // assert campus_id should now be something if ($this->campus_id == '') { die("ERROR - campusID not set to anything<br/>"); } } } $dataAccessObject = new MultiTableManager(); $assignmentsManager = new RowManager_AssignmentsManager(); $assignmentsManager->setCampusID($this->campus_id); $dataAccessObject->addRowManager($assignmentsManager); $personManager = new RowManager_PersonManager(); $joinPair = new JoinPair($personManager->getJoinOnPersonID(), $assignmentsManager->getJoinOnPersonID()); $dataAccessObject->addRowManager($personManager, $joinPair); $this->accessManager = new RowManager_AccessManager(); $joinPair2 = new JoinPair($personManager->getJoinOnPersonID(), $this->accessManager->getJoinOnPersonID(), JOIN_TYPE_LEFT); $dataAccessObject->addRowManager($this->accessManager, $joinPair2); $this->viewerManager = new RowManager_UserManager(); $joinPair3 = new JoinPair($this->accessManager->getJoinOnViewerID(), $this->viewerManager->getJoinOnViewerID(), JOIN_TYPE_LEFT); $dataAccessObject->addRowManager($this->viewerManager, $joinPair3); if ($sortBy == '') { $sortBy = 'person_lname'; } $dataAccessObject->setSortOrder($sortBy); $this->listManager = $dataAccessObject->getListIterator(); // now initialize the labels for this page // start by loading the default field labels for this Module $languageID = $viewer->getLanguageID(); $seriesKey = modulecim_hrdb::MULTILINGUAL_SERIES_KEY; $pageKey = modulecim_hrdb::MULTILINGUAL_PAGE_FIELDS; $this->labels = new MultilingualManager($languageID, $seriesKey, $pageKey); // then load the page specific labels for this page $pageKey = page_PeoplebyCampuses::MULTILINGUAL_PAGE_KEY; $this->labels->loadPageLabels($pageKey); $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS); }