/** * 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); }
$DataType->dropTable(); $DataType->createTable(); /* * PriceRule Table * * A pricing rule (i.e. frosh discount) for a particular event. * * pricerules_id [INTEGER] Unique identifier for this pricing rule * event_id [INTEGER] Event identifier used to identify event associated with the pricing rule. * priceruletypes_id [INTEGER] Identifies the price rule type of the particular rule * pricerules_desc [STRING] Description of the pricing rule * fields_id [INTEGER] If not zero, refers to a form field identifier that affects the price for the event. * pricerules_value [STRING] A value that is used to determine when the price rule is applied (i.e. a date or a volume total, etc.) * pricerules_discount [INTEGER] The actual discount to be applied to the price based on this price rule. */ $PriceRule = new RowManager_PriceRuleManager(); $PriceRule->dropTable(); $PriceRule->createTable(); /* * EventAdminCampusAssignment Table * * Assigns the event admin privileges of some user to a particular campus. * * campusaccess_id [INTEGER] Identifier for a particular campus assignment to some event admin * eventadmin_id [INTEGER] Identifier of the event admin who will be assigned a campus * campus_id [INTEGER] The unique identifier that describes a particular university campus */ $EventAdminCampusAssignment = new RowManager_EventAdminCampusAssignmentManager(); $EventAdminCampusAssignment->dropTable(); $EventAdminCampusAssignment->createTable(); /*
function loadAdminEventHome() { // get privileges for the current viewer $privManager = new PrivilegeManager($this->viewer->getID()); if ($privManager->isBasicAdmin($this->EVENT_ID) == true) { $links = array(); $parameters = array(); //[RAD_CALLBACK_PARAMS] $link = $this->getCallBack(modulecim_reg::PAGE_ADMINHOME, '', $parameters); $links["BackLink"] = $link; if ($privManager->isEventAdmin($this->EVENT_ID) == true) { /** Check if recalculation link was clicked **/ if ($this->IS_RECALC == FinancialTools::RECALC_COMPLETE) { // run recalculation of balance owing $balanceSetter = new FinancialTools(); $balanceSetter->recalculateBalances($this->EVENT_ID); $this->IS_RECALC = FinancialTools::RECALC_NOTNEEDED; $eventPriceRules = new RowManager_PriceRuleManager(); $eventPriceRules->setEventID($this->EVENT_ID); $eventPriceRules->setPriceRuleType(RowManager_PriceRuleTypeManager::VOLUME_RULE); $ruleList = $eventPriceRules->getListIterator(); $ruleArray = $ruleList->getDataList(); $ruleIDs = array(); reset($ruleArray); // cycle through volume rules foreach (array_keys($ruleArray) as $k) { $record = current($ruleArray); $activeRule = new RowManager_ActiveRuleManager($record['pricerules_id']); $setRecord = array(); $setRecord['is_recalculated'] = RowManager_ActiveRuleManager::IS_TRUE; $activeRule->loadFromArray($setRecord); $activeRule->updateDBTable(); next($ruleArray); } } /** Check if a volume rule exists; if so, check if volume rule triggered ***/ if ($this->triggerBalanceRecalculation($this->EVENT_ID) == true) { $this->IS_RECALC = FinancialTools::RECALC_NEEDED; } } // end eventAdmin privilege check 1 // Need to set campus-link so that summary table data can be created for download PDF link $parameters = array('EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID); //[RAD_CALLBACK_PARAMS] $campus_link = $this->getCallBack(modulecim_reg::PAGE_EDITCAMPUSREGISTRATIONS, '', $parameters); $campus_link .= "&" . modulecim_reg::CAMPUS_ID . "="; $this->pageDisplay = new page_AdminEventHome($this->moduleRootPath, $this->viewer, $this->EVENT_ID, $this->IS_RECALC, $campus_link); // set the pageCallBack to be without any additional parameters // (an AdminBox needs this so Language Switching on a page doesn't // pass a previous operations) $parameters = array('EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID); //[RAD_CALLBACK_PARAMS] $pageCallBack = $this->getCallBack(modulecim_reg::PAGE_ADMINEVENTHOME, $this->sortBy, $parameters); $this->setPageCallBack($pageCallBack); if ($privManager->isSuperAdmin() == true) { $parameters = array('EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID); //[RAD_CALLBACK_PARAMS] $link = $this->getCallBack(modulecim_reg::PAGE_EDITFIELDTYPES, '', $parameters); $links["EditFieldTypes"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITPRICERULETYPES, '', $parameters); $links["EditPriceRuleTypes"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITCREDITCARDTYPES, '', $parameters); $links["EditCreditCardTypes"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITPRIVILEGETYPES, '', $parameters); $links["EditPrivilegeTypes"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_ADDSUPERADMIN, '', $parameters); $links["AddSuperAdmins"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITSTATUSES, '', $parameters); $links["EditStatusTypes"] = $link; } // if ($privManager->isCampusAdmin($this->EVENT_ID,null)==true) // check if privilege level is high enough // { $links["CampusLink"] = $campus_link; // } if ($privManager->isEventAdmin($this->EVENT_ID) == true) { /**** NOTE: PDF generation TEMPORARILY disabled until PDF plugin added to production PHP environment ****/ /** GENERATE PDF OF SUMMARY DATA **/ $fileName = 'summary' . rand(1, MAX_TEMP_SEED) . '.pdf'; $filePath = getcwd() . "/Reports/" . $fileName; // change to '\\' for local use ? $linkPath = SITE_PATH_REPORTS . $fileName; $page_margin = 20; $column_widths = array(); $column_widths[0] = 0; $column_widths[1] = 195; //campus $column_widths[2] = 70; // link $column_widths[3] = 35; // males total $column_widths[4] = 50; // females total $column_widths[5] = 30; // both genders total $column_widths[6] = 70; // cancellations $column_widths[7] = 55; // completed regs $column_widths[8] = 55; // incomplete regs $table_pdf = new PDF_Template_Table($filePath, $page_margin, $column_widths, "Registrations"); $table_pdf->generateTable(); //(true,true); // $metaRegSummaryHeadings = $this->pageDisplay->getMetaSummaryHeadings(); $metaRegSummaryData = $this->pageDisplay->getMetaSummaryData(); $campusRegSummaryHeadings = $this->pageDisplay->getSummaryHeadings(); $campusRegSummaryData = $this->pageDisplay->getSummaryData(); // echo 'summary data = <pre>'.print_r($campusRegSummaryData,true).'</pre>'; $table_pdf->fillTable($campusRegSummaryHeadings, $metaRegSummaryData, $campusRegSummaryData, true, true); /*** Add a pie chart of campus registrations **/ $chart_pdf = new PDF_Template_Charts($table_pdf->getPDF()); $event = new RowManager_EventManager($this->EVENT_ID); $title = 'Total Campus Registrations for ' . $event->getEventName(); $chart_width = 5; //PDF::PAGEWIDTH_LETTER*0.5; $chart_height = 5; //PDF::PAGEHEIGHT_LETTER*0.5; // echo 'chart height/width = '.$chart_height.', '.$chart_height; $found_nonzero = false; $campus_totals = array(); reset($campusRegSummaryData); foreach (array_keys($campusRegSummaryData) as $key) { $record = current($campusRegSummaryData); $campus_totals[$key] = $record['campusTotal']; if ($record['campusTotal'] > 0) { $found_nonzero = true; } next($campusRegSummaryData); } // echo 'campus totals data = <pre>'.print_r($campus_totals,true).'</pre>'; // required to avoid divide-by-zero error when generating pie chart with no data if ($found_nonzero == true) { $chart_pdf->createPieChart($title, $chart_width, $chart_height, $campus_totals); } $table_pdf->Output(); $link = $linkPath; $links["DownloadSummary"] = $link; /** <END> PDF GENERATION **/ $emailPageParameters = array('EVENT_ID' => $this->EVENT_ID); //[RAD_CALLBACK_PARAMS] $email_link = $this->getCallBack(modulecim_reg::PAGE_EMAILCOMPOSER, '', $emailPageParameters); $links["EmailRegistrants"] = $email_link; $link = $this->getCallBack(modulecim_reg::PAGE_EVENTDETAILS, '', $parameters); $links["EditEventDetails"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_ADDEVENTADMIN, '', $parameters); $links["AddEventAdmins"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_ADDCAMPUSADMIN, '', $parameters); $links["AddCampusAdmins"] = $link; $this->IS_RECALC = FinancialTools::RECALC_COMPLETE; $recalcParams = array('IS_RECALC' => $this->IS_RECALC, 'EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID); $link = $this->getCallBack(modulecim_reg::PAGE_ADMINEVENTHOME, '', $recalcParams); $links["RecalculateBalances"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITFORMFIELDS, '', $parameters); $links["EditEventFormFields"] = $link; $link = $this->getCallBack(modulecim_reg::PAGE_EDITPRICERULES, '', $parameters); $links["EditEventPriceRules"] = $link; /* Output the file to be downloaded */ /* if (isset($this->DOWNLOAD_TYPE)) //($_REQUEST["file"])) // //if (isset($_REQUEST["file"])) { { $fileDir = SITE_PATH_REPORTS; echo "Data type = ".$this->DOWNLOAD_TYPE; switch($this->DOWNLOAD_TYPE) { case modulecim_reg::DOWNLOAD_EVENT_DATA: $fileName = $this->getSummaryData($this->EVENT_ID, 1); //$_REQUEST["file"]; echo "FILE NAME = ".$fileName; $file=$fileDir.$fileName; // echo "headers: <pre>".print_r(headers_list(),true)."</pre><br>"; // TODO: move below code out of SWITCH header("Content-Location: ".$file); header("Content-type: text/comma-separated-values"); header("Content-Transfer-Encoding: Binary"); header("Content-length: ".filesize($file)); header("Content-disposition: attachment; filename=\"".basename($file)."\""); readfile("$file"); break; case modulecim_reg::DOWNLOAD_SCHOLARSHIP_DATA: /* $fileName = $this->getSummaryData($this->EVENT_ID, 1); //$_REQUEST["file"]; echo "FILE NAME = ".$fileName; $file=$fileDir.$fileName; // TODO: move below code out of SWITCH header("Content-type: text/comma-separated-values"); header("Content-Transfer-Encoding: Binary"); header("Content-length: ".filesize($file)); header("Content-disposition: attachment; filename=\"".basename($file)."\""); readfile("$file"); */ /* echo "NOT YET IMPLEMENTED"; break; default: break; } unset($this->DOWNLOAD_TYPE); } else { echo "No file selected"; } /** above code gratefully modified from code found at: http://www.higherpass.com/php/tutorials/File-Download-Security/1/ **/ //$this->DOWNLOAD_TYPE = modulecim_reg::DOWNLOAD_EVENT_DATA; //$fileDownloadParameters = array('EVENT_ID'=>$this->EVENT_ID , 'CAMPUS_ID'=>$this->CAMPUS_ID, 'DOWNLOAD_TYPE'=>$this->DOWNLOAD_TYPE);//[RAD_CALLBACK_PARAMS] // $link2 = SITE_PATH_MODULES.'app_'.modulecim_reg::MODULE_KEY.'/objects_pages/'.modulecim_reg::CSV_DOWNLOAD_TOOL.'?'.modulecim_reg::EVENT_ID.'='.$this->EVENT_ID.'&'.modulecim_reg::DOWNLOAD_TYPE.'='.modulecim_reg::DOWNLOAD_EVENT_DATA; //$this->getCallBack( modulecim_reg::PAGE_ADMINEVENTHOME, '', $fileDownloadParameters ); // $links["EventDataDump"] = $link2; //Event Data Dump - for importing into Excel $this->DOWNLOAD_TYPE = modulecim_reg::DOWNLOAD_EVENT_DATA; $fileDownloadParameters = array('EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID, 'DOWNLOAD_TYPE' => $this->DOWNLOAD_TYPE); //[RAD_CALLBACK_PARAMS] $link2 = $this->getCallBack(modulecim_reg::PAGE_DOWNLOADREPORT, '', $fileDownloadParameters); $links["EventDataDump"] = $link2; //Event Data Dump - for importing into Excel $this->DOWNLOAD_TYPE = modulecim_reg::DOWNLOAD_SCHOLARSHIP_DATA; $fileDownloadParameters = array('EVENT_ID' => $this->EVENT_ID, 'CAMPUS_ID' => $this->CAMPUS_ID, 'DOWNLOAD_TYPE' => $this->DOWNLOAD_TYPE); //[RAD_CALLBACK_PARAMS] $link3 = $this->getCallBack(modulecim_reg::PAGE_DOWNLOADREPORT, '', $fileDownloadParameters); $links["EventScholarshipList"] = $link3; //Event Scholarship List - for importing into Excel } // end event-admin privilege check 2 /*[RAD_LINK_INSERT]*/ $this->pageDisplay->setLinks($links); //$this->previous_page = modulecim_reg::PAGE_ADMINEVENTHOME; } else { $this->pageDisplay = new page_NotAuthorized($this->moduleRootPath, $this->viewer); } }
/** * function calcBalanceOwing * <pre> * calculates the balance owed by the person linked to a particular registration * </pre> * @param $registrant_id [INTEGER] The unique id of the registration we are dealing with. * @return [INTEGER] the balance owing by the registrant */ function simpleCalcBalanceOwing($registrant_id, $eventID = '', $campusID = '') { // variables to fill with data $eventBasePrice = ''; $priceRulesArray = array(); // $rulesApplied = array(); if ($eventID == '') { /** retrieve event ID from registration(s) array **/ $registration = new RowManager_RegistrationManager(); $registration->setRegID($registrant_id); $regsManager = $registration->getListIterator(); $regsArray = $regsManager->getDataList(); // echo "<pre>".print_r($regEventsArray,true)."</pre>"; //NOTE: should be only one record in array reset($regsArray); $result = current($regsArray); $eventID = $result['event_id']; // echo 'eventID = '.$eventID; } if ($campusID == '') { /** Retrieve campus registration data for single registration **/ $summaryTool = new RegSummaryTools(); $regInfo = array(); $regInfo = $summaryTool->getCampusRegistrations($eventID, '', false, '', $registrant_id); //NOTE: should be only one key-value pair reset($regInfo); $campusID = key($regInfo); // since key = campusID and value = total of registrations for that campus // echo 'campusID = '.$campusID; } /** Retrieve event base price **/ $event = new RowManager_EventManager($eventID); $eventBasePrice = $event->getEventBasePrice(); /** Retrieve price rules array **/ $priceRules = new RowManager_PriceRuleManager(); $priceRules->setEventID($eventID); $ruleManager = $priceRules->getListIterator(); $priceRulesArray = $ruleManager->getDataList(); $balanceOwing = 0; /** Use found data to retrieve base price for the $registrant_id parameter **/ $balanceOwing = $this->getBasePriceForRegistrant($registrant_id, $eventID, $campusID, $eventBasePrice, $priceRulesArray); $basePrice = $balanceOwing; // echo '0) original cost = '.$balanceOwing.'<br>'; // echo "<pre>".print_r($rulesApplied,true)."</pre>"; /** Search for scholarships **/ $scholarships = array(); $scholarships = $this->getScholarships($registrant_id); // echo "<pre>".print_r($scholarships,true)."</pre>"; /** Retrieve cash transactions **/ $cash_transactions = array(); $cash_transactions = $this->getCashTransactions($registrant_id); /** Retrieve credit card transactions **/ $cc_transactions = array(); $cc_transactions = $this->getCCTransactions($registrant_id); /** Calculate amount still owing **/ // subtract scholarship money from total owing $refund = array(); reset($scholarships); foreach (array_keys($scholarships) as $k) { $refund = current($scholarships); $balanceOwing -= $refund['scholarship_amount']; // echo '1) new amount = '.$balanceOwing.'<br>'; next($scholarships); } // subtract cash transactions received $cash_paid = array(); $cashReceived = 0; $cashOwed = 0; reset($cash_transactions); foreach (array_keys($cash_transactions) as $k) { $cash_paid = current($cash_transactions); if ($cash_paid['cashtransaction_recd'] == 1) { $balanceOwing -= $cash_paid['cashtransaction_amtPaid']; } // echo '2) new amount = '.$balanceOwing.'<br>'; next($cash_transactions); } // subtract credit card transactions processed $cc_paid = array(); $ccReceived = 0; $ccOwed = 0; reset($cc_transactions); foreach (array_keys($cc_transactions) as $k) { $cc_paid = current($cc_transactions); if ($cc_paid['cctransaction_processed'] == 1) { $balanceOwing -= $cc_paid['cctransaction_amount']; } // echo '3) new amount = '.$balanceOwing.'<br><br>'; next($cc_transactions); } return $balanceOwing; }
/** * 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->pricerules_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_PriceRuleManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'pricerules_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_PriceRuleManager(); $dataAccessManager->setEventID($this->event_id); $dataAccessManager->setSortOrder($this->sortBy); // $this->dataList = new PriceRuleList( $this->sortBy ); $this->dataList = $dataAccessManager->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ $field = new RowManager_FieldManager(); $field->setEventID($this->event_id); $field->setSortOrder('fields_id'); $fieldList = new ListIterator($field); $fieldArray = $fieldList->getDropListArray(); $this->template->set('list_fields_id', $fieldArray); $priceRuleType = new RowManager_PriceRuleTypeManager(); $priceRuleType->setSortOrder('priceruletypes_id'); $priceRuleTypeList = new ListIterator($priceRuleType); $priceRuleTypeArray = $priceRuleTypeList->getDropListArray(); $this->template->set('list_priceruletypes_id', $priceRuleTypeArray); $notice = "<b>NOTE:</b> For checkbox 'Form Attribute' rules use '1' for checked box and '0' for unchecked box."; $this->template->set('note_pricerules_value', $notice); $templateName = 'siteFormDataList.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_EditPriceRules.php'; return $this->template->fetch($templateName); }
/** * 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]' ); if (!isset($this->linkLabels['cont'])) { $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); } // $this->linkLabels[ 'view' ] = 'new link label here'; // get pricing info // get base price for event participation $event = new RowManager_EventManager($this->event_id); $eventBasePrice = $event->getEventBasePrice(); $eventCashAllowed = $event->isEventCashAllowed(); // 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(); $this->basePriceForThisGuy = $priceGetter->getBasePriceForRegistrant($this->reg_id, $this->event_id, $this->campus_id, $eventBasePrice, $priceRulesArray, $rulesApplied); // echo "base price = ".$basePriceForThisGuy."<BR>"; $totalsList = $this->getFinancialTotals(); $totalsArray = explode(',', $totalsList); $scholarship_total = $totalsArray[0]; $cash_total = $totalsArray[1]; $cash_owing = $totalsArray[2]; $cc_total = $totalsArray[3]; $this->prepareTemplate($path); // retrieve deposit amount for event $deposit = $this->getEventDeposit(); /*** HACK: for AIA Winter Retreat '08 ***/ if ($this->event_id == 31) { $this->template->set('minPayNotice', "AIA Winter Retreat Registrants:<br> Please pay the \$" . $deposit . " or full price with credit card and remainder at registration and not to an AIA staff member.<br> Thank-you."); } else { $this->template->set('minPayNotice', "NOTE: you must have recorded a transaction covering the \$" . $deposit . " deposit in order to register for this event."); } $this->template->set('maxPayNotice', "'Total Paid' is only updated by credit transactions and confirmed cash transactions. "); // $this->template->set( 'maxPayNotice', 'The maximum amount that must be paid is'.$maxPayment); // 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', $this->basePriceForThisGuy); //$priceGetter->calcBalanceOwing($this->reg_id); // NOT NEEDED BECAUSE TOTALS CALCULATED AS SUM IN TEMPLATE // $this->template->set('person', $this->person_info ); // send in scholarships list, cash transactions table, and credit card transactions table $this->template->set('scholarshipsList', $this->generateScholarshipsList()); if ($eventCashAllowed == true) { $this->template->set('cashTransAdminBox', $this->generateCashTransactionsTable()); } // Load over-payment message, if necessary if ($this->ccTrans_form->hasOverPaid()) { $this->template->set('attemptedOverpayment', true); } $this->template->set('ccTransAdminBox', $this->generateCCTransactionsTable()); // $this->setFinancialTotals(); // moved up since it also sets a link label $this->template->set('scholarshipTotal', $scholarship_total); $this->template->set('cashTotal', $cash_total); $this->template->set('cashOwed', $cash_owing); $this->template->set('ccTotal', $cc_total); // 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'); // 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_ProcessFinancialTransactions.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); }