From 293106a34d1a224d039ca86de1e4601d9b833347 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 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 --- 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 bc1c433..0f1974c 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