|
Lines 1052-1057
sub CancelReserve {
Link Here
|
| 1052 |
|
1052 |
|
| 1053 |
my $reserve = GetReserve( $reserve_id ); |
1053 |
my $reserve = GetReserve( $reserve_id ); |
| 1054 |
if ($reserve) { |
1054 |
if ($reserve) { |
|
|
1055 |
# Charge for canceled reserves that have been waiting too long |
| 1056 |
if ( $reserve->{found} eq 'W' |
| 1057 |
&& $reserve->{priority} == 0 |
| 1058 |
&& C4::Context->preference("ExpireReservesMaxPickUpDelay") ) |
| 1059 |
{ |
| 1060 |
my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); |
| 1061 |
|
| 1062 |
my $now = dt_from_string(); |
| 1063 |
my $waitingdate = dt_from_string( $reserve->{waitingdate} ); |
| 1064 |
my $duration = $waitingdate->delta_days($now); |
| 1065 |
my $days_waiting = $duration->in_units('days'); |
| 1066 |
if ( $days_waiting > $max_pickup_delay ) { |
| 1067 |
my $charge = C4::Context->preference("ExpireReservesMaxPickUpDelayCharge"); |
| 1068 |
if ($charge) { |
| 1069 |
manualinvoice( |
| 1070 |
$reserve->{'borrowernumber'}, |
| 1071 |
$reserve->{'itemnumber'}, |
| 1072 |
'Hold waiting too long', |
| 1073 |
'F', $charge |
| 1074 |
); |
| 1075 |
} |
| 1076 |
} |
| 1077 |
} |
| 1078 |
|
| 1055 |
my $query = " |
1079 |
my $query = " |
| 1056 |
UPDATE reserves |
1080 |
UPDATE reserves |
| 1057 |
SET cancellationdate = now(), |
1081 |
SET cancellationdate = now(), |