Bugzilla – Attachment 99955 Details for
Bug 23695
Items holdingbranch should be set to the originating library when generating a manual transfer
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23695: Set holding branch to transferring branch when manually initiating a transfer
Bug-23695-Set-holding-branch-to-transferring-branc.patch (text/plain), 7.51 KB, created by
Nick Clemens (kidclamp)
on 2020-03-02 17:22:30 UTC
(
hide
)
Description:
Bug 23695: Set holding branch to transferring branch when manually initiating a transfer
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2020-03-02 17:22:30 UTC
Size:
7.51 KB
patch
obsolete
>From 9f2954faae106415125c66fbeca13e03a61ab3e8 Mon Sep 17 00:00:00 2001 >From: Nick <nick@bywatersolutions.com> >Date: Mon, 30 Sep 2019 10:37:03 +0000 >Subject: [PATCH] Bug 23695: Set holding branch to transferring branch when > manually initiating a transfer > >To test: > 1 - Go to Circulation->Transfer > 2 - Note your signed in branch > 3 - Find an item from your branch and create a transfer to branch B > 4 - Confirm the item is marked as held at your current branch and is being transferred to B > 5 - Find an item from a third branch, branch C > 6 - Transfer that item to brnach B > 7 - Confirm the item is held at your current branch and is being transferred to B > 8 - prove -v t/db_dependent/Circulation.t > 9 - prove -v t/db_dependent/Koha/Items.t >10 - prove -v t/db_dependent/RotatingCollections.t >--- > C4/Circulation.pm | 18 +++++++++++++----- > C4/RotatingCollections.pm | 7 ++++++- > circ/branchtransfers.pl | 7 ++++++- > t/db_dependent/Circulation.t | 13 +++++++++---- > t/db_dependent/Koha/Items.t | 6 +++++- > 5 files changed, 39 insertions(+), 12 deletions(-) > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index 860d965cf1..fb2e766e0e 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -250,12 +250,17 @@ sub decode { > > =head2 transferbook > >- ($dotransfer, $messages, $iteminformation) = &transferbook($newbranch, >- $barcode, $ignore_reserves); >+ ($dotransfer, $messages, $iteminformation) = &transferbook({ >+ from_branch => $frombranch >+ to_branch => $tobranch, >+ barcode => $barcode, >+ ignore_reserves => $ignore_reserves >+ }); > > Transfers an item to a new branch. If the item is currently on loan, it is automatically returned before the actual transfer. > >-C<$newbranch> is the code for the branch to which the item should be transferred. >+C<$fbr> is the code for the branch initiating the transfer. >+C<$tbr> is the code for the branch to which the item should be transferred. > > C<$barcode> is the barcode of the item to be transferred. > >@@ -303,7 +308,11 @@ The item was eligible to be transferred. Barring problems communicating with the > =cut > > sub transferbook { >- my ( $tbr, $barcode, $ignoreRs ) = @_; >+ my $params = shift; >+ my $tbr = $params->{to_branch}; >+ my $fbr = $params->{from_branch}; >+ my $ignoreRs = $params->{ignore_reserves}; >+ my $barcode = $params->{barcode}; > my $messages; > my $dotransfer = 1; > my $item = Koha::Items->find( { barcode => $barcode } ); >@@ -318,7 +327,6 @@ sub transferbook { > my $itemnumber = $item->itemnumber; > # get branches of book... > my $hbr = $item->homebranch; >- my $fbr = $item->holdingbranch; > > # if using Branch Transfer Limits > if ( C4::Context->preference("UseBranchTransferLimits") == 1 ) { >diff --git a/C4/RotatingCollections.pm b/C4/RotatingCollections.pm >index 709eaf2164..8e6a560a7b 100644 >--- a/C4/RotatingCollections.pm >+++ b/C4/RotatingCollections.pm >@@ -446,7 +446,12 @@ sub TransferCollection { > while ( my $item = $sth->fetchrow_hashref ) { > my ($status) = CheckReserves( $item->{itemnumber} ); > my @transfers = C4::Circulation::GetTransfers( $item->{itemnumber} ); >- C4::Circulation::transferbook( $colBranchcode, $item->{barcode}, my $ignore_reserves = 1 ) unless ( $status eq 'Waiting' || @transfers ); >+ C4::Circulation::transferbook({ >+ from_branch => $item->holdingbranch, >+ to_branch => $colBranchcode, >+ barcode => $item->{barcode}, >+ ignore_reserves => 1 >+ }) unless ( $status eq 'Waiting' || @transfers ); > } > > return 1; >diff --git a/circ/branchtransfers.pl b/circ/branchtransfers.pl >index a8637ceba8..a8446ae11c 100755 >--- a/circ/branchtransfers.pl >+++ b/circ/branchtransfers.pl >@@ -127,7 +127,12 @@ defined $barcode and $barcode =~ s/^\s*|\s*$//g; # FIXME: barcodeInputFilter > if ($barcode) { > > ( $transferred, $messages ) = >- transferbook( $tobranchcd, $barcode, $ignoreRs ); >+ transferbook({ >+ from_branch => C4::Context->userenv->{'branch'}, >+ to_branch => $tobranchcd, >+ barcode => $barcode, >+ ignore_reserves => $ignoreRs >+ }); > my $item = Koha::Items->find({ barcode => $barcode }); > $found = $messages->{'ResFound'}; > if ($transferred) { >diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t >index 121c1767b4..15e3700023 100755 >--- a/t/db_dependent/Circulation.t >+++ b/t/db_dependent/Circulation.t >@@ -2966,7 +2966,7 @@ subtest 'Set waiting flag' => sub { > }; > > subtest 'Cancel transfers on lost items' => sub { >- plan tests => 5; >+ plan tests => 6; > my $library_1 = $builder->build( { source => 'Branch' } ); > my $patron_1 = $builder->build( { source => 'Borrower', value => { branchcode => $library_1->{branchcode}, categorycode => $patron_category->{categorycode} } } ); > my $library_2 = $builder->build( { source => 'Branch' } ); >@@ -2993,15 +2993,20 @@ subtest 'Cancel transfers on lost items' => sub { > my $do_transfer = 1; > my ( $res, $rr ) = AddReturn( $item->barcode, $library_1->{branchcode} ); > ModReserveAffect( $item->itemnumber, undef, $do_transfer, $reserve_id ); >- C4::Circulation::transferbook( $library_2->{branchcode}, $item->barcode ); >+ C4::Circulation::transferbook({ >+ from_branch => $library_1->{branchcode}, >+ to_branch => $library_2->{branchcode}, >+ barcode => $item->barcode, >+ }); > my $hold = Koha::Holds->find( $reserve_id ); > is( $hold->found, 'T', 'Hold is in transit' ); > > #Check transfer exists and the items holding branch is the transfer destination branch before marking it as lost > my ($datesent,$frombranch,$tobranch) = GetTransfers($item->itemnumber); >- is( $tobranch, $library_2->{branchcode}, 'The transfer record exists in the branchtransfers table'); >+ is( $frombranch, $library_1->{branchcode}, 'The transfer is generated from the correct library'); >+ is( $tobranch, $library_2->{branchcode}, 'The transfer is generated to the correct library'); > my $itemcheck = Koha::Items->find($item->itemnumber); >- is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Items holding branch is the transfers origin branch before it is marked as lost' ); >+ is( $itemcheck->holdingbranch, $library_1->{branchcode}, 'Items holding branch is the transfers origination branch before it is marked as lost' ); > > #Simulate item being marked as lost and confirm the transfer is deleted and the items holding branch is the transfers source branch > ModItem( { itemlost => 1 }, $item->biblionumber, $item->itemnumber ); >diff --git a/t/db_dependent/Koha/Items.t b/t/db_dependent/Koha/Items.t >index 94d9a45714..f4553aefe8 100644 >--- a/t/db_dependent/Koha/Items.t >+++ b/t/db_dependent/Koha/Items.t >@@ -69,7 +69,11 @@ subtest 'get_transfer' => sub { > > my $library_to = $builder->build( { source => 'Branch' } ); > >- C4::Circulation::transferbook( $library_to->{branchcode}, $new_item_1->barcode ); >+ C4::Circulation::transferbook({ >+ from_branch => $new_item_1->holdingbranch, >+ to_branch => $library_to->{branchcode}, >+ barcode => $new_item_1->barcode, >+ }); > > $transfer = $new_item_1->get_transfer(); > is( ref($transfer), 'Koha::Item::Transfer', 'Koha::Item->get_transfer should return a Koha::Item::Transfers object' ); >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23695
:
93231
|
98942
|
99955
|
99956
|
100567
|
100568
|
101441
|
101442
|
101443
|
107463
|
107464
|
107465
|
108183
|
108184
|
108185
|
108186
|
108273
|
108495
|
111391
|
111394