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>
# 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)
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 {
"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;