| Lines 129-154
          sub set_waiting {
      
      
        Link Here | 
        
          | 129 |         waitingdate => $today->ymd, | 129 |         waitingdate => $today->ymd, | 
        
          | 130 |     }; | 130 |     }; | 
        
          | 131 |  | 131 |  | 
          
            
              | 132 |     my $requested_expiration; | 132 |     if ( C4::Context->preference("ExpireReservesMaxPickUpDelay") ) { | 
            
              | 133 |     if ($self->expirationdate) { |  |  | 
            
              | 134 |         $requested_expiration = dt_from_string($self->expirationdate); | 
            
              | 135 |     } | 
        
          | 136 |  | 133 |  | 
          
            
              | 137 |     my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); | 134 |         my $requested_expiration; | 
            
              | 138 |     my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); | 135 |         if ($self->expirationdate) { | 
            
              | 139 |     my $calendar = Koha::Calendar->new( branchcode => $self->branchcode ); | 136 |             $requested_expiration = dt_from_string($self->expirationdate); | 
            
              |  |  | 137 |         } | 
        
          | 140 |  | 138 |  | 
          
            
              | 141 |     my $expirationdate = $today->clone; | 139 |         my $max_pickup_delay = C4::Context->preference("ReservesMaxPickUpDelay"); | 
            
              | 142 |     $expirationdate->add(days => $max_pickup_delay); | 140 |         my $cancel_on_holidays = C4::Context->preference('ExpireReservesOnHolidays'); | 
            
              |  |  | 141 |         my $calendar = Koha::Calendar->new( branchcode => $self->branchcode ); | 
        
          | 143 |  | 142 |  | 
          
            
              | 144 |     if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { | 143 |         my $expirationdate = $today->clone; | 
            
              | 145 |         $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay ); | 144 |         $expirationdate->add(days => $max_pickup_delay); | 
            
              | 146 |     } |  |  | 
        
          | 147 |  | 145 |  | 
          
            
              | 148 |     # If patron's requested expiration date is prior to the | 146 |         if ( C4::Context->preference("ExcludeHolidaysFromMaxPickUpDelay") ) { | 
            
              | 149 |     # calculated one, we keep the patron's one. | 147 |             $expirationdate = $calendar->days_forward( dt_from_string(), $max_pickup_delay ); | 
            
              | 150 |     my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; | 148 |         } | 
            
              | 151 |     $values->{expirationdate} = $cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd; | 149 |  | 
            
              |  |  | 150 |         # If patron's requested expiration date is prior to the | 
            
              | 151 |         # calculated one, we keep the patron's one. | 
            
              | 152 |         my $cmp = $requested_expiration ? DateTime->compare($requested_expiration, $expirationdate) : 0; | 
            
              | 153 |         $values->{expirationdate} = $cmp == -1 ? $requested_expiration->ymd : $expirationdate->ymd; | 
            
              | 154 |  | 
            
              | 155 |     } | 
        
          | 152 |  | 156 |  | 
        
          | 153 |     $self->set($values)->store(); | 157 |     $self->set($values)->store(); | 
        
          | 154 |  | 158 |  | 
            
              | 155 | -  |  |  |