示例#1
0
 public function execute()
 {
     $db = PdoFactory::getPdoInstance();
     $query = "SELECT hms_assignment.banner_id, hms_hall_structure.room_number, hms_hall_structure.hall_name\n              FROM hms_assignment\n              JOIN hms_hall_structure\n                  ON hms_assignment.bed_id = hms_hall_structure.bedid\n              WHERE\n                hms_assignment.term = :term and\n                roomid IN (SELECT room_id\n                            FROM hms_learning_community_assignment\n                            JOIN hms_learning_community_applications\n                                ON hms_learning_community_assignment.application_id = hms_learning_community_applications.id\n                            JOIN hms_assignment\n                                ON (hms_learning_community_applications.username = hms_assignment.asu_username AND hms_learning_community_applications.term = hms_assignment.term)\n                            JOIN hms_bed\n                                ON hms_assignment.bed_id = hms_bed.id\n                            JOIN hms_room\n                                ON hms_bed.room_id = hms_room.id\n                            WHERE\n                                hms_learning_community_applications.term = :term)\n              ORDER BY roomid";
     $stmt = $db->prepare($query);
     $params = array('term' => $this->term);
     $stmt->execute($params);
     $queryResult = $stmt->fetchAll(PDO::FETCH_ASSOC);
     $results = array();
     $i = 0;
     $count = 0;
     foreach ($queryResult as $result) {
         $tplVals = array();
         $tplVals['BANNER'] = $result['banner_id'];
         $student = StudentFactory::getStudentByBannerID($result['banner_id'], $this->term);
         $tplVals['USERNAME'] = $student->getUsername();
         $tplVals['FIRST_NAME'] = $student->getFirstName();
         $tplVals['LAST_NAME'] = $student->getLastName();
         $membership = RlcMembershipFactory::getMembership($student, $this->term);
         if ($membership) {
             $tplVals['COMMUNITY'] = $membership->getRlcName();
             $count++;
         } else {
             $tplVals['COMMUNITY'] = '';
         }
         $tplVals['HALL'] = $result['hall_name'];
         $tplVals['ROOM'] = $result['room_number'];
         $results[$i] = $tplVals;
         $i++;
     }
     $this->memberCount = $count;
     $this->data = $results;
 }
 public function execute(CommandContext $context)
 {
     if (!UserStatus::isAdmin() || !Current_User::allow('hms', 'assign_by_floor')) {
         PHPWS_Core::initModClass('hms', 'exception/PermissionException.php');
         throw new PermissionException('You do not have permission to assign students by floor.');
     }
     $username = $context->get('username');
     $banner_id = (int) $context->get('banner_id');
     $reason = $context->get('reason');
     $meal_plan = $context->get('meal_plan');
     $bed_id = $context->get('bed_id');
     $term = Term::getSelectedTerm();
     try {
         if ($banner_id) {
             $student = StudentFactory::getStudentByBannerID($banner_id, Term::getSelectedTerm());
         } elseif (!empty($username)) {
             $student = StudentFactory::getStudentByUsername($username, Term::getSelectedTerm());
         } else {
             $context->setContent(json_encode(array('status' => 'failure', 'message' => 'Did not receive Banner ID or user name.')));
             return;
         }
         try {
             HMS_Assignment::assignStudent($student, $term, null, $bed_id, $meal_plan, null, null, $reason);
         } catch (AssignmentException $e) {
             $context->setContent(json_encode(array('status' => 'failure', 'message' => $e->getMessage())));
             return;
         }
         $message = $student->first_name . ' ' . $student->last_name;
         $context->setContent(json_encode(array('status' => 'success', 'message' => $message, 'student' => $student)));
     } catch (\StudentNotFoundException $e) {
         $context->setContent(json_encode(array('status' => 'failure', 'message' => $e->getMessage())));
     }
 }
 public function execute(CommandContext $context)
 {
     if (!UserStatus::isAdmin() || !Current_User::allow('hms', 'search')) {
         PHPWS_Core::initModClass('hms', 'exception/PermissionException.php');
         throw new PermissionException('You do not have permission to lookup student names!');
     }
     $student = null;
     $error = new JsonError(403);
     $username = $context->get('username');
     $banner_id = (int) $context->get('banner_id');
     try {
         if ($banner_id) {
             $student = StudentFactory::getStudentByBannerID($banner_id, Term::getSelectedTerm());
         } elseif (!empty($username)) {
             $student = StudentFactory::getStudentByUsername($username, Term::getSelectedTerm());
         } else {
             $error->setMessage('Did not receive Banner ID or user name.');
             $context->setContent(json_encode($error));
         }
         $student->gender_string = HMS_Util::formatGender($student->gender);
         $context->setContent(json_encode($student));
     } catch (\StudentNotFoundException $e) {
         $error->setMessage($e->getMessage());
         $context->setContent(json_encode($error));
     }
 }
    public function execute(CommandContext $context)
    {
        $newrows = array();
        $pdo = PdoFactory::getPdoInstance();
        $floor_id = (int) $context->get('floorId');
        $query = <<<EOF
select\troom.id as room_id,
\troom.room_number,
\troom.gender_type,
\tbed.id as bed_id,
\tbed.bedroom_label,
\tbed.bed_letter,
\tassign.banner_id,
\tassign.meal_option,
        assign.asu_username
from  \thms_room as room
\tfull join
\t\thms_bed as bed on room.id=bed.room_id
\tfull join
\t\thms_assignment as assign on bed.id=assign.bed_id
where\troom.floor_id = :floor_id
order by room_number asc, bedroom_label, bed_letter;
EOF;
        $prep = $pdo->prepare($query);
        $prep->execute(array(':floor_id' => $floor_id));
        $rows = $prep->fetchAll(PDO::FETCH_ASSOC);
        if (empty($rows)) {
            $context->setContent(json_encode(array()));
            return;
        }
        $count = -1;
        $room_number_track = 0;
        foreach ($rows as $k => $v) {
            $gender = HMS_Util::formatGender($v['gender_type']);
            if ($v['banner_id']) {
                $student = StudentFactory::getStudentByBannerID($v['banner_id'], Term::getSelectedTerm());
                if ($student) {
                    $v['student'] = $student->first_name . ' ' . $student->last_name;
                } else {
                    $v['student'] = null;
                }
            } else {
                $v['student'] = null;
            }
            if ($v['room_number'] != $room_number_track) {
                $count++;
                $newrows[$count]['room_number'] = $v['room_number'];
                $newrows[$count]['gender'] = $gender;
                $newrows[$count]['beds'][] = $v;
                $room_number_track = $v['room_number'];
            } else {
                $newrows[$count]['beds'][] = $v;
            }
        }
        $context->setContent(json_encode($newrows));
    }
 public function execute(CommandContext $context)
 {
     PHPWS_Core::initModClass('hms', 'StudentFactory.php');
     PHPWS_Core::initModClass('hms', 'RoommateProfile.php');
     PHPWS_Core::initModClass('hms', 'RoommateProfileView.php');
     $student = StudentFactory::getStudentByBannerID($context->get('banner_id'), $context->get('term'));
     $profile = RoommateProfileFactory::getProfile($context->get('banner_id'), $context->get('term'));
     $view = new RoommateProfileView($student, $profile);
     $context->setContent($view->show());
 }
