[VUFIND-788] Enhanced and fixed getMyHolds and associated methods for Horizon Created: 18/Apr/13  Updated: 06/Aug/13  Resolved: 23/Apr/13

Status: Resolved
Project: VuFind®
Components: ILS Driver
Affects versions: 1.4, 2.0beta
Fix versions: 1.4.1, 2.0RC1

Type: New Feature Priority: Minor
Reporter: Jay Roos Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Attachments: Text File horizon-getMyHolds-1.x.patch     Text File horizon-getMyHolds-2.x.patch    

 Description   
The attached patches add a number of columns to the getMyHolds response including reqnum, item_id, request_expire, title, publication_year and volume.

It also corrects the location response which was returning the location where the request was placed. It now correctly returns the pickup location as well as returning it in descriptive form rather than code form.

The enhancement also changes the way the expiration date is handled. It now falls back to the request expiration date when the hold expiration date is not available. It also shows 'In Transit' when an item is in transit because those items have no hold or request expiration date.

Finally the results are sorted by availability and then title so the available items show up at the top of the list.

 Comments   
Comment by Demian Katz [ 19/Apr/13 ]
Before I commit this, could you look into an anomaly for me?

It looks like the HorizonXMLAPI driver extends the processHoldsRow() method in order to set 'item_id' to $row['BIB_NUM']. I'm not sure why we would want to use the bib# as the item#. If we remove HorizonXMLAPI::processHoldsRow, does the HorizonXMLAPI driver continue to function correctly? (I think the only things that would need to be tested would be display of holds and the "cancel hold" functionality).

Let me know what you find, and I'll commit the code once I hear back. Thanks!
Comment by Jay Roos [ 19/Apr/13 ]
Hold off. The HorizonXMLAPI functionality is completely broken. It was created before title-level holds were available and it tried to make the item-level request link perform title-level requests. I'll get it fixed once I get through a couple more patches to the SQL driver.
Comment by Demian Katz [ 19/Apr/13 ]
In that case, if the existing code is broken anyway, is it easier for you if I commit these patches as-is now, or should I wait and do it all at once?
Comment by Jay Roos [ 19/Apr/13 ]
Holds functionality seems to be very broken in our environment. We're running Horizon Information Portal 3.22.2_6075.

I've fixed it to the point where the request gets placed, but Horizon Information Portal still throws an error in the XML.
Comment by Jay Roos [ 19/Apr/13 ]
Ok, I fixed the holds problem in VUFIND-792. I did not do anything with processHoldsRow and won't need to until the XMLAPI driver is updated to work with both title and item specific holds.

As far as I know this a go.
Comment by Demian Katz [ 23/Apr/13 ]
Resolved (with minor style fixes) as r6259 and:

https://github.com/vufind-org/vufind/commit/de6299fff83387cd625bb3420f986bd688483f29
Generated at Fri Apr 19 22:32:39 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100250-rev:2b88e55752dc82be8616a67bc2b73a87c8e22b48.