Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion boost/install.sql
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ CREATE TABLE hms_residence_hall (
map_image_id integer DEFAULT 0,
room_plan_image_id integer DEFAULT 0,
assignment_notifications integer NOT NULL DEFAULT 1,
package_desk integer NOT NULL REFERENCES hms_package_desk(id),
package_desk integer REFERENCES hms_package_desk(id),
primary key(id)
);

Expand Down
27 changes: 27 additions & 0 deletions boost/updates/00-05-08.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
CREATE TABLE hms_package_desk (
id integer NOT NULL,
name character varying,
location character varying,
street character varying,
city character varying,
state character varying,
zip character varying,
PRIMARY KEY(id)
);

CREATE TABLE hms_package (
id integer NOT NULL,
carrier character varying,
tacking_number character varying,
addressed_to character varying,
addressed_phone character varying,
recipient_banner_id integer NOT NULL,
received_on integer NOT NULL,
received_by character varying,
package_desk integer NOT NULL references hms_package_desk(id),
pickedup_on integer,
released_by character varying,
PRIMARY KEY(id)
);

ALTER TABLE hms_residence_hall ADD COLUMN package_desk integer REFERENCES hms_package_desk(id);
46 changes: 46 additions & 0 deletions class/HMS_Email.php
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,52 @@ public static function sendAssignmentNotice($to, $name, $term, $location, Array
}
}

$student = StudentFactory::getStudentByUsername($to, $term);

$poBox = $student->getAddress('AB');
if($poBox)
{
$tpl['PO_NAME'] = $student->getName();
$tpl['PO_STREET_ONE'] = $poBox->line1;
if($poBox->line2)
{
$tpl['PO_STREET_TWO'] = $poBox->line2;
}
if($poBox->line3)
{
$tpl['PO_STREET_THREE'] = $poBox->line3;
}
$tpl['PO_CITY'] = $poBox->city;
$tpl['PO_STATE'] = $poBox->state;
$tpl['PO_ZIPCODE'] = $poBox->zip;
}
else
{
$tpl['PO_EMPTY_ADDRESS'] = 'Address for your P.O. Box is not currently available.';
}

$assignment = HMS_Assignment::getAssignment($student->getUsername(), $term);

if($assignment)
{
$bed = $assignment->get_parent();
$room = $bed->get_parent();
$floor = $room->get_parent();
$hall = $floor->get_parent();

$packageDesk = PackageDeskFactory::getPackageDeskById($hall->getPackageDeskId());

if($packageDesk)
{
$tpl['DESK_NAME'] = $student->getName();
$tpl['DESK_CO_LABEL'] = 'c/o: '. $packageDesk->name;
$tpl['DESK_STREET'] = $packageDesk->street;
$tpl['DESK_CITY'] = $packageDesk->city;
$tpl['DESK_STATE'] = $packageDesk->state;
$tpl['DESK_ZIPCODE'] = $packageDesk->zip;
}
}

$sem = Term::getTermSem($term);

switch($sem){
Expand Down
47 changes: 33 additions & 14 deletions class/PackageDeskFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
PHPWS_Core::initModClass('hms','PackageDesk.php');

class PackageDeskFactory {

public static function getPackageDesks()
{
$db = new PHPWS_DB('hms_package_desk');

$result = $db->select();

if (PHPWS_Error::logIfError($result)) {
throw new DatabaseException($result->toString());
}

$desks = array();

foreach ($result as $row) {
$desk = new RestoredPackageDesk();
$desk->setId($row['id']);
Expand All @@ -25,30 +25,49 @@ public static function getPackageDesks()
$desk->setCity($row['city']);
$desk->setState($row['state']);
$desk->setZip($row['zip']);

$desks[] = $desk;
}

return $desks;
}

public static function getPackageDesksAssoc()
{
$desks = self::getPackageDesks();

if (sizeof($desks) == 0) {
test('done!',1);
// var_dump($desks);
// exit;
return array();
}

$results = array();

foreach ($desks as $d) {
$results[$d->getId()] = $d->getName();
}

return $results;
}
}

/**
* Retrieves the package desk matching the given id from the database.
* @return array containing one PortalRestored object
*/
public static function getPackageDeskById($id)
{
$db = PdoFactory::getPdoInstance();
$query = 'SELECT * FROM hms_package_desk WHERE id = :deskId';
$stmt = $db->prepare($query);

$params = array(
'deskId' => $id
);

$stmt->execute($params);
$stmt->setFetchMode(PDO::FETCH_CLASS, 'RestoredPackageDesk');

return $stmt->fetch();
}
}
13 changes: 7 additions & 6 deletions class/ResidenceHallView.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,13 @@ public function show()
$form->addCheckBox('assignment_notifications', 1);
$form->setMatch('assignment_notifications', $this->hall->assignment_notifications);

