Bug 9762 - Log circulation overrides
Summary: Log circulation overrides
Status: Needs Signoff
Alias: None
Product: Koha
Classification: Unclassified
Component: Circulation (show other bugs)
Version: Main
Hardware: All All
: P5 - low enhancement (vote)
Assignee: Bugs List
QA Contact:
URL:
Keywords:
: 21422 (view as bug list)
Depends on:
Blocks: 22794
  Show dependency treegraph
 
Reported: 2013-03-07 13:01 UTC by Nicole C. Engard
Modified: 2024-04-10 18:42 UTC (History)
15 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments
Bug 9762: Log circulation overrides (21.93 KB, patch)
2023-04-12 14:48 UTC, solene.ngamga
Details | Diff | Splinter Review
Bug 9762: Log circulation overrides (29.49 KB, patch)
2023-09-26 13:21 UTC, Emily-Rose Francoeur
Details | Diff | Splinter Review
Bug 9762: Log circulation overrides (28.78 KB, patch)
2024-03-25 17:22 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: fix log for test 10 13 14 15 16 17 (5.07 KB, patch)
2024-03-27 18:07 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Log circulation overrides (35.50 KB, patch)
2024-03-28 15:20 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Log circulation overrides (35.38 KB, patch)
2024-03-28 15:46 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Change how to pass the param issueconfirmed (3.85 KB, patch)
2024-04-02 20:30 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Change how to pass the param (7.99 KB, patch)
2024-04-03 17:39 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Test CanBookBeIssued.pm (13.04 KB, patch)
2024-04-04 14:53 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: change test (1.88 KB, patch)
2024-04-05 14:13 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Log circulation overrides (33.08 KB, patch)
2024-04-08 14:32 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Change how to pass the param (7.99 KB, patch)
2024-04-08 14:32 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Test CanBookBeIssued.pm (13.04 KB, patch)
2024-04-08 14:32 UTC, Matthias Le Gac
Details | Diff | Splinter Review
Bug 9762: Test CanBookBeIssued.pm (13.07 KB, patch)
2024-04-08 14:43 UTC, Matthias Le Gac
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nicole C. Engard 2013-03-07 13:01:25 UTC
It would be great if there were a way to track whenever someone overrides a warning message in circulation.  Whether it's ignoring a hold for someone or checking out even though the patron owes too much - any of the warnings with buttons listed here: http://manual.koha-community.org/3.12/en/circulation.html#checkoutwarn or here: http://manual.koha-community.org/3.12/en/checkingin.html#checkinmsg  would be tracked.
Comment 1 Katrin Fischer 2019-06-08 05:55:15 UTC
*** Bug 21422 has been marked as a duplicate of this bug. ***
Comment 2 Caroline Cyr La Rose 2021-01-07 17:04:27 UTC
I'm trying to make a list of all possibilities where someone can override a restriction. I don't know if it's useful for a developer...

Circulation -- Checking out

- Check out an item that is age restricted (AgeRestrictionOverride syspref)
- Check out an item that has a not for loan status (AllowNotForLoanOverride syspref)
- Check out an item that has a lost status (IssueLostItem syspref)
- Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
- Check out an item to a patron who is not allowed to borrow this item type
- Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
- Check out an item on hold for someone else
- Check out an item on hold ready for pickup by someone else
- Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
- Check out to a patron who has restrictions

Circulation -- Checking in

- Ignore a hold upon check in
- Ignore a hold & transfer upon check in

Circulation -- Renewing

- Renew an item on hold for someone else
- Renew an item that has reached the maximum amount of renewals

Holds

- Place a hold for a patron who is not allowed to put this item type on hold
- Place a hold for a patron who has reached the maximum amount of holds
- Place an item-level hold when rules say this is not allowed
Comment 3 Martha Fuerst 2021-01-29 18:18:06 UTC
We are also very interested in this logging.

Other things to consider in addition to Caroline's list, depending on how sysprefs are set:

- Check out an item to a patron who has guarantee's who have unpaid fines (NoIssuesChargeGuarantees)
- Check out an item to a patron who has overdues (OverduesBlockCirc)
- Renew an item for a patron who has overdues (OverduesBlockRenewing)
- Override circulation fine rules via "specify dute dute"

Thanks for the attention on this enhancement!

-Marti Fuerst, Huntsville-Madison County Public Library
Comment 4 Michael Adamyk 2021-02-01 15:00:31 UTC
As a consortia library, this would also be helpful for us. If we have librarians overriding restrictions (such as circulation rules), it can cause problems if the rules are for another library. Knowing which login is doing this would help track down what's going on.
Comment 5 Michael Adamyk 2021-02-01 15:01:46 UTC
As a consortia library, this would also be helpful for us. If we have librarians overriding restrictions (such as circulation rules), it can cause problems if the rules are for another library. Knowing which login is doing this would help track down what's going on.
Comment 6 solene.ngamga 2023-04-12 14:48:40 UTC
Created attachment 149554 [details] [review]
Bug 9762: Log circulation overrides

