From ba7a6dbce125f54a4627e6e70f5e33641a4a338e Mon Sep 17 00:00:00 2001 From: Benjamin Rokseth Date: Tue, 1 Apr 2014 14:07:59 +0200 Subject: [PATCH] Bug 12021 - SIP2 checkin should alert on transfer and use CT for return branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This small patch corrects the SIP2 checkin response if branch transfer is needed. It depends on bug 7981 and also removes an obsolete alert check in SIP2. Test plan: - apply bug 7981 - make sure syspref AutomaticItemReturn is false - check 'Return policy' in 'Default checkout, hold and return policy' - make a SIP2 checkout and checkin from a branch different than item's home branch. - verify that SIP2 response gives alert CV04 (=send to different branch) - also verify that response field CT gives correct branch according to 'Return policy' Signed-off-by: Kyle M Hall Followed test plan, works as expected Signed-off-by: Marc VĂ©ron --- C4/SIP/ILS/Transaction/Checkin.pm | 8 ++++---- C4/SIP/Sip/MsgType.pm | 8 -------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/C4/SIP/ILS/Transaction/Checkin.pm b/C4/SIP/ILS/Transaction/Checkin.pm index ad04a88..19c82e9 100644 --- a/C4/SIP/ILS/Transaction/Checkin.pm +++ b/C4/SIP/ILS/Transaction/Checkin.pm @@ -80,19 +80,19 @@ sub do_checkin { $self->alert_type('99'); } if ($messages->{Wrongbranch}) { - $self->destination_loc($messages->{Wrongbranch}->{Rightbranch}); + $self->{item}->destination_loc($messages->{Wrongbranch}->{Rightbranch}); $self->alert_type('04'); # send to other branch } if ($messages->{WrongTransfer}) { - $self->destination_loc($messages->{WrongTransfer}); + $self->{item}->destination_loc($messages->{WrongTransfer}); $self->alert_type('04'); # send to other branch } if ($messages->{NeedsTransfer}) { - $self->destination_loc($iteminformation->{homebranch}); + $self->{item}->destination_loc($messages->{NeedsTransfer}); $self->alert_type('04'); # send to other branch } if ($messages->{WasTransfered}) { # set into transit so tell unit - $self->destination_loc($iteminformation->{homebranch}); + $self->{item}->destination_loc($iteminformation->{homebranch}); $self->alert_type('04'); # send to other branch } if ($messages->{ResFound}) { diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm index 4e406e2..6dde43e 100644 --- a/C4/SIP/Sip/MsgType.pm +++ b/C4/SIP/Sip/MsgType.pm @@ -649,14 +649,6 @@ sub handle_checkin { $resp .= 'U'; } - # apparently we can't trust the returns from Checkin yet (because C4::Circulation::AddReturn is faulty) - # So we reproduce the alert logic here. - if ( not $status->alert ) { - if ( $item->destination_loc and $item->destination_loc ne $my_branch ) { - $status->alert(1); - $status->alert_type('04'); # no hold, just send it - } - } $resp .= $status->alert ? 'Y' : 'N'; $resp .= timestamp; $resp .= add_field( FID_INST_ID, $inst_id ); -- 2.1.4