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

(-)a/C4/Circulation.pm (-8 / +10 lines)
Lines 767-777 sub CanBookBeIssued { Link Here
767
    if ( !defined $borrower->{dateexpiry} || $borrower->{'dateexpiry'} eq '0000-00-00') {
767
    if ( !defined $borrower->{dateexpiry} || $borrower->{'dateexpiry'} eq '0000-00-00') {
768
        $issuingimpossible{EXPIRED} = 1;
768
        $issuingimpossible{EXPIRED} = 1;
769
    } else {
769
    } else {
770
        my $expiry_dt = dt_from_string( $borrower->{dateexpiry}, 'sql' );
770
        my $expiry_dt = dt_from_string( $borrower->{dateexpiry}, 'sql', 'floating' );
771
        $expiry_dt->truncate( to => 'day');
771
        $expiry_dt->truncate( to => 'day');
772
        my $today = $now->clone()->truncate(to => 'day');
772
        my $today = $now->clone()->truncate(to => 'day');
773
773
        $today->set_time_zone( 'floating' );
774
        if ($expiry_dt->year < 9999 && DateTime->compare($today, $expiry_dt) == 1) {
774
        if ( DateTime->compare($today, $expiry_dt) == 1 ) {
775
            $issuingimpossible{EXPIRED} = 1;
775
            $issuingimpossible{EXPIRED} = 1;
776
        }
776
        }
777
    }
777
    }
Lines 3448-3457 sub CalcDateDue { Link Here
3448
3448
3449
    # if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
3449
    # if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
3450
    if ( C4::Context->preference('ReturnBeforeExpiry') ) {
3450
    if ( C4::Context->preference('ReturnBeforeExpiry') ) {
3451
        my $expiry_dt = dt_from_string( $borrower->{dateexpiry}, 'iso' );
3451
        my $expiry_dt = dt_from_string( $borrower->{dateexpiry}, 'iso', 'floating');
3452
        $expiry_dt->set( hour => 23, minute => 59);
3452
        if( $expiry_dt ) { #skip empty expiry date..
3453
        if ( DateTime->compare( $datedue, $expiry_dt ) == 1 ) {
3453
            $expiry_dt->set( hour => 23, minute => 59);
3454
            $datedue = $expiry_dt->clone;
3454
            my $d1= $datedue->clone->set_time_zone('floating');
3455
            if ( DateTime->compare( $d1, $expiry_dt ) == 1 ) {
3456
                $datedue = $expiry_dt->clone->set_time_zone( C4::Context->tz );
3457
            }
3455
        }
3458
        }
3456
    }
3459
    }
3457
3460
3458
- 

Return to bug 14494