@@ -, +, @@ itemnumber and barcode transfer-slip.pl?transferitem=3967925&branchcode=MPL&op=slip transfer-slip.pl?barcode=&branchcode=MPL&op=slip - Added tests in t/db_dependent/Circulation_transfers.t --- C4/Circulation.pm | 6 +++--- circ/transfer-slip.pl | 3 ++- t/db_dependent/Circulation_transfers.t | 13 ++++++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -3737,16 +3737,16 @@ sub ProcessOfflinePayment { =head2 TransferSlip - TransferSlip($user_branch, $itemnumber, $to_branch) + TransferSlip($user_branch, $itemnumber, $barcode, $to_branch) Returns letter hash ( see C4::Letters::GetPreparedLetter ) or undef =cut sub TransferSlip { - my ($branch, $itemnumber, $to_branch) = @_; + my ($branch, $itemnumber, $barcode, $to_branch) = @_; - my $item = GetItem( $itemnumber ) + my $item = GetItem( $itemnumber, $barcode ) or return; my $pulldate = C4::Dates->new(); --- a/circ/transfer-slip.pl +++ a/circ/transfer-slip.pl @@ -38,6 +38,7 @@ my $sessionID = $input->cookie("CGISESSID"); my $session = get_session($sessionID); my $itemnumber = $input->param('transferitem'); +my $barcode = $input->param('barcode'); my $branchcode = $input->param('branchcode'); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -54,7 +55,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( my $userenv = C4::Context->userenv; my ($slip, $is_html); -if ( my $letter = TransferSlip ($session->param('branch') || $userenv->{branch}, $itemnumber, $branchcode) ) { +if ( my $letter = TransferSlip ($session->param('branch') || $userenv->{branch}, $itemnumber, $barcode, $branchcode) ) { $slip = $letter->{content}; $is_html = $letter->{is_html}; } --- a/t/db_dependent/Circulation_transfers.t +++ a/t/db_dependent/Circulation_transfers.t @@ -9,7 +9,7 @@ use C4::Circulation; use Koha::DateUtils; use DateTime::Duration; -use Test::More tests => 19; +use Test::More tests => 22; use Test::Deep; BEGIN { @@ -198,5 +198,16 @@ is( C4::Circulation::DeleteTransfer($item_id1), is(C4::Circulation::DeleteTransfer(),undef,"Without itemid DeleteTransfer returns undef"); is(C4::Circulation::DeleteTransfer(-1),'0E0',"with a wrong itemid DeleteTranfer returns 0E0"); +#Test TransferSlip +is( C4::Circulation::TransferSlip($samplebranch1->{branchcode}, undef, 5, $samplebranch2->{branchcode}), + undef, "No tranferslip if invalid or undef itemnumber or barcode" ); +is( C4::Circulation::TransferSlip($samplebranch1->{branchcode}, $item_id1, 1, $samplebranch2->{branchcode})->{'code'}, + 'TRANSFERSLIP', "Get a transferslip on valid itemnumber and/or barcode" ); +cmp_deeply( + C4::Circulation::TransferSlip($samplebranch1->{branchcode}, $item_id1, undef, $samplebranch2->{branchcode}), + C4::Circulation::TransferSlip($samplebranch1->{branchcode}, undef, 1, $samplebranch2->{branchcode}), + "Barcode and itemnumber for same item both generate same TransferSlip" + ); + #End transaction $dbh->rollback; --