2 if( CheckVersion( $DBversion ) ) {
3 require Koha::Calendar;
6 my $waiting_holds = Koha::Holds->search({ found => 'W', priority => 0 });
7 my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay");
8 while ( my $hold = $waiting_holds->next ) {
10 my $requested_expiration;
11 if ($hold->expirationdate) {
12 $requested_expiration = dt_from_string($hold->expirationdate);
15 my $calendar = Koha::Calendar->new( branchcode => $hold->branchcode );
16 my $expirationdate = dt_from_string();
17 $expirationdate->add(days => $max_pickup_delay);
19 if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) {
20 $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay );
23 my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0;
24 $hold->expirationdate($cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd)->store;
27 SetVersion( $DBversion );
28 print "Upgrade to $DBversion done (Bug 12063 - Update reserves.expirationdate)\n";