예제 #1
0
 /**
  * function __construct
  * <pre>
  * Initialize the Class ...
  * </pre>
  * @param $sortBy [STRING] the field name to sort list by
  * @return [void]
  */
 function __construct($requireRegion = false, $getOnlyNS = false, $includeChildren = false, $includeAlumni = false, $sortBy = '', $excludeSpouse = false)
 {
     $this->requireRegion = $requireRegion;
     $multiTableManager = new MultiTableManager();
     // ----- STEP ONE: Deal with the ren table
     $renManager = new RowManager_HrdbRenManager();
     /*        if( $getOnlyNS )
             {
                 $renManager->setEmployeeStatus('NS');
             }
     */
     $multiTableManager->addRowManager($renManager);
     if ($getOnlyNS) {
         // we also need to
         $condition = $multiTableManager->constructSearchCondition($renManager->getFieldEmployeeStatus(), OP_EQUAL, 'NS');
         $condition .= ' OR ';
         $condition .= $multiTableManager->constructSearchCondition($renManager->getFieldEmployeeStatus(), OP_EQUAL, 'ANS');
         $multiTableManager->addSearchCondition($condition);
     }
     if (!$includeChildren) {
         $multiTableManager->constructSearchCondition($renManager->getFieldIdentifierFamilyPosition(), OP_NOT_EQUAL, "Child", true);
     }
     if ($excludeSpouse) {
         $multiTableManager->constructSearchCondition($renManager->getFieldIdentifierFamilyPosition(), OP_NOT_EQUAL, 'Spouse', true);
     }
     // STEP ONE COMPLETE
     // ----- STEP TWO: Join with the family table
     $familyManager = new RowManager_FamilyManager();
     if (!$includeAlumni) {
         // we want only those who are not alumni
         $familyManager->setAlumni(false);
     }
     $multiTableManager->addRowManager($familyManager, new JoinPair($renManager->getJoinOnFamilyID(), $familyManager->getJoinOnFamilyID()));
     // STEP TWO COMPLETE
     // ------ STEP THREE: Check if region is needed
     if ($requireRegion) {
         // assignment
         $assManager = new RowManager_HrdbAssignmentManager();
         $multiTableManager->addRowManager($assManager, new JoinPair($renManager->getJoinOnAssignmentID(), $assManager->getJoinOnAssignmentID()));
         // city
         $cityManager = new RowManager_HrdbCityManager();
         $multiTableManager->addRowManager($cityManager, new JoinPair($assManager->getJoinOnCityID(), $cityManager->getJoinOnCityID()));
         // province
         $provinceManager = new RowManager_ProvinceManager();
         $multiTableManager->addRowManager($provinceManager, new JoinPair($cityManager->getJoinOnProvinceID(), $provinceManager->getJoinOnProvinceID()));
         // region
         $regionManager = new RowManager_HrdbRegionManager();
         $multiTableManager->addRowManager($regionManager, new JoinPair($provinceManager->getJoinOnRegionID(), $regionManager->getJoinOnRegionID()));
     }
     // STEP THREE COMPLETE
     $multiTableManager->setSortOrder($sortBy);
     parent::__construct($multiTableManager, 'RowManager_HrdbRenManager');
 }
