Bugzilla – Attachment 45027 Details for
Bug 13411
Koha's SIP server returns not ok for checking in items that are not checked out
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 13411 - Koha's SIP server returns not ok for checking in items that are not checked out
SIGNED-OFF-Bug-13411---Kohas-SIP-server-returns-no.patch (text/plain), 5.16 KB, created by
Brendan Gallagher
on 2015-11-19 20:14:45 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 13411 - Koha's SIP server returns not ok for checking in items that are not checked out
Filename:
MIME Type:
Creator:
Brendan Gallagher
Created:
2015-11-19 20:14:45 UTC
Size:
5.16 KB
patch
obsolete
>From 943d6740dc3ec05b08125703f05b6857647572e3 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Thu, 27 Aug 2015 10:56:22 -0400 >Subject: [PATCH] [SIGNED-OFF] Bug 13411 - Koha's SIP server returns not ok for > checking in items that are not checked out > >If an item is not checked out when a checkin via SIP2 is attempted, >Koha's SIP server sends back an "ok" of 0, and the AF message "Item >not checked out". I am not entirely sure this is good and correct >behavior by the SIP2 protocol. > >In particular, this will cause SIP2 book sorting devices to fail on >all items that are not checked out, causing them all to be put into >the "special handling" been that should be reserved for things like >items checked in at the wrong library and items on hold. > >Test Plan: >1) Apply the patch for bug 13159 so you can use the new enhanced > SIP2 command line emulator >2) Use a command similar to the following to check in an item: > sip_cli_emulator.pl -a localhost -su <sip user> -sp <sip password> -l <instituation id> --item <barcode> -m checkin >3) Note the 3rd character is 0, and there is an AF field saying the item is not checked out >4) Apply this patch >5) Restart the SIP server >6) Repeat steps 2-3, note that nothing has changed >7) In the SIP config file, Add the parameter checked_in_ok="1" to the SIP account you are using. >8) Restart the SIP server >9) Repeat steps 2-3, note that this time the 3rd character is 1, and you do not recieve the item not checked out message. > >Signed-off-by: Benjamin Rokseth <benjamin.rokseth@kul.oslo.kommune.no> > >Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com> >--- > C4/SIP/ILS.pm | 43 ++++++++++++++++++++++++------------------- > C4/SIP/Sip/MsgType.pm | 2 +- > etc/SIPconfig.xml | 2 +- > 3 files changed, 26 insertions(+), 21 deletions(-) > >diff --git a/C4/SIP/ILS.pm b/C4/SIP/ILS.pm >index 099aa9c..2ea451e 100644 >--- a/C4/SIP/ILS.pm >+++ b/C4/SIP/ILS.pm >@@ -175,34 +175,39 @@ sub checkout { > } > > sub checkin { >- my ($self, $item_id, $trans_date, $return_date, >- $current_loc, $item_props, $cancel) = @_; >- my ($patron, $item, $circ); >+ my ( $self, $item_id, $trans_date, $return_date, $current_loc, $item_props, $cancel, $checked_in_ok ) = @_; >+ my ( $patron, $item, $circ ); > > $circ = C4::SIP::ILS::Transaction::Checkin->new(); >+ > # BEGIN TRANSACTION >- $circ->item($item = C4::SIP::ILS::Item->new( $item_id)); >+ $circ->item( $item = C4::SIP::ILS::Item->new($item_id) ); > > if ($item) { >- $circ->do_checkin($current_loc, $return_date); >- } else { >+ $circ->do_checkin( $current_loc, $return_date ); >+ } >+ else { > $circ->alert(1); > $circ->alert_type(99); > $circ->screen_msg('Invalid Item'); > } >- # It's ok to check it in if it exists, and if it was checked out >- $circ->ok($item && $item->{patron}); >- >- if (!defined($item->{patron})) { >- $circ->screen_msg("Item not checked out"); >- } else { >- if ($circ->ok) { >- $circ->patron($patron = C4::SIP::ILS::Patron->new( $item->{patron})); >- delete $item->{patron}; >- delete $item->{due_date}; >- $patron->{items} = [ grep {$_ ne $item_id} @{$patron->{items}} ]; >- } >- } >+ >+ # It's ok to check it in if it exists, and if it was checked out >+ # or it was not checked out but the checked_in_ok flag was set >+ $circ->ok( ( $checked_in_ok && $item ) || ( $item && $item->{patron} ) ); >+ >+ if ( !defined( $item->{patron} ) ) { >+ $circ->screen_msg("Item not checked out") unless $checked_in_ok; >+ } >+ else { >+ if ( $circ->ok ) { >+ $circ->patron( $patron = C4::SIP::ILS::Patron->new( $item->{patron} ) ); >+ delete $item->{patron}; >+ delete $item->{due_date}; >+ $patron->{items} = [ grep { $_ ne $item_id } @{ $patron->{items} } ]; >+ } >+ } >+ > # END TRANSACTION > > return $circ; >diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm >index 6b387cf..3c74377 100644 >--- a/C4/SIP/Sip/MsgType.pm >+++ b/C4/SIP/Sip/MsgType.pm >@@ -643,7 +643,7 @@ sub handle_checkin { > syslog("LOG_WARNING", "received no-block checkin from terminal '%s'", $account->{id}); > $status = $ils->checkin_no_block($item_id, $trans_date, $return_date, $item_props, $cancel); > } else { >- $status = $ils->checkin($item_id, $trans_date, $return_date, $my_branch, $item_props, $cancel); >+ $status = $ils->checkin($item_id, $trans_date, $return_date, $my_branch, $item_props, $cancel, $account->{checked_in_ok}); > } > > $patron = $status->patron; >diff --git a/etc/SIPconfig.xml b/etc/SIPconfig.xml >index 8d2d77b..141bc4f 100644 >--- a/etc/SIPconfig.xml >+++ b/etc/SIPconfig.xml >@@ -36,7 +36,7 @@ > </listeners> > > <accounts> >- <login id="term1" password="term1" delimiter="|" error-detect="enabled" institution="CPL" encoding="ascii" /> >+ <login id="term1" password="term1" delimiter="|" error-detect="enabled" institution="CPL" encoding="ascii" checked_in_ok="1" /> > <login id="koha" password="koha" delimiter="|" error-detect="enabled" institution="kohalibrary" encoding="utf8" /> > <login id="koha2" password="koha" institution="kohalibrary2" terminator="CR" /> > <login id="lpl-sc" password="1234" institution="LPL" /> >-- >1.9.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13411
:
34187
|
35665
|
35667
|
35669
|
36271
|
36310
|
36428
|
40952
|
40953
|
42035
|
42036
|
42081
|
42082
|
43590
|
43591
| 45027 |
45028