Пример #1
0
 protected function setRegistrationStatus()
 {
     $backup_event_id = -1;
     $status_message = 'No registration created!';
     if (isset($this->reg_id) && $this->reg_id != '') {
         // check cim_hrdb_person to determine if a person has been affiliated with registration
         $regs = new RowManager_RegistrationManager();
         $regs->setRegID($this->reg_id);
         $person = new RowManager_PersonManager();
         $regCheck = new MultiTableManager();
         $regCheck->addRowManager($regs);
         $regCheck->addRowManager($person, new JoinPair($regs->getJoinOnPersonID(), $person->getJoinOnPersonID()));
         $regsList = $regCheck->getListIterator();
         $regsArray = $regsList->getDataList();
         // variables to be used for later checks
         $person_id = '';
         $confirm_num = '';
         $person_address = '';
         $person_email = '';
         $person_city = '';
         $person_province = '0';
         $person_pcode = '';
         $person_phone = '';
         reset($regsArray);
         // should be only one registration status (for 1 reg_id)
         foreach (array_keys($regsArray) as $k) {
             $record = current($regsArray);
             $backup_event_id = $record['event_id'];
             $person_id = $record['person_id'];
             $confirm_num = $record['registration_confirmNum'];
             $person_email = $record['person_email'];
             $person_address = $record['person_addr'];
             $person_city = $record['person_city'];
             $person_province = $record['province_id'];
             $person_pcode = $record['person_pc'];
             $person_phone = $record['person_phone'];
             next($regsArray);
         }
         // determine whether any person records were found for registration
         if (!isset($regsArray) || count($regsArray) < 1) {
             $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
             $status_message = 'No person record associated with registration.';
             // ASSUMPTION: set reg_id ==> created registration record
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         } else {
             if (isset($regsArray) && ($person_email == '' || $person_address == '' || $person_city == '' || $person_province == '' || $person_province == '0' || $person_pcode == '' || $person_phone == '')) {
                 $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
                 $status_message = 'Please ensure that you have entered the following data:' . '<br> name, e-mail address, permanent address, city, province, postal code, and phone number.';
                 return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
             }
         }
         // check cim_hrdb_assignment to determine that the person has been assigned to a campus
         $assign = new RowManager_AssignmentsManager();
         $assign->setPersonID($person_id);
         $status = new RowManager_CampusAssignmentStatusManager();
         $campusAssign = new MultiTableManager();
         $campusAssign->addRowManager($assign);
         $campusAssign->addRowManager($status, new JoinPair($assign->getJoinOnStatusID(), $status->getJoinOnStatusID()));
         $regsList = $campusAssign->getListIterator();
         $regsArray = $regsList->getDataList();
         // variables to be used for later checks
         $assignArray = array();
         $this->campus_id = '';
         reset($regsArray);
         // should be only one campus assignment status (for now, later maybe not)
         foreach (array_keys($regsArray) as $k) {
             $record = current($regsArray);
             if ($record['assignmentstatus_desc'] != RowManager_AssignmentsManager::UNKNOWN_STATUS) {
                 $this->campus_id = $record['campus_id'];
                 $assignArray[$this->campus_id] = $record['assignmentstatus_desc'];
             }
             next($regsArray);
         }
         // determine whether a campus assignment exists for the found person linked to the registration
         if (!isset($assignArray) || count($assignArray) < 1) {
             $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
             $status_message = "Please ensure that the registrant is assigned to a valid campus and has a valid status.";
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         }
         // check cim_reg_fieldvalues to determine whether field values have been set for the registration
         $fields = new RowManager_FieldManager();
         $fields->setEventID($this->event_id);
         $TRUE = 1;
         $fields->setIsRequired($TRUE);
         $fieldsList = $fields->getListIterator();
         $fieldsArray = $fieldsList->getDataList();
         // 		     reset($fieldsArray);	// should be only one campus assignment status (for now, later maybe not)
         // 		     foreach (array_keys($fieldsArray) as $k)
         // 		     {
         // 			     $record = current($fieldsArray);
         //
         // 			     next($fieldsArray);
         // 		     }
         $fieldValues = new RowManager_FieldValueManager();
         $fieldValues->setRegID($this->reg_id);
         $valuesList = $fieldValues->getListIterator();
         $valuesArray = $valuesList->getDataList();
         // 		     reset($regsArray);	// should be only one campus assignment status (for now, later maybe not)
         // 		     foreach (array_keys($regsArray) as $k)
         // 		     {
         // 			     $record = current($regsArray);
         //
         // 			     $assignArray[$record['campus_id'] = $record['assignmentstatus_desc']
         // 			     next($regsArray);
         // 		     }
         // ensure that the REQUIRED fields for an event all have a record for the particular registration
         if (count($valuesArray) < count($fieldsArray)) {
             $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
             $status_message = 'Some required event-specific field values were NOT set for the registration.';
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         }
         if (!isset($this->event_id) || $this->event_id == '') {
             $this->event_id = $backup_event_id;
             // should have been set earlier when retrieving reg. data...
         }
         // retrieve event deposit for later use
         $event = new RowManager_EventManager();
         $event->setEventID($this->event_id);
         $eventsList = $event->getListIterator();
         $eventsArray = $eventsList->getDataList();
         $event_deposit = -1;
         $event_basePrice = -1;
         reset($eventsArray);
         // should be only one event per event_id
         foreach (array_keys($eventsArray) as $k) {
             $record = current($eventsArray);
             $event_deposit = $record['event_deposit'];
             next($eventsArray);
         }
         if ($event_deposit == -1) {
             $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
             $status_message = 'Invalid event associated with registration.';
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         }
         // check cim_reg_cashtransaction and cim_reg_cctransaction tables to determine if event deposit has been paid
         $ccTransaction = new RowManager_CreditCardTransactionManager();
         $ccTransaction->setRegID($this->reg_id);
         $ccTransList = $ccTransaction->getListIterator();
         $ccTransArray = $ccTransList->getDataList();
         $ccAmount = 0;
         reset($ccTransArray);
         foreach (array_keys($ccTransArray) as $k) {
             $record = current($ccTransArray);
             $ccAmount += $record['cctransaction_amount'];
             next($ccTransArray);
         }
         // check cash
         $cashTransaction = new RowManager_CashTransactionManager();
         $cashTransaction->setRegID($this->reg_id);
         $cashTransList = $cashTransaction->getListIterator();
         $cashTransArray = $cashTransList->getDataList();
         $cashAmount = 0;
         reset($cashTransArray);
         foreach (array_keys($cashTransArray) as $k) {
             $record = current($cashTransArray);
             $cashAmount += $record['cashtransaction_amtPaid'];
             next($cashTransArray);
         }
         // check scholarship
         $scholarship = new RowManager_ScholarshipAssignmentManager();
         $scholarship->setRegID($this->reg_id);
         $scholarshipList = $scholarship->getListIterator();
         $scholarshipArray = $scholarshipList->getDataList();
         $scholarshipAmount = 0;
         reset($scholarshipArray);
         foreach (array_keys($scholarshipArray) as $k) {
             $record = current($scholarshipArray);
             $scholarshipAmount += $record['scholarship_amount'];
             next($scholarshipArray);
         }
         if ($ccAmount + $cashAmount + $scholarshipAmount < $event_deposit) {
             $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
             $status_message = 'The event deposit of $' . $event_deposit . ' has not been paid.';
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         }
         // check that confirmation # exists and is in proper format (check that format is 'E<event_id>R<reg_id>C<campus_id>')
         $anyNum = '[0-9]+';
         // allow any number for campus ID because person may have been assigned new campuses
         $pattern = '(E' . $this->event_id . 'R' . $this->reg_id . 'C' . $anyNum . ')';
         if (!isset($confirm_num) || preg_match($pattern, $confirm_num) < 1) {
             // if campus-id missing from confirm. # then
             // search for campus-id, since user may have created new campus assignment during process
             $pattern = '(E' . $this->event_id . 'R' . $this->reg_id . 'C)';
             if (preg_match($pattern, $confirm_num) >= 1) {
                 $campusAssigned = new RowManager_AssignmentsManager();
                 $campusAssigned->setPersonID($person_id);
                 $assignmentsList = $campusAssigned->getListIterator();
                 $assignmentsArray = $assignmentsList->getDataList();
                 $assignment = current($assignmentsArray);
                 $campusID = $assignment['campus_id'];
                 // retrieve latest campus_id assigned to registrant
                 // update confirmation # in database for the proper registration
                 $updateArray = array();
                 $updateArray['registration_id'] = $this->reg_id;
                 $updateArray['registration_confirmNum'] = $confirm_num . $campusID;
                 // append the new campus_ID
                 $regsManager = new RowManager_RegistrationManager($this->reg_id);
                 $regsManager->loadFromArray($updateArray);
                 $regsManager->updateDBTable();
             } else {
                 $this->storeRegStatus($this->reg_id, RowManager_StatusManager::INCOMPLETE);
                 $status_message = 'The confirmation number has not been properly set.';
                 return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
             }
         }
         // 			  $status = new RowManager_StatusManager();
         // 			  $status->setStatusDesc(RowManager_StatusManager::REGISTERED);
         //
         // 		     $statusList = $status->getListIterator();
         // 		     $statusArray = $statusList->getDataList();
         // 		     $status_id = -1;
         // 		     reset($statusArray);		// should be only 1 record for a particular status description
         // 		     foreach (array_keys($statusArray) as $k)
         // 		     {
         // 			     $record = current($statusArray);
         // 			     $status_id = $record['status_id'];
         //
         // 			     next($statusArray);
         // 		     }
         //
         // 		     if ($status_id == -1)
         // 		     {
         // 			     $status_message = 'The registration status could not be properly set to REGISTERED.';
         // 					return  RowManager_StatusManager::INCOMPLETE.'|'.$status_message;
         // 			  }
         //
         // 			  $updateValues = array();
         // 			  $updateValues['registration_id'] = $this->reg_id;
         // 			  $updateValues['registration_status'] = $status_id;	// mark registration as being REGISTERED
         //
         //             // Store values in RegistrationManager object
         //             $regs->loadFromArray( $updateValues );
         // //              echo "<pre>".print_r($this->formValues ,true)."</pre>";
         //
         //             // update information
         //              $regs->updateDBTable();
         $success = $this->storeRegStatus($this->reg_id, RowManager_StatusManager::REGISTERED);
         if ($success == false) {
             $status_message = 'The registration status could not be properly set to REGISTERED.';
             return RowManager_StatusManager::INCOMPLETE . '|' . $status_message;
         } else {
             $status_message = '';
             return RowManager_StatusManager::REGISTERED . '|' . $status_message;
         }
     } else {
         return RowManager_StatusManager::UNASSIGNED . '|' . $status_message;
     }
 }
