Bug 19530: Prevent multiple transfers from existing for one item

We have found multiple open branch transfers for a given item. While I'm not sure how it is happening at this point, it seems that it would make sense to cancel any existing branch transfers when initiating a new one.

Test Plan:
1) prove t/db_dependent/Circulation/transfers.t

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Kyle M Hall 2017-10-25 14:24:18 -04:00 committed by Jonathan Druart
parent f9c696fd03
commit b85a24d6de
2 changed files with 20 additions and 1 deletions

View File

@ -622,6 +622,8 @@ sub ModItemTransfer {
# Remove the 'shelving cart' location status if it is being used.
CartToShelf( $itemnumber ) if ( C4::Context->preference("ReturnToShelvingCart") );
$dbh->do("UPDATE branchtransfers SET datearrived = NOW(), comments = ? WHERE itemnumber = ?", undef, "Canceled, new transfer from $frombranch to $tobranch created", $itemnumber);
#new entry in branchtransfers....
my $sth = $dbh->prepare(
"INSERT INTO branchtransfers (itemnumber, frombranch, datesent, tobranch)

View File

@ -23,10 +23,11 @@ use C4::Circulation;
use Koha::Database;
use Koha::DateUtils;
use DateTime::Duration;
use Koha::Item::Transfers;
use t::lib::TestBuilder;
use Test::More tests => 22;
use Test::More tests => 24;
use Test::Deep;
BEGIN {
@ -192,5 +193,21 @@ cmp_deeply(
"Barcode and itemnumber for same item both generate same TransferSlip"
);
$dbh->do("DELETE FROM branchtransfers");
ModItemTransfer(
$item_id1,
$branchcode_1,
$branchcode_2
);
my $transfer = Koha::Item::Transfers->search()->next();
ModItemTransfer(
$item_id1,
$branchcode_1,
$branchcode_2
);
$transfer->{_result}->discard_changes;
ok( $transfer->datearrived, 'Date arrived is set when new transfer is initiated' );
is( $transfer->comments, "Canceled, new transfer from $branchcode_1 to $branchcode_2 created" );
$schema->storage->txn_rollback;