|
Lines 860-865
Cancels all reserves with an expiration date from before today.
Link Here
|
| 860 |
|
860 |
|
| 861 |
sub CancelExpiredReserves { |
861 |
sub CancelExpiredReserves { |
| 862 |
|
862 |
|
|
|
863 |
# Cancel reserves that have passed their expiration date. |
| 863 |
my $dbh = C4::Context->dbh; |
864 |
my $dbh = C4::Context->dbh; |
| 864 |
my $sth = $dbh->prepare( " |
865 |
my $sth = $dbh->prepare( " |
| 865 |
SELECT * FROM reserves WHERE DATE(expirationdate) < DATE( CURDATE() ) |
866 |
SELECT * FROM reserves WHERE DATE(expirationdate) < DATE( CURDATE() ) |
|
Lines 871-876
sub CancelExpiredReserves {
Link Here
|
| 871 |
CancelReserve( $res->{'biblionumber'}, '', $res->{'borrowernumber'} ); |
872 |
CancelReserve( $res->{'biblionumber'}, '', $res->{'borrowernumber'} ); |
| 872 |
} |
873 |
} |
| 873 |
|
874 |
|
|
|
875 |
# Cancel reserves that have been waiting too long |
| 876 |
if ( C4::Context->preference("ExpireReservesMaxPickUpDelay") ) { |
| 877 |
my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); |
| 878 |
my $charge = C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); |
| 879 |
|
| 880 |
my $query = "SELECT * FROM reserves WHERE TO_DAYS( NOW() ) - TO_DAYS( waitingdate ) > ? AND found = 'W' AND priority = 0"; |
| 881 |
$sth = $dbh->prepare( $query ); |
| 882 |
$sth->execute( $max_pickup_delay ); |
| 883 |
|
| 884 |
while (my $res = $sth->fetchrow_hashref ) { |
| 885 |
if ( $charge ) { |
| 886 |
manualinvoice($res->{'borrowernumber'}, $res->{'itemnumber'}, 'Hold waiting too long', 'F', $charge); |
| 887 |
} |
| 888 |
|
| 889 |
CancelReserve( $res->{'biblionumber'}, '', $res->{'borrowernumber'} ); |
| 890 |
} |
| 891 |
} |
| 892 |
|
| 874 |
} |
893 |
} |
| 875 |
|
894 |
|
| 876 |
=head2 CancelReserve |
895 |
=head2 CancelReserve |
|
Lines 1137-1149
sub ModReserveStatus {
Link Here
|
| 1137 |
|
1156 |
|
| 1138 |
#first : check if we have a reservation for this item . |
1157 |
#first : check if we have a reservation for this item . |
| 1139 |
my ($itemnumber, $newstatus) = @_; |
1158 |
my ($itemnumber, $newstatus) = @_; |
| 1140 |
my $dbh = C4::Context->dbh; |
1159 |
my $dbh = C4::Context->dbh; |
| 1141 |
my $query = " UPDATE reserves |
1160 |
|
| 1142 |
SET found=?,waitingdate = now() |
1161 |
my $query = "UPDATE reserves SET found = ?, waitingdate = NOW() WHERE itemnumber = ? AND found IS NULL AND priority = 0"; |
| 1143 |
WHERE itemnumber=? |
|
|
| 1144 |
AND found IS NULL |
| 1145 |
AND priority = 0 |
| 1146 |
"; |
| 1147 |
my $sth_set = $dbh->prepare($query); |
1162 |
my $sth_set = $dbh->prepare($query); |
| 1148 |
$sth_set->execute( $newstatus, $itemnumber ); |
1163 |
$sth_set->execute( $newstatus, $itemnumber ); |
| 1149 |
|
1164 |
|
|
Lines 1196-1210
sub ModReserveAffect {
Link Here
|
| 1196 |
} |
1211 |
} |
| 1197 |
else { |
1212 |
else { |
| 1198 |
# affect the reserve to Waiting as well. |
1213 |
# affect the reserve to Waiting as well. |
| 1199 |
$query = " |
1214 |
$query = " |
| 1200 |
UPDATE reserves |
1215 |
UPDATE reserves |
| 1201 |
SET priority = 0, |
1216 |
SET priority = 0, |
| 1202 |
found = 'W', |
1217 |
found = 'W', |
| 1203 |
waitingdate=now(), |
1218 |
waitingdate = NOW(), |
| 1204 |
itemnumber = ? |
1219 |
itemnumber = ? |
| 1205 |
WHERE borrowernumber = ? |
1220 |
WHERE borrowernumber = ? |
| 1206 |
AND biblionumber = ? |
1221 |
AND biblionumber = ? |
| 1207 |
"; |
1222 |
"; |
| 1208 |
} |
1223 |
} |
| 1209 |
$sth = $dbh->prepare($query); |
1224 |
$sth = $dbh->prepare($query); |
| 1210 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
1225 |
$sth->execute( $itemnumber, $borrowernumber,$biblionumber); |
|
Lines 1907-1913
sub MergeHolds {
Link Here
|
| 1907 |
} |
1922 |
} |
| 1908 |
} |
1923 |
} |
| 1909 |
|
1924 |
|
| 1910 |
|
|
|
| 1911 |
=head1 AUTHOR |
1925 |
=head1 AUTHOR |
| 1912 |
|
1926 |
|
| 1913 |
Koha Development Team <http://koha-community.org/> |
1927 |
Koha Development Team <http://koha-community.org/> |