use Modern::Perl;
-use Test::More tests => 91;
+use Test::More tests => 92;
BEGIN {
require_ok('C4::Circulation');
is( $error->{USERBLOCKEDNOENDDATE}, '9999-12-31' );
};
+subtest 'MultipleReserves' => sub {
+ plan tests => 3;
+
+ my $biblio = MARC::Record->new();
+ my $title = 'Silence in the library';
+ $biblio->append_fields(
+ MARC::Field->new('100', ' ', ' ', a => 'Moffat, Steven'),
+ MARC::Field->new('245', ' ', ' ', a => $title),
+ );
+
+ my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, '');
+
+ my $branch = $library2->{branchcode};
+
+ my $barcode1 = 'R00110001';
+ my ( $item_bibnum1, $item_bibitemnum1, $itemnumber1 ) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode1,
+ replacementprice => 12.00,
+ itype => $itemtype
+ },
+ $biblionumber
+ );
+
+ my $barcode2 = 'R00110002';
+ my ( $item_bibnum2, $item_bibitemnum2, $itemnumber2 ) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode2,
+ replacementprice => 12.00,
+ itype => $itemtype
+ },
+ $biblionumber
+ );
+
+ my $bibitems = '';
+ my $priority = '1';
+ my $resdate = undef;
+ my $expdate = undef;
+ my $notes = '';
+ my $checkitem = undef;
+ my $found = undef;
+
+ my %renewing_borrower_data = (
+ firstname => 'John',
+ surname => 'Renewal',
+ categorycode => 'S',
+ branchcode => $branch,
+ );
+ my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
+ my $renewing_borrower = GetMember( borrowernumber => $renewing_borrowernumber );
+ my $issue = AddIssue( $renewing_borrower, $barcode1);
+ my $datedue = dt_from_string( $issue->date_due() );
+ is (defined $issue->date_due(), 1, "item 1 checked out");
+ my $borrowing_borrowernumber = GetItemIssue($itemnumber1)->{borrowernumber};
+
+ my %reserving_borrower_data1 = (
+ firstname => 'Katrin',
+ surname => 'Reservation',
+ categorycode => 'S',
+ branchcode => $branch,
+ );
+ my $reserving_borrowernumber1 = AddMember(%reserving_borrower_data1);
+ AddReserve(
+ $branch, $reserving_borrowernumber1, $biblionumber,
+ $bibitems, $priority, $resdate, $expdate, $notes,
+ $title, $checkitem, $found
+ );
+
+ my %reserving_borrower_data2 = (
+ firstname => 'Kirk',
+ surname => 'Reservation',
+ categorycode => 'S',
+ branchcode => $branch,
+ );
+ my $reserving_borrowernumber2 = AddMember(%reserving_borrower_data2);
+ AddReserve(
+ $branch, $reserving_borrowernumber2, $biblionumber,
+ $bibitems, $priority, $resdate, $expdate, $notes,
+ $title, $checkitem, $found
+ );
+
+ {
+ my ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber1, 1);
+ is($renewokay, 0, 'Bug 17641 - should cover the case where 2 books are both reserved, so failing');
+ }
+
+ my $barcode3 = 'R00110003';
+ my ( $item_bibnum3, $item_bibitemnum3, $itemnumber3 ) = AddItem(
+ {
+ homebranch => $branch,
+ holdingbranch => $branch,
+ barcode => $barcode3,
+ replacementprice => 12.00,
+ itype => $itemtype
+ },
+ $biblionumber
+ );
+
+ {
+ my ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber1, 1);
+ is($renewokay, 1, 'Bug 17641 - should cover the case where 2 books are reserved, but a third one is available');
+ }
+};
+
subtest 'CanBookBeIssued + AllowMultipleIssuesOnABiblio' => sub {
plan tests => 5;