Пример #2
0
 private function deleteAssociatedRegRecords($reg_id)
 {
     // delete any CC transactions linked to the registration record
     $ccTrans = new RowManager_CreditCardTransactionManager();
     $ccTrans->setRegID($reg_id);
     $ccTransList = $ccTrans->getListIterator();
     $ccTransArray = $ccTransList->getDataList();
     reset($ccTransArray);
     foreach (array_keys($ccTransArray) as $k) {
         $record = current($ccTransArray);
         $ccTransID = $record['cctransaction_id'];
         // delete any CC transaction receipts linked to the registration record
         $ccReceipt = new RowManager_ReceiptManager($ccTransID);
         $ccReceipt->deleteEntry();
         // delete CC trans record now that we know CC trans. ID
         $deleteCCtrans = new RowManager_CreditCardTransactionManager($ccTransID);
         $deleteCCtrans->deleteEntry();
         next($ccTransArray);
     }
     // delete any cash transactions linked to the registration record
     $cashTrans = new RowManager_CashTransactionManager();
     $cashTrans->setRegID($reg_id);
     $cashTransList = $cashTrans->getListIterator();
     $cashTransArray = $cashTransList->getDataList();
     reset($cashTransArray);
     foreach (array_keys($cashTransArray) as $k) {
         $record = current($cashTransArray);
         $cashTransID = $record['cashtransaction_id'];
         // delete cash trans record now that we know cash trans. ID
         $deleteCashTrans = new RowManager_CashTransactionManager($cashTransID);
         $deleteCashTrans->deleteEntry();
         next($cashTransArray);
     }
     // delete any scholarships linked to the registration record
     $scholarship = new RowManager_ScholarshipAssignmentManager();
     $scholarship->setRegID($reg_id);
     $scholarshipList = $scholarship->getListIterator();
     $scholarshipArray = $scholarshipList->getDataList();
     reset($scholarshipArray);
     foreach (array_keys($scholarshipArray) as $k) {
         $record = current($scholarshipArray);
         $scholarshipID = $record['scholarship_id'];
         // delete cash trans record now that we know scholarship ID
         $deleteScholarship = new RowManager_ScholarshipAssignmentManager($scholarshipID);
         $deleteScholarship->deleteEntry();
         next($scholarshipArray);
     }
     // delete any field values linked to the registration record
     $fieldValues = new RowManager_FieldValueManager();
     $fieldValues->setRegID($reg_id);
     $fieldValuesList = $fieldValues->getListIterator();
     $fieldValuesArray = $fieldValuesList->getDataList();
     reset($fieldValuesArray);
     foreach (array_keys($fieldValuesArray) as $k) {
         $record = current($fieldValuesArray);
         $fieldValueID = $record['fieldvalues_id'];
         // delete cash trans record now that we know field value ID
         $deleteFieldValue = new RowManager_FieldValueManager($fieldValueID);
         $deleteFieldValue->deleteEntry();
         next($fieldValuesArray);
     }
 }
