Skip to content
Snippets Groups Projects
Commit 8cb3f4a5 authored by Ere Maijala's avatar Ere Maijala Committed by Demian Katz
Browse files

Voyager: fetch return date only for items that have the ’Discharged’ status...

Voyager: fetch return date only for items that have the ’Discharged’ status and simplify the date/time handling. (#935)
parent 004e1536
No related merge requests found
......@@ -604,6 +604,13 @@ class Voyager extends AbstractBase
protected function getHoldingItemsSQL($id)
{
// Expressions
$returnDate = <<<EOT
CASE WHEN ITEM_STATUS_TYPE.ITEM_STATUS_DESC = 'Discharged' THEN (
SELECT TO_CHAR(MAX(CIRC_TRANS_ARCHIVE.DISCHARGE_DATE), 'MM-DD-YY HH24:MI')
FROM $this->dbName.CIRC_TRANS_ARCHIVE
WHERE CIRC_TRANS_ARCHIVE.ITEM_ID = ITEM.ITEM_ID
) ELSE NULL END RETURNDATE
EOT;
$sqlExpressions = [
"BIB_ITEM.BIB_ID", "MFHD_ITEM.MFHD_ID",
"ITEM_BARCODE.ITEM_BARCODE", "ITEM.ITEM_ID",
......@@ -617,9 +624,7 @@ class Voyager extends AbstractBase
"ITEM.PERM_LOCATION",
"MFHD_MASTER.DISPLAY_CALL_NO as callnumber",
"to_char(CIRC_TRANSACTIONS.CURRENT_DUE_DATE, 'MM-DD-YY') as duedate",
"(SELECT TO_CHAR(MAX(CIRC_TRANS_ARCHIVE.DISCHARGE_DATE), " .
"'MM-DD-YY HH24:MI') FROM $this->dbName.CIRC_TRANS_ARCHIVE " .
"WHERE CIRC_TRANS_ARCHIVE.ITEM_ID = ITEM.ITEM_ID) RETURNDATE",
$returnDate,
"ITEM.ITEM_SEQUENCE_NUMBER",
$this->getItemSortSequenceSQL('ITEM.PERM_LOCATION')
];
......@@ -764,6 +769,11 @@ class Voyager extends AbstractBase
if (!in_array($row['STATUS'], $record['STATUS_ARRAY'])) {
$record['STATUS_ARRAY'][] = $row['STATUS'];
}
// If we have a return date for this status, take it
if (null !== $row['RETURNDATE']) {
$record['RETURNDATE'] = $row['RETURNDATE'];
}
} else {
// This is the first time we've encountered this row number --
// initialize the row and start an array of statuses.
......@@ -1039,18 +1049,11 @@ class Voyager extends AbstractBase
}
$returnDate = false;
if (!empty($row['RETURNDATE'])) {
$returnDate = $this->dateFormat->convertToDisplayDate(
"m-d-y H:i", $row['RETURNDATE']
$returnDate = $this->dateFormat->convertToDisplayDateAndTime(
'm-d-y H:i', $row['RETURNDATE']
);
$returnTime = $this->dateFormat->convertToDisplayTime(
"m-d-y H:i", $row['RETURNDATE']
);
$returnDate .= " " . $returnTime;
}
$returnDate = (in_array("Discharged", $row['STATUS_ARRAY']))
? $returnDate : false;
$requests_placed = isset($row['HOLDS_PLACED'])
? $row['HOLDS_PLACED'] : 0;
if (isset($row['RECALLS_PLACED'])) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment