Summary: | Allow check out of already checked out items through SIP | ||
---|---|---|---|
Product: | Koha | Reporter: | Marianne Rolfsen <marianne.rolfsen> |
Component: | SIP2 | Assignee: | David Cook <dcook> |
Status: | RESOLVED FIXED | QA Contact: | Martin Renvoize (ashimema) <martin.renvoize> |
Severity: | enhancement | ||
Priority: | P3 | CC: | colin.campbell, david, dcook, gmcharlt, hattara, kyle.m.hall, kyle, lisette, lmstrand, lucas, magnus, oha, stian.kristensen |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: |
This enhancement allows checkouts of items already checked out to someone else when using SIP2. This is enabled using the new system preference AllowItemsOnLoanCheckoutSIP.
Example use case: Patron A has checked out a book and tried to return it, but for some reason it hasn't been properly checked in - but it was re-shelved anyway. Patron B wants to borrow this book from an unstaffed library, but the self-checkout blocks them because the book is still checked out to Patron A.
|
Version(s) released in: |
24.11.00
|
Circulation function: | |||
Attachments: |
Bug 18317: Allow check out of already checked out items through SIP
Bug 18317: Allow check out of already checked out items through SIP Bug 18317: Perl tidy Bug 18317: Allow check out of already checked out items through SIP Bug 18317: Perl tidy Bug 18317: Allow check out of already checked out items through SIP Bug 18317: Perl tidy Bug 18317: (QA follow-up) Clean up code and add unit tests Bug 18317: Add database update Bug 18317: Allow check out of already checked out items through SIP Bug 18317: Perl tidy Bug 18317: (QA follow-up) Clean up code and add unit tests Bug 18317: Add database update Bug 18317: (QA follow-up) Fix missing `,` |
Description
Marianne Rolfsen
2017-03-23 07:40:51 UTC
For future reference, here a possible workaround: change in SIP/ILS/Transaction/Checkout.pm (commenting out the block _after_ ISSUED_TO_ANOTHER and probably adding a few more conditions there) commenting out the _whole_ if case around "Item checked out to another patron" in C4/SIP/ILS.pm At least one library in Sweden would like to see this implemented too. Some sip clients already implement this - they force a discharge then proceed with the issue (In reply to Francesco Rivetti from comment #1) > For future reference, here a possible workaround: > > change in SIP/ILS/Transaction/Checkout.pm (commenting out the block _after_ > ISSUED_TO_ANOTHER and probably adding a few more conditions there) > > commenting out the _whole_ if case around "Item checked out to another > patron" in C4/SIP/ILS.pm I have a library that has been carrying this customization for a few years now. To be acceptable for Koha, I think that we'll have to wrap it with a system preference. Perhaps "AllowItemsOnLoanCheckoutSIP" (patterned after "AllowItemsOnHoldCheckoutSIP"). Created attachment 122934 [details] [review] Bug 18317: Allow check out of already checked out items through SIP This patch allows checkouts to be processed via SIP even when the item is already checked out to a user. Test plan: 0) Apply the patch 1) koha-sip --stop kohadev 2) koha-sip --start kohadev 3) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron koha --item 39999000001310 4) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 5) Note the output includes "AFItem checked out to another patron" 6) Enable system preference "AllowItemsOnLoanCheckoutSIP" 7) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 8) Note the output no longer includes "AFItem checked out to another patron" and the item has been checked out to patron 23529000035676 Note that I developed this patch against 21.05 rather than master, so it might not actually apply. My priority is the local change, so I figured it was better to attach 21.05 patches here rather than not send anything upstream. Just to confirm that the patch doesn't apply in master 8-(.. Applying: Bug 18317: Allow check out of already checked out items through SIP Using index info to reconstruct a base tree... M C4/SIP/ILS.pm M C4/SIP/ILS/Transaction/Checkout.pm M installer/data/mysql/mandatory/sysprefs.sql M koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref Falling back to patching base and 3-way merge... Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref Auto-merging installer/data/mysql/mandatory/sysprefs.sql Auto-merging C4/SIP/ILS/Transaction/Checkout.pm Auto-merging C4/SIP/ILS.pm CONFLICT (content): Merge conflict in C4/SIP/ILS.pm error: Failed to merge in the changes. Patch failed at 0001 Bug 18317: Allow check out of already checked out items through SIP SIP server configuration has the option prevcheckout_block_checkout="0" that should work for this. Haven't tested though. Does this suffice as a solution? (In reply to Lari Strand from comment #8) > SIP server configuration has the option prevcheckout_block_checkout="0" that > should work for this. Haven't tested though. Does this suffice as a solution? I think the it's a bit of a different use case here. prevcheckout blocks if you had it checked out in the past and have it returned since. This is about checkouts you currently haven on your account, if I understand it correctly. (In reply to Katrin Fischer from comment #9) > (In reply to Lari Strand from comment #8) > > SIP server configuration has the option prevcheckout_block_checkout="0" that > > should work for this. Haven't tested though. Does this suffice as a solution? > > I think the it's a bit of a different use case here. > > prevcheckout blocks if you had it checked out in the past and have it > returned since. > This is about checkouts you currently haven on your account, if I understand > it correctly. prevcheckout_block_checkout isn't relevant here. The use case here is that Patron A has checked out a book. Patron A has tried to return that book, but for some reason it hasn't been properly checked in, and it's been re-shelfed anyway. Patron B wants to borrow this book from an unstaffed library, but the self-checkout blocks them because the book is still checked out to Patron A. Just a reminder that this has been running in production for a multi-branch public library for something like 5-7 years now. I'll have to look at rebasing at some point... Created attachment 158688 [details] [review] Bug 18317: Allow check out of already checked out items through SIP This patch allows checkouts to be processed via SIP even when the item is already checked out to a user. Test plan: 0) Apply the patch 1) koha-sip --stop kohadev 2) koha-sip --start kohadev 3) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron koha --item 39999000001310 4) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 5) Note the output includes "AFItem checked out to another patron" 6) Enable system preference "AllowItemsOnLoanCheckoutSIP" 7) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 8) Note the output no longer includes "AFItem checked out to another patron" and the item has been checked out to patron 23529000035676 Created attachment 158689 [details] [review] Bug 18317: Perl tidy Created attachment 159130 [details] [review] Bug 18317: Allow check out of already checked out items through SIP This patch allows checkouts to be processed via SIP even when the item is already checked out to a user. Test plan: 0) Apply the patch 1) koha-sip --stop kohadev 2) koha-sip --start kohadev 3) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron koha --item 39999000001310 4) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 5) Note the output includes "AFItem checked out to another patron" 6) Enable system preference "AllowItemsOnLoanCheckoutSIP" 7) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 8) Note the output no longer includes "AFItem checked out to another patron" and the item has been checked out to patron 23529000035676 Signed-off-by: David Nind <david@davidnind.com> Created attachment 159131 [details] [review] Bug 18317: Perl tidy Signed-off-by: David Nind <david@davidnind.com> Needs unit tests Created attachment 162394 [details] [review] Bug 18317: Allow check out of already checked out items through SIP This patch allows checkouts to be processed via SIP even when the item is already checked out to a user. Test plan: 0) Apply the patch 1) koha-sip --stop kohadev 2) koha-sip --start kohadev 3) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron koha --item 39999000001310 4) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 5) Note the output includes "AFItem checked out to another patron" 6) Enable system preference "AllowItemsOnLoanCheckoutSIP" 7) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 8) Note the output no longer includes "AFItem checked out to another patron" and the item has been checked out to patron 23529000035676 Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Created attachment 162395 [details] [review] Bug 18317: Perl tidy Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Created attachment 162396 [details] [review] Bug 18317: (QA follow-up) Clean up code and add unit tests Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Hi Kyle, it looks like you missed the database update - can you please follow-up? If you set back to Passed QA it will go back up to the top of my queue. Created attachment 165972 [details] [review] Bug 18317: Add database update Hi Kyle, something is not quite right here, please fix: FAIL installer/data/mysql/atomicupdate/bug_18317.pl FAIL valid syntax error Can't use global @_ in "my" Global symbol "$args" requires explicit package name (did you forget to declare "my $args"?) syntax error installer/data/mysql/atomicupdate/bug_18317.pl had compilation errors. Created attachment 168489 [details] [review] Bug 18317: Allow check out of already checked out items through SIP This patch allows checkouts to be processed via SIP even when the item is already checked out to a user. Test plan: 0) Apply the patch 1) koha-sip --stop kohadev 2) koha-sip --start kohadev 3) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron koha --item 39999000001310 4) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 5) Note the output includes "AFItem checked out to another patron" 6) Enable system preference "AllowItemsOnLoanCheckoutSIP" 7) misc/sip_cli_emulator.pl -a localhost -p 6001 -l CPL -su term1 -sp term1 -m checkout --patron 23529000035676 --item 39999000001310 8) Note the output no longer includes "AFItem checked out to another patron" and the item has been checked out to patron 23529000035676 Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Created attachment 168490 [details] [review] Bug 18317: Perl tidy Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Created attachment 168491 [details] [review] Bug 18317: (QA follow-up) Clean up code and add unit tests Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Created attachment 168492 [details] [review] Bug 18317: Add database update Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Created attachment 168493 [details] [review] Bug 18317: (QA follow-up) Fix missing `,` Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Pushed for 24.11! Well done everyone, thank you! |