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(), |