For no discernable reason, when AddIssue calls AddRenewal, it passes the branchcode generated from _GetCircControlBranch. Assume _GetCircControlBranch is set to return items.homebranch. So: 1) If an item owned by LibraryA is checked out at LibraryB, the statistic line branchcode will be LibraryB 2) If an item is renewed via the ajax datatables renewal function, the statistic line branchcode will be LibraryB 3) If an item is renewed via scanning the item into the checkout again, the statistic line branchcode will be *LibraryA* This is clearly improper behavior. The renewal is taking place at LibraryB, so the branchcode passed to AddRenewal should be LibraryB, the logged in library. This also jives with the documentation for the subroutine.
Created attachment 58201 [details] [review] Bug 17781 - Improper branchcode set during renewal For no discernable reason, when AddIssue calls AddRenewal, it passes the branchcode generated from _GetCircControlBranch. Assume _GetCircControlBranch is set to return items.homebranch. So: 1) If an item owned by LibraryA is checked out at LibraryB, the statistic line branchcode will be LibraryB 2) If an item is renewed via the ajax datatables renewal function, the statistic line branchcode will be LibraryB the 3) If an item is renewed via scanning the item into the checkout again, statistic line branchcode will be *LibraryA* This is clearly improper behavior. The renewal is taking place at LibraryB, so the branchcode passed to AddRenewal should be LibraryB, the logged in library. This also jives with the documentation for the subroutine. Test Plan: 1) Set CircControl to "the library the item is from" aka ( ItemHomeLibrary ) 2) Set HomeOrHoldingBranch to 'The library the items is from" ( aka homebranch ) 3) Create item with homebranch of LibraryA and holdingbranch of LibraryB 4) Set the logged in library to LibraryB 4) Check the item out to a patron at LibraryB 5) Note the statistics line has a branchcode of LibraryB 6) Check the item out again to trigger a renewal, renew the item 7) Note the statistic line has a branchcode of LibraryA! 8) Apply this patch 9) Repeat step 6 10) Note the statistics line has a branchcode of LibraryB!
Created attachment 58275 [details] [review] Bug 17781 - Improper branchcode set during renewal For no discernable reason, when AddIssue calls AddRenewal, it passes the branchcode generated from _GetCircControlBranch. Assume _GetCircControlBranch is set to return items.homebranch. So: 1) If an item owned by LibraryA is checked out at LibraryB, the statistic line branchcode will be LibraryB 2) If an item is renewed via the ajax datatables renewal function, the statistic line branchcode will be LibraryB the 3) If an item is renewed via scanning the item into the checkout again, statistic line branchcode will be *LibraryA* This is clearly improper behavior. The renewal is taking place at LibraryB, so the branchcode passed to AddRenewal should be LibraryB, the logged in library. This also jives with the documentation for the subroutine. Test Plan: 1) Set CircControl to "the library the item is from" aka ( ItemHomeLibrary ) 2) Set HomeOrHoldingBranch to 'The library the items is from" ( aka homebranch ) 3) Create item with homebranch of LibraryA and holdingbranch of LibraryB 4) Set the logged in library to LibraryB 4) Check the item out to a patron at LibraryB 5) Note the statistics line has a branchcode of LibraryB 6) Check the item out again to trigger a renewal, renew the item 7) Note the statistic line has a branchcode of LibraryA! 8) Apply this patch 9) Repeat step 6 10) Note the statistics line has a branchcode of LibraryB! Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: David Kuhn <kuhn@monterey.org>
Kyle, that changes will have more effects than just the statistic line. It will also modifies the branchcode condition for the item circulation alert (see C4::Circulation::AddRenewal:2991). I don't think it is what we want. Moreover we will need tests to cover this change.
Created attachment 58388 [details] [review] Bug 17781 - Improper branchcode set during renewal For no discernable reason, when AddIssue calls AddRenewal, it passes the branchcode generated from _GetCircControlBranch. Assume _GetCircControlBranch is set to return items.homebranch. So: 1) If an item owned by LibraryA is checked out at LibraryB, the statistic line branchcode will be LibraryB 2) If an item is renewed via the ajax datatables renewal function, the statistic line branchcode will be LibraryB the 3) If an item is renewed via scanning the item into the checkout again, statistic line branchcode will be *LibraryA* This is clearly improper behavior. The renewal is taking place at LibraryB, so the branchcode passed to AddRenewal should be LibraryB, the logged in library. This also jives with the documentation for the subroutine. Test Plan: 1) Set CircControl to "the library the item is from" aka ( ItemHomeLibrary ) 2) Set HomeOrHoldingBranch to 'The library the items is from" ( aka homebranch ) 3) Create item with homebranch of LibraryA and holdingbranch of LibraryB 4) Set the logged in library to LibraryB 4) Check the item out to a patron at LibraryB 5) Note the statistics line has a branchcode of LibraryB 6) Check the item out again to trigger a renewal, renew the item 7) Note the statistic line has a branchcode of LibraryA! 8) Apply this patch 9) Repeat step 6 10) Note the statistics line has a branchcode of LibraryB! Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: David Kuhn <kuhn@monterey.org>
Created attachment 58436 [details] [review] Bug 17781 - Improper branchcode set during renewal For no discernable reason, when AddIssue calls AddRenewal, it passes the branchcode generated from _GetCircControlBranch. Assume _GetCircControlBranch is set to return items.homebranch. So: 1) If an item owned by LibraryA is checked out at LibraryB, the statistic line branchcode will be LibraryB 2) If an item is renewed via the ajax datatables renewal function, the statistic line branchcode will be LibraryB the 3) If an item is renewed via scanning the item into the checkout again, statistic line branchcode will be *LibraryA* This is clearly improper behavior. The renewal is taking place at LibraryB, so the branchcode passed to AddRenewal should be LibraryB, the logged in library. This also jives with the documentation for the subroutine. Test Plan: 1) Set CircControl to "the library the item is from" aka ( ItemHomeLibrary ) 2) Set HomeOrHoldingBranch to 'The library the items is from" ( aka homebranch ) 3) Create item with homebranch of LibraryA and holdingbranch of LibraryB 4) Set the logged in library to LibraryB 4) Check the item out to a patron at LibraryB 5) Note the statistics line has a branchcode of LibraryB 6) Check the item out again to trigger a renewal, renew the item 7) Note the statistic line has a branchcode of LibraryA! 8) Apply this patch 9) Repeat step 6 10) Note the statistics line has a branchcode of LibraryB! Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: David Kuhn <kuhn@monterey.org> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed to master for 17.05!
This patch has been pushed to 16.11.x and will be in 16.11.02.
Pushed to 16.05.x, for 16.05.08 release