@ -1,60 +1,68 @@
#!/usr/bin/perl
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl ;
use Test::More tests = > 10 ;
use Test::MockModule ;
use t::lib::TestBuilder ;
use C4::Biblio ;
use C4::Circulation ;
use C4::Items ;
use C4::Members ;
use C4::Circulation ;
use Koha::Library ;
use Koha::Libraries ;
use Koha::Patron::Categories ;
use MARC::Record ;
my $ schema = Koha::Database - > schema ;
$ schema - > storage - > txn_begin ;
my $ builder = t::lib::TestBuilder - > new ;
my $ dbh = C4::Context - > dbh ;
$ dbh - > { AutoCommit } = 0 ;
$ dbh - > { RaiseError } = 1 ;
$ dbh - > do ( q|DELETE FROM issues| ) ;
my $ branchcode ;
my $ branch_created ;
my @ libraries = Koha::Libraries - > search ;
if ( @ libraries ) {
$ branchcode = $ libraries [ 0 ] - > branchcode ;
} else {
$ branchcode = 'B' ;
Koha::Library - > new ( { branchcode = > $ branchcode , branchname = > 'Branch' } ) - > store ;
$ branch_created = 1 ;
}
my % item_branch_infos = (
homebranch = > $ branchcode ,
my $ branchcode = $ builder - > build ( { source = > 'Branch' } ) - > { branchcode } ;
my $ itemtype = $ builder - > build ( { source = > 'Itemtype' } ) - > { itemtype } ;
my % item_infos = (
homebranch = > $ branchcode ,
holdingbranch = > $ branchcode ,
itype = > $ itemtype
) ;
my ( $ biblionumber1 ) = AddBiblio ( MARC::Record - > new , '' ) ;
my $ itemnumber1 = AddItem ( { barcode = > '0101' , % item_branch_ infos } , $ biblionumber1 ) ;
my $ itemnumber2 = AddItem ( { barcode = > '0102' , % item_branch_ infos } , $ biblionumber1 ) ;
my $ itemnumber1 = AddItem ( { barcode = > '0101' , % item_infos } , $ biblionumber1 ) ;
my $ itemnumber2 = AddItem ( { barcode = > '0102' , % item_infos } , $ biblionumber1 ) ;
my ( $ biblionumber2 ) = AddBiblio ( MARC::Record - > new , '' ) ;
my $ itemnumber3 = AddItem ( { barcode = > '0203' , % item_branch_infos } , $ biblionumber2 ) ;
my $ categorycode ;
my $ category_created ;
my @ categories = Koha::Patron::Categories - > search_limited ;
if ( @ categories ) {
$ categorycode = $ categories [ 0 ] - > categorycode
} else {
$ categorycode = 'C' ;
C4::Context - > dbh - > do (
"INSERT INTO categories(categorycode) VALUES(?)" , undef , $ categorycode ) ;
$ category_created = 1 ;
}
my $ borrowernumber = AddMember ( categorycode = > $ categorycode , branchcode = > $ branchcode ) ;
my $ itemnumber3 = AddItem ( { barcode = > '0203' , % item_infos } , $ biblionumber2 ) ;
my $ categorycode = $ builder - > build ( { source = > 'Category' } ) - > { categorycode } ;
my $ borrowernumber = $ builder - > build (
{ source = > 'Borrower' ,
value = > { categorycode = > $ categorycode , branchcode = > $ branchcode }
}
) - > { borrowernumber } ;
my $ borrower = GetMember ( borrowernumber = > $ borrowernumber ) ;
# Need to mock userenv for AddIssue
@ -88,7 +96,11 @@ is(scalar @$issues, 0, "No one has issued the second item of biblio $biblionumbe
my $ onsite_checkouts = GetPendingOnSiteCheckouts ;
is ( scalar @$ onsite_checkouts , 0 , "No pending on-site checkouts" ) ;
my $ itemnumber4 = AddItem ( { barcode = > '0104' , % item_branch_ infos } , $ biblionumber1 ) ;
my $ itemnumber4 = AddItem ( { barcode = > '0104' , % item_infos } , $ biblionumber1 ) ;
AddIssue ( $ borrower , '0104' , undef , undef , undef , undef , { onsite_checkout = > 1 } ) ;
$ onsite_checkouts = GetPendingOnSiteCheckouts ;
is ( scalar @$ onsite_checkouts , 1 , "There is 1 pending on-site checkout" ) ;
$ schema - > storage - > txn_rollback ;
1 ;