use C4::Members;
use C4::Reserves;
-use Test::More tests => 44;
+use Test::More tests => 48;
BEGIN {
use_ok('C4::Circulation');
$biblionumber
);
+ my $barcode3 = 'R00000346';
+ my ( $item_bibnum3, $item_bibitemnum3, $itemnumber3 ) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode3,
+ replacementprice => 23.00
+ },
+ $biblionumber
+ );
+
# Create 2 borrowers
my %renewing_borrower_data = (
firstname => 'John',
is( $error, 'on_reserve', '(Bug 10663) Cannot renew, reserved (returned error is on_reserve)');
my $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, borrowernumber => $reserving_borrowernumber});
- CancelReserve({ reserve_id => $reserveid });
-
+ my $reserving_borrower = GetMember( borrowernumber => $reserving_borrowernumber );
+ AddIssue($reserving_borrower, $barcode3);
+ my $reserve = $dbh->selectrow_hashref(
+ 'SELECT * FROM old_reserves WHERE reserve_id = ?',
+ { Slice => {} },
+ $reserveid
+ );
+ is($reserve->{found}, 'F', 'hold marked completed when checking out item that fills it');
diag("Item-level hold, renewal test");
AddReserve(
$reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber});
CancelReserve({ reserve_id => $reserveid });
+ # set policy to require that loans cannot be
+ # renewed until seven days prior to the due date
+ $dbh->do('UPDATE issuingrules SET norenewalbefore = 7');
+ ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
+ is( $renewokay, 0, 'Cannot renew, renewal is premature');
+ is( $error, 'too_soon', 'Cannot renew, renewal is premature (returned code is too_soon)');
+ is(
+ GetSoonestRenewDate($renewing_borrowernumber, $itemnumber),
+ $datedue->clone->add(days => -7),
+ 'renewals permitted 7 days before due date, as expected',
+ );
+
diag("Too many renewals");
# set policy to forbid renewals
- $dbh->do('UPDATE issuingrules SET renewalsallowed = 0');
+ $dbh->do('UPDATE issuingrules SET norenewalbefore = NULL, renewalsallowed = 0');
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
is( $renewokay, 0, 'Cannot renew, 0 renewals allowed');