We don't notify staff up front that a hold fee will be applied to the patrons account when placing a hold from the staff client.. we should.
Created attachment 186262 [details] [review] Bug 40769: Display hold fees in staff client when placing holds This patch adds hold fee information display in the staff client's hold request interface, bringing it to feature parity with the OPAC. The OPAC already shows patrons the fee that will be charged for placing a hold, but the staff client did not display this information when staff place holds on behalf of patrons. This creates a transparency gap where staff cannot inform patrons about potential charges. Changes: - Import GetReserveFee function in reserve/request.pl - Calculate reserve charges for each biblio record - Display fee information in both single and multi-hold interfaces - Show appropriate messaging based on HoldFeeMode system preference - Use consistent formatting with currency display Test Plan: 1. Set up hold fees: - Go to Administration > Patron categories - Edit a patron category and set a "Hold fee" (e.g., 1.00) - Ensure HoldFeeMode system preference is set (default: "only if all items are checked out and the record has at least one") 2. Test single hold with fee display: - Go to a bibliographic record - Click "Place hold" - Find a patron from the category with hold fees configured - Verify fee information displays after the title: * Shows "Note: [Patron Name] will be charged a hold fee of $1.00 for placing this hold" when the HoldFeeMode is set to "any time a hold is placed" * Or "...when they collect this item" if HoldFeeMode is set to "any time a hold is collected" 3. Test multi-hold with fee display: - Ensure 'DisplayMultiPlaceHold' preference is set to 'Enable' - Search the catalog - On the search results page, select multiple biblios and click 'Place hold' - Search for the same patron - In the confirmation table, verify each record shows: * "Hold fee: $1.00 (charged when placed)" in the Information column * Or "(charged when collected)" based on HoldFeeMode 4. Test no fee display: - Repeat tests with a patron from a category with no hold fee - Verify no fee information is displayed 5. Test different HoldFeeMode settings: - Change HoldFeeMode system preference to 'any_time_is_collected' - Verify messaging changes to "when they collect this item" - Test with 'not_always' mode and verify fee only shows when appropriate 6. Verify existing functionality: - Ensure hold placement still works normally - Verify all other hold interface elements remain unchanged - Test that holds are properly placed with or without fees