From f2c6b8e0b6b274c39ae2ca4f5ad66650f4e42916 Mon Sep 17 00:00:00 2001 From: John Felipe Date: Wed, 12 Aug 2015 14:11:01 -0400 Subject: [PATCH 1/6] Added an option to select Package Desk for Fedex packages #595 --- class/PackageDeskFactory.php | 3 ++- class/ResidenceHallView.php | 13 +++++++------ class/command/EditResidenceHallCommand.php | 11 ++++++++++- templates/admin/edit_residence_hall.tpl | 8 ++++---- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/class/PackageDeskFactory.php b/class/PackageDeskFactory.php index d1976a23..8d0d850a 100644 --- a/class/PackageDeskFactory.php +++ b/class/PackageDeskFactory.php @@ -37,7 +37,8 @@ public static function getPackageDesksAssoc() $desks = self::getPackageDesks(); if (sizeof($desks) == 0) { - test('done!',1); + var_dump($desks); + exit; return array(); } diff --git a/class/ResidenceHallView.php b/class/ResidenceHallView.php index a6dca361..21dcca50 100644 --- a/class/ResidenceHallView.php +++ b/class/ResidenceHallView.php @@ -59,12 +59,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'); diff --git a/class/command/EditResidenceHallCommand.php b/class/command/EditResidenceHallCommand.php index 48f2da1c..506db7e5 100644 --- a/class/command/EditResidenceHallCommand.php +++ b/class/command/EditResidenceHallCommand.php @@ -84,7 +84,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); + } $hall->exterior_image_id = $context->get('exterior_image_id'); $hall->other_image_id = $context->get('other_image_id'); diff --git a/templates/admin/edit_residence_hall.tpl b/templates/admin/edit_residence_hall.tpl index b3822314..b653c69b 100644 --- a/templates/admin/edit_residence_hall.tpl +++ b/templates/admin/edit_residence_hall.tpl @@ -55,7 +55,7 @@ {HALL_NAME}
- + {GENDER_TYPE}
@@ -80,14 +80,14 @@ {ASSIGNMENT_NOTIFICATIONS} Assignment Notifications - + From 248ba751185451221881872d8a77f4ab04f919a2 Mon Sep 17 00:00:00 2001 From: Chris Detsch Date: Thu, 24 Mar 2016 15:42:14 -0400 Subject: [PATCH 2/6] There was a var_dump left that would happen anytime there was no package desks in the database. --- class/PackageDeskFactory.php | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/class/PackageDeskFactory.php b/class/PackageDeskFactory.php index 8d0d850a..6b9221d1 100644 --- a/class/PackageDeskFactory.php +++ b/class/PackageDeskFactory.php @@ -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']); @@ -25,31 +25,29 @@ 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) { - var_dump($desks); - exit; + // var_dump($desks); + // exit; return array(); } - + $results = array(); - + foreach ($desks as $d) { $results[$d->getId()] = $d->getName(); } - + return $results; } } - - From 95465f8d8acee9358c9d7e3e5b2f190497ae90cb Mon Sep 17 00:00:00 2001 From: Chris Detsch Date: Thu, 24 Mar 2016 16:05:32 -0400 Subject: [PATCH 3/6] Made changes to the sql statements so that the package desk will now be added properly to databases. --- boost/install.sql | 2 +- boost/updates/00-05-08.sql | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 boost/updates/00-05-08.sql diff --git a/boost/install.sql b/boost/install.sql index 158b8e26..ed981dfe 100644 --- a/boost/install.sql +++ b/boost/install.sql @@ -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) ); diff --git a/boost/updates/00-05-08.sql b/boost/updates/00-05-08.sql new file mode 100644 index 00000000..8e6f0439 --- /dev/null +++ b/boost/updates/00-05-08.sql @@ -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); From 248b84a0139c2d9b7322ea5d6aa326a32d3bf287 Mon Sep 17 00:00:00 2001 From: Chris Detsch Date: Fri, 25 Mar 2016 15:06:56 -0400 Subject: [PATCH 4/6] Made changes to the application feature verify assignment to make it show info on how to get packages sent. --- class/PackageDeskFactory.php | 20 ++++++++ class/Student.php | 8 +++ class/VerifyAssignmentView.php | 45 +++++++++++++++++ inc/defines.php | 1 + templates/student/verify_assignment.tpl | 66 ++++++++++++++++++++++--- 5 files changed, 134 insertions(+), 6 deletions(-) diff --git a/class/PackageDeskFactory.php b/class/PackageDeskFactory.php index 6b9221d1..bacc72e8 100644 --- a/class/PackageDeskFactory.php +++ b/class/PackageDeskFactory.php @@ -50,4 +50,24 @@ public static function getPackageDesksAssoc() 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(); + } } diff --git a/class/Student.php b/class/Student.php index 7b8e955e..c186818b 100644 --- a/class/Student.php +++ b/class/Student.php @@ -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 @@ -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; @@ -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 diff --git a/class/VerifyAssignmentView.php b/class/VerifyAssignmentView.php index 5739b5f7..f28f52ce 100644 --- a/class/VerifyAssignmentView.php +++ b/class/VerifyAssignmentView.php @@ -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"); diff --git a/inc/defines.php b/inc/defines.php index 4783b90b..b96b1b40 100644 --- a/inc/defines.php +++ b/inc/defines.php @@ -236,6 +236,7 @@ */ define('ADDRESS_PRMT_STUDENT', 'PS'); // Permanent student address define('ADDRESS_PRMT_RESIDENCE', 'PR'); // permenent student residence +define('ADDRESS_ASU_BOX', 'AB'); // ASU Box address /** * Room Types (used for summer applications) diff --git a/templates/student/verify_assignment.tpl b/templates/student/verify_assignment.tpl index 2b770142..d31c70c7 100644 --- a/templates/student/verify_assignment.tpl +++ b/templates/student/verify_assignment.tpl @@ -18,10 +18,10 @@ - +
-