Hold Fee

Bug #1047648 reported by tji@sitka.bclibraries.ca
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
Triaged
Wishlist
Unassigned

Bug Description

Put this piece on whishlist in case someone is interested in it. It is based on the practice at some libraries I know (non-EG libraries). I put it into EG envrionment.

Hold fees:

The functions allow libraries to

1. charge fee on unpicked up holds when hold is cancelled after it reaches In Transit status or On Hold Shelf status
2. allow an annual amount of free holds. Charge fee after the maximum is reached
3. fee may be charged when hold is sent in transit OR when it reaches hold shelf.
4. options to choose which fee to charge when both unpicked up fee and hold fee are applicable

Library Settings:

1. unpicked-up hold fee: 0 or null means no charge (money)
2. charge unpicked up hold fee on In Transit? (Boolean, True means charging on hold reached InTransit, False means charging on hold reached Hold Shelf)
3. hold fee: 0 or null means no charge (money)
4. charge hold fee on In Transit (Boolean, True means hold fee is inserted when hold reaches in transit or hold shelf, False means hold fee is inserted when hold reaches hold shelf)
5. annual maximum free holds per pickup library (incl. all branches) allowed (integer)
6. when hold with hold fee is cancelled, which fee to charge: unpicked up fee, hold fee or both? (integer: 1, 2 or 3)

EG behaviour:

I. When a hold is captured (hold in transit or hold shelf), check library setting #3.
         I-1. If 0 or null, proceed as normal (the current behaviour, no bill).
         I-2. If a positive amount, check library setting #4.
              I-2-1, If No and hold reaches In Transit, proceed as normal.
              I-2-2. If Yes, *counts the total number of holds by usr and capture_time within the current year and the same pickup location (or within the same range in case of multi-branch library). If the hold count is bigger than library setting #5, create a bill with the amount in library setting #3. If smaller proceed as normal.

II. When a hold In Transit reaches Hold Shelf: check library setting #3,
          II-1. If 0 or null, proceed as normal
          II-2. If positive amount, check if a bill on the hold exists (or check library setting #4). If yes, proceed as normal. If no, do the above *.

III. When a hold with In Transit status is cancelled, check if there is a bill on it
  III-1. If No, check library setting #1
  III-1-1. If 0 or null, proceed per normal
  III-1-2. If positive amount, check library setting #2, If No, proceed per normal. If Yes, create a bill with the amount in #1.

       III-2. If Yes, check library setting #6
                  III-2-1. If Unpicked up fee, void the existing billing and create a new one with amount in #1 with the same bill id
                  III-2-2. If Hold Fee, proceed as normal
                  II-2-3. If both, create a new billing with amount in #1 with the same bill id.

IV. When a hold with Hold Shelf status is cancelled, check if there is a bill linked with the hold
              IV-1. If no, check the library setting #1
                    IV-1-1. If 0 or null, proceed per normal
                    IV-1-2. If positive amount, create a bill with the amount in #1
                IV-2. If yes, check library setting #6.
                    IV-2-1. If Charge Unpicked up fee, void the previous billing and create a new billing line with amount in #1 with the same bill id.
                    IV-2-2. If charge hold fee, proceed per normal.
                    IV-2-3. If charge both, add a new billing with the amount in #1 with the same bill id.

Tina
Sitka

Tags: circ-holds
Changed in evergreen:
importance: Undecided → Wishlist
Changed in evergreen:
status: New → Incomplete
Changed in evergreen:
status: Incomplete → Triaged
tags: added: holds
Dan Briem (dbriem)
tags: added: circ-holds
removed: holds
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.