|
Lines 2007-2013
sub MoveReserve {
Link Here
|
| 2007 |
ModReserveFill($borr_res); |
2007 |
ModReserveFill($borr_res); |
| 2008 |
} |
2008 |
} |
| 2009 |
|
2009 |
|
| 2010 |
if ($cancelreserve) { # cancel reserves on this item |
2010 |
if ( $cancelreserve eq 'revert' ) { ## Revert waiting reserve to priority 1 |
|
|
2011 |
RevertWaitingStatus( itemnumber => $itemnumber ); |
| 2012 |
} |
| 2013 |
elsif ( $cancelreserve eq 'cancel' || $cancelreserve ) { # cancel reserves on this item |
| 2011 |
CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'}); |
2014 |
CancelReserve(0, $res->{'itemnumber'}, $res->{'borrowernumber'}); |
| 2012 |
CancelReserve($res->{'biblionumber'}, 0, $res->{'borrowernumber'}); |
2015 |
CancelReserve($res->{'biblionumber'}, 0, $res->{'borrowernumber'}); |
| 2013 |
} |
2016 |
} |
|
Lines 2058-2063
sub MergeHolds {
Link Here
|
| 2058 |
} |
2061 |
} |
| 2059 |
} |
2062 |
} |
| 2060 |
|
2063 |
|
|
|
2064 |
=head2 RevertWaitingStatus |
| 2065 |
|
| 2066 |
$success = RevertWaitingStatus( itemnumber => $itemnumber ); |
| 2067 |
|
| 2068 |
Reverts a 'waiting' hold back to a regular hold with a priority of 1. |
| 2069 |
|
| 2070 |
Caveat: Any waiting hold fixed with RevertWaitingStatus will be an |
| 2071 |
item level hold, even if it was only a bibliolevel hold to |
| 2072 |
begin with. This is because we can no longer know if a hold |
| 2073 |
was item-level or bib-level after a hold has been set to |
| 2074 |
waiting status. |
| 2075 |
|
| 2076 |
=cut |
| 2077 |
|
| 2078 |
sub RevertWaitingStatus { |
| 2079 |
my ( %params ) = @_; |
| 2080 |
warn "RevertWaitingStatus( " . Data::Dumper::Dumper( \%params ) . " ) "; |
| 2081 |
my $itemnumber = $params{'itemnumber'}; |
| 2082 |
|
| 2083 |
return unless ( $itemnumber ); |
| 2084 |
|
| 2085 |
my $dbh = C4::Context->dbh; |
| 2086 |
|
| 2087 |
## Get the waiting reserve we want to revert |
| 2088 |
my $query = " |
| 2089 |
SELECT * FROM reserves |
| 2090 |
WHERE itemnumber = ? |
| 2091 |
AND found IS NOT NULL |
| 2092 |
"; |
| 2093 |
my $sth = $dbh->prepare( $query ); |
| 2094 |
$sth->execute( $itemnumber ); |
| 2095 |
my $reserve = $sth->fetchrow_hashref(); |
| 2096 |
|
| 2097 |
## Increment the priority of all other non-waiting |
| 2098 |
## reserves for this bib record |
| 2099 |
$query = " |
| 2100 |
UPDATE reserves |
| 2101 |
SET |
| 2102 |
priority = priority + 1 |
| 2103 |
WHERE |
| 2104 |
biblionumber = ? |
| 2105 |
AND |
| 2106 |
priority > 0 |
| 2107 |
"; |
| 2108 |
$sth = $dbh->prepare( $query ); |
| 2109 |
$sth->execute( $reserve->{'biblionumber'} ); |
| 2110 |
|
| 2111 |
## Fix up the currently waiting reserve |
| 2112 |
$query = " |
| 2113 |
UPDATE reserves |
| 2114 |
SET |
| 2115 |
priority = 1, |
| 2116 |
found = NULL, |
| 2117 |
waitingdate = NULL |
| 2118 |
WHERE |
| 2119 |
reserve_id = ? |
| 2120 |
"; |
| 2121 |
$sth = $dbh->prepare( $query ); |
| 2122 |
return $sth->execute( $reserve->{'reserve_id'} ); |
| 2123 |
} |
| 2124 |
|
| 2061 |
=head2 ReserveSlip |
2125 |
=head2 ReserveSlip |
| 2062 |
|
2126 |
|
| 2063 |
ReserveSlip($branchcode, $borrowernumber, $biblionumber) |
2127 |
ReserveSlip($branchcode, $borrowernumber, $biblionumber) |