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

(-)a/t/db_dependent/Circulation.t (-12 / +29 lines)
Lines 27-33 use C4::Overdues qw(UpdateFine); Link Here
27
use Koha::DateUtils;
27
use Koha::DateUtils;
28
use Koha::Database;
28
use Koha::Database;
29
29
30
use Test::More tests => 82;
30
use Test::More tests => 83;
31
31
32
BEGIN {
32
BEGIN {
33
    use_ok('C4::Circulation');
33
    use_ok('C4::Circulation');
Lines 445-451 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
445
    $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
445
    $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
446
    CancelReserve({ reserve_id => $reserveid });
446
    CancelReserve({ reserve_id => $reserveid });
447
447
448
    # Bug 14101
448
    # Test automatic renewal before value for "norenewalbefore" in policy is set
449
    # Test automatic renewal before value for "norenewalbefore" in policy is set
450
    # In this case automatic renewal is not permitted prior to due date
449
    my $barcode4 = '11235813';
451
    my $barcode4 = '11235813';
450
    my ( $item_bibnum4, $item_bibitemnum4, $itemnumber4 ) = AddItem(
452
    my ( $item_bibnum4, $item_bibitemnum4, $itemnumber4 ) = AddItem(
451
        {
453
        {
Lines 457-487 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
457
        $biblionumber
459
        $biblionumber
458
    );
460
    );
459
461
460
    AddIssue( $renewing_borrower, $barcode4, undef, undef, undef, undef, { auto_renew => 1 } );
462
    AddIssue( $renewing_borrower, $barcode4, undef, undef, undef, undef,
463
        { auto_renew => 1 } );
461
    ( $renewokay, $error ) =
464
    ( $renewokay, $error ) =
462
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
465
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
463
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
466
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
464
    is( $error, 'auto_too_soon',
467
    is( $error, 'auto_too_soon',
465
        'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' );
468
        'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' );
466
469
467
    # set policy to require that loans cannot be
470
    # Bug 7413
468
    # renewed until seven days prior to the due date
471
    # Test premature manual renewal
469
    $dbh->do('UPDATE issuingrules SET norenewalbefore = 7');
472
    $dbh->do('UPDATE issuingrules SET norenewalbefore = 7');
473
470
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
474
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
471
    is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature');
475
    is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature');
472
    is( $error, 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)');
476
    is( $error, 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)');
477
478
    # Bug 14395
479
    # Test 'exact time' setting for syspref NoRenewalBeforePrecision
480
    C4::Context->set_preference( 'NoRenewalBeforePrecision', 'exact_time' );
481
    is(
482
        GetSoonestRenewDate( $renewing_borrowernumber, $itemnumber ),
483
        $datedue->clone->add( days => -7 ),
484
        'Bug 14395: Renewals permitted 7 days before due date, as expected'
485
    );
486
487
    # Bug 14395
488
    # Test 'date' setting for syspref NoRenewalBeforePrecision
489
    C4::Context->set_preference( 'NoRenewalBeforePrecision', 'date' );
473
    is(
490
    is(
474
        GetSoonestRenewDate($renewing_borrowernumber, $itemnumber),
491
        GetSoonestRenewDate( $renewing_borrowernumber, $itemnumber ),
475
        $datedue->clone->add(days => -7),
492
        $datedue->clone->add( days => -7 )->truncate( to => 'day' ),
476
        'Bug 7413: Renewals permitted 7 days before due date, as expected',
493
        'Bug 14395: Renewals permitted 7 days before due date, as expected'
477
    );
494
    );
478
495
479
    # Test automatic renewal again
496
    # Bug 14101
497
    # Test premature automatic renewal
480
    ( $renewokay, $error ) =
498
    ( $renewokay, $error ) =
481
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
499
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
482
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
500
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
483
    is( $error, 'auto_too_soon',
501
    is( $error, 'auto_too_soon',
484
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)'
502
        'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)'
485
    );
503
    );
486
504
487
    # Change policy so that loans can only be renewed exactly on due date (0 days prior to due date)
505
    # Change policy so that loans can only be renewed exactly on due date (0 days prior to due date)
Lines 491-497 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
491
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
509
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
492
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
510
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' );
493
    is( $error, 'auto_too_soon',
511
    is( $error, 'auto_too_soon',
494
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)'
512
        'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)'
495
    );
513
    );
496
514
497
    # Change policy so that loans can be renewed 99 days prior to the due date
515
    # Change policy so that loans can be renewed 99 days prior to the due date
Lines 501-507 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
501
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
519
      CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
502
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' );
520
    is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' );
503
    is( $error, 'auto_renew',
521
    is( $error, 'auto_renew',
504
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)'
522
        'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)'
505
    );
523
    );
506
524
507
    # Too many renewals
525
    # Too many renewals
508
- 

Return to bug 14395