Aged to lost: Automatically age overdue items to lost - ACTUAL COST

Description

GENERAL INFORMATION

  • This are two batch process that will run daily at a time set by the institution (one for aging items to lost and the other for billing aged to lost items)

  • This process will create fee/fine records for Lost item processing fee and/or Lost item fee

  • Aged to Lost settings are located at Settings>Circulation>Lost item fee policies (see attached screen print Lost-Item-Policy.JPG)

    • Patron billed after aged to lost : Should the patron be billed now or just notified now? There will be an interval provided.

    • Charge lost item processing fee if item aged to lost by system : Should patron be charged the lost item processing fee?

    • Charge amount for item : Should actual cost be charged or is a default set cost provided?

  • Two new fields have been added to the Loan Record for the aged to lost process - created by user story

    • lostItemHasBeenBilled will be used to indicate if the aged to lost fee has been billed (for use where delayed billing is set up)

    • dateLostItemShouldBeBilled will be used to indicate when the aged to lost fee should be billed (for use where delayed billing is set up)

AGED TO LOST PROCESSING

Please note that the code for using Set cost already exists. We are just adding code for "Actual cost" at this point.

PART A: Determine if it is time to bill ACTUAL COST items already set to aged to lost, where institution is using delayed billing

  1. Scenario (item has aged to lost, but it is not time to bill the fee(s))
    Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"
    When Loan Record field dateLostItemShouldBeBilled > System Date and Actual cost selected in Lost Item Fee Policy
    Then:
    Do no further aged to lost processing for item

  2. Scenario (item is ready to be billed an ACTUAL COST Lost Item Fee, but no Lost Item Processing Fee will be billed)
    Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"
    When Loan Record field dateLostItemShouldBeBilled <= System Date, Actual cost selected in Lost Item Fee Policy and Charge lost item processing fee if item aged to lost by system = No
    Then:
    Set lostItemHasBeenBilled to "true"
    Set dateLostItemShouldBeBilled to blank
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

  3. Scenario (item is ready to be billed an ACTUAL COST Lost Item Fee and Lost Item Processing Fee)
    Given Item Status = 'Aged to lost' and Loan Record field lostItemHasBeenBilled = "false"
    When Loan Record field dateLostItemShouldBeBilled <= System Date, Actual cost selected in Lost Item Fee Policy and Charge lost item processing fee if item aged to lost by system = Yes
    Then:
    Set lostItemHasBeenBilled to "true"
    Set dateLostItemShouldBeBilled to blank
    Create fee/fine record for Lost item processing fee
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

PART B: Determine which loaned items using ACTUAL COST should be marked as aged to lost now and when they should be billed

  1. Scenario (site does not age non-recalled items to lost)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item not RECALLED
    When item NOT claimed returned and Items aged to lost after overdue interval (see Lost Item Fee policy) = 0 or blank
    Then:
    Do no further aged to lost processing for item

  2. Scenario (site does not age recalled items to lost)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is RECALLED
    When item NOT claimed returned and Recalled items aged to lost after overdue interval (see Lost Item Fee policy) = 0 or blank
    Then:
    Do no further aged to lost processing for item

  3. Scenario (not time yet to set non-recalled item to aged to lost)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item NOT RECALLED
    When item NOT claimed returned, Items aged to lost after overdue interval > 0, and System date is NOT Items aged to lost after overdue interval (see Lost Item Fee policy) from item due date
    Then:
    Do no further aged to lost processing for item

  4. Scenario (not time yet to set recalled item to aged to lost)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is RECALLED
    When item NOT claimed returned, Recalled items aged to lost after overdue interval > 0, and System date is NOT Items aged to lost after overdue interval (see Lost Item Fee policy) from item due date
    Then:
    Do no further aged to lost processing for item

  5. Scenario (time to set non-recalled item to aged to lost and bill them, but no Lost Item Processing Fee billed)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item NOT RECALLED
    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, Patron billed after aged to lost interval = 0 or blank, Charge lost item processing fee if item aged to lost by system = No
    Then:
    Set Item status to 'Aged to lost'
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

  6. Scenario (time to set recalled item to aged to lost and bill them, but no Lost Item Processing Fee billed)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is RECALLED
    When item NOT claimed returned, Recalled 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, Patron billed after aged to lost interval = 0 or blank, Charge lost item processing fee if item aged to lost by system = No
    Then:
    Set Item status to 'Aged to lost'
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

  7. Scenario (time to set non-recalled item to aged to lost bill them, including a Lost Item Processing Fee)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item NOT RECALLED
    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, Patron billed after aged to lost interval = 0 or blank, Charge lost item processing fee if item aged to lost by system = Yes
    Then:
    Set Item status to 'Aged to lost'
    Create fee/fine record for Lost item processing fee
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

  8. Scenario (time to set recalled item to aged to lost and bill them, including a Lost Item Processing Fee)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is RECALLED
    When item NOT claimed returned, Recalled 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, Patron billed after aged to lost interval = 0 or blank, Charge lost item processing fee if item aged to lost by system = Yes
    Then:
    Set Item status to 'Aged to lost'
    Create fee/fine record for Lost item processing fee
    Build ACTUAL COST record for Lost Item Fees Processing Page (see UXPROD-3377)

  9. Scenario (it is time to set the status to aged to lost, but not time to bill yet for non-recalled item)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is NOT RECALLED
    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, Patron billed after aged to lost interval > 0
    Then:
    Set Item status to 'Aged to lost'
    Set flag lostItemHasBeenBilled = "false"
    Set dateLostItemShouldBeBilled = calculated date based on Patron billed after aged to lost interval

  10. Scenario (it is time to set the status to aged to lost, but not time to bill yet for recalled item)
    Given Item Status NOT = 'Aged to lost', item using ACTUAL COST and item is RECALLED
    When item NOT claimed returned, Recalled 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, Patron billed for recall after aged to lost interval > 0
    Then:
    Set Item status to 'Aged to lost'
    Set flag lostItemHasBeenBilled = "false"
    Set dateLostItemShouldBeBilled = calculated date based on Patron billed for recall after aged to lost interval

Create fee/fine record for Lost item processing fee <== Follow what is currently done for SET COST lost items

  • 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

Open Issues:

  • What should happen if Fee/Fine Owner not found will be addressed by UXPROD-2278

  • Patron notices will be addressed by UXPROD-2165

Environment

None

Potential Workaround

None

Attachments

1

Checklist

hide

TestRail: Results

Activity

Show:

Holly Mistlebauer February 15, 2022 at 5:00 PM

: I have removed the line "See attached flow chart Aged2Lost.jpg for overview". Feel free to split the stories however you want/need to. Thanks...

Alexander Kurash February 15, 2022 at 12:13 PM
Edited

 In the description it says "See attached flow chart Aged2Lost.jpg for overview", but there's no such attachment. Should we refer to Aged2Lost.jpg attached to CIRC-737? Is it still relevant? Probably not, because it doesn't mention Actual Cost records, just tells us to do nothing if Actual Cost is set in the policy.

Also, I'd like to split Part A (already aged to lost) and Part B (not aged to lost yet) to two different stories because we're usually splitting stories that are estimated to more than 5 points, and this one looks like 8 to me.

Done

Details

Assignee

Reporter

Tester Assignee

Priority

Story Points

Sprint

Development Team

Vega

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created July 2, 2020 at 9:09 PM
Updated June 28, 2022 at 12:10 PM
Resolved June 28, 2022 at 12:10 PM
TestRail: Cases
TestRail: Runs