This patch allows you to save commands that have been overridden by someone.

To test:

--After each step, a message will be display on the actionlog--

Circulation -- Checking out

- Check out an item that is age restricted (AgeRestrictionOverride syspref)
- Check out an item that has a not for loan status (AllowNotForLoanOverride syspref)
- Check out an item that has a lost status (IssueLostItem syspref)
- Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
- Check out an item to a patron who is not allowed to borrow this item type
- Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
- Check out an item on hold for someone else
- Check out an item on hold ready for pickup by someone else
- Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
- Check out to a patron who has restrictions

Circulation -- Checking in

- Ignore a hold upon check in
- Ignore a hold & transfer upon check in

Circulation -- Renewing

- Renew an item on hold for someone else
- Renew an item that has reached the maximum amount of renewals

Holds

- Place a hold for a patron who is not allowed to put this item type on hold
- Place a hold for a patron who has reached the maximum amount of holds
- Place an item-level hold when rules say this is not allowed

Signed-off-by: Solene Ngamga <solene.ngamga@inLibro.com>
Comment 7 Lucas Gass 2023-04-14 14:48:55 UTC
Solene,

Most of this is working and this will be a great addition! A few things though:

-Do these strings need to translatable? 
-This is going to need unit tests.
Comment 8 Katrin Fischer 2023-04-15 21:12:55 UTC
(In reply to Lucas Gass from comment #7)
> Solene,
> 
> Most of this is working and this will be a great addition! A few things
> though:
> 
> -Do these strings need to translatable? 
> -This is going to need unit tests.

The messages in action_logs are usually not translated, but they are also usually not sentences/text, but data changes in JSON and other machine friendly syntax. Could we use codes instead of plain text and then translate them on the action log viewer? This would make them translatable and we could also adjust the texts easier.

I expected to find override in the descriptions or it being a new type of action. Maybe we could be a little bit clearer that these were all override actions.
Comment 9 Emily-Rose Francoeur 2023-09-26 13:21:17 UTC
Created attachment 156222 [details] [review]
Bug 9762: Log circulation overrides

This patch allows you to save commands that have been overridden by someone.

The patch has been updated but is not yet completed. Tests 10, 13, 14, and 17 are still not functional. Tests 15 and 16 need to be fixed as they do not display the barcode. All other tests should be functional.

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed
Comment 10 Matthias Le Gac 2024-03-25 17:22:21 UTC
Created attachment 163847 [details] [review]
Bug 9762: Log circulation overrides

Rebase to master

This patch allows you to save commands that have been overridden by someone.

The patch has been updated but is not yet completed. Tests 10, 13, 14, and 17 are still not functional. Tests 15 and 16 need to be fixed as they do not display the barcode. All other tests should be functional.

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed


Current status: Failed QA
Comment 11 Matthias Le Gac 2024-03-27 18:07:48 UTC
Created attachment 164022 [details] [review]
Bug 9762: fix log for test 10 13 14 15 16 17

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")
Comment 12 Lucas Gass 2024-03-27 19:18:29 UTC
Lots of issues here. 

1. renew.pl now fails with this error:

Could not compile /kohadevbox/koha/circ/renew.pl: Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?) at /kohadevbox/koha/circ/renew.pl line 67.

2. Looks like some debugging code is leftover 

3. request.pl has a whole block of code commented out starting with: 

# elsif ( C4::Context->preference('AllowHoldPolicyOverride') ){

4. Why remove the check for "unless( $skip_record_index )" in AddRenewal? I think there are times when we want to skip indexing. 

5.  FAIL	C4/Circulation.pm
   FAIL	  pod coverage
		POD is missing for CanBookBeReturned

6.  FAIL	circ/renew.pl
   WARN	  tidiness
		The file is less tidy than before (bad/messy lines before: 28, now: 44)
   FAIL	  valid
		Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?)
		Global symbol "$issue" requires explicit package name (did you forget to declare "my $issue"?)
		Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?)
		Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?)
		Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?)
		Global symbol "$borrower" requires explicit package name (did you forget to declare "my $borrower"?)
		circ/renew.pl had compilation errors.


7. Changes to CanBookBeIssued and AddRenewal probably need test coverage.
Comment 13 Matthias Le Gac 2024-03-28 15:20:50 UTC
Created attachment 164067 [details] [review]
Bug 9762: Log circulation overrides

This patch allows you to save commands that have been overridden by someone.

The patch has been updated but is not yet completed. Tests 10, 13, 14, and 17 are still not functional. Tests 15 and 16 need to be fixed as they do not display the barcode. All other tests should be functional.

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")