示例#6
0
 public function execute()
 {
     PHPWS_Core::initModClass('hms', 'PdoFactory.php');
     $db = PdoFactory::getInstance()->getPdo();
     $query = 'SELECT hms_assignment.banner_id, hms_assignment.reason,
               hms_hall_structure.hall_name, hms_hall_structure.room_number, hms_hall_structure.bed_letter
               FROM hms_assignment
               JOIN hms_hall_structure ON hms_assignment.bed_id = hms_hall_structure.bedid
               WHERE hms_assignment.banner_id
               NOT IN (SELECT hms_assignment.banner_id
                       FROM hms_assignment
                       JOIN hms_bed ON hms_assignment.bed_id = hms_bed.id
                       JOIN hms_checkin ON hms_bed.persistent_id = hms_checkin.bed_persistent_id
                       WHERE hms_assignment.bed_id = hms_checkin.bed_id
                       AND hms_assignment.banner_id = hms_checkin.banner_id
                       AND hms_assignment.term = :term)
               AND hms_assignment.term = :term';
     $stmt = $db->prepare($query);
     $stmt->execute(array('term' => $this->term));
     $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
     $rows = array();
     $i = 0;
     foreach ($results as $row) {
         $rowVals = array();
         $student = StudentFactory::getStudentByBannerID($row['banner_id'], $this->term);
         $rowVals['banner_id'] = $row['banner_id'];
         $rowVals['username'] = $student->getUsername();
         $rowVals['name'] = $student->getFullName();
         $rowVals['class'] = $student->getClass();
         $rowVals['reason'] = constant($row['reason']);
         $rowVals['hall_name'] = $row['hall_name'];
         $rowVals['room_number'] = $row['room_number'];
         $rowVals['bed_letter'] = $row['bed_letter'];
         $rows[$i] = $rowVals;
         $i++;
     }
     $this->total = $i;
     $this->data = $rows;
 }
