/** * 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->status_id); // 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_StatusManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'status_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_StatusManager(); $dataAccessManager->setSortOrder($this->sortBy); // $this->dataList = new StatusList( $this->sortBy ); $this->dataList = $dataAccessManager->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ $templateName = 'siteAdminBox.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_EditStatuses.php'; return $this->template->fetch($templateName); }
protected function setRegistrationID() { // get registration ID for the rest of the reg. process $regs = new RowManager_RegistrationManager(); $people = new RowManager_PersonManager(); $people->setPersonID($this->person_id); $events = new RowManager_EventManager(); $events->setEventID($this->event_id); $personRegs = new MultiTableManager(); $personRegs->addRowManager($regs); $personRegs->addRowManager($people, new JoinPair($regs->getJoinOnPersonID(), $people->getJoinOnPersonID())); $personRegs->addRowManager($events, new JoinPair($regs->getJoinOnEventID(), $events->getJoinOnEventID())); $regsList = $personRegs->getListIterator(); $regsArray = $regsList->getDataList(); // echo "<pre>".print_r($regsArray,true)."</pre>"; reset($regsArray); foreach (array_keys($regsArray) as $k) { $registration = current($regsArray); $this->registration_id = $registration['registration_id']; // NOTE: should only be one reg. per person per event (ENFORCE??) next($regsArray); } // create new registration record for this person (since none exists for current person-event combo) if (!isset($this->registration_id)) { // get status id for INITIAL_REG_STATUS $regStatus = new RowManager_StatusManager(); $regStatus->setStatusDesc(FormProcessor_EditMyInfo::INITIAL_REG_STATUS); $regStatusList = $regStatus->getListIterator(); $regStatusArray = $regStatusList->getDataList(); $statusID = 0; reset($regStatusArray); foreach (array_keys($regStatusArray) as $k) { $status = current($regStatusArray); $statusID = $status['status_id']; // NOTE: should only be one reg. per person per event (ENFORCE??) next($regStatusArray); } // get the MAX(registration_id)... need to determine what insertion registration ID will be (used in confirmNum) $allRegs = new MultiTableManager(); $regs2 = new RowManager_RegistrationManager(); $allRegs->addRowManager($regs2); $allRegs->setFunctionCall('MAX', 'registration_id'); $allRegs->ignoreFields(); // only leave MAX(registration_id) in values to be returned $allRegsList = $allRegs->getListIterator(); $allRegsArray = $allRegsList->getDataList(); $maxID = -1; reset($allRegsArray); foreach (array_keys($allRegsArray) as $k) { $regRecord = current($allRegsArray); $maxID = $regRecord['MAX(registration_id)']; if ($maxID > -1) { break; // get out of the loop once MAX is found } next($allRegsArray); } // compile values needed for new registration record $regValues = array(); $nextRegID = $maxID + 1; $regValues['event_id'] = $this->event_id; // check if a new person record needs to be created if ($this->person_id == -1) { $this->person_id = $this->getNextPersonID(); // assumes processData() will properly use this value for insertion // create empty person record to start off... since otherwise FK constraint on cim_reg_registration is NOT satisfied $personManager = new RowManager_PersonManager($this->person_id); $personManager->loadFromArray($this->formValues); $personManager->setPersonID($this->person_id); $personManager->createNewEntry(true); //$this->assignCampus($this->person_id); -- save this step for when info properly entered into form } $regValues['person_id'] = $this->person_id; $timestamp = strtotime("now"); $date = date('Y-m-d H:i:s', $timestamp); // == NOW() : to bad I could pass that as non-string... $regValues['registration_date'] = $date; // set date-time to current date-time $regValues['registration_confirmNum'] = 'E' . $this->event_id . 'R' . $nextRegID . 'C' . $this->campus_id; $regValues['registration_status'] = $statusID; // store values in table manager object. $regs->loadFromArray($regValues); // set primary key to use for update (if maxID found) if ($maxID > -1) { $regValues['registration_id'] = $nextRegID; $regs->setRegID($regValues['registration_id']); } // now update the DB with the values if (!$regs->isLoaded()) { $regs->createNewEntry(true); // allow primary key to be set (in case auto_increment is off) $this->registration_id = $nextRegID; } // TODO: figure out how to show error if no registration made, or updated (IF it is even possible now...) } }
protected function storeRegStatus($regID = '', $reg_status) { $success = true; if ($regID != '') { $regs = new RowManager_RegistrationManager(); $regs->setRegID($this->reg_id); $status = new RowManager_StatusManager(); $status->setStatusDesc($reg_status); $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) { $success = false; return $sucess; } $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(); return $success; } else { $success = false; } }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Make a new Template object //$this->pathModuleRoot.'templates/'; // Replace $path with the following line if you want to create a // template tailored for this page: $path = $this->pathModuleRoot . 'templates/'; // store the link values // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['add'] = $this->labels->getLabel('[Add]'); $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'; // $adminLink = $this->linkValues[ 'adminHome' ]; // $this->template->set('adminLink', $adminLink ); // get pricing info // get base price for event participation $event = new RowManager_EventManager($this->event_id); $eventBasePrice = $event->getEventBasePrice(); // get price rules for specific event $priceRules = new RowManager_PriceRuleManager(); $priceRules->setEventID($this->event_id); $ruleManager = $priceRules->getListIterator(); $priceRulesArray = $ruleManager->getDataList(); // echo "<pre>".print_r($priceRulesArray,true)."</pre>"; // array storing the rules applied to a particular registrant $rulesApplied = array(); $priceGetter = new FinancialTools(); $basePriceForThisGuy = $priceGetter->getBasePriceForRegistrant($this->reg_id, $this->event_id, $this->campus_id, $eventBasePrice, $priceRulesArray, $rulesApplied); // get Personal Info $registration = new RowManager_RegistrationManager(); $registration->setRegID($this->reg_id); $person = new RowManager_PersonManager(); $assignment = new RowManager_AssignmentsManager(); // assigns campus to person $campus = new RowManager_CampusManager(); // $campus->setCampusID($this->campus_id); $personalInfo = new MultiTableManager(); $personalInfo->addRowManager($person); $personalInfo->addRowManager($assignment, new JoinPair($person->getJoinOnPersonID(), $assignment->getJoinOnPersonID())); $personalInfo->addRowManager($campus, new JoinPair($campus->getJoinOnCampusID(), $assignment->getJoinOnCampusID())); $personalInfo->addRowManager($registration, new JoinPair($registration->getJoinOnPersonID(), $person->getJoinOnPersonID())); $this->listManager = $personalInfo->getListIterator(); $personInfoArray = $this->listManager->getDataList(); // echo "<pre>".print_r($this->listManager,true)."</pre>"; // echo "<pre>".print_r($personInfoArray,true)."</pre>"; // cycle through registrations and store balance owing for each $this->owingArray = array(); $priceGetter = new FinancialTools(); reset($personInfoArray); foreach (array_keys($personInfoArray) as $k) { $personData = current($personInfoArray); $this->person_id = $personData['person_id']; $this->person_info['person_fname'] = ''; $this->person_info['person_fname'] = $personData['person_fname']; $this->person_info['person_lname'] = ''; $this->person_info['person_lname'] = $personData['person_lname']; $this->person_info['campus_desc'] = ''; $this->person_info['campus_desc'] = $personData['campus_desc']; $this->person_info['person_email'] = ''; $this->person_info['person_email'] = $personData['person_email']; $this->person_info['gender_id'] = ''; $this->person_info['gender_id'] = $personData['gender_id']; $this->person_info['person_local_addr'] = ''; $this->person_info['person_local_addr'] = $personData['person_local_addr']; $this->person_info['person_local_city'] = ''; $this->person_info['person_local_city'] = $personData['person_local_city']; $this->person_info['person_local_province_id'] = ''; $this->person_info['person_local_province_id'] = $personData['person_local_province_id']; $this->person_info['person_local_pc'] = ''; $this->person_info['person_local_pc'] = $personData['person_local_pc']; $this->person_info['person_local_phone'] = ''; $this->person_info['person_local_phone'] = $personData['person_local_phone']; $this->person_info['person_addr'] = ''; $this->person_info['person_addr'] = $personData['person_addr']; $this->person_info['person_city'] = ''; $this->person_info['person_city'] = $personData['person_city']; $this->person_info['province_id'] = ''; $this->person_info['province_id'] = $personData['province_id']; $this->person_info['person_pc'] = ''; $this->person_info['person_pc'] = $personData['person_pc']; $this->person_info['person_phone'] = ''; $this->person_info['person_phone'] = $personData['person_phone']; $this->person_info['registration_status'] = $personData['registration_status']; next($personInfoArray); } $this->linkValues["EditPersonInfo"] .= $this->person_id; $this->prepareTemplate($path); // set current registration status ID $this->template->set('currentRegStatus', $this->person_info['registration_status']); // get list of registration statuses $regStatuses = new RowManager_StatusManager(); $regStatusesList = $regStatuses->getListIterator(); $regStatusesArray = $regStatusesList->getDataList(); $statusList = array(); reset($regStatusesArray); foreach (array_keys($regStatusesArray) as $k) { $record = current($regStatusesArray); $statusList[key($regStatusesArray)] = $record['status_desc']; next($regStatusesArray); } // echo 'status list = <pre>'.print_r($statusList, true).'</pre>'; // set registration status information $this->template->set('statusFormAction', $this->formAction); $this->template->set('statusList', $statusList); $this->template->set('statusButtonText', 'Update'); // set some variables calculated previously; placed here because I need to get PERSON_ID for link // which had to be set before prepareTemplate(), which has to be executed BEFORE setting variables... $this->template->set('eventBasePrice', $eventBasePrice); $this->template->set('priceRules', $rulesApplied); $this->template->set('basePriceForThisGuy', $basePriceForThisGuy); //$priceGetter->calcBalanceOwing($this->reg_id); // NOT NEEDED BECAUSE TOTALS CALCULATED $this->template->set('person', $this->person_info); // get provinces and genders $provinces = new RowManager_ProvinceManager(); $provinceList = $provinces->getListIterator(); $provincesArray = $provinceList->getDataList(); // echo "<pre>".print_r($provincesArray,true)."</pre>"; $province_info = array(); reset($provincesArray); foreach (array_keys($provincesArray) as $k) { $province = current($provincesArray); $province_info[$province['province_id']] = $province['province_desc']; next($provincesArray); } $this->template->set('list_province_id', $province_info); $genders = new RowManager_GenderManager(); $genderList = $genders->getListIterator(); $genderArray = $genderList->getDataList(); // echo "<pre>".print_r($genderArray,true)."</pre>"; $gender_info = array(); reset($genderArray); foreach (array_keys($genderArray) as $k) { $gender = current($genderArray); $gender_info[$gender['gender_id']] = $gender['gender_desc']; next($genderArray); } $this->template->set('list_gender_id', $gender_info); // send in scholarships table, cash transactions table, and credit card transactions table $this->template->set('scholarshipsAdminBox', $this->generateScholarshipsTable()); $this->template->set('cashTransAdminBox', $this->generateCashTransactionsTable()); $this->template->set('ccTransAdminBox', $this->generateCCTransactionsTable()); // get scholarship total $scholarships = new RowManager_ScholarshipAssignmentManager(); $scholarships->setRegID($this->reg_id); $scholarshipTotal = new MultiTableManager(); $scholarshipTotal->addRowManager($scholarships); $scholarshipTotal->setFunctionCall('SUM', 'scholarship_amount'); $scholarshipTotal->setGroupBy('registration_id'); $scholarshipsList = $scholarshipTotal->getListIterator(); $scholarshipsArray = $scholarshipsList->getDataList(); reset($scholarshipsArray); foreach (array_keys($scholarshipsArray) as $k) { $scholarshp = current($scholarshipsArray); $scholarship_total = $scholarshp['SUM(scholarship_amount)']; next($scholarshipsArray); } if (!isset($scholarship_total)) { $scholarship_total = 0; } $this->template->set('scholarshipTotal', $scholarship_total); // get cash total $cashTrans = new RowManager_CashTransactionManager(); $cashTrans->setRegID($this->reg_id); $cashTrans->setReceived(true); $cashTransTotal = new MultiTableManager(); $cashTransTotal->addRowManager($cashTrans); $cashTransTotal->setFunctionCall('SUM', 'cashtransaction_amtPaid'); $cashTransTotal->setGroupBy('reg_id'); $cashTransList = $cashTransTotal->getListIterator(); $cashTransArray = $cashTransList->getDataList(); reset($cashTransArray); foreach (array_keys($cashTransArray) as $k) { $cash_trans = current($cashTransArray); $cash_total = $cash_trans['SUM(cashtransaction_amtPaid)']; next($cashTransArray); } if (!isset($cash_total)) { $cash_total = 0; } $this->template->set('cashTotal', $cash_total); // get cash owed $cashOwed = new RowManager_CashTransactionManager(); $cashOwed->setRegID($this->reg_id); $cashOwed->setReceived(false); $cashOwedTotal = new MultiTableManager(); $cashOwedTotal->addRowManager($cashOwed); $cashOwedTotal->setFunctionCall('SUM', 'cashtransaction_amtPaid'); $cashOwedTotal->setGroupBy('reg_id'); $cashOwedList = $cashOwedTotal->getListIterator(); $cashOwedArray = $cashOwedList->getDataList(); reset($cashOwedArray); foreach (array_keys($cashOwedArray) as $k) { $cash_owed = current($cashOwedArray); $cash_owing = $cash_owed['SUM(cashtransaction_amtPaid)']; next($cashOwedArray); } if (!isset($cash_owing)) { $cash_owing = 0; } $this->template->set('cashOwed', $cash_owing); // get credit card total $ccTrans = new RowManager_CreditCardTransactionManager(); $ccTrans->setProcessed(true); $ccTrans->setRegID($this->reg_id); $ccTransTotal = new MultiTableManager(); $ccTransTotal->addRowManager($ccTrans); $ccTransTotal->setFunctionCall('SUM', 'cctransaction_amount'); $ccTransTotal->setGroupBy('reg_id'); $ccTransList = $ccTransTotal->getListIterator(); $ccTransArray = $ccTransList->getDataList(); reset($ccTransArray); foreach (array_keys($ccTransArray) as $k) { $cc_trans = current($ccTransArray); $cc_total = $cc_trans['SUM(cctransaction_amount)']; next($ccTransArray); } if (!isset($cc_total)) { $cc_total = 0; } $this->template->set('ccTotal', $cc_total); // TODO??: get credit card transactions NOT processed // set form for editing registration-specific form fields' values $this->template->set('eventFieldsFormSingle', $this->generateFieldValuesForm()); // 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); // store the page labels // NOTE: use this location to update any label tags ... // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); // store the Row Manager's XML Node Name // $this->template->set( 'rowManagerXMLNodeName', RowManager_RegistrationManager::XML_NODE_NAME ); $this->template->set('rowManagerXMLNodeName', MultiTableManager::XML_NODE_NAME); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'registration_id'); // Load over-payment message, if necessary if ($this->ccTrans_subPage->hasOverPaid()) { $this->template->set('attemptedOverpayment', true); } // TODO: somehow merge the primary join with the balance owing join.... for efficiency /* * Set up any additional data transfer to the Template here... */ // $this->template->set( 'dataList', $this->dataList); $templateName = 'page_EditRegistrationDetails.tpl.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_EditCampusRegistrations.php'; return $this->template->fetch($templateName); }
* scholarship_amount [INTEGER] The amount of money the scholarship is worth. * scholarship_sourceAcct [STRING] The account number from where the scholarship originates. * scholarship_sourceDesc [STRING] The description of the source account. */ $ScholarshipAssignment = new RowManager_ScholarshipAssignmentManager(); $ScholarshipAssignment->dropTable(); $ScholarshipAssignment->createTable(); /* * Status Table * * Used to describe what state a particular registration is in (unassigned, registered, cancelled, etc.) * * status_id [INTEGER] Unique identifier of a particular registration status description * status_desc [STRING] Description of some registration status */ $Status = new RowManager_StatusManager(); $Status->dropTable(); $Status->createTable(); /* * Receipt Table * * A record of an official Moneris operation associated with a particular transaction record. * * ccreceipt_sequencenum [STRING] The unique identifier of a receipt returned by Moneris. * ccreceipt_authcode [STRING] According to Moneris: Authorization code returned from the issuing institution. * ccreceipt_responsecode [STRING] According to Moneris: Transaction Response Code < 50: Transaction approved >= 50: Transaction declined NULL: Transaction was not sent for authorization
protected function createRegistrationRecord($eventID, $personID, &$regs) { if ($personID != -1 && $eventID != -1) { // $regs = new RowManager_RegistrationManager(); // get status id for INITIAL_REG_STATUS $regStatus = new RowManager_StatusManager(); $regStatus->setStatusDesc(FormProcessor_Register::INITIAL_REG_STATUS); $regStatusList = $regStatus->getListIterator(); $regStatusArray = $regStatusList->getDataList(); $statusID = 0; reset($regStatusArray); foreach (array_keys($regStatusArray) as $k) { $status = current($regStatusArray); $statusID = $status['status_id']; // NOTE: should only be one reg. per person per event (ENFORCE??) next($regStatusArray); } // get the MAX(registration_id)... need to determine what insertion registration ID will be (used in confirmNum) $allRegs = new MultiTableManager(); $allRegs->addRowManager($regs); $allRegs->setFunctionCall('MAX', 'registration_id'); $allRegs->ignoreFields(); // only leave MAX(registration_id) in values to be returned $allRegsList = $allRegs->getListIterator(); $allRegsArray = $allRegsList->getDataList(); $maxID = -1; reset($allRegsArray); foreach (array_keys($allRegsArray) as $k) { $regRecord = current($allRegsArray); $maxID = $regRecord['MAX(registration_id)']; if ($maxID > -1) { break; // get out of the loop once MAX is found } next($allRegsArray); } // compile values needed for new registration record $regValues = array(); $nextRegID = $maxID + 1; $regValues['event_id'] = $eventID; // check if a new person record needs to be created // if ($this->person_id == -1) // { // $this->person_id = $this->getNextPersonID(); // assumes processData() will properly use this value for insertion // } $regValues['person_id'] = $personID; $timestamp = strtotime("now"); $date = date('Y-m-d H:i:s', $timestamp); // == NOW() : to bad I could pass that as non-string... $regValues['registration_date'] = $date; // set date-time to current date-time $regValues['registration_confirmNum'] = 'E' . $eventID . 'R' . $nextRegID . 'AIA'; $regValues['registration_status'] = $statusID; $this->confirmNum = $regValues['registration_confirmNum']; // TODO: change means of assigning to global // store values in table manager object. $regs->loadFromArray($regValues); // set primary key to use for update (if maxID found) if ($maxID > -1) { $regValues['registration_id'] = $nextRegID; $regs->setRegID($regValues['registration_id']); } // now update the DB with the values if (!$regs->isLoaded()) { $regs->createNewEntry(true); // allow primary key to be set (in case auto_increment is off) return $nextRegID; } else { return -1; } // TODO: figure out how to show error if no registration made, or updated (IF it is even possible now...) } }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Make a new Template object $path = SITE_PATH_TEMPLATES; // Replace $path with the following line if you want to create a // template tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // store the link values // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['add'] = $this->labels->getLabel('[Add]'); $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); // echo "<pre>".print_r($this->linkValues, true)."</pre>"; $title = $this->labels->getLabel('[Details]'); $columnLabel = $this->labels->getLabel('[View]'); $link = $this->linkValues['view']; $fieldName = 'event_id'; $this->addLinkColumn($title, $columnLabel, $link, $fieldName); $REGISTERED = 2; //'true'; $INCOMPLETE = 1; $NOT_REGISTERED = 0; //'false'; /** determine which events the user has already registered for... **/ $events = new RowManager_EventManager(); $events->setOnHomePage('1'); $events->addSearchCondition($this->countrySearchCondition); // $events->setSortOrder( $this->sortBy ); // needed to sync lists $regs = new RowManager_RegistrationManager(); $regs->setPersonID($this->person_id); $status = new RowManager_StatusManager(); $status->setStatusDesc(RowManager_StatusManager::REGISTERED); $reg_events = new MultiTableManager(); $reg_events->addRowManager($events); $reg_events->addRowManager($regs, new JoinPair($events->getJoinOnEventID(), $regs->getJoinOnEventID())); $reg_events->addRowManager($status, new JoinPair($regs->getJoinOnStatus(), $status->getJoinOnStatusID())); if (!isset($this->sortBy) || $this->sortBy == '') { $this->sortBy = 'event_id'; } $reg_events->setSortOrder($this->sortBy); // needed to sync lists // echo "reg events sql = ".$reg_events->createSQL(); $regs_events_list = $reg_events->getListIterator(); $regs_events_array = $regs_events_list->getDataList(); /** determine which events the user has PARTIALLY completed registration for ***/ $events2 = new RowManager_EventManager(); $events2->setOnHomePage('1'); $events2->addSearchCondition($this->countrySearchCondition); // $events->setSortOrder( $this->sortBy ); // needed to sync lists $regs2 = new RowManager_RegistrationManager(); $regs2->setPersonID($this->person_id); $status2 = new RowManager_StatusManager(); $status2->setStatusDesc(RowManager_StatusManager::INCOMPLETE); $reg_events2 = new MultiTableManager(); $reg_events2->addRowManager($events2); $reg_events2->addRowManager($regs2, new JoinPair($events2->getJoinOnEventID(), $regs2->getJoinOnEventID())); $reg_events2->addRowManager($status2, new JoinPair($regs2->getJoinOnStatus(), $status2->getJoinOnStatusID())); $reg_events2->setSortOrder($this->sortBy); // needed to sync lists // echo "reg events sql = ".$reg_events->createSQL(): $incomplete_regs_events_list = $reg_events2->getListIterator(); $incompete_regs_events_array = $incomplete_regs_events_list->getDataList(); // echo '<pre>'.print_r($incompete_regs_events_array, true).'</pre>'; // get full event-listing for mapping isRegistered to $allEvents = $this->listManager->getDataList(); // // echo 'reg events = <pre>'.print_r($regs_events_array,true).'</pre><br>'; // echo 'all events = <pre>'.print_r($allEvents, true).'</pre><br>'; $eventName_isReg_array = array(); reset($regs_events_array); reset($incompete_regs_events_array); reset($allEvents); foreach (array_keys($allEvents) as $k) { $record = current($allEvents); $currentEvent = $record['event_id']; $record2 = current($regs_events_array); $currentRegEvent = $record2['event_id']; $record3 = current($incompete_regs_events_array); $currentIncRegEvent = $record3['event_id']; $eventName = $record['event_name']; // store event in registered array if mapping found if ($currentEvent == $currentRegEvent) { $eventName_isReg_array[$eventName] = $REGISTERED; next($regs_events_array); } else { if ($currentEvent == $currentIncRegEvent) { $eventName_isReg_array[$eventName] = $INCOMPLETE; next($incompete_regs_events_array); } else { $eventName_isReg_array[$eventName] = $NOT_REGISTERED; } } next($allEvents); } // echo "events: <PRE>".print_r($eventName_isReg_array,true)."</PRE>"; $title = $this->labels->getLabel('[RegisterAccess]'); $columnLabels = array(); $columnLabels[$NOT_REGISTERED] = $this->labels->getLabel('[Register]'); $columnLabels[$INCOMPLETE] = $this->labels->getLabel('[FinishReg]'); $columnLabels[$REGISTERED] = $this->labels->getLabel('[EditReg]'); // formerly [CancelReg] $links = array(); $links[$NOT_REGISTERED] = $this->linkValues['register']; $links[$INCOMPLETE] = $this->linkValues['complete']; $links[$REGISTERED] = $this->linkValues['edit_reg']; // formerly 'cancel' // field column names to map to link name (i.e. filter by event to determine if link name should change based on reg status) $fieldNames = array(); $fieldNames[$NOT_REGISTERED] = 'event_id'; $fieldNames[$INCOMPLETE] = 'event_id'; $fieldNames[$REGISTERED] = 'event_id'; // OLD: $this->addLinkColumn( $title, $columnLabel, $link, $fieldName, $useAlt, $alt_label, $link_alt, $fieldAlt); $this->addDynamicLinkColumn($title, $columnLabels, $links, $fieldNames); // link an array of filters to a particular link column $linkColumnFilter[$title] = $eventName_isReg_array; // echo '<pre>'.print_r($linkColumnFilter, true).'</pre>'; // store the page labels // NOTE: use this location to update any label tags ... // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); $this->prepareTemplate($path); // set the filter list used to determine which events have 'register' links and which have 'cancel' links $this->template->set('linkColumnFilter', $linkColumnFilter); // store the Row Manager's XML Node Name $this->template->set('rowManagerXMLNodeName', RowManager_EventManager::XML_NODE_NAME); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'event_id'); /* * Set up any additional data transfer to the Template here... */ $this->template->set('disableHeading', true); $templateName = 'siteDataList.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_HomePageEventList.php'; return $this->template->fetch($templateName); }
/** * function processData * <pre> * Processes the data for this form. * </pre> * @return [void] */ function processData() { if ($this->shouldCancel == true) { $status = new RowManager_StatusManager(); $status->setStatusDesc(RowManager_StatusManager::CANCELLED); $statusList = $status->getListIterator(); $statusArray = $statusList->getDataList(); reset($statusArray); // Assumption: status descriptions are unique $record = current($statusArray); $status_id = $record['status_id']; $reg_record['registration_status'] = $record['status_id']; // echo "<pre>".print_r($reg_record,true)."</pre>"; // $list = $this->itemManager->getListIterator(); // echo "manager = <pre>".print_r($list->getDataList(),true)."</pre>"; // change status of registration record $this->itemManager->setStatus($status_id); $this->itemManager->loadFromArray($reg_record); $this->itemManager->updateDBTable(); } }