Пример #3
0
 /**
  * function getCCTransactions
  * <pre>
  * Returns array of arrays, indexed by credit card transaction ID
  * </pre>
  * @param $regID [INTEGER]		registration ID
  * @return [ARRAY] the array of credit card  transaction records for registration $regID
  */
 function getCCTransactions($regID)
 {
     $ccTransactions = new RowManager_CreditCardTransactionManager();
     $ccTransactions->setRegID($regID);
     $ccTransIterator = $ccTransactions->getListIterator();
     $ccTransArray = $ccTransIterator->getDataList();
     //echo "<pre>".print_r($ccTransArray,true)."</pre>";
     return $ccTransArray;
 }
 protected function getPreviousPaid()
 {
     // Get previously processed CC transactions
     $ccTransManager = new RowManager_CreditCardTransactionManager();
     $ccTransManager->setRegID($this->reg_id);
     $ccTransManager->setProcessed(true);
     $ccTransList = $ccTransManager->getListIterator();
     $ccTransArray = $ccTransList->getDataList();
     $paid = 0;
     reset($ccTransArray);
     foreach (array_keys($ccTransArray) as $key) {
         $record = current($ccTransArray);
         $paid += $record['cctransaction_amount'];
         next($ccTransArray);
     }
     // Get previously processed cash transactions
     $cashTransManager = new RowManager_CashTransactionManager();
     $cashTransManager->setRegID($this->reg_id);
     $cashTransManager->setReceived(true);
     $cashTransList = $cashTransManager->getListIterator();
     $cashTransArray = $cashTransList->getDataList();
     reset($cashTransArray);
     foreach (array_keys($cashTransArray) as $key) {
         $record = current($cashTransArray);
         $paid += $record['cashtransaction_amtPaid'];
         next($cashTransArray);
     }
     return $paid;
 }