In this patch I smatch my log fix and tideness fix. I will make another patch for the new test.


Current status: Failed QA
Comment 14 Matthias Le Gac 2024-03-28 15:23:39 UTC
For the "skip_record_index" I don't now why Emily deleted this code but I thing we need this code so I put it back. Tell me if it's good??
Comment 15 Matthias Le Gac 2024-03-28 15:25:54 UTC
And I will make a new patch for test Circulation.pm
Comment 16 Matthias Le Gac 2024-03-28 15:46:35 UTC
Created attachment 164068 [details] [review]
Bug 9762: Log circulation overrides

This patch allows you to save commands that have been overridden by someone.

The patch has been updated but is not yet completed. Tests 10, 13, 14, and 17 are still not functional. Tests 15 and 16 need to be fixed as they do not display the barcode. All other tests should be functional.

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")

Fix POD problem for Circulation.pm


Current status: Failed QA
Comment 17 Matthias Le Gac 2024-04-02 20:30:14 UTC
Created attachment 164302 [details] [review]
Bug 9762: Change how to pass the param issueconfirmed

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")


Current status: Failed QA
Comment 18 Matthias Le Gac 2024-04-03 17:39:38 UTC
Created attachment 164387 [details] [review]
Bug 9762: Change how to pass the param

Current status: Failed QA
Comment 19 Matthias Le Gac 2024-04-04 14:53:58 UTC
Created attachment 164426 [details] [review]
Bug 9762: Test CanBookBeIssued.pm

To test:

1) Apply the patch
2) run prove t/db_dependent/Circulation/CanBookBeIssued.t

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")
Comment 20 Matthias Le Gac 2024-04-04 14:58:33 UTC
I created a separate test file from circulation.t because I think it's simpler as it tests the message sending for the method CanBookBeIssued in Circulation.pm method and also on master and without having applied the patch the Circulation.t test didn't work so I couldn't test my tests.
Comment 21 Matthias Le Gac 2024-04-05 14:13:59 UTC Comment hidden (obsolete)
Comment 22 Matthias Le Gac 2024-04-05 14:14:55 UTC Comment hidden (obsolete)
Comment 23 Matthias Le Gac 2024-04-08 14:32:48 UTC
Created attachment 164508 [details] [review]
Bug 9762: Log circulation overrides

This patch allows you to save commands that have been overridden by someone.

The patch has been updated but is not yet completed. Tests 10, 13, 14, and 17 are still not functional. Tests 15 and 16 need to be fixed as they do not display the barcode. All other tests should be functional.

To test:

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")


Current status: Needs Signoff
Comment 24 Matthias Le Gac 2024-04-08 14:32:51 UTC
Created attachment 164509 [details] [review]
Bug 9762: Change how to pass the param
Comment 25 Matthias Le Gac 2024-04-08 14:32:54 UTC
Created attachment 164510 [details] [review]
Bug 9762: Test CanBookBeIssued.pm

To test:

1) Apply the patch
2) run prove t/db_dependent/Circulation/CanBookBeIssued.t

--After each step, a message will be displayed in the action_logs table and in Tools > Log viewer --

Circulation -- Checking out

1) Check out an item that is age-restricted (AgeRestrictionOverride syspref)
2) Check out an item that has a “not for loan” status (AllowNotForLoanOverride syspref)
3) Check out an item that has a “lost” status (IssueLostItem syspref)
4) Check out an item to a patron who has reached the checkout limit (AllowTooManyOverride syspref)
5) Check out an item to a patron who is not allowed to borrow this item type
6) Check out an item to a patron who has unpaid fines (AllFinesNeedOverride and/or AllowFineOverride + noissuescharge sysprefs)
7) Check out an item on hold for someone else
8) Check out an item on hold ready for pickup by someone else
9) Check out an item already checked out to someone else (AutoReturnCheckedOutItems syspref)
10) Check out to a patron who has restrictions

Circulation -- Checking in

11) Ignore a hold upon check in
12) Ignore a hold and transfer upon check in

Circulation – Renewing

13) Renew an item on hold for someone else (AllowRenewalOnHoldOverride syspref)
14) Renew an item that has reached the maximum number of renewals (AllowRenewalLimitOverride syspref)

Holds

15) Place a hold for a patron who is not allowed to place this item type on hold (AllowHoldPolicyOverride syspref)
16) Place a hold for a patron who has reached the maximum number of holds
17) Place an item-level hold when rules dictate that this is not allowed (In circulation rules put "On shelf holds allowed" to "If any unavailable")
Comment 26 Matthias Le Gac 2024-04-08 14:33:43 UTC
Rebase to master
Comment 27 Matthias Le Gac 2024-04-08 14:43:53 UTC
Created attachment 164519 [details] [review]
Bug 9762: Test CanBookBeIssued.pm

Current status: Needs Signoff