Bugzilla – Attachment 42035 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]
Bug 13411 - Koha's SIP server returns not ok for checking in items that are not checked out
Bug-13411---Kohas-SIP-server-returns-not-ok-for-ch.patch (text/plain), 3.66 KB, created by
Kyle M Hall (khall)
on 2015-08-27 14:58:06 UTC
(
hide
)
Description:
Bug 13411 - Koha's SIP server returns not ok for checking in items that are not checked out
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2015-08-27 14:58:06 UTC
Size:
3.66 KB
patch
obsolete
>From 54011c9d8e937afca737f9d3e1afe0b055541682 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] 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 4rd 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> >--- > C4/SIP/ILS.pm | 43 ++++++++++++++++++++++++------------------- > 1 files changed, 24 insertions(+), 19 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; >-- >1.7.2.5
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