From 9e1f5f7e0a1831742924d746c23c4000ba24f016 Mon Sep 17 00:00:00 2001 From: Benjamin Rokseth Date: Tue, 1 Apr 2014 14:07:59 +0200 Subject: [PATCH] [SIGNED-OFF] 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 | 6 +++--- C4/SIP/Sip/MsgType.pm | 8 -------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/C4/SIP/ILS/Transaction/Checkin.pm b/C4/SIP/ILS/Transaction/Checkin.pm index db1f102..9f1f729 100644 --- a/C4/SIP/ILS/Transaction/Checkin.pm +++ b/C4/SIP/ILS/Transaction/Checkin.pm @@ -67,15 +67,15 @@ 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->{ResFound}) { diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm index 17185e0..34b200c 100644 --- a/C4/SIP/Sip/MsgType.pm +++ b/C4/SIP/Sip/MsgType.pm @@ -654,14 +654,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 .= Sip::timestamp; $resp .= add_field(FID_INST_ID, $inst_id); -- 1.7.2.5