// Package Desks
//PHPWS_Core::initModClass('hms', 'PackageDeskFactory.php');
//$packageDesks = PackageDeskFactory::getPackageDesksAssoc();

//$form->addDropBox('package_desk', $packageDesks);
//$form->setMatch('package_desk', $this->hall->getPackageDeskId());
//Package Desks

$packageDesks = PackageDeskFactory::getPackageDesksAssoc();
$packageDesks = array('-1' => 'None') + $packageDesks;
$form->addDropBox('package_desk', $packageDesks);
$form->setMatch('package_desk', $this->hall->getPackageDeskId());
$form->addCssClass('package_desk', 'form-control');

// Images
PHPWS_Core::initModClass('filecabinet', 'Cabinet.php');
Expand Down
8 changes: 8 additions & 0 deletions class/Student.php
Original file line number Diff line number Diff line change
Expand Up @@ -220,13 +220,17 @@ public function getAddress($type = null)
{
$pr_address = null;
$ps_address = null;
$ab_address = null;

foreach ($this->addressList as $address) {
if (((string) $address->atyp_code) == ADDRESS_PRMT_RESIDENCE) {
$pr_address = $address;
} else if (((string) $address->atyp_code) == ADDRESS_PRMT_STUDENT) {
$ps_address = $address;
} else if (((string) $address->atyp_code) == ADDRESS_ASU_BOX) {
$ab_address = $address;
}

}

# Decide which address type to return, based on $type parameter
Expand All @@ -237,6 +241,8 @@ public function getAddress($type = null)
# Since there was no ps address, return the ps address, if it exists
} else if (!is_null($ps_address)) {
return $ps_address;
} else if (!is_null($ab_address)){
return $ab_address;
} else {
# No address found, return false
return false;
Expand All @@ -245,6 +251,8 @@ public function getAddress($type = null)
return $pr_address;
} else if ($type == ADDRESS_PRMT_STUDENT && !is_null($ps_address)) {
return $ps_address;
} else if ($type == ADDRESS_ASU_BOX && !is_null($ab_address)){
return $ab_address;
} else {
# Either a bad type was specified (i.e. not null and not PS or PR)
# or the specified type was not found
Expand Down
45 changes: 45 additions & 0 deletions class/VerifyAssignmentView.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,51 @@ public function show()
$tpl['RLC'] = 'You have been assigned to the ' . $rlc_list[$rlc_assignment['rlc_id']];
}

$poBox = $this->student->getAddress('AB');
if($poBox)
{
$tpl['PO_NAME'] = $this->student->getName();
$tpl['PO_STREET_ONE'] = $poBox->line1;
if($poBox->line2)
{
$tpl['PO_STREET_TWO'] = $poBox->line2;
}
if($poBox->line3)
{
$tpl['PO_STREET_THREE'] = $poBox->line3;
}
$tpl['PO_CITY'] = $poBox->city;
$tpl['PO_STATE'] = $poBox->state;
$tpl['PO_ZIPCODE'] = $poBox->zip;
}
else
{
$tpl['PO_EMPTY_ADDRESS'] = 'Address for your P.O. Box is not currently available.';
}


if($assignment)
{
$bed = $assignment->get_parent();
$room = $bed->get_parent();
$floor = $room->get_parent();
$hall = $floor->get_parent();

$packageDesk = PackageDeskFactory::getPackageDeskById($hall->getPackageDeskId());



if($packageDesk)
{
$tpl['DESK_NAME'] = $this->student->getName();
$tpl['DESK_CO_LABEL'] = 'c/o: '. $packageDesk->name;
$tpl['DESK_STREET'] = $packageDesk->street;
$tpl['DESK_CITY'] = $packageDesk->city;
$tpl['DESK_STATE'] = $packageDesk->state;
$tpl['DESK_ZIPCODE'] = $packageDesk->zip;
}
}

$tpl['MENU_LINK'] = PHPWS_Text::secureLink('Back to Main Menu', 'hms', array('type'=>'student', 'op'=>'show_main_menu'));

Layout::addPageTitle("Verify Assignment");
Expand Down
11 changes: 10 additions & 1 deletion class/command/EditResidenceHallCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,16 @@ public function execute(CommandContext $context)
$hall->meal_plan_required = $context->get('meal_plan_required');
$hall->assignment_notifications = $context->get('assignment_notifications');

$hall->setPackageDeskId($context->get('package_desk'));

$packageDeskId = $context->get('package_desk');
if ($packageDeskId > 0 )
{
$hall->setPackageDeskId($packageDeskId);
}
else
{
$hall->setPackageDeskId(null);
}

} else if ($context->get('tab') == 'images'){
$hall->exterior_image_id = $context->get('exterior_image_id');
Expand Down
Loading