Bug 34101 - Limit items types that can be checked out via SIP2
Summary: Limit items types that can be checked out via SIP2
Status: Needs documenting
Alias: None
Product: Koha
Classification: Unclassified
Component: SIP2 (show other bugs)
Version: Main
Hardware: All All
: P5 - low enhancement
Assignee: Sam Lau
QA Contact: Martin Renvoize (ashimema)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-22 19:21 UTC by Nick Clemens (kidclamp)
Modified: 2024-07-25 11:15 UTC (History)
3 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:
23.11.00,23.05.02
Circulation function:


Attachments
Bug 34101: Unit Tests (2.01 KB, patch)
2023-06-27 23:03 UTC, Sam Lau
Details | Diff | Splinter Review
Bug 34101: Limit items types that can be checked out via SIP2 (4.14 KB, patch)
2023-06-27 23:03 UTC, Sam Lau
Details | Diff | Splinter Review
Bug 34101: Unit Tests (2.07 KB, patch)
2023-06-28 12:45 UTC, Nick Clemens (kidclamp)
Details | Diff | Splinter Review
Bug 34101: Limit items types that can be checked out via SIP2 (4.19 KB, patch)
2023-06-28 12:45 UTC, Nick Clemens (kidclamp)
Details | Diff | Splinter Review
Bug 34101: Unit Tests (2.13 KB, patch)
2023-07-03 10:30 UTC, Martin Renvoize (ashimema)
Details | Diff | Splinter Review
Bug 34101: Limit items types that can be checked out via SIP2 (4.26 KB, patch)
2023-07-03 10:30 UTC, Martin Renvoize (ashimema)
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Clemens (kidclamp) 2023-06-22 19:21:48 UTC
Some libraries have different types of SIP2 checkout stations - staffed or unstaffed. There are certin itemtypes (passes, equipment, etc.) that should not be checked out from unstaffed stations,

This bug proposes to add the ability to define a list of item types in the SIP configuration for an account and prevent those items from being issued by that SIP account
Comment 1 Sam Lau 2023-06-27 23:03:24 UTC
Created attachment 152773 [details] [review]
Bug 34101: Unit Tests

prove t/db_dependent/SIP/Message.t
Comment 2 Sam Lau 2023-06-27 23:03:27 UTC
Created attachment 152774 [details] [review]
Bug 34101: Limit items types that can be checked out via SIP2

This bug adds the ability to define a list of item types that are blocked from being issued at that SIP account

To test:
1) Apply this patch
2) Visit Administration->Item types and select edit on the music item type
3) Make the rental charge 0 and save changes (this allows for the item to be checked out via SIP)
4) In the terminal, vim /etc/koha/sites/kohadev/SIPconfig.xml
5) Edit the term1 account and add the following *inside* the login section:
     blocked_item_types="BK|MU"
     You should have something similar to this: <login id ="term1" ........... checked_in_ok="1" blocked_item_types="BK|MU" />
6) Restart SIP (sudo koha-sip --restart <instancename>)
7) Run a checkout query for an item with the item type book. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418-m checkout
8) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
9) Run a checkout query for an item with the item type music. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715 -m checkout
10) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
11) vim /etc/koha/sites/kohadev/SIPconfig.xml and delete the BK from the blocked_item
12) Delete the BK from blocked_item_types. It should now look like :
    blocked_item_types="MU"
13) Restart SIP (sudo koha-sip --restart <instancename>)
14) Run a checkout query for the item with the item type book
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418    -m checkout
15) Checkout succesful
16) Run a checkout query for the item with the item type music
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715     -m checkout
17) Still fails (because it is blocked)
18) prove t/db_dependent/SIP/Message.t
19) Congratulate yourself for making it through the long test and sign-off :)
Comment 3 Nick Clemens (kidclamp) 2023-06-28 12:45:18 UTC
Created attachment 152798 [details] [review]
Bug 34101: Unit Tests

prove t/db_dependent/SIP/Message.t

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Comment 4 Nick Clemens (kidclamp) 2023-06-28 12:45:20 UTC
Created attachment 152799 [details] [review]
Bug 34101: Limit items types that can be checked out via SIP2

