Backend - Aged to lost: Closing (Lost and paid status) - SET COST

Description

NOTE: SAME SCENARIOS AS WITH DECLARED LOST

Purpose: Once the patron has paid for the item (or the associated fines have otherwise been taken care of - for example, if the library waives them), the loan can be closed.

The lost item fee policy will specify that either the actual cost of the item is charged or a set cost for a lost item is charged (in addition to a lost item processing fee). This story covers scenarios where the set cost is charged (automated).

Scenarios:

  1. Scenario

    • Given a loan that has been aged to lost and billed (Loan Record lostItemHasBeenBilled = 'true) with the following fees assigned:

      • no lost item processing fee

      • charge amount for item is set cost > 0

    • When the charge amount for item fee has been closed

    • Then:

      • close the loan

      • change item status to Lost and paid

  2. Scenario

    • Given a loan that has been aged to lost and billed (Loan Record lostItemHasBeenBilled = 'true) with the following fees assigned:

      • some lost item processing fee > 0

      • charge amount for item is set cost = 0.00

    • When the lost item processing fee has been closed

    • Then:

      • close the loan

      • change item status to Lost and paid

  3. Scenario

    • Given a loan that has been aged to lost and billed (Loan Record lostItemHasBeenBilled = 'true) with the following fees assigned:

      • some lost item processing fee > 0

      • some charge amount for item > 0

    • When both the lost item processing fee and the charge amount fee have been closed

    • Then:

      • close the loan

      • change item status to Lost and paid

  4. Scenario

    • Given a loan that has been aged to lost and with the following fees assigned:

      • some lost item processing fee > 0 or 0

      • some charge amount for item of actual cost type

    • When the lost item processing fee has been closed

    • Then:

      • do NOT close the loan

      • do NOT change item status to Lost and paid

Dev details: https://folio-org.atlassian.net/wiki/display/DD/Close+loan+when+lost+item+fees+are+closed#Closeloanwhenlostitemfeesareclosed-6Usepub/subapproachoverview

Notes:

  • If the Actual cost fee has not been charged to the patron yet, but is expected according to the fee/fine policy, the loan should not be closed.

  • Whether or not an Actual cost fee is owed should be determined when the item is aged to lost. If some aspect determining the circulation rule/lost item fee policy changes between when the item was aged to lost and when the fees were charged or paid, adhere to the lost item fee policy in place when the item was aged to lost.

  • Other fees or fines may exist on the loan that are not related to its being aged to lost. These should not block the loan from closing once all lost item fees are paid.

Environment

None

Potential Workaround

None

Attachments

1

Checklist

hide

TestRail: Results

Activity

Show:

Holly Mistlebauer September 21, 2020 at 3:53 PM

: Hi! Thanks for the answers. We will be implementing ACTUAL COST in R1 so I won't worry about it right now, but it is good that I can test it.

The way the aged to lost settings are written up the patron is supposed to be billed X intervals after the item is aged to lost. This means that the aged to lost date should be used as the base. Should I write this up as a bug? In circumstances where the setting is 2 weeks it wouldn't be as noticeable, but let's get is right.

Thanks much!

Bohdan Suprun September 19, 2020 at 7:39 AM
Edited

,

I am testing this on SNAPSHOT. Scenario #4 doesn't work because ACTUAL COST items are not being charged a 'Lost item processing fee' right now. Is that correct?

Sorry, did not see your comment. Yes, there was a requirement in :

4. Scenario
Given Item Status NOT = 'Aged to lost'
When item NOT claimed returned, Items aged to lost after overdue interval > 0, System date is Items aged to lost after overdue interval (see Lost Item Fee policy) from item due date and Lost item fee policy set to use Actual cost
Then:
Do no further aged to lost processing for item

Loans which have actual cost in the lost policy even not aged to lost.

I think, the 4th scenario can be reproduced in the following way:

  1. Check out item with lost policy set to charge set cost;

  2. Wait until item is aged to lost but not charged;

  3. When the status is charged, go to the lost item policy and change set cost to actual cost;

  4. Processing fee should be assigned even though actual cost is used.

  5. Close the fee and make sure the loan is not closed.

What do you think?

Bohdan Suprun September 19, 2020 at 7:29 AM

Hi ,

It is strange. Right now, the dateLostItemShouldBeBilled = loanDueDate + agedToLostAfterOverduePeriod + patronBilledAfterAgedToLost.

As you can see, I use loanDueDate as base, should I use the aged to lost date as base?

It might be that item aged to lost in 15 minutes after overdue and then the charging job triggered and assigned the fees.

Holly Mistlebauer September 18, 2020 at 7:18 PM

: I did run into an odd problem when testing this. Everything was billed at the same time, even if the 'Lost item fee policy' said to bill the item 40 minutes after it was aged to lost. Have you changed when the jobs run? All of my SET COST test cases Aged to Lost at 9/18/2020, 2:12 PM (which is fine) and then were billed at 9/18/2020, 2:37 PM. The ones set to be billed later were to be billed 40 minutes later. The time between 2:12 PM and 2:37 PM is only 25 minutes, not 40 minutes. What would cause this? When I tested I did not encounter this issue.

Holly Mistlebauer September 18, 2020 at 7:09 PM

Holly just tested this at https://folio-snapshot.dev.folio.org/ and the SET COST scenarios passed. Scenario #4 is for ACTUAL COST, which hasn't been implemented.

Done

Details

Assignee

Reporter

Tester Assignee

Labels

Priority

Story Points

Sprint

Development Team

Prokopovych

Fix versions

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created August 6, 2020 at 9:05 PM
Updated September 21, 2020 at 4:47 PM
Resolved September 18, 2020 at 7:09 PM
TestRail: Cases
TestRail: Runs