/**
  * Create a new RoomChangeParticipant
  *
  * @param RoomChangeRequest $request
  * @param Student $student
  * @param HMS_Bed $fromBed
  */
 public function __construct(RoomChangeRequest $request, Student $student, HMS_Bed $fromBed)
 {
     $this->id = 0;
     $this->request_id = $request->getId();
     $this->banner_id = $student->getBannerId();
     $this->from_bed = $fromBed->getId();
     // Set initial state
     $this->setState(new ParticipantStateNew($this, time(), null, UserStatus::getUsername()));
 }
 public static function getParticipantByRequestStudent(RoomChangeRequest $request, Student $student)
 {
     $db = PdoFactory::getPdoInstance();
     $query = "SELECT * FROM hms_room_change_curr_participant WHERE request_id = :request_id and banner_id = :bannerId";
     $stmt = $db->prepare($query);
     $params = array('request_id' => $request->getId(), 'bannerId' => $student->getBannerId());
     $stmt->execute($params);
     $stmt->setFetchMode(PDO::FETCH_CLASS, 'RoomChangeParticipantRestored');
     return $stmt->fetch();
 }
 public static function getCurrentState(RoomChangeRequest $request)
 {
     $db = PdoFactory::getPdoInstance();
     $query = "SELECT * FROM hms_room_change_curr_request WHERE id = :requestId";
     $stmt = $db->prepare($query);
     $stmt->execute(array('requestId' => $request->getId()));
     $result = $stmt->fetch(PDO::FETCH_ASSOC);
     $className = 'RoomChangeState' . $result['state_name'];
     return new $className($request, $result['effective_date'], $result['effective_until_date'], $result['committed_by']);
 }