Age to lost: Assign lost fees for aged to lost loans - SET COST

Description

This is technical story needed to split effort for .

In scope of this story we have to implement Assign fees scheduled job described in the technical design.

Here is the overall algorithm of the job.

1. Scenario

  • Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"

  • When Loan Record field dateLostItemShouldBeBilled > System Date

  • Then:

    • Do no further aged to lost processing for item

2. Scenario

  • Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"

  • When:

    • Loan Record field dateLostItemShouldBeBilled <= System Date;

    • Lost item fee policy set to use Actual cost

  • Then:

    • Set lostItemHasBeenBilled = "true" (Per Holly)

    • Do no further aged to lost processing for item
      (Note: UIU-1500 will take care of changing the status of this item and closing the loan)

3. Scenario

  • Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"

  • When:

    • Loan Record field dateLostItemShouldBeBilled <= System Date;

    • Lost item fee policy Set cost = 0 or blank;

    • Charge lost item processing fee if item aged to lost by system = No

  • Then:

    • Set lostItemHasBeenBilled to "true"

    • Set dateLostItemShouldBeBilled to blank

    • Do no further aged to lost processing for item

4. Scenario (any (both) lost fee is assigned)

  • Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"

  • When:

    • Loan Record field dateLostItemShouldBeBilled <= System Date;

    • Any lost fee (Lost item or Lost item processing or both) should be charged;

  • Then:

    • Set lostItemHasBeenBilled to "true"

    • Set dateLostItemShouldBeBilled to blank

    • Assign lost item fee (if applicable):

      • Fee/fine type = "Lost item fee"

      • Fee/fine owner = Use Barcode to locate Item Record; Use Holdings Location: Permanent location from Item Record to find Primary service point within Settings>Tenant>Service Points; Use Service Point in Settings>Users>Fee/Fine: Owners to find associated Fee/fine owner

      • Billed date = System date and time

      • Billed amount = Charge amount for item

      • Remaining amount = Charge amount for item

      • Payment status = "Outstanding"

      • Loan details = link to loan record

      • Overdue policy = Overdue fine policy link from Loan record

      • Lost item policy = Lost item fee policy link from Loan record

      • Action date = System date and time

      • Action = "Lost item fee"

      • Amount = Charge amount for item

      • Balance = Charge amount for item

      • Transaction information = blank

      • Created at = "-"

      • Source should be "System"

      • Additional information = blank

    • Assign lost item processing fee (if applicable):

      • Fee/fine type = "Lost item processing fee"

      • Fee/fine owner = Use Barcode to locate Item Record; Use Holdings Location: Permanent location from Item Record to find Primary service point within Settings>Tenant>Service Points; Use Service Point in Settings>Users>Fee/Fine: Owners to find associated Fee/fine owner

      • Billed date = System date and time

      • Billed amount = Lost item processing fee

      • Remaining amount = Lost item processing fee

      • Payment status = "Outstanding"

      • Loan details = link to loan record

      • Overdue policy = Overdue fine policy link from Loan record

      • Lost item policy = Lost item fee policy link from Loan record

      • Action date = System date and time

      • Action = "Lost item processing fee"

      • Amount = Lost item processing fee

      • Balance = Lost item processing fee

      • Transaction information = blank

      • Created at = "-"

      • Source = "System"

      • Additional information = blank

Acceptance criteria:

  • The job is implemented;

  • Unit tests are created;

  • Make sure all DB indexes in place;

Notes:

  • Dev only story;

Environment

None

Potential Workaround

None

Attachments

7

Checklist

hide

TestRail: Results

Activity

Show:

Holly Mistlebauer September 10, 2020 at 9:52 PM

Holly retested the test cases where the Lost item processing fee is > 0 but the flag is set to not charge the Lost item processing fee for items that are aged to lost. The test cases passed (see attached test cases CIRC-852_Restest.jpg). There is one minor error on Fee/Fine Details where 'Created at' appears blank rather than as '-', but that is a display issue and Holly will create a separate JIRA for that. Thanks for getting this to work so wonderfully!

Holly Mistlebauer September 10, 2020 at 5:50 PM

: No worries. I created to fix how the fee/fine owner is derived.

Bohdan Suprun September 9, 2020 at 9:03 PM
Edited

Hi ,

Maybe let's have two bugs for declared lost and aged to lost.

So, it should be "effective" permanent location: i.e. if there is permanent location on item - use it, otherwise use holdings' permanent location, right?

Sorry about missing this during development.

Holly Mistlebauer September 9, 2020 at 8:41 PM

: The user story says to determine the Fee/Fine Owner using the Holdings Location: Permanent location from the Item Record. I have just learned that this should be Item Location: Permanent location from the Item Record. Can you change that now or do you want a separate JIRA for that instead? The change needs to be made before aged to lost is released.
P.S. I also requested that Holdings Location: Permanent location be used for declared lost. I will write up a bug to change that to Item Location: Permanent location. This should be a hot fix to Goldenrod.

Bohdan Suprun September 8, 2020 at 12:34 PM

Hi ,

The issue when processing fee is charged even when lost item policy states not to, is fixed now.

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 July 21, 2020 at 9:26 AM
Updated February 3, 2022 at 12:38 PM
Resolved September 10, 2020 at 9:52 PM
TestRail: Cases
TestRail: Runs