@@ -, +, @@ and common sense. branchtransfer_id in return columns. branchtransfer_id. --- C4/Circulation.pm | 5 +++-- installer/data/mysql/atomicupdate/14187.perl | 8 ++++++++ installer/data/mysql/kohastructure.sql | 2 ++ t/db_dependent/Circulation/transfers.t | 16 +++++++++------- 4 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/14187.perl --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -3205,7 +3205,8 @@ sub GetTransfers { my $query = ' SELECT datesent, frombranch, - tobranch + tobranch, + branchtransfer_id FROM branchtransfers WHERE itemnumber = ? AND datearrived IS NULL @@ -3229,7 +3230,7 @@ sub GetTransfersFromTo { return unless ( $frombranch && $tobranch ); my $dbh = C4::Context->dbh; my $query = " - SELECT itemnumber,datesent,frombranch + SELECT branchtransfer_id,itemnumber,datesent,frombranch FROM branchtransfers WHERE frombranch=? AND tobranch=? --- a/installer/data/mysql/atomicupdate/14187.perl +++ a/installer/data/mysql/atomicupdate/14187.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do("ALTER TABLE branchtransfers ADD COLUMN branchtransfer_id int(12) NOT NULL auto_increment FIRST, ADD CONSTRAINT PRIMARY KEY (branchtransfer_id);"); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 14187 - branchtransfer needs a primary key (id) for DBIx and common sense.)\n"; +} --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -1003,12 +1003,14 @@ CREATE TABLE `default_branch_item_rules` ( DROP TABLE IF EXISTS `branchtransfers`; CREATE TABLE `branchtransfers` ( -- information for items that are in transit between branches + `branchtransfer_id` int(12) NOT NULL auto_increment, -- primary key `itemnumber` int(11) NOT NULL default 0, -- the itemnumber that it is in transit (items.itemnumber) `datesent` datetime default NULL, -- the date the transfer was initialized `frombranch` varchar(10) NOT NULL default '', -- the branch the transfer is coming from `datearrived` datetime default NULL, -- the date the transfer arrived at its destination `tobranch` varchar(10) NOT NULL default '', -- the branch the transfer was going to `comments` mediumtext, -- any comments related to the transfer + PRIMARY KEY (`branchtransfer_id`), KEY `frombranch` (`frombranch`), KEY `tobranch` (`tobranch`), KEY `itemnumber` (`itemnumber`), --- a/t/db_dependent/Circulation/transfers.t +++ a/t/db_dependent/Circulation/transfers.t @@ -125,7 +125,7 @@ is(CreateBranchTransferLimit(undef,$branchcode_2),undef, my @transfers = GetTransfers($item_id1); cmp_deeply( \@transfers, - [ re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), $branchcode_1, $branchcode_2 ], + [ re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), $branchcode_1, $branchcode_2, re('[0-9]*') ], "Transfers of the item1" ); #NOTE: Only the first transfer is returned @transfers = GetTransfers; @@ -142,14 +142,16 @@ cmp_deeply( \@transferfrom1to2, [ { - itemnumber => $item_id1, - datesent => re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), - frombranch => $branchcode_1 + branchtransfer_id => re('[0-9]*'), + itemnumber => $item_id1, + datesent => re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), + frombranch => $branchcode_1 }, { - itemnumber => $item_id2, - datesent => re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), - frombranch => $branchcode_1 + branchtransfer_id => re('[0-9]*'), + itemnumber => $item_id2, + datesent => re('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'), + frombranch => $branchcode_1 } ], "Item1 and Item2 has been transferred from branch1 to branch2" --