Borrowing times shorter than 1 day, issue #8, triggered by https://sourceforge.net/forum/message.php?msg_id=7548878.
I would like to open this discussion. The request is an hourly loan time, instead of a daily one. This seems ok to me, but would like some feedback from ye. I seems to me that I wouldn't be a big deal (except possibly having to convert the values in the tables, I haven't looked yet).
However, I think there is a deeper issue to be considered, a problem I am running in as well. What if you have an x number of books, of which 3 are on desk reserve and the rest are available for a normal loan. My scenario, some books are in a reference/reading room, and cannot be checked out. In my case I added to NOL (Not on Loan, but as suggested, the term might have to change) status indicating this. However, ideally you would be able to classify a copy as a "Reading Room" entity, or a "Desk Reserve" entity, or a "Daily Loan Entity".
I think there is an overlap here with media/material types in the current schema…
So any thoughts?
And as in the issue, a thing to consider is the fining system: e.g. after a minute late a full days fee, then toped with another full days fee 24 hours later?
I actually started work on this some time ago. I ran into problems with fining also. After all will thee be a fine if a person is 5 minutes late on a 6 hour loan. what is the tolerance. On daily loans, the issue is less since the cutoff is midnight and there is usually an outdoor book drop facility so books can be droped off after closing time. So if book is on premise when library opens the day after the loan period ends, it is the same no matter what time it arrived or how it got there. But on hourly loans, it gets more complex. If a book is borrowed for 6 hours five hours before closing what do you do:
- loan for 5 hours (which means you have to store either the return time or the actual loan period for that copy?
- do you allow overnight loan and one hour the next day?
- what if it is Friday afternoon and the Library doesnt open again until Monday?
I know, I am making it complicated, but someone has to make a rule so the code can implement it. Will all libraries agree on a single rule? Personally I doubt it. Who can describe how other libraries handle short time loans?
I do a fair amount of Genealogy work which involves visits to libraries with closed stacks (books can only be gotten by request at the counter). None of these may be removed from the library. But the Library MAY have other books in open stacks that do circulate. The two classes are handled completely seperate. Non-circulating books are not processed at the normal checkout counter. Bringing such a book to checkout gets you a VERY sever dirty look and some serious doubts about your integrity.
In a small library like our local Public Library, we do have non circulating, reference only books, and a single librarian who handles both kinds. But you do not really check out non-circulating books, you just take them to a table to read and then return them to the Librarian to reshelf. I can not immagine trying to handle in a single checkout session both types of books. Would the customer want to take the books that have been checked out back to a table while he/she reads the non-circulating items? Seems far fetched to me. I would think you would not want the person with checked out books to re-enter the library with those books. Once checked out, the books leave the premise. If they ever return to the premises they are checked in. Non circulating books never leave the premises though in a busy library I can see placing a time limit on how long you can hold such a book.
I agree with your comments above, and Micah might need to give input. To implement fining and loan terms properly I think we need to look at getting the calendar working (I guess that is where it is for, so you can specify opening hours and days the library is closed?). The amount of days an item can be taken out should then become the amount of 'business days'.
Also, I think the due-date should maybe be calculated on checkout, and then stored on the copy record or so. At home I know that during the summer holiday they extend the loan term from 3 to 6 weeks because people take books on holiday. This is not possible with the current system (I guess). But if you calculate and store the due date then you can easily change eg loan terms during a period. (However, what if the library calender changes in between? Or is this complicating a complicated issue to much).
I think it could be relative straight forward to make the above suggested change (well, a good few hours of coding testing etc…). I think there should also be a 'loan type' table, which links to a linked field op a copy, so that a copy can be a specific type. Eg taking an example from the university library, a desk-reserve book you check out for 3 hours, a day-loan book for 24 hours, a week-loan book for 7 days or a normal loan for 3 weeks. So this extra class would have the loan time, the fines for being late etc. stored in it. It could also have a loan of 0-hours/days which mean Not on Loan.
The Drop-down for status could be moved to the history screen to to allow manual changes to the status of a book, where this 'loan-type' could take the place of status.
I didn't mean that you checkout non circulating books, but there needs to be a class/type for it in case somebody does try, and the system should warn the operator that the book is Not Available for loan operations.
Just some thoughts…
As you've both pointed out, there are a lot of little details to work out with this. I'll weigh in a little bit, but the bottom line is this: I don't want to make 1.0 depend on getting this right - we have more than enough on our plates already.
There is already a way to have groups of items be specified as 'not for checkout', '30-day loan', etc. That's what collections are for. Most libraries that do this kind of thing keep the items with similar checkout rules in the same storage area, e.g. the reference section, the closed shelving. The current collection system is made to allow for different types of item use. Right now, we have circulated collections where you can specify the default checkout length and fines, and we have distributed collections for items that are given away from a periodically replenished stock (i.e. pamphlets, information booklets).
Collection types can override the whole checkout UI (or at least they could when I last touched that code), so you could have one UI for books that are checked out and another for meeting rooms or equipment that are reserved by the hour. I think that's the path for implementing this: custom collection type.
If you want to do this before 1.0, please fork the repo and do the work separately. If you stay in sync with the main repo and keep the custom changes limited to this one, then we can consider pulling the code back into the main repo after 1.0.
Well, I have no use for it, it was a request on the forum originally. I do think however, whenever it is taken up, we should have the possibility of 'collections' with different properties on the copy level and not on the bibid level. E.g. in college, often 4-5 copies (of the same bibid) are available for loan, and 1-2 copies are on reserve (3 hour loan).
On the other repository, we had this marked as 'hold' . Now with milestones, I think we should simply set it a good ways forward and let it stay a 'back burner' job for now. There are lorts mor urgent features than this one.
Part of me thinks that collections ought to be associated with a site and copies linked to a collection instead of a site - very similar to what you're suggesting. But that brings up the question of collection types, because the whole point of an alternative collection type is to have items that may not have copies. Obviously, that can't be done on a per-copy basis. Anyway these are all questions we can figure out later. As Fred says, there are more urgent things to worry about.