예제 #2
0
function get_AG($template, $errorMessages)
{
    $accessGroupM = new RowManager_AccessGroupManager();
    $multilingualLabelL = new RowManager_MultilingualLabelManager();
    $join = new JoinPair($multilingualLabelL->getJoinOnFieldX('label_key'), $accessGroupM->getJoinOnFieldX('accessgroup_key'));
    $MTM = new MultiTableManager();
    $MTM->addRowManager($multilingualLabelL);
    $MTM->addRowManager($accessGroupM, $join);
    $MTM->constructSearchCondition('language_id', '=', '1', true);
    $result = $MTM->find();
    if (!isset($result)) {
        $errorMessages = 'Failed to join database to get label';
    } else {
        $result->setFirst();
        $count = 0;
        while ($resultMLM = $result->getNext($multilingualLabelL)) {
            $resultAGM = $result->getCurrent($accessGroupM);
            $agLabel[] = $resultMLM->getLabel();
            $agID[] = $resultAGM->getID();
        }
        $template->set('agLabel', $agLabel);
        $template->set('agID', $agID);
    }
    return $errorMessages;
}
 /**
  * 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, $registrant_formAction, $sortBy, $event_id, $campus_id = "", $isInRegProcess = 'FALSE', $reg_id = '')
 {
     // 	     $fieldList = page_EditCampusRegistrations::FORM_FIELDS;
     //        $fieldTypes = page_EditCampusRegistrations::FORM_FIELD_TYPES;
     $displayFields = page_EditCampusRegistrations::DISPLAY_FIELDS;
     parent::__construct($displayFields);
     //$formAction,  $fieldList,
     $this->pathModuleRoot = $pathModuleRoot;
     $this->viewer = $viewer;
     $this->registrant_formAction = $registrant_formAction;
     $this->sortBy = $sortBy;
     $this->event_id = $event_id;
     $this->campus_id = $campus_id;
     $this->is_in_reg_process = $isInRegProcess;
     $this->reg_id = $reg_id;
     //        $this->managerInit = $managerInit;
     //        $dataAccessObject = new RowManager_RegistrationManager();
     //        $dataAccessObject->setSortOrder( $sortBy );
     //        $this->listManager = new RegistrationList( $sortBy );
     //        $this->listManager = $dataAccessObject->getListIterator();
     $registration = new RowManager_RegistrationManager();
     $registration->setSortOrder($sortBy);
     $registration->setEventID($this->event_id);
     $person = new RowManager_PersonManager();
     $assignment = new RowManager_AssignmentsManager();
     // assigns campus to person
     $campus = new RowManager_CampusManager();
     //   $campus->setCampusID($this->campus_id);
     $cash_trans = new RowManager_CashTransactionManager();
     $cc_trans = new RowManager_CreditCardTransactionManager();
     $status = new RowManager_StatusManager();
     // join 6 tables together:
     //cim_reg_registration, cim_hrdb_person, cim_hrdb_assignment, cim_hrdb_campus,
     //cim_reg_cashtransaction, and cim_reg_cctransaction  (and cim_reg_status)
     $campusRegs = new MultiTableManager();
     /*        $campusRegs->addRowManager( $registration, new JoinPair( $person->getJoinOnPersonID(), $registration->getJoinOnPersonID()));        
             $campusRegs->addRowManager( $person, new JoinPair( $assignment->getJoinOnPersonID(), $person->getJoinOnPersonID() ) );
             $campusRegs->addRowManager( $assignment, new JoinPair( $campus->getJoinOnCampusID(), $assignment->getJoinOnCampusID() ) );
             $campusRegs->addRowManager( $cash_trans, new JoinPair( $registration->getJoinOnRegID(), $cash_trans->getJoinOnRegID() ) );
     /*        $campusRegs->addRowManager( $cc_trans, new JoinPair( $registration->getJoinOnRegID(), $cc_trans->getJoinOnRegID() ) );
     */
     /**/
     $campusRegs->addRowManager($campus);
     $campusRegs->addRowManager($assignment, new JoinPair($campus->getJoinOnCampusID(), $assignment->getJoinOnCampusID(), JOIN_TYPE_LEFT));
     $campusRegs->addRowManager($person, new JoinPair($assignment->getJoinOnPersonID(), $person->getJoinOnPersonID(), JOIN_TYPE_LEFT));
     $campusRegs->addRowManager($registration, new JoinPair($person->getJoinOnPersonID(), $registration->getJoinOnPersonID(), JOIN_TYPE_LEFT));
     $campusRegs->addRowManager($cash_trans, new JoinPair($registration->getJoinOnRegID(), $cash_trans->getJoinOnRegID(), JOIN_TYPE_LEFT));
     $campusRegs->addRowManager($cc_trans, new JoinPair($registration->getJoinOnRegID(), $cc_trans->getJoinOnRegID(), JOIN_TYPE_LEFT));
     $campusRegs->addRowManager($status, new JoinPair($registration->getJoinOnStatus(), $status->getJoinOnStatusID(), JOIN_TYPE_LEFT));
     if ($this->campus_id != '') {
         $campusRegs->constructSearchCondition('campus_id', '=', $this->campus_id, true);
     }
     // (below) ensures no duplicate entries appear in case of multiple payments
     // TODO: figure out which record is displayed....
     $campusRegs->setGroupBy('registration_id');
     //         $campusRegs->setSortOrder( $sortBy );
     $campusRegs->setPrimaryKeyField('registration_id');
     if ($sortBy == 'registration_balance') {
         $campusRegs->addSortField($sortBy, 'DESC');
         // sort balances from greatest to least
     } else {
         $campusRegs->addSortField($sortBy);
         // sort field from least to greatest value
     }
     //     $multiTableManager2->setLabelTemplate('viewer_userID', '[viewer_userID]');
     $this->listManager = $campusRegs->getListIterator();
     $regsArray = $this->listManager->getDataList();
     //          echo "<pre>".print_r($this->listManager,true)."</pre>";
     //         echo "<pre>".print_r($regsArray,true)."</pre>";
     // cycle through registrations and store balance owing for each
     $this->owingArray = array();
     $priceGetter = new FinancialTools();
     $results = array();
     $temp = array();
     reset($regsArray);
     foreach (array_keys($regsArray) as $k) {
         $reg = current($regsArray);
         //				echo 'regID = '.$reg['registration_id'];
         $reg_id = $reg['registration_id'];
         $param = null;
         $array = array();
         $owed = $reg['registration_balance'];
         // $priceGetter->simpleCalcBalanceOwing($reg_id, $this->event_id, $this->campus_id);
         $this->owingArray[$reg_id] = $owed;
         next($regsArray);
     }
     //			echo "<pre>".print_r($this->owingArray,true)."</pre>";
     // create references to sub-page object: registrant drop-down list
     //			$this->registrants_dropList = new FormProcessor_EditCampusRegistrations_OffflineRegBox( $this->pathModuleRoot, $this->viewer, $formAction);
     // 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_EditCampusRegistrations::MULTILINGUAL_PAGE_KEY;
     $this->labels->loadPageLabels($pageKey);
     $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE);
     $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS);
 }
 /**
  * function getListAccountPriviledgeAccess
  * <pre>
  * Returns a ListIterator for the list of accounts this viewer has access
  * to modify.
  * </pre>
  * @param $sortBy [STRING] the name of the field to sort by (can be a
  * comma seperated list).
  * @return [OBJECT]
  */
 function getListAccountPriviledgeAccess($sortBy)
 {
     $multiTable = new MultiTableManager();
     $genViewer = new RowManager_ViewerManager();
     $joinFieldA = $genViewer->getJoinOnViewerID();
     // if the current viewer is limited to the Group Access scope then
     // filter list based on current group.
     if ($this->hasGroupPriv()) {
         $viewerMgr = $this->getViewerManager();
         $genViewer->setAccountGroupID($viewerMgr->getAccountGroupID());
     }
     $multiTable->addRowManager($genViewer);
     $accessManager = new RowManager_AccountAdminAccessManager();
     $joinFieldB = $accessManager->getJoinOnViewerID();
     $joinPair = new JoinPair($joinFieldA, $joinFieldB);
     $multiTable->addRowManager($accessManager, $joinPair);
     $multiTable->constructSearchCondition('accountadminaccess_privilege', '<=', $this->getAccessPrivilege(), true);
     return $multiTable->getListIterator($sortBy);
 }
