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);
 }
 /**
  * function getBasePriceForRegistrant
  * <pre>
  * Returns registration cost for a particular registration, not including scholarship discounts
  * </pre>
  * Pre-condition: all variables must be initialized with proper values
  *
  * @param $regID [INTEGER]		registration ID
  * @param $eventID [INTEGER]	event ID
  * @param $campusID [INTEGER]	campus ID (precondition: must be associated directly with registration ID)
  * @param $eventBasePrice [INTEGER]	the cost of the event per registration, before any discounts
  * @param $priceRulesArray [ARRAY]	an array of the price rules applying to event denoted by $eventID
  * @param &$rulesApplied [ARRAY REFERENCE]	reference to an array to be filled with applied rules	
  * @return [INTEGER] $basePriceForThisGuy		the new base price for registration $regID (before scholarships)
  */
 function getBasePriceForRegistrant($regID, $eventID, $campusID, $eventBasePrice, $priceRulesArray, &$rulesApplied = array())
 {
     // Need to manually calculate discounts for these exceptions:
     $BC_SUMMIT_2007 = 19;
     $MB_SUMMIT_2007 = 22;
     $LAKESHORE_SUMMIT_2007 = 25;
     $EASTERN_WC_2007 = 28;
     $AIA_NATIONAL_TRAINING = 33;
     $MARITIMES_SUMMIT_2008 = 34;
     $basePriceForThisGuy = $eventBasePrice;
     // 	     echo "<pre>".print_r($priceRulesArray,true)."</pre>";
     // PUT SPECIAL EVENT EXCEPTIONS HERE AS CONDITIONAL STATEMENTS:
     /*	    if ($eventID == $MARITIMES_SUMMIT_2008)
     	    {
     		    $FROSH_DISCOUNT_FIELD = 119;
     		    
     		    // first check for Frosh Discount
                 $fieldValue = new RowManager_FieldValueManager();
     // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
     			$fieldValue->setFieldID($FROSH_DISCOUNT_FIELD);
     			$fieldValue->setRegID($regID);
              
              $valueListManager = $fieldValue->getListIterator(); 
              $fieldValueList = $valueListManager->getDataList();	
     // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
     			
              reset($fieldValueList);
              $record = current($fieldValueList);		         	
     
     			// CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
     // 					$userValue = '';
     			$userValue = $record['fieldvalues_value'];   // $fieldValue->getFieldValue();
     			if ((isset($userValue))&&($userValue != '')) 
     			{
     			
     				// DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
                 if ( $userValue == '1')
                 {
                     // form criteria is met, apply the discount/penalty
     //                 $basePriceForThisGuy -= 15;		// subtract $15 from $65 event base cost
     					$basePriceForThisGuy = 50;		// frosh cost
     					
     					$rulesApplied[] = $priceRulesArray['45'];
     					
     					return $basePriceForThisGuy;
                 }			
            	}  
            	
            	// if no frosh discount, THEN apply early bird discount (if conditions met)
     // 		        echo "DATE RULE<BR>";
              // get the user's registration date    
              $registration = new RowManager_RegistrationManager();
              $registration->setRegID($regID);
              
              $regListManager = $registration->getListIterator(); 
              $regArray = $regListManager->getDataList();	
     //        echo "<pre>".print_r($registration,true)."</pre>";	
     
     			// set default date-time
     			$regTime = '';	
     			
     			// retrieve registration date
     			reset($regArray);
     			$record = current($regArray);	// should be only 1 record for regID
     			$regTime = $record['registration_date'];
     		
     // 					$regTime = $registration->getRegistrationDate();
     			if ($regTime != '') 
     			{										
     				
                 // if the registrant signed up before a deadline, apply the rule
                 if ( strtotime($regTime) < strtotime( '2008-04-01' )  )		//$rule['pricerules_value']
                 {
                     // date criteria is met, apply the discount/penalty
     //                 $basePriceForThisGuy -= 15;		// apply early bird discount to $65 event base cost to get $50
                     
     					 $basePriceForThisGuy = 50;
                     $rulesApplied[] = $priceRulesArray['47'];
                     
                     return $basePriceForThisGuy;
                 }	
           	}	      		    
     		    
     	    	return $basePriceForThisGuy;			// otherwise return unaltered base event cost ($125)
         	}		*/
     if ($eventID == $AIA_NATIONAL_TRAINING) {
         $FOOD_PASS_REQ_FIELD = 102;
         $HOUSING_REQ_FIELD = 103;
         // first check for Food Pass Fee
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($FOOD_PASS_REQ_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR $FOOD_PASS_REQ_FIELD
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             /** Get the user's registration date **/
             $registration = new RowManager_RegistrationManager();
             $registration->setRegID($regID);
             $regListManager = $registration->getListIterator();
             $regArray = $regListManager->getDataList();
             //        echo "<pre>".print_r($registration,true)."</pre>";
             // set default date-time
             $regTime = '';
             // retrieve registration date-time
             reset($regArray);
             $record = current($regArray);
             // should be only 1 record for regID
             $regTime = $record['registration_date'];
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // form criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy += 100;		// add 150 to base 260 event price
                 $basePriceForThisGuy += 150;
                 $rulesApplied[] = $priceRulesArray['39'];
                 // Apply early-bird discount on this if applicable
                 if ($regTime != '') {
                     // if the registrant signed up before a deadline, apply the rule
                     if (strtotime($regTime) < strtotime('2008-04-16')) {
                         $basePriceForThisGuy -= 50;
                         // subtract 50
                         $rulesApplied[] = $priceRulesArray['42'];
                     }
                 }
             }
         }
         // second check for Housing Fee
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($HOUSING_REQ_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR $HOUSING_REQ_FIELD
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             /** Get the user's registration date **/
             $registration = new RowManager_RegistrationManager();
             $registration->setRegID($regID);
             $regListManager = $registration->getListIterator();
             $regArray = $regListManager->getDataList();
             //        echo "<pre>".print_r($registration,true)."</pre>";
             // set default date-time
             $regTime = '';
             // retrieve registration date-time
             reset($regArray);
             $record = current($regArray);
             // should be only 1 record for regID
             $regTime = $record['registration_date'];
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // form criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy += 180;		// add 230 to base 260 event price
                 $basePriceForThisGuy += 230;
                 $rulesApplied[] = $priceRulesArray['41'];
                 // Apply early-bird discount on this if applicable
                 if ($regTime != '') {
                     // if the registrant signed up before a deadline, apply the rule
                     if (strtotime($regTime) < strtotime('2008-04-16')) {
                         $basePriceForThisGuy -= 50;
                         // subtract 50
                         $rulesApplied[] = $priceRulesArray['42'];
                     }
                 }
                 return $basePriceForThisGuy;
             }
         }
         return $basePriceForThisGuy;
         // otherwise return unaltered base event cost ($125)
     }
     if ($eventID == $EASTERN_WC_2007) {
         $COMMUTER_DISCOUNT_FIELD = 86;
         // first check for Frosh Discount
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($COMMUTER_DISCOUNT_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // form criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy -= 80;		// subtract $80 from $279 event base cost
                 $basePriceForThisGuy = 199;
                 // commuter cost
                 $rulesApplied[] = $priceRulesArray['38'];
                 return $basePriceForThisGuy;
             }
         }
         // if no commuter discount, THEN apply early bird discount (if conditions met)
         // 		        echo "DATE RULE<BR>";
         // get the user's registration date
         $registration = new RowManager_RegistrationManager();
         $registration->setRegID($regID);
         $regListManager = $registration->getListIterator();
         $regArray = $regListManager->getDataList();
         //        echo "<pre>".print_r($registration,true)."</pre>";
         // set default date-time
         $regTime = '';
         // retrieve registration date
         reset($regArray);
         $record = current($regArray);
         // should be only 1 record for regID
         $regTime = $record['registration_date'];
         // 					$regTime = $registration->getRegistrationDate();
         if ($regTime != '') {
             // if the registrant signed up before a deadline, apply the rule
             if (strtotime($regTime) < strtotime('2007-12-01')) {
                 if (strtotime($regTime) < strtotime('2007-10-09')) {
                     // date criteria is met, apply the discount/penalty
                     //                 $basePriceForThisGuy -= 50;		// apply early bird discounts to $279 event base cost to get $229
                     $basePriceForThisGuy = 229;
                     $rulesApplied[] = $priceRulesArray['37'];
                     $rulesApplied[] = $priceRulesArray['36'];
                     return $basePriceForThisGuy;
                 } else {
                     // date criteria is met, apply the discount/penalty
                     //                 $basePriceForThisGuy -= 50;		// apply regular discount to $279 event base cost to get $259
                     $basePriceForThisGuy = 259;
                     $rulesApplied[] = $priceRulesArray['36'];
                     return $basePriceForThisGuy;
                 }
             }
         }
         return $basePriceForThisGuy;
         // otherwise return unaltered base event cost ($125)
     }
     // PUT SPECIAL EVENT EXCEPTIONS HERE AS CONDITIONAL STATEMENTS:
     if ($eventID == $BC_SUMMIT_2007) {
         $FROSH_DISCOUNT_FIELD = 54;
         // first check for Frosh Discount
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($FROSH_DISCOUNT_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // form criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy -= 46;		// subtract $46 from $125 event base cost
                 $basePriceForThisGuy = 79;
                 // frosh cost
                 $rulesApplied[] = $priceRulesArray['14'];
                 return $basePriceForThisGuy;
             }
         }
         // if no frosh discount, THEN apply early bird discount (if conditions met)
         // 		        echo "DATE RULE<BR>";
         // get the user's registration date
         $registration = new RowManager_RegistrationManager();
         $registration->setRegID($regID);
         $regListManager = $registration->getListIterator();
         $regArray = $regListManager->getDataList();
         //        echo "<pre>".print_r($registration,true)."</pre>";
         // set default date-time
         $regTime = '';
         // retrieve registration date
         reset($regArray);
         $record = current($regArray);
         // should be only 1 record for regID
         $regTime = $record['registration_date'];
         // 					$regTime = $registration->getRegistrationDate();
         if ($regTime != '') {
             // if the registrant signed up before a deadline, apply the rule
             if (strtotime($regTime) < strtotime('2007-09-21')) {
                 // date criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy -= 26;		// apply early bird discount to $125 event base cost to get $99
                 $basePriceForThisGuy = 99;
                 $rulesApplied[] = $priceRulesArray['15'];
                 return $basePriceForThisGuy;
             }
         }
         return $basePriceForThisGuy;
         // otherwise return unaltered base event cost ($125)
     }
     if ($eventID == $MB_SUMMIT_2007) {
         $FROSH_DISCOUNT_FIELD = 60;
         $FROSH_VOLUME_THRESHOLD = 20;
         $MB_EARLY_FROSH_TABLE = 'temp_mb_early_frosh';
         // first check for Frosh Discount
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($FROSH_DISCOUNT_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // check if there are 20 or more frosh already stored
                 $froshValues = new RowManager_FieldValueManager();
                 $froshValues->setFieldID($FROSH_DISCOUNT_FIELD);
                 $froshValues->setFieldValue('1');
                 // 1 = checked checkbox
                 $fieldsManager = new MultiTableManager();
                 $fieldsManager->addRowManager($froshValues);
                 // TODO: sub-query like 'SELECT <ALL FIELD VALUES FOR SPECIFIC FROSH DISCOUNT> WHERE REG_ID IN (SELECT ALL REGISTRATIONS FOR EVENT)'
                 $regs = new RowManager_RegistrationManager();
                 $regs->setEventID($eventID);
                 $regData = new MultiTableManager();
                 $regData->addRowManager($regs);
                 $regData->setFieldList('registration_id');
                 $registered_SQL = $regData->createSQL();
                 // actually creates the sub-query in order to get an accurate count of discount field values stored
                 $negateSubQuery = false;
                 $addSubQuery = true;
                 $fieldsManager->constructSubQuery('registration_id', $registered_SQL, $negateSubQuery, $addSubQuery);
                 // 		         $froshValues->setSortOrder('registration_id');
                 $froshList = $fieldsManager->getListIterator();
                 $froshArray = array();
                 $froshArray = $froshList->getDataList();
                 // 		         echo "COUNT = ".count($froshArray);
                 if (count($froshArray) <= $FROSH_VOLUME_THRESHOLD) {
                     // form criteria is met, apply the discount/penalty
                     //                 $basePriceForThisGuy -= 25;		// subtract $46 from $125 event base cost
                     $basePriceForThisGuy = 40;
                     // frosh cost
                     $rulesApplied[] = $priceRulesArray['25'];
                     $db = new Database_MySQL();
                     $db->connectToDB(SITE_DB_NAME, SITE_DB_PATH, SITE_DB_USER, SITE_DB_PWORD);
                     // precaution that avoids duplicates
                     $sql = "DELETE FROM " . $MB_EARLY_FROSH_TABLE . " WHERE registration_id = " . $regID;
                     $db->runSQL($sql);
                     $sql = "INSERT INTO " . $MB_EARLY_FROSH_TABLE . " (registration_id) VALUES (" . $regID . ")";
                     $db->runSQL($sql);
                 } else {
                     $db = new Database_MySQL();
                     $db->connectToDB(SITE_DB_NAME, SITE_DB_PATH, SITE_DB_USER, SITE_DB_PWORD);
                     $sql = "SELECT * FROM " . $MB_EARLY_FROSH_TABLE . " WHERE registration_id = " . $regID;
                     $db->runSQL($sql);
                     $temp_regID = '';
                     if ($row = $db->retrieveRow()) {
                         $temp_regID = $row['registration_id'];
                     }
                     // apply rule despite there being >20 frosh because this registration existed before cut-off
                     if ($regID == $temp_regID) {
                         //                 $basePriceForThisGuy -= 25;		// subtract $25 from $85 event base cost
                         $basePriceForThisGuy = 40;
                         // frosh cost
                         $rulesApplied[] = $priceRulesArray['25'];
                     } else {
                         $basePriceForThisGuy = 60;
                         // basic frosh cost
                         $rulesApplied[] = $priceRulesArray['28'];
                     }
                 }
                 return $basePriceForThisGuy;
             }
         }
         return $basePriceForThisGuy;
         // otherwise return unaltered base event cost ($85)
     }
     if ($eventID == $LAKESHORE_SUMMIT_2007) {
         $FROSH_DISCOUNT_FIELD = 64;
         // first check for Frosh Discount
         $fieldValue = new RowManager_FieldValueManager();
         // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
         $fieldValue->setFieldID($FROSH_DISCOUNT_FIELD);
         $fieldValue->setRegID($regID);
         $valueListManager = $fieldValue->getListIterator();
         $fieldValueList = $valueListManager->getDataList();
         // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
         reset($fieldValueList);
         $record = current($fieldValueList);
         // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
         // 					$userValue = '';
         $userValue = $record['fieldvalues_value'];
         // $fieldValue->getFieldValue();
         if (isset($userValue) && $userValue != '') {
             // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
             if ($userValue == '1') {
                 // form criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy -= <varies>;		// subtract <varying amount> from $120/$115/$110/$105 to get $75
                 $basePriceForThisGuy = 75;
                 // frosh cost
                 $rulesApplied[] = $priceRulesArray['19'];
                 return $basePriceForThisGuy;
             }
         }
         // if no frosh discount, THEN apply early bird discount (if conditions met)
         // 		        echo "DATE RULE<BR>";
         // get the user's registration date
         $registration = new RowManager_RegistrationManager();
         $registration->setRegID($regID);
         $regListManager = $registration->getListIterator();
         $regArray = $regListManager->getDataList();
         //        echo "<pre>".print_r($registration,true)."</pre>";
         // set default date-time
         $regTime = '';
         // retrieve registration date
         reset($regArray);
         $record = current($regArray);
         // should be only 1 record for regID
         $regTime = $record['registration_date'];
         // 					$regTime = $registration->getRegistrationDate();
         if ($regTime != '') {
             // if the registrant signed up before a deadline, apply the rule
             if (strtotime($regTime) < strtotime('2007-09-26')) {
                 // date criteria is met, apply the discount/penalty
                 //                 $basePriceForThisGuy -= 15;		// apply early bird discount to $115 event base cost to get $105
                 $basePriceForThisGuy = 105;
                 $rulesApplied[] = $priceRulesArray['20'];
                 return $basePriceForThisGuy;
             }
         }
         return $basePriceForThisGuy;
         // otherwise return unaltered base event cost ($120)
     }
     /**** END OF RULE EXCEPTIONS ****/
     // apply any price rules
     foreach ($priceRulesArray as $key => $rule) {
         $ruleType = $rule['priceruletypes_id'];
         // form attribute rule: apply price rule based on whether some form field value exists (i.e. frosh discount)
         if ($ruleType == RowManager_PriceRuleTypeManager::FORM_ATTRIBUTE_RULE) {
             // 	            echo "FORM RULE<BR>";
             // get the user's input for this form attribute
             $fieldValue = new RowManager_FieldValueManager();
             // 	            $fieldValue->loadByFieldIDandRegID($rule['fields_id'],$regID);
             $fieldValue->setFieldID($rule['fields_id']);
             $fieldValue->setRegID($regID);
             $valueListManager = $fieldValue->getListIterator();
             $fieldValueList = $valueListManager->getDataList();
             // 		         echo "<pre>".print_r($fieldValueList,true)."</pre>";
             reset($fieldValueList);
             $record = current($fieldValueList);
             // CHECK TO SEE IF SOME FIELD VALUE HAS BEEN SET FOR GIVEN PARAMETERS
             // 					$userValue = '';
             $userValue = $record['fieldvalues_value'];
             // $fieldValue->getFieldValue();
             if (isset($userValue) && $userValue != '') {
                 // DETERMINE WHETHER PRICE RULE VALUE IS EQUIVALENT TO CURRENT FIELD VALUE
                 if ($rule['pricerules_value'] == $userValue) {
                     // form criteria is met, apply the discount/penalty
                     $basePriceForThisGuy += $rule['pricerules_discount'];
                     $rulesApplied[] = $rule;
                 }
             }
         } else {
             if ($ruleType == RowManager_PriceRuleTypeManager::DATE_RULE) {
                 // 		        echo "DATE RULE<BR>";
                 // get the user's registration date
                 $registration = new RowManager_RegistrationManager();
                 $registration->setRegID($regID);
                 $regListManager = $registration->getListIterator();
                 $regArray = $regListManager->getDataList();
                 //        echo "<pre>".print_r($registration,true)."</pre>";
                 // set default date-time
                 $regTime = '';
                 // retrieve registration date
                 reset($regArray);
                 $record = current($regArray);
                 // should be only 1 record for regID
                 $regTime = $record['registration_date'];
                 // 					$regTime = $registration->getRegistrationDate();
                 if ($regTime != '') {
                     // if the registrant signed up before a deadline, apply the rule
                     if (strtotime($regTime) < strtotime($rule['pricerules_value'])) {
                         // date criteria is met, apply the discount/penalty
                         $basePriceForThisGuy += $rule['pricerules_discount'];
                         $rulesApplied[] = $rule;
                     }
                 }
             } else {
                 if ($ruleType == RowManager_PriceRuleTypeManager::VOLUME_RULE) {
                     $volumeNeeded = $rule['pricerules_value'];
                     // 		        $correctCampus = false;
                     // 		        $pattern = RowManager_PriceRuleTypeManager::CAMPUS_VOLUME_REGEX;
                     // 		        $numMatches = preg_match($pattern, $rule['pricerules_value']);
                     // 		        if ($numMatches > 0)
                     // 		        {
                     //
                     // 						$pricingValues = explode('|',$rule['pricerules_value']);
                     // 	//					echo '<pre>'.print_r($pricingValues,true).'</pre>';
                     // 	//					echo 'campus = '.$pricingValues[0].'  cut-off = '.$pricingValues[1];
                     // 						if ((int)$pricingValues[0] == $campusID)
                     // 						{
                     // 							$correctCampus = true;
                     // 							$volumeNeeded = $pricingValues[1];
                     //
                     // 	/*						if ($numRegistrantsMyCampus != '')
                     // 							{
                     // 				            // if the # of registrants >= the bulk discount value...
                     // 				            if ( $numRegistrantsMyCampus >= $pricingValues[1] )
                     // 				            {
                     // 				                // bulk discount criteria is met, apply the discount/penalty
                     // 				                $basePriceForThisGuy += $rule['pricerules_discount'];
                     //
                     // 				                $rulesApplied[] = $rule;
                     // 				            }
                     // 			         	}
                     // 			         	else 	// try to calculate the # of registrants on our own
                     // 			         	{
                     // 	*/
                     //
                     // 	/**						}
                     // 	**/
                     // 						}
                     // 					}
                     //
                     // 					// check volume rule if no specific campus associated or current campus is associated with rule
                     // 					if (($numMatches == 0)||($correctCampus == true))
                     // 					{
                     if (isset($campusID) && $campusID != '') {
                         // get total registrations for specific campus and particular event
                         $total = array();
                         $summary = new RegSummaryTools();
                         $total = $summary->getCampusRegistrations($eventID, '', false, $campusID, '', RowManager_RegistrationManager::STATUS_REGISTERED);
                         if (isset($total[$campusID])) {
                             $numRegistrantsMyCampus = $total[$campusID];
                         } else {
                             $numRegistrantsMyCampus = 0;
                         }
                         if (count($total) > 0) {
                             // if the # of registrants >= the bulk discount value...
                             if ($numRegistrantsMyCampus >= $volumeNeeded) {
                                 // bulk discount criteria is met, apply the discount/penalty
                                 $basePriceForThisGuy += $rule['pricerules_discount'];
                                 $rulesApplied[] = $rule;
                             }
                         }
                     } else {
                         // should not occur, this function meant to be used with campusID set
                     }
                 } else {
                     if ($ruleType == RowManager_PriceRuleTypeManager::CAMPUS_RULE) {
                         // 		        echo "CAMPUS RULE<BR>";
                         // check the campus ID against the one stored in the price rules table
                         if ($campusID == $rule['pricerules_value']) {
                             $basePriceForThisGuy += $rule['pricerules_discount'];
                             $rulesApplied[] = $rule;
                         }
                     } else {
                         die('unknown ruletype[' . $ruleType . ']');
                     }
                 }
             }
         }
     }
     // foreach rule
     // special hack for Eastern Ontario/Montreal summit 2006
     /*	    if ( $eventID == 4 )
     	    {
     	        $basePriceForThisGuy = getBasePriceEasternSummit2006( $regID, $numRegistrantsMyCampus, $rulesApplied );
     	    }
     	    else if ( $eventID == 11 )
     	    {
     	        $basePriceForThisGuy = getBasePricePrairieSummit2006( $regID, $campusID, $numRegistrantsMyCampus, $rulesApplied );
     	    }
     */
     return $basePriceForThisGuy;
 }
 protected function setPersonID($regID)
 {
     // determine if parameter has been set
     if (isset($regID)) {
         // get registration ID for the rest of the reg. process
         $regs = new RowManager_RegistrationManager();
         $regs->setRegID($regID);
         $people = new RowManager_PersonManager();
         $personRegs = new MultiTableManager();
         $personRegs->addRowManager($people);
         $personRegs->addRowManager($regs, new JoinPair($regs->getJoinOnPersonID(), $people->getJoinOnPersonID()));
         $personList = $personRegs->getListIterator();
         $personArray = $personList->getDataList();
         //        echo "<pre>".print_r($personArray,true)."</pre>";
         reset($personArray);
         foreach (array_keys($personArray) as $k) {
             $person = current($personArray);
             $this->person_id = $person['person_id'];
             // NOTE: should only be one person per registration (ENFORCE??)
             $this->confirmNum = $person['registration_confirmNum'];
             next($personArray);
         }
     }
 }
 protected function getFieldArray($regID = '', $personID = '', $eventID = '')
 {
     $FALSE = 0;
     $fields = new RowManager_FieldManager();
     //		 $fvalues = new RowManager_FieldValueManager();
     $ftypes = new RowManager_FieldTypeManager();
     // 		 echo "personID = ".$personID;
     // 		 echo "eventID = ".$eventID;
     if ($eventID != '') {
         $fields->setEventID($eventID);
         //$fvalues->setRegID($regID);
     } else {
         if ($regID != '') {
             $registrations = new RowManager_RegistrationManager();
             $registrations->setRegID($regID);
             //		    $person = new RowManager_PersonManager();
             //		    $person->setPersonID($personID);
             $event = new RowManager_EventManager();
             //		    $event->setEventID($eventID);
             $personReg = new MultiTableManager();
             $personReg->addRowManager($registrations);
             //		    $personReg->addRowManager($person, new JoinPair($registrations->getJoinOnPersonID(), $person->getJoinOnPersonID()));
             $personReg->addRowManager($event, new JoinPair($registrations->getJoinOnEventID(), $event->getJoinOnEventID()));
             $valIterator = $personReg->getListIterator();
             $valArray = $valIterator->getDataList();
             // go through results and store field types
             reset($valArray);
             foreach (array_keys($valArray) as $k) {
                 $regValue = current($valArray);
                 $eventID = $regValue['event_id'];
                 //NOTE: assumes only 1 event per registration       //OLD: registration per person per event
                 next($valArray);
             }
             $fields->setEventID($eventID);
             //			$fvalues->setRegID($regID);
         }
     }
     //	    $fvalues->setSortByFieldID();
     $fieldInfo = new MultiTableManager();
     $fieldInfo->addRowManager($fields);
     //		 $fieldInfo->addRowManager($fvalues, new JoinPair($fvalues->getJoinOnFieldID(), $fields->getJoinOnFieldID()));
     $fieldInfo->addRowManager($ftypes, new JoinPair($fields->getJoinOnFieldTypeID(), $ftypes->getJoinOnFieldTypeID()));
     if ($this->show_hidden == false) {
         $fieldInfo->constructSearchCondition('fields_hidden', '=', $FALSE, true);
     }
     $fieldInfo->setSortOrder('fields_priority');
     // 		 echo $fieldInfo->createSQL();
     $valuesIterator = $fieldInfo->getListIterator();
     $valuesArray = $valuesIterator->getDataList();
     //		 echo "label values:<br><pre>".print_r($valuesArray,true)."</pre>";
     // map the fields_id of each field values row to the label of that particular form field
     $idx = 0;
     reset($valuesArray);
     foreach (array_keys($valuesArray) as $k) {
         $record = current($valuesArray);
         // store mapping associating form field label with fields_id
         $this->formFieldToFieldIDmapper['form_field' . $idx] = $record['fields_id'];
         next($valuesArray);
         $idx++;
     }
     //  		 echo "field id values:<br><pre>".print_r($this->formFieldToFieldIDmapper,true)."</pre>";
     return $valuesArray;
 }
 /**
  * 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, $reg_id, $cctrans_id = '', $personID = '')
 {
     //        parent::__construct( page_DisplayCCtransactionReceipt::DISPLAY_FIELDS );
     $formAction = '';
     $fieldList = page_DisplayCCtransactionReceipt::FORM_FIELDS;
     $fieldTypes = page_DisplayCCtransactionReceipt::FORM_FIELD_TYPES;
     $displayFields = page_DisplayCCtransactionReceipt::DISPLAY_FIELDS;
     parent::__construct($viewer, $formAction, $sortBy, $fieldList, $fieldTypes, $displayFields);
     $this->pathModuleRoot = $pathModuleRoot;
     $this->viewer = $viewer;
     $this->sortBy = $sortBy;
     $this->reg_id = $reg_id;
     //         echo "REG_ID =".$reg_id;
     if (isset($_POST['cctransaction_id'])) {
         $this->cctrans_id = $_POST['cctransaction_id'];
     } else {
         $this->cctrans_id = $cctrans_id;
     }
     //   	  	  echo "CCTRANSID = <pre>".$this->cctrans_id."</pre>";
     // just let these be empty if they are passed as empty
     $this->person_id = $personID;
     $registration = new RowManager_RegistrationManager();
     //        $registration->setSortOrder( $sortBy );
     $registration->setRegID($this->reg_id);
     $person = new RowManager_PersonManager();
     $campus = new RowManager_CampusManager();
     $assign = new RowManager_AssignmentsManager();
     $campusStatus = new RowManager_CampusAssignmentStatusManager();
     $status = new RowManager_StatusManager();
     // join 2 tables together: cim_reg_registration & cim_hrdb_person
     $this->statusManager = new MultiTableManager();
     $this->statusManager->addRowManager($registration);
     $this->statusManager->addRowManager($person, new JoinPair($person->getJoinOnPersonID(), $registration->getJoinOnPersonID()));
     $this->statusManager->addRowManager($assign, new JoinPair($person->getJoinOnPersonID(), $assign->getJoinOnPersonID()));
     $this->statusManager->addRowManager($campus, new JoinPair($campus->getJoinOnCampusID(), $assign->getJoinOnCampusID()));
     $this->statusManager->addRowManager($campusStatus, new JoinPair($assign->getJoinOnStatusID(), $campusStatus->getJoinOnStatusID()));
     $this->statusManager->addRowManager($status, new JoinPair($registration->getJoinOnStatus(), $status->getJoinOnStatusID()));
     //     $multiTableManager2->setLabelTemplate('viewer_userID', '[viewer_userID]');
     //        $this->listManager = $regPerson->getListIterator();
     //       $regsArray = $this->listManager->getDataList();
     //         echo "<pre>".print_r($this->listManager,true)."</pre>";
     //        echo "<pre>".print_r($regsArray,true)."</pre>";
     $this->ccTransManager = new MultiTableManager();
     $ccTrans = new RowManager_CreditCardTransactionManager();
     $ccTrans->setCCtransID($this->cctrans_id);
     //         $ccTrans->setSortOrder( $sortBy );
     $ccType = new RowManager_CreditCardTypeManager();
     $this->ccTransManager->addRowManager($ccTrans);
     $this->ccTransManager->addRowManager($ccType, new JoinPair($ccType->getJoinOnTypeID(), $ccTrans->getJoinOnTypeID()));
     $this->receiptManager = new RowManager_ReceiptManager();
     $this->receiptManager->setCCtransID($this->cctrans_id);
     // 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_DisplayCCtransactionReceipt::MULTILINGUAL_PAGE_KEY;
     $this->labels->loadPageLabels($pageKey);
     $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE);
     $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS);
 }