From 0b3b42b1473b610191827b7a9d6a86cd4298397b Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 30 Apr 2018 14:27:41 -0400 Subject: [PATCH] LP#1740537 Transit dialog showing wrong branch Always retrieve the latest copy transit from the server when displaying the copy transit dialog. This resolves an issue where a just-closed transit is used instead. Add a filter to avoid canceled transits. Make the transit lookup call authoritative, since the transit may have just been created. To test (test plan courtesy of John Amundson): 1. Sign in as Library A. 2. Check in an item owned by Library B that does not have any holds associated with it. This will send the item in transit to its home, Library B. 3. Place a hold on the item to be picked up at Library C. 4. Sign in as Library B. 5. Check in the item. The transit pop-up and printout will show that the item needs to be transited to Library B instead of Library C. 6. Apply the patch and repeat steps 1-5 using a different item. This time, the transit pop-up will show that the item needs to be transited to Library C. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton Signed-off-by: Mike Rylander --- Open-ILS/web/js/ui/default/staff/circ/services/circ.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/circ/services/circ.js b/Open-ILS/web/js/ui/default/staff/circ/services/circ.js index ec97c306f6..2807464e64 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/services/circ.js +++ b/Open-ILS/web/js/ui/default/staff/circ/services/circ.js @@ -938,11 +938,12 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog, egAddCopyAl service.find_copy_transit = function(evt, params, options) { if (angular.isArray(evt)) evt = evt[0]; - if (evt && evt.payload && evt.payload.transit) - return $q.when(evt.payload.transit); + // NOTE: evt.payload.transit may exist, but it's not necessarily + // the transit we want, since a transit close + open in the API + // returns the closed transit. return egCore.pcrud.search('atc', - { dest_recv_time : null}, + { dest_recv_time : null, cancel_time : null}, { flesh : 1, flesh_fields : {atc : ['target_copy']}, join : { @@ -955,7 +956,7 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog, egAddCopyAl }, limit : 1, order_by : {atc : 'source_send_time desc'}, - } + }, {authoritative : true} ).then(function(transit) { transit.source(egCore.org.get(transit.source())); transit.dest(egCore.org.get(transit.dest())); -- 2.43.2