/** * 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, $regID) { parent::__construct(page_ScholarshipDisplayList::DISPLAY_FIELDS); $this->pathModuleRoot = $pathModuleRoot; $this->viewer = $viewer; $this->registration_id = $regID; $dataAccessObject = new RowManager_ScholarshipAssignmentManager(); $dataAccessObject->setRegID($this->registration_id); $dataAccessObject->setSortOrder($sortBy); // $this->listManager = new ScholarshipAssignmentList( $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_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 = page_ScholarshipDisplayList::MULTILINGUAL_PAGE_KEY; $this->labels->loadPageLabels($pageKey); $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS); }
protected function setRegistrationStatus() { $backup_event_id = -1; $status_message = 'No registration created!'; if (isset($this->reg_id) && $this->reg_id != '') { // check cim_hrdb_person to determine if a person has been affiliated with registration $regs = new RowManager_RegistrationManager(); $regs->setRegID($this->reg_id); $person = new RowManager_PersonManager(); $regCheck = new MultiTableManager(); $regCheck->addRowManager($regs); $regCheck->addRowManager($person, new JoinPair($regs->getJoinOnPersonID(), $person->getJoinOnPersonID())); $regsList = $regCheck->getListIterator(); $regsArray = $regsList->getDataList(); // variables to be used for later checks $person_id = ''; $confirm_num = ''; $person_address = ''; $person_email = ''; $person_city = ''; $person_province = '0'; $person_pcode = ''; $person_phone = ''; reset($regsArray); // should be only one registration status (for 1 reg_id) foreach (array_keys($regsArray) as $k) { $record = current($regsArray); $backup_event_id = $record['event_id']; $person_id = $record['person_id']; $confirm_num = $record['registration_confirmNum']; $person_email = $record['person_email']; $person_address = $record['person_addr']; $person_city = $record['person_city']; $person_province = $record['province_id']; $person_pcode = $record['person_pc']; $person_phone = $record['person_phone']; next($regsArray); } // determine whether any person records were found for registration if (!isset($regsArray) || count($regsArray) < 1) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'No person record associated with registration.'; // ASSUMPTION: set reg_id ==> created registration record return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } else { if (isset($regsArray) && ($person_email == '' || $person_address == '' || $person_city == '' || $person_province == '' || $person_province == '0' || $person_pcode == '' || $person_phone == '')) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'Please ensure that you have entered the following data:' . '<br> name, e-mail address, permanent address, city, province, postal code, and phone number.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } } // check cim_hrdb_assignment to determine that the person has been assigned to a campus $assign = new RowManager_AssignmentsManager(); $assign->setPersonID($person_id); $status = new RowManager_CampusAssignmentStatusManager(); $campusAssign = new MultiTableManager(); $campusAssign->addRowManager($assign); $campusAssign->addRowManager($status, new JoinPair($assign->getJoinOnStatusID(), $status->getJoinOnStatusID())); $regsList = $campusAssign->getListIterator(); $regsArray = $regsList->getDataList(); // variables to be used for later checks $assignArray = array(); $this->campus_id = ''; reset($regsArray); // should be only one campus assignment status (for now, later maybe not) foreach (array_keys($regsArray) as $k) { $record = current($regsArray); if ($record['assignmentstatus_desc'] != RowManager_AssignmentsManager::UNKNOWN_STATUS) { $this->campus_id = $record['campus_id']; $assignArray[$this->campus_id] = $record['assignmentstatus_desc']; } next($regsArray); } // determine whether a campus assignment exists for the found person linked to the registration if (!isset($assignArray) || count($assignArray) < 1) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = "Please ensure that the registrant is assigned to a valid campus and has a valid status."; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } // check cim_reg_fieldvalues to determine whether field values have been set for the registration $fields = new RowManager_FieldManager(); $fields->setEventID($this->event_id); $TRUE = 1; $fields->setIsRequired($TRUE); $fieldsList = $fields->getListIterator(); $fieldsArray = $fieldsList->getDataList(); // reset($fieldsArray); // should be only one campus assignment status (for now, later maybe not) // foreach (array_keys($fieldsArray) as $k) // { // $record = current($fieldsArray); // // next($fieldsArray); // } $fieldValues = new RowManager_FieldValueManager(); $fieldValues->setRegID($this->reg_id); $valuesList = $fieldValues->getListIterator(); $valuesArray = $valuesList->getDataList(); // reset($regsArray); // should be only one campus assignment status (for now, later maybe not) // foreach (array_keys($regsArray) as $k) // { // $record = current($regsArray); // // $assignArray[$record['campus_id'] = $record['assignmentstatus_desc'] // next($regsArray); // } // ensure that the REQUIRED fields for an event all have a record for the particular registration if (count($valuesArray) < count($fieldsArray)) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'Some required event-specific field values were NOT set for the registration.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } if (!isset($this->event_id) || $this->event_id == '') { $this->event_id = $backup_event_id; // should have been set earlier when retrieving reg. data... } // retrieve event deposit for later use $event = new RowManager_EventManager(); $event->setEventID($this->event_id); $eventsList = $event->getListIterator(); $eventsArray = $eventsList->getDataList(); $event_deposit = -1; $event_basePrice = -1; reset($eventsArray); // should be only one event per event_id foreach (array_keys($eventsArray) as $k) { $record = current($eventsArray); $event_deposit = $record['event_deposit']; next($eventsArray); } if ($event_deposit == -1) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'Invalid event associated with registration.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } // check cim_reg_cashtransaction and cim_reg_cctransaction tables to determine if event deposit has been paid $ccTransaction = new RowManager_CreditCardTransactionManager(); $ccTransaction->setRegID($this->reg_id); $ccTransList = $ccTransaction->getListIterator(); $ccTransArray = $ccTransList->getDataList(); $ccAmount = 0; reset($ccTransArray); foreach (array_keys($ccTransArray) as $k) { $record = current($ccTransArray); $ccAmount += $record['cctransaction_amount']; next($ccTransArray); } // check cash $cashTransaction = new RowManager_CashTransactionManager(); $cashTransaction->setRegID($this->reg_id); $cashTransList = $cashTransaction->getListIterator(); $cashTransArray = $cashTransList->getDataList(); $cashAmount = 0; reset($cashTransArray); foreach (array_keys($cashTransArray) as $k) { $record = current($cashTransArray); $cashAmount += $record['cashtransaction_amtPaid']; next($cashTransArray); } // check scholarship $scholarship = new RowManager_ScholarshipAssignmentManager(); $scholarship->setRegID($this->reg_id); $scholarshipList = $scholarship->getListIterator(); $scholarshipArray = $scholarshipList->getDataList(); $scholarshipAmount = 0; reset($scholarshipArray); foreach (array_keys($scholarshipArray) as $k) { $record = current($scholarshipArray); $scholarshipAmount += $record['scholarship_amount']; next($scholarshipArray); } if ($ccAmount + $cashAmount + $scholarshipAmount < $event_deposit) { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'The event deposit of $' . $event_deposit . ' has not been paid.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } // check that confirmation # exists and is in proper format (check that format is 'E<event_id>R<reg_id>C<campus_id>') $anyNum = '[0-9]+'; // allow any number for campus ID because person may have been assigned new campuses $pattern = '(E' . $this->event_id . 'R' . $this->reg_id . 'C' . $anyNum . ')'; if (!isset($confirm_num) || preg_match($pattern, $confirm_num) < 1) { // if campus-id missing from confirm. # then // search for campus-id, since user may have created new campus assignment during process $pattern = '(E' . $this->event_id . 'R' . $this->reg_id . 'C)'; if (preg_match($pattern, $confirm_num) >= 1) { $campusAssigned = new RowManager_AssignmentsManager(); $campusAssigned->setPersonID($person_id); $assignmentsList = $campusAssigned->getListIterator(); $assignmentsArray = $assignmentsList->getDataList(); $assignment = current($assignmentsArray); $campusID = $assignment['campus_id']; // retrieve latest campus_id assigned to registrant // update confirmation # in database for the proper registration $updateArray = array(); $updateArray['registration_id'] = $this->reg_id; $updateArray['registration_confirmNum'] = $confirm_num . $campusID; // append the new campus_ID $regsManager = new RowManager_RegistrationManager($this->reg_id); $regsManager->loadFromArray($updateArray); $regsManager->updateDBTable(); } else { $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE); $status_message = 'The confirmation number has not been properly set.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } } // $status = new RowManager_StatusManager(); // $status->setStatusDesc(RowManager_StatusManager::REGISTERED); // // $statusList = $status->getListIterator(); // $statusArray = $statusList->getDataList(); // $status_id = -1; // reset($statusArray); // should be only 1 record for a particular status description // foreach (array_keys($statusArray) as $k) // { // $record = current($statusArray); // $status_id = $record['status_id']; // // next($statusArray); // } // // if ($status_id == -1) // { // $status_message = 'The registration status could not be properly set to REGISTERED.'; // return RowManager_StatusManager::INCOMPLETE.'|'.$status_message; // } // // $updateValues = array(); // $updateValues['registration_id'] = $this->reg_id; // $updateValues['registration_status'] = $status_id; // mark registration as being REGISTERED // // // Store values in RegistrationManager object // $regs->loadFromArray( $updateValues ); // // echo "<pre>".print_r($this->formValues ,true)."</pre>"; // // // update information // $regs->updateDBTable(); $success = $this->storeRegStatus($this->reg_id, RowManager_StatusManager::REGISTERED); if ($success == false) { $status_message = 'The registration status could not be properly set to REGISTERED.'; return RowManager_StatusManager::INCOMPLETE . '|' . $status_message; } else { $status_message = ''; return RowManager_StatusManager::REGISTERED . '|' . $status_message; } } else { return RowManager_StatusManager::UNASSIGNED . '|' . $status_message; } }
/** * function getScholarships * <pre> * Returns array of arrays, indexed by scholarship ID * </pre> * @param $regID [INTEGER] registration ID * @return [ARRAY] the array of scholarship records for registration $regID */ function getScholarships($regID) { $scholarships = new RowManager_ScholarshipAssignmentManager(); $scholarships->setRegID($regID); $scholarshipsIterator = $scholarships->getListIterator(); $scholarshipsArray = $scholarshipsIterator->getDataList(); // echo "<pre>".print_r($scholarshipsArray,true)."</pre>"; return $scholarshipsArray; }
private function deleteAssociatedRegRecords($reg_id) { // delete any CC transactions linked to the registration record $ccTrans = new RowManager_CreditCardTransactionManager(); $ccTrans->setRegID($reg_id); $ccTransList = $ccTrans->getListIterator(); $ccTransArray = $ccTransList->getDataList(); reset($ccTransArray); foreach (array_keys($ccTransArray) as $k) { $record = current($ccTransArray); $ccTransID = $record['cctransaction_id']; // delete any CC transaction receipts linked to the registration record $ccReceipt = new RowManager_ReceiptManager($ccTransID); $ccReceipt->deleteEntry(); // delete CC trans record now that we know CC trans. ID $deleteCCtrans = new RowManager_CreditCardTransactionManager($ccTransID); $deleteCCtrans->deleteEntry(); next($ccTransArray); } // delete any cash transactions linked to the registration record $cashTrans = new RowManager_CashTransactionManager(); $cashTrans->setRegID($reg_id); $cashTransList = $cashTrans->getListIterator(); $cashTransArray = $cashTransList->getDataList(); reset($cashTransArray); foreach (array_keys($cashTransArray) as $k) { $record = current($cashTransArray); $cashTransID = $record['cashtransaction_id']; // delete cash trans record now that we know cash trans. ID $deleteCashTrans = new RowManager_CashTransactionManager($cashTransID); $deleteCashTrans->deleteEntry(); next($cashTransArray); } // delete any scholarships linked to the registration record $scholarship = new RowManager_ScholarshipAssignmentManager(); $scholarship->setRegID($reg_id); $scholarshipList = $scholarship->getListIterator(); $scholarshipArray = $scholarshipList->getDataList(); reset($scholarshipArray); foreach (array_keys($scholarshipArray) as $k) { $record = current($scholarshipArray); $scholarshipID = $record['scholarship_id']; // delete cash trans record now that we know scholarship ID $deleteScholarship = new RowManager_ScholarshipAssignmentManager($scholarshipID); $deleteScholarship->deleteEntry(); next($scholarshipArray); } // delete any field values linked to the registration record $fieldValues = new RowManager_FieldValueManager(); $fieldValues->setRegID($reg_id); $fieldValuesList = $fieldValues->getListIterator(); $fieldValuesArray = $fieldValuesList->getDataList(); reset($fieldValuesArray); foreach (array_keys($fieldValuesArray) as $k) { $record = current($fieldValuesArray); $fieldValueID = $record['fieldvalues_id']; // delete cash trans record now that we know field value ID $deleteFieldValue = new RowManager_FieldValueManager($fieldValueID); $deleteFieldValue->deleteEntry(); next($fieldValuesArray); } }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; /* * store the link values */ // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['edit'] = $this->labels->getLabel('[Edit]'); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; /* * store any additional link Columns */ // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); /* * Update any label tags ... */ // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); // NOTE: this parent method prepares the $this->template with the // common AdminBox data. $this->prepareTemplate($path); // store the statevar id to edit $this->template->set('editEntryID', $this->scholarship_id); $this->formValues['form_name'] = 'scholarshipForm'; // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ /* * Insert the date start/end values for the following date fields: */ // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $xmlNodeName = RowManager_ScholarshipAssignmentManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'scholarship_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. $dataAccessManager = new RowManager_ScholarshipAssignmentManager(); $dataAccessManager->setSortOrder($this->sortBy); $dataAccessManager->setRegID($this->registration_id); // $this->dataList = new ScholarshipAssignmentList( $this->sortBy ); $this->dataList = $dataAccessManager->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ $this->template->set('disableHeading', true); $this->template->set('formAnchor', 'RegScholarshipsForm'); $templateName = 'siteAdminBox.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_EditRegistrationScholarshipList.php'; return $this->template->fetch($templateName); }