SIP hold cancellation support
authorBill Erickson <berick@esilibrary.com>
Tue, 27 Nov 2012 15:42:58 +0000 (10:42 -0500)
committerMike Rylander <mrylander@gmail.com>
Thu, 11 Jul 2013 16:12:40 +0000 (12:12 -0400)
commit47879808611511f8db11b5f3d6831151543531bd
tree29cf400ae5d9d0a24e7e5882ca27ea2da77a3372
parenta4450ce1500cb83f995d8811dcf7f03e7a6374c2
SIP hold cancellation support

Implement a subset of SIP message pair 15/16 for holds cancellation.

1. New oils_sip.xml configuration option "msg64_hold_datatype".  This
is similar to msg64_summary_datatype, but affacts holds instead of
circulations.  When set to 'barcode', holds information will be
delivered as a set of copy barcodes instead of title strings for patron
info requests.  With barcodes, SIP clients can both find the title
strings for display (via item info requests) and make subseqent
hold-related action requests, like holds cancellation.

--
Copies are not an ideal identifier for holds, but SIP has a limited
vocabulary.  With copies we can (99% of the time) work to and from hold
requests to find a reasonable data set to work on.  If a patron has
multiple holds for the same item and wants to cancel a specific one of
those holds, the user should use the catalog instead of SIP.
--

2. When receiving a message 15 of with a cancellation action, find the
newest open hold that matches the provided copy barcode and cancel the
hold.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/examples/oils_sip.xml.example
Open-ILS/src/perlmods/lib/OpenILS/SIP.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Hold.pm [new file with mode: 0644]