SIP hold cancellation support user/berick/sip-cancel-hold
authorBill Erickson <berick@esilibrary.com>
Tue, 27 Nov 2012 15:42:58 +0000 (10:42 -0500)
committerBill Erickson <berick@esilibrary.com>
Mon, 7 Jan 2013 15:49:07 +0000 (10:49 -0500)
commit51273ef065e471f7b47b0fc5f67697bd4105317f
tree14593e25369ffd3ffc2ada37b3742d2b03b765b5
parent0877531fea774b6a001d217bfc3984f2278420eb
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>
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]