use Koha::DateUtils;
use Koha::Database;
-use Test::More tests => 51;
+use Test::More tests => 55;
BEGIN {
use_ok('C4::Circulation');
q{INSERT INTO issuingrules (categorycode, branchcode, itemtype, reservesallowed,
maxissueqty, issuelength, lengthunit,
renewalsallowed, renewalperiod,
+ norenewalbefore, auto_renew,
fine, chargeperiod)
VALUES (?, ?, ?, ?,
?, ?, ?,
?, ?,
+ ?, ?,
?, ?
)
},
'*', '*', '*', 25,
20, 14, 'days',
1, 7,
+ '', 0,
.10, 1
);
$reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
CancelReserve({ reserve_id => $reserveid });
+ # Test automatic renewal before value for "norenewalbefore" in policy is set
+ my $barcode4 = '11235813';
+ my ( $item_bibnum4, $item_bibitemnum4, $itemnumber4 ) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode4,
+ replacementprice => 16.00
+ },
+ $biblionumber
+ );
+
+ AddIssue( $renewing_borrower, $barcode4, undef, undef, undef, undef, 1 );
+ ( $renewokay, $error ) =
+ CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
+ is( $renewokay, 0, 'Cannot renew, renewal is automatic' );
+ is( $error, 'auto_renew',
+ 'Cannot renew, renewal is automatic (returned code is auto_renew)' );
+
# set policy to require that loans cannot be
# renewed until seven days prior to the due date
$dbh->do('UPDATE issuingrules SET norenewalbefore = 7');
'renewals permitted 7 days before due date, as expected',
);
+ # Test automatic renewal again
+ ( $renewokay, $error ) =
+ CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 );
+ is( $renewokay, 0, 'Cannot renew, renewal is automatic and premature' );
+ is( $error, 'auto_too_soon',
+'Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)'
+ );
+
# Too many renewals
# set policy to forbid renewals
lengthunit => 'Null',
renewalperiod => 5,
norenewalbefore => 6,
+ auto_renew => 0,
issuelength => 5,
chargeperiod => 0,
rentaldiscount => '2.000000',
renewalsallowed => 'Null',
renewalperiod => 2,
norenewalbefore => 7,
+ auto_renew => 0,
reservesallowed => 'Null',
issuelength => 2,
lengthunit => 'Null',
renewalsallowed => 'Null',
renewalperiod => 3,
norenewalbefore => 8,
+ auto_renew => 0,
reservesallowed => 'Null',
issuelength => 3,
lengthunit => 'Null',
renewalsallowed,
renewalperiod,
norenewalbefore,
+ auto_renew,
reservesallowed,
issuelength,
lengthunit,
chargename,
restrictedtype,
maxsuspensiondays
- ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
+ ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
my $sth = $dbh->prepare($query);
$sth->execute(
$sampleissuingrule1->{branchcode},
$sampleissuingrule1->{renewalsallowed},
$sampleissuingrule1->{renewalperiod},
$sampleissuingrule1->{norenewalbefore},
+ $sampleissuingrule1->{auto_renew},
$sampleissuingrule1->{reservesallowed},
$sampleissuingrule1->{issuelength},
$sampleissuingrule1->{lengthunit},
$sampleissuingrule2->{renewalsallowed},
$sampleissuingrule2->{renewalperiod},
$sampleissuingrule2->{norenewalbefore},
+ $sampleissuingrule1->{auto_renew},
$sampleissuingrule2->{reservesallowed},
$sampleissuingrule2->{issuelength},
$sampleissuingrule2->{lengthunit},
$sampleissuingrule3->{renewalsallowed},
$sampleissuingrule3->{renewalperiod},
$sampleissuingrule3->{norenewalbefore},
+ $sampleissuingrule1->{auto_renew},
$sampleissuingrule3->{reservesallowed},
$sampleissuingrule3->{issuelength},
$sampleissuingrule3->{lengthunit},