View | Details | Raw Unified | Return to bug 19260
Collapse All | Expand All

(-)a/Koha/Hold.pm (-17 / +20 lines)
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
- 

Return to bug 19260