This bug adds the ability to define a list of item types that are blocked from being issued at that SIP account

To test:
1) Apply this patch
2) Visit Administration->Item types and select edit on the music item type
3) Make the rental charge 0 and save changes (this allows for the item to be checked out via SIP)
4) In the terminal, vim /etc/koha/sites/kohadev/SIPconfig.xml
5) Edit the term1 account and add the following *inside* the login section:
     blocked_item_types="BK|MU"
     You should have something similar to this: <login id ="term1" ........... checked_in_ok="1" blocked_item_types="BK|MU" />
6) Restart SIP (sudo koha-sip --restart <instancename>)
7) Run a checkout query for an item with the item type book. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418-m checkout
8) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
9) Run a checkout query for an item with the item type music. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715 -m checkout
10) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
11) vim /etc/koha/sites/kohadev/SIPconfig.xml and delete the BK from the blocked_item
12) Delete the BK from blocked_item_types. It should now look like :
    blocked_item_types="MU"
13) Restart SIP (sudo koha-sip --restart <instancename>)
14) Run a checkout query for the item with the item type book
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418    -m checkout
15) Checkout succesful
16) Run a checkout query for the item with the item type music
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715     -m checkout
17) Still fails (because it is blocked)
18) prove t/db_dependent/SIP/Message.t
19) Congratulate yourself for making it through the long test and sign-off :)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Comment 5 Martin Renvoize (ashimema) 2023-07-03 10:30:01 UTC
Created attachment 152924 [details] [review]
Bug 34101: Unit Tests

prove t/db_dependent/SIP/Message.t

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 6 Martin Renvoize (ashimema) 2023-07-03 10:30:04 UTC
Created attachment 152925 [details] [review]
Bug 34101: Limit items types that can be checked out via SIP2

This bug adds the ability to define a list of item types that are blocked from being issued at that SIP account

To test:
1) Apply this patch
2) Visit Administration->Item types and select edit on the music item type
3) Make the rental charge 0 and save changes (this allows for the item to be checked out via SIP)
4) In the terminal, vim /etc/koha/sites/kohadev/SIPconfig.xml
5) Edit the term1 account and add the following *inside* the login section:
     blocked_item_types="BK|MU"
     You should have something similar to this: <login id ="term1" ........... checked_in_ok="1" blocked_item_types="BK|MU" />
6) Restart SIP (sudo koha-sip --restart <instancename>)
7) Run a checkout query for an item with the item type book. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418-m checkout
8) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
9) Run a checkout query for an item with the item type music. Here is an example you could use:
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715 -m checkout
10) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
11) vim /etc/koha/sites/kohadev/SIPconfig.xml and delete the BK from the blocked_item
12) Delete the BK from blocked_item_types. It should now look like :
    blocked_item_types="MU"
13) Restart SIP (sudo koha-sip --restart <instancename>)
14) Run a checkout query for the item with the item type book
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418    -m checkout
15) Checkout succesful
16) Run a checkout query for the item with the item type music
    perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715     -m checkout
17) Still fails (because it is blocked)
18) prove t/db_dependent/SIP/Message.t
19) Congratulate yourself for making it through the long test and sign-off :)

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 7 Martin Renvoize (ashimema) 2023-07-03 10:30:39 UTC
Nice work.. all looks good here.

Passing QA
Comment 8 Tomás Cohen Arazi (tcohen) 2023-07-05 15:19:43 UTC
Pushed to master for 23.11.

Nice work everyone, thanks!
Comment 9 Christofer Zorn 2023-07-06 14:03:15 UTC
Thank you for your hard work on this everyone! Is it possible to have this back ported to either 23.05 or 22.11, or both?

Thanks!

Chris
Comment 10 Martin Renvoize (ashimema) 2023-07-17 15:34:34 UTC
As this requires serverside configuration changes to have any effect, I think we're safe to backport this one to 23.05.x series.
Comment 11 Martin Renvoize (ashimema) 2023-07-17 15:35:55 UTC
Thanks for all the hard work!

Pushed to 23.05.x for the next release
Comment 12 Matt Blenkinsop 2023-07-18 13:15:30 UTC
Enhancement - not backporting to 22.11.x

Nice work everyone!