示例#7
0
 public function get_assignee()
 {
     PHPWS_Core::initModClass('hms', 'StudentFactory.php');
     if (!$this->loadAssignment()) {
         return false;
     }
     if (!isset($this->_curr_assignment->banner_id)) {
         return NULL;
     } else {
         return StudentFactory::getStudentByBannerID($this->_curr_assignment->getBannerId(), $this->term);
     }
 }
示例#8
0
 /**
  * Pulls the assignment history for the current bed and plugs in the student profile link.
  * Returns null if no history is found.
  * @return array
  */
 private function getBedHistoryArray()
 {
     $db = \Database::newDB();
     $t1 = $db->addTable('hms_assignment_history');
     $t1->addFieldConditional('bed_id', $this->bed->id);
     /*
      if (isset($this->bed->_curr_assignment)) {
      $t1->addFieldConditional('banner_id', $this->bed->_curr_assignment->banner_id, '!=');
      }
     *
     */
     $t1->addOrderBy('assigned_on', 'DESC');
     $result = $db->select();
     if (empty($result)) {
         return null;
     }
     foreach ($result as $key => $assignment) {
         $student = StudentFactory::getStudentByBannerID($assignment['banner_id'], $this->bed->getTerm());
         $result[$key]['assigned_on_date'] = HMS_Util::get_short_date_time($assignment['assigned_on']);
         if (empty($assignment['removed_on'])) {
             $result[$key]['removed_on_date'] = 'Never';
         } else {
             $result[$key]['removed_on_date'] = HMS_Util::get_short_date_time($assignment['removed_on']);
         }
         $result[$key]['student'] = $student->getProfileLink();
     }
     return $result;
 }
示例#9
0
 /**
  * Sends the appropriate emails for an officially denied room change request.
  *
  * @param $r RoomChangeRequest The Room Change Request that has been denied
  */
 public static function sendRoomChangeDeniedNotice(RoomChangeRequest $r)
 {
     $subject = 'Room Change Denied';
     $template = 'email/roomChangeDeniedNotice.tpl';
     $recipients = array();
     $tags = array('PARTICIPANTS' => array());
     $reason = $r->getDeniedReasonPublic();
     if (!is_null($reason) && !empty($reason)) {
         $tags['REASON'] = $reason;
     }
     // Add information about participants, also add each participant to recipients
     foreach ($r->getParticipants() as $p) {
         $student = StudentFactory::getStudentByBannerID($p->getBannerID(), $r->getTerm());
         $recipients[] = $student;
         $tags['PARTICIPANTS'][] = array('NAME' => $student->getName());
     }
     // Add any approvers that may have seen the previous email to recipients
     foreach ($r->getAllPotentialApprovers() as $a) {
         $recipients[] = array($a . TO_DOMAIN => '');
     }
     // Send a message per recipient
     $message = self::makeSwiftmailMessage(null, $subject, $tags, $template);
     foreach ($recipients as $r) {
         if ($r instanceof Student) {
             $message->setTo($r->getUsername() . TO_DOMAIN);
         } else {
             $message->setTo($r);
         }
         self::sendSwiftmailMessage($message);
     }
 }
示例#10
0
 /**
  * Sets up the row tags for the pager
  *
  * @return Array Array of template tags.
  */
 public function getPagerTags()
 {
     $student = StudentFactory::getStudentByBannerID($this->banner_id, $this->term);
     $tags = array();
     $tags['STUDENT_ID'] = $student->getUsername() . "@appstate.edu";
     $tags['FIRST_NAME'] = $student->getFirstName();
     $tags['LAST_NAME'] = $student->getLastName();
     $viewProfileCmd = CommandFactory::getCommand('ShowRoommateProfile');
     $viewProfileCmd->setBannerid($student->getBannerId());
     $viewProfileCmd->setTerm($this->term);
     $tags['ACTIONS'] = $viewProfileCmd->getLink('[View Profile]');
     return $tags;
 }