Uploaded image for project: 'mod-circulation'
  1. mod-circulation
  2. CIRC-819

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

    XMLWordPrintable

Details

    • EPAM-Veg Sprint 143
    • 0
    • Vega

    Description

      Aged to Lost User Story Split

      On July 2, 2020 Holly split the CIRC-737 user story 'Aged to lost: Automatically age overdue items to lost' into 2 separate user stories:

      • CIRC-737 - 'Aged to lost: Automatically age overdue items to lost - SET COST'
      • CIRC-819 - 'Aged to lost: Automatically age overdue items to lost - ACTUAL COST'
        This has been done to mimic what was done with the Declared lost user stories. CIRC-751 (Aged to lost: Exclude claim returned items from aged to lost process) must be completed with CIRC-737.

      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 CIRCSTORE-199
        • 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

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                mykyta_varenyk Mykyta Varenyk
                hollyolepm Holly Mistlebauer
                Holly Mistlebauer Holly Mistlebauer
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases