bug 4224: explicitly mark hold requests as being handled by item in transit
This patch defines a new values of reserves.found, 'T', to indicate that an item has been allocated to fill a hold request and is currently in transit from one branch to another. This explicit value is meant to filter out hold requests from processing by holds queue batch job. Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This commit is contained in:
parent
a9c90b6dfb
commit
fcb21ec94c
1 changed files with 10 additions and 8 deletions
|
@ -57,7 +57,8 @@ This modules provides somes functions to deal with reservations.
|
|||
- priority >0 : then the reserve is at 1st stage, and not yet affected to any item.
|
||||
=0 : then the reserve is being dealed
|
||||
- found : NULL : means the patron requested the 1st available, and we haven't choosen the item
|
||||
W(aiting) : the reserve has an itemnumber affected, and is on the way
|
||||
T(ransit) : the reserve is linked to an item but is in transit to the pickup branch
|
||||
W(aiting) : the reserve is linked to an item, is at the pickup branch, and is waiting on the hold shelf
|
||||
F(inished) : the reserve has been completed, and is done
|
||||
- itemnumber : empty : the reserve is still unaffected to an item
|
||||
filled: the reserve is attached to an item
|
||||
|
@ -67,15 +68,15 @@ This modules provides somes functions to deal with reservations.
|
|||
a library having it run "transfertodo", and clic on the list
|
||||
if there is no transfer to do, the reserve waiting
|
||||
patron can pick it up P =0, F=W, I=filled
|
||||
if there is a transfer to do, write in branchtransfer P =0, F=NULL, I=filled
|
||||
if there is a transfer to do, write in branchtransfer P =0, F=T, I=filled
|
||||
The pickup library recieve the book, it check in P =0, F=W, I=filled
|
||||
The patron borrow the book P =0, F=F, I=filled
|
||||
|
||||
==== 2nd use case ====
|
||||
patron requests a document, a given item,
|
||||
If pickup is holding branch P =0, F=W, I=filled
|
||||
If transfer needed, write in branchtransfer P =0, F=NULL, I=filled
|
||||
The pickup library recieve the book, it checks it in P =0, F=W, I=filled
|
||||
If transfer needed, write in branchtransfer P =0, F=T, I=filled
|
||||
The pickup library receive the book, it checks it in P =0, F=W, I=filled
|
||||
The patron borrow the book P =0, F=F, I=filled
|
||||
|
||||
=head1 FUNCTIONS
|
||||
|
@ -1222,7 +1223,8 @@ sub ModReserveAffect {
|
|||
$query = "
|
||||
UPDATE reserves
|
||||
SET priority = 0,
|
||||
itemnumber = ?
|
||||
itemnumber = ?,
|
||||
found = 'T'
|
||||
WHERE borrowernumber = ?
|
||||
AND biblionumber = ?
|
||||
";
|
||||
|
@ -1509,13 +1511,13 @@ sub _FixPriority {
|
|||
}
|
||||
if ( $rank eq "W" || $rank eq "0" ) {
|
||||
|
||||
# make sure priority for waiting items is 0
|
||||
# make sure priority for waiting or in-transit items is 0
|
||||
my $query = qq/
|
||||
UPDATE reserves
|
||||
SET priority = 0
|
||||
WHERE biblionumber = ?
|
||||
AND borrowernumber = ?
|
||||
AND found ='W'
|
||||
AND found IN ('W', 'T')
|
||||
/;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute( $biblio, $borrowernumber );
|
||||
|
@ -1532,7 +1534,7 @@ sub _FixPriority {
|
|||
SELECT borrowernumber, reservedate, constrainttype
|
||||
FROM reserves
|
||||
WHERE biblionumber = ?
|
||||
AND ((found <> 'W') or found is NULL)
|
||||
AND ((found <> 'W' AND found <> 'T') or found is NULL)
|
||||
ORDER BY priority ASC
|
||||
/;
|
||||
my $sth = $dbh->prepare($query);
|
||||
|
|
Loading…
Reference in a new issue