예제 #5
0
function process_Form($sqlResult, $template, $errorMessages)
{
    //get the names that are being searched
    $fName = $_REQUEST['fName'];
    $lName = $_REQUEST['lName'];
    //create the needed row managers
    $personM = new RowManager_PersonManager();
    $accessM = new RowManager_AccessManager();
    $viewerM = new RowManager_ViewerManager();
    //setup the join pair needed
    $join = new JoinPair($personM->getJoinOnFieldX('person_id'), $accessM->getJoinOnFieldX('person_id'));
    //create the multi table manager and initialize it
    $MTM = new MultiTableManager();
    $MTM->addRowManager($personM);
    $MTM->addRowManager($accessM, $join);
    //if there is a first name being searched - add that as a condition
    if ($fName != "") {
        $MTM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true);
        $personM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true);
    }
    //if there is a last name being searched - add that as a condition
    if ($lName != "") {
        $MTM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true);
        $personM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true);
    }
    //jump to a display function to show what was reteived from the person database
    //$sqlResult = $personM->find();
    //$rows = showContents($sqlResult, $personM, $personM->getFields());
    //jump to a display function to show what was reteived after joining the databases
    $sqlResult = $MTM->find();
    //$rows = showContents($sqlResult, $personM, $personM->getFields());
    $sqlResult->setFirst();
    //create a new viewer manager to keep data pure
    $viewM = new RowManager_ViewerManager();
    //loop through the results saving them to be displayed
    for ($i = 0; $i < $sqlResult->getRowCount(); $i++) {
        //get the next result and the values
        $sqlResult->getNext($personM);
        $f_name[] = $personM->getValueByFieldName('person_fname');
        $l_name[] = $personM->getValueByFieldName('person_lname');
        $person_id[] = $personM->getValueByFieldName('person_id');
        //get the current accessManager values
        $sqlResult->getCurrent($accessM);
        //create the join for access table -> viewer table and search the database for the record
        $join = new JoinPair($accessM->getJoinOnFieldX('viewer_id'), $viewerM->getJoinOnFieldX('viewer_id'));
        $MTM = new MultiTableManager();
        $MTM->addRowManager($accessM);
        $MTM->addRowManager($viewerM, $join);
        $MTM->constructSearchCondition('viewer_id', '=', $accessM->getValueByFieldName('viewer_id'), true);
        $sqlResult2 = $MTM->find();
        //add the needed information to the arrays to be displayed in the template file
        $sqlResult2->getNext($viewM);
        $viewer_id[] = $viewM->getValueByFieldName('viewer_id');
        $user_id[] = $viewM->getValueByFieldName('viewer_userID');
    }
    //check if there was any result from the initial database query, if not add an error message
    if ($sqlResult->getRowCount() < 1) {
        $errorMessages = 'Failed to join database to get label';
        $template->set('f_name', null);
    } else {
        //add the needed information to the template
        $template->set('f_name', $f_name);
        $template->set('l_name', $l_name);
        $template->set('viewer_id', $viewer_id);
        $template->set('person_id', $person_id);
        $template->set('user_id', $user_id);
    }
}
 protected function getFieldValuesArray($regID = '', $personID = '', $eventID = '')
 {
     $FALSE = 0;
     $fields = new RowManager_FieldManager();
     $fvalues = new RowManager_FieldValueManager();
     $ftypes = new RowManager_FieldTypeManager();
     // 		 echo "personID = ".$personID;
     // 		 echo "eventID = ".$eventID;
     if ($regID != '') {
         //$fields->setEventID($eventID);
         $fvalues->setRegID($regID);
     } else {
         if ($eventID != '' && $personID != '') {
             $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);
                 $regID = $regValue['registration_id'];
                 //NOTE: assumes only 1 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');
     $valuesIterator = $fieldInfo->getListIterator();
     $valuesArray = $valuesIterator->getDataList();
     //        echo "field values:<br><pre>".print_r($valuesArray,true)."</pre>";
     // store field ids associated with values already in database
     $initializedFieldIds = array_keys($valuesArray);
     // since each field value is located in a DB row the result array has several arrays - one per field value
     // need to extract each field value and store it as a non-array record in a result array
     $fieldValues = array();
     $idx = 0;
     /** Go through all event fields and map each to existing field value, otherwise create new field value record **/
     $fieldsArray = array_values($this->formFieldToFieldIDmapper);
     // store field IDs (ASSUMES formFieldToFieldIDmapper is initialized)
     //         echo 'fieldsArray = <pre>'.print_r($fieldsArray,true).'</pre>';
     reset($fieldsArray);
     reset($valuesArray);
     foreach (array_keys($fieldsArray) as $k) {
         $fieldID = current($fieldsArray);
         $form_value = '';
         // default blank field value if none found
         $form_value_id = -1;
         // to be replaced with existing or newly-created field values ID
         if (in_array($fieldID, $initializedFieldIds) == true) {
             $record = $valuesArray[$fieldID];
             $form_value = $record['fieldvalues_value'];
             $form_value_id = $record['fieldvalues_id'];
         } else {
             $updateValues = array();
             $updateValues['fields_id'] = $fieldID;
             $updateValues['fieldvalues_value'] = $form_value;
             $updateValues['registration_id'] = $regID;
             $fieldvalues_manager = new RowManager_FieldValueManager();
             // store values in table manager object.
             $fieldvalues_manager->loadFromArray($updateValues);
             // now update the DB with the values
             if (!$fieldvalues_manager->isLoaded()) {
                 $fieldvalues_manager->createNewEntry(true);
                 $form_value_id = $fieldvalues_manager->getID();
             }
         }
         $fieldValues['form_field' . $idx] = $form_value;
         // store mapping associating form field label with fieldvalues_id
         $this->formFieldToValueIDmapper['form_field' . $idx] = $form_value_id;
         next($fieldsArray);
         $idx++;
     }
     // 			echo 'labels-values = <pre>'.print_r($this->formFieldToValueIDmapper,true).'</pre>';
     // 			echo 'labels-fields = <pre>'.print_r($this->formFieldToFieldIDmapper,true).'</pre>';
     return $fieldValues;
 }
 protected function getFooterFieldValuesArray($personID = '', $formID = '', $isRepeatable = true)
 {
     $FALSE = 0;
     $fields = new RowManager_FormFieldManager();
     $fields->setFieldGroupID(FormProcessor_EditStaffScheduleForm::NO_FIELDGROUP_ID);
     // HSMIT added
     $fvalues = new RowManager_FormFieldValueManager();
     $ftypes = new RowManager_FieldTypeManager();
     if ($personID != '') {
         //$fields->setFormID($formID);
         $fvalues->setPersonID($personID);
     }
     $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);
     }
     // filter out repeatable fields if flag set to FALSE
     if ($isRepeatable == false) {
         $fieldInfo->constructSearchCondition('fieldgroup_id', '=', '0', true);
     } else {
         $fieldInfo->constructSearchCondition('fieldgroup_id', '!=', '0', true);
     }
     $fieldInfo->setSortOrder('fields_priority');
     $valuesIterator = $fieldInfo->getListIterator();
     $valuesArray = $valuesIterator->getDataList();
     //        echo "field values:<br><pre>".print_r($valuesArray,true)."</pre>";
     // store field ids associated with values already in database
     $initializedFieldIds = array_keys($valuesArray);
     // since each field value is located in a DB row the result array has several arrays - one per field value
     // need to extract each field value and store it as a non-array record in a result array
     $fieldValues = array();
     $idx = $this->total_nonrepeatable_fields;
     // initialize counter to first available form ID (some used already)
     /** Go through all event fields and map each to existing field value, otherwise create new field value record **/
     $fieldsArray = array_values($this->footerFieldToFieldIDmapper);
     // store field IDs (ASSUMES formFieldToFieldIDmapper is initialized)
     //         echo 'fieldsArray = <pre>'.print_r($fieldsArray,true).'</pre>';
     reset($fieldsArray);
     reset($valuesArray);
     foreach (array_keys($fieldsArray) as $k) {
         $fieldID = current($fieldsArray);
         $form_value = '';
         // default blank field value if none found
         $form_value_id = -1;
         // to be replaced with existing or newly-created field values ID
         if (in_array($fieldID, $initializedFieldIds) == true) {
             $record = $valuesArray[$fieldID];
             $form_value = $record['fieldvalues_value'];
             $form_value_id = $record['fieldvalues_id'];
         } else {
             $updateValues = array();
             $updateValues['fields_id'] = $fieldID;
             $updateValues['fieldvalues_value'] = $form_value;
             $updateValues['person_id'] = $personID;
             $fieldvalues_manager = new RowManager_FormFieldValueManager();
             // store values in table manager object.
             $fieldvalues_manager->loadFromArray($updateValues);
             // now update the DB with the values
             if (!$fieldvalues_manager->isLoaded()) {
                 // 			        echo "new entry ".$fieldID.", ".$personID;
                 $fieldvalues_manager->createNewEntry();
                 $form_value_id = $fieldvalues_manager->getID();
             }
         }
         $fieldValues['form_field' . $idx] = $form_value;
         // store mapping associating form field label with fieldvalues_id
         $this->footerFieldToValueIDmapper['form_field' . $idx] = $form_value_id;
         next($fieldsArray);
         $idx++;
     }
     // 			echo 'labels-values = <pre>'.print_r($this->formFieldToValueIDmapper,true).'</pre>';
     // 			echo 'labels-fields = <pre>'.print_r($this->formFieldToFieldIDmapper,true).'</pre>';
     return $fieldValues;
 }
예제 #8
0
function process_Form($sqlResult, $template, $errorMessages)
{
    //get the names that are being searched
    $fName = $_REQUEST['fName'];
    $lName = $_REQUEST['lName'];
    //create the needed row managers
    $personM = new RowManager_PersonManager();
    $accessM = new RowManager_AccessManager();
    $viewerM = new RowManager_ViewerManager();
    //setup the join pair needed
    $join = new JoinPair($personM->getJoinOnFieldX('person_id'), $accessM->getJoinOnFieldX('person_id'));
    //create the multi table manager and initialize it
    $MTM = new MultiTableManager();
    $MTM->addRowManager($personM);
    $MTM->addRowManager($accessM, $join);
    //if there is a first name being searched - add that as a condition
    if ($fName != "") {
        $MTM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true);
        $personM->constructSearchCondition('person_fname', ' LIKE ', '%' . $fName . '%', true);
    }
    //if there is a last name being searched - add that as a condition
    if ($lName != "") {
        $MTM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true);
        $personM->constructSearchCondition('person_lname', ' LIKE ', '%' . $lName . '%', true);
    }
    //jump to a display function to show what was reteived from the database
    $rows = showContents($personM->find(), $personM, $personM->getFields());
    echo '<b>' . $rows . ' accounts found in the person table.</b><br><br>';
    //jump to a display function to show what was reteived from the database
    $sqlResult = $MTM->find();
    echo '<b>' . $sqlResult->getRowCount() . ' connections made between person table and access groups.</b><br>';
    $rows = showContents($sqlResult, $personM, $personM->getFields());
    $sqlResult->setFirst();
    $viewM = new RowManager_ViewerManager();
    for ($i = 0; $i < $sqlResult->getRowCount(); $i++) {
        $sqlResult->getNext($personM);
        $f_name[] = $personM->getValueByFieldName('person_fname');
        $l_name[] = $personM->getValueByFieldName('person_lname');
        $person_id[] = $personM->getValueByFieldName('person_id');
        $sqlResult->getCurrent($accessM);
        $join = new JoinPair($accessM->getJoinOnFieldX('viewer_id'), $viewerM->getJoinOnFieldX('viewer_id'));
        $MTM = new MultiTableManager();
        $MTM->addRowManager($accessM);
        $MTM->addRowManager($viewerM, $join);
        $MTM->constructSearchCondition('viewer_id', '=', $accessM->getValueByFieldName('viewer_id'), true);
        $sqlResult2 = $MTM->find();
        $sqlResult2->getNext($viewM);
        $viewer_id[] = $viewM->getValueByFieldName('viewer_id');
        $user_id[] = $viewM->getValueByFieldName('viewer_userID');
    }
    if ($sqlResult->getRowCount() < 1) {
        $errorMessages = 'Failed to join database to get label';
        $template->set('f_name', null);
    } else {
        $template->set('f_name', $f_name);
        $template->set('l_name', $l_name);
        $template->set('viewer_id', $viewer_id);
        $template->set('person_id', $person_id);
        $template->set('user_id', $user_id);
    }
}