Uploaded image for project: 'ui-users'
  1. ui-users
  2. UIU-1139

Refund fees/fines: Enter refund

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Closed (View Workflow)
    • Priority: P2
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
    • Template:
    • Sprint:
      EPAM-Veg Sprint 38, EPAM-Veg Sprint 39, EPAM-Veg Sprint 99
    • Story Points:
      0
    • Development Team:
      Vega

      Description

      PURPOSE: To allow library staff to fully or partially refund one or more fees/fines that a patron has paid. Staff member must have refund permission in order to be able to refund fees/fines. Refunds are usually made for closed fees/fines, but may also be open fees/fines that have been partially paid.

      NOTES:

      • For the MVP, the fees/fines refunded to the bursar and the patron will be manually processed. When the refund is processed online it is considered to be completed. The writing of the refund check/transaction to the bursar is assumed to be scheduled. A report of all refunds will be produced (via separate JIRA issue UIU-1164) to assist in the manual processing of refunds.
      • We have working examples of everything described in this user story. Transfer fees/fines (the manual process) is probably the closest example to refunds. We also have a Pay fee/fine and a Waive fee/fine error modal that works like the error modal described in this user story. Please see Holly if you need specific examples to follow.

      OPEN ISSUES:

      1. Need to update PART D, Scenario 1 to include patron notice for refund of automated fees/fines such as Overdue fine, Lost item fee, Lost item processing fee and Replacement processing fee which don't have notice info in the Manual Charges table. We won't be able to do this until one or both of these features are completed-
        • UXPROD-1709 (Send notices for auto-generated fee/fines, overdue)
        • UXPROD-2165 (Send notices for auto-generated fee/fines, aged/lost item)

      SCENARIOS:
      (Paid amount is the total amount for Actions "Paid fully", "Paid partially", "Transferred fully" and "Transferred partially" on the fee/fine being processed. See attachment Refund-example.jpg for details.)

      PART A - Initiating refund from Fees/Fines History using Refund button

      1. Scenario
        Given the Refund button on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When no row box checked
        Then Refund button should remain grayed out and therefore unclickable
      2. Scenario
        Given the Refund button on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When one or more row boxes checked for fees/fines and none of the fees/fines selected have a paid amount > 0
        Then Refund button should remain grayed out and therefore unclickable
      3. Scenario
        Given the Refund button on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When pressed with one row box checked and fee/fine selected does have a paid amount > 0
        Then Prepare to open Refund fees/fines modal with top line message indicating "Refunding 1 fee/fine for a total amount of 99.99" (where 99.99 is the amount of the fee/fine)
      4. Scenario
        Given the Refund button on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When pressed with two or more row boxes checked and all of the fees/fines selected have a paid amount > 0
        Then Prepare to open Refund fees/fines modal with top line message indicating "Refunding 9 fees/fines for a total amount of 99.99" (where 9 is the total number of fees/fines to be refunded and 99.99 is the total amount of the fees/fines to be refunded)
      5. Scenario
        Given the Refund button on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When pressed with two or more row boxes checked and some of the fees/fines selected have a paid amount = 0 and some have a paid amount > 0
        Then display Refund error modal as shown in attached mock-up 9-Refund-error-modal.jpg; all fees/fines selected that were not fully or partially paid should have the "Deselect to continue" error message; Continue button should be grayed out and therefore unclickable
      6. Scenario
        Given displaying Refund error modal
        When fees/fines marked as "Deselect to continue" have been unchecked
        Then activate the Continue button
      7. Scenario
        Given the Continue button on Refund error modal
        When pressed
        Then Prepare to open Refund fees/fines modal with top line message indicating "Refunding 9 fees/fines for a total amount of 99.99" (where 9 is the total number of fees/fines to be refunded and 99.99 is the total amount of the fees/fines to be refunded)
      8. Scenario
        Given Cancel button on Refund error modal
        When pressed
        Then close Refund error modal, leaving user at Fees/Fines History

      PART B - Initiating refund from Fees/Fines History using Refund option on ellipsis menu

      1. Scenario
        Given the Refund ellipsis option on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When Fee/Fine in row does not have a paid amount > 0
        Then Refund ellipsis option for row should remain grayed out and therefore unselectable
      2. Scenario
        Given the Refund ellipsis option on the Fees/Fines History page (aka Open/Closed/All Fees/Fines)
        When Fee/Fine in row does have a paid amount > 0
        Then Refund ellipsis option for row should be active and therefore selectable
      3. Scenario
        Given the Refund ellipsis option on the Fees/Fines History page (aka Open/Closed/All Fees/Fines) is active
        When the Refund ellipsis option is selected
        Then Prepare to open Refund fees/fines modal with top line message indicating "Refunding 1 fee/fine for a total amount of 99.99" (where 99.99 is the amount of the fee/fine)

      PART C - Initiating refund from Fee/Fine Details using Refund button

      1. Scenario
        Given the Refund button on the Fee/Fine Details page
        When Fee/Fine displayed does not have a paid amount > 0
        Then Refund button should remain grayed out and therefore unclickable
      2. Scenario
        Given the Refund button on the Fee/Fine Details page
        When Fee/Fine displayed does have a paid amount > 0
        Then Refund button should be active therefore clickable
      3. Scenario
        Given the Refund button on the Fee/Fine Details page is active
        When Refund button has been pressed
        Then Prepare to open Refund fees/fines modal with top line message indicating "Refunding 1 fee/fine for a total amount of 99.99" (where 99.99 is the amount of the fee/fine)

      PART D - Prepare to open Refund fees/fines modal

      1. Scenario
        Given Prepare to open Refund fees/fines modal
        When patron notice is set
        (Settings>User>Manual charges setting for Fee/Fine Owner: Fee/Fine Type manual/automated is "manual" AND (Action Notice set for Fee/Fine Type OR Default Action Notice set)) OR (Settings>User>Manual charges setting for Fee/Fine Owner: Fee/Fine Type manual/automated is "automated" AND <see OPEN ISSUE 1 above>)
        Then open Refund fees/fines modal as shown in attached mock-up 2-Refund-Fee-Fine-With-Notice-Checked.jpg, with top line message as set above (e.g. "Refunding 1 fee/fine for a total amount of 99.99" or "Refunding 9 fees/fines for a total amount of 99.99") and...
        • Total paid amount is the total amount of fees/fines the patron has ever paid to the institution (this cannot be changed by the user)
        • Selected amount is represents the total amount of fees/fines selected for refund (this cannot be changed by the user)
        • Refund amount is set to the same amount as Selected amount, but can be changed by the user to a lower amount (in the case of a partial refund)
        • Remaining amount will be zero initially, given that Selected amount minus Refund amount will be zero, but if the user changes the Refund amount to a lower amount there will be a Remaining amount
        • Other fees/fines owed is the total of other fees/fines the patron still owes
        • Refund reason is a required field that is a drop-down menu built using the values in Settings>Users>Refund reasons (if no values exist, display error message as shown in attached mock-up 8-Refund-Fee-Fine-No-Reasons.jpg)
        • Additional information for staff may be required: If Settings>Users>Comments required has Require comment when fee/fine fully/partially refunded set to "Yes", then place an * to the right of Additional information for staff to indicate that it is a required field
        • Notify patron is checked by default when a patron notice exists (the user may elect to uncheck it)
        • Additional information for patron appears whenever the Notify patron box is checked (if the user unchecks the Notify patron box, Additional information for patron should go away)
        • Cancel button is active
        • Refund button is inactive until validation is passed
      2. Scenario
        Given Prepare to open Refund fees/fines modal
        When patron notice is not set (Settings>User>Manual charges setting for Fee/Fine Owner does not have Action Notice set for Fee/Fine Type and Settings>User>Manual charges setting for Fee/Fine Owner does not have Default Action Notice set)
        Then open Refund fees/fines modal as shown in attached mock-up 1-Refund-Fee-Fine-No-Notice.jpg, with top line message as set above (e.g. "Refunding 1 fee/fine for a total amount of 99.99" or "Refunding 9 fees/fines for a total amount of 99.99") and...
        • Total paid amount is the total amount of fees/fines the patron has ever paid to the institution (this cannot be changed by the user)
        • Selected amount is represents the total amount of fees/fines selected for refund (this cannot be changed by the user)
        • Refund amount is set to the same amount as Selected amount, but can be changed by the user to a lower amount (in the case of a partial refund)
        • Remaining amount will be zero initially, given that Selected amount minus Refund amount will be zero, but if the user changes the Refund amount to a lower amount there will be a Remaining amount
        • Other fees/fines owed is the total of other fees/fines the patron still owes
        • Refund reason is a required field that is a drop-down menu built using the values in Settings>Users>Refund reasons (if no values exist, display error message as shown in attached mock-up 8-Refund-Fee-Fine-No-Reasons.jpg)
        • Additional information for staff may be required: If Settings>Users>Comments required has Require comment when fee/fine fully/partially refunded set to "Yes", then place an * to the right of Additional information for staff to indicate that it is a required field
        • Notify patron does not appear on the modal
        • Additional information for patron does not appear on the modal
        • Cancel button is active
        • Refund button is inactive until validation is passed
      3. Scenario
        Given Refund fees/fines modal
        When Notify patron unchecked
        Then display Notify patron as unchecked and stop displaying Additional information for patron, as shown in attached mock-up 3-Refund-Fee-Fine-With-Notice-Unchecked.jpg
      4. Scenario
        Given Refund fees/fines modal
        When data entered
        Then validate entries as follows
        Refund amount must be > 0 and =< Selected amount (If not, display error message: Refund amount must be greater than zero and less than or equal to Selected amount
        Refund reason must be selected from drop-down list (If not, display error message: Refund reason is required
        Additional information for staff must be entered if Settings>Users>Comments required has Require comment when fee/fine fully/partially refunded set to "Yes" (If not, display error message: Additional information for staff is required
      5. Scenario
        Given Refund amount changed on Refund fees/fines modal
        When changes Payment status from fully to partially refunded
        Then change top line message from "Refunding 1 fee/fine for a total amount of 99.99" to Partially refunding 1 fee/fine for a total amount of 99.99" or "Refunding 9 fees/fines for a total amount of 99.99" to "Partially refunding 9 fees/fines for a total amount of 99.99"
      6. Scenario
        Given Refund fees/fines modal validation
        When passed
        Then activate Refund button on Refund fees/fines modal
      7. Scenario
        Given Cancel button on Refund fees/fines modal
        When pressed
        Then close Refund fees/fines modal, leaving user where they started from (Fees/Fines History or Fee/Fine Details)
      8. Scenario
        Given Refund button on Refund fees/fines modal
        When pressed
        Then display Refund confirmation modal, as shown in attached mock-up 4-Confirm-Refund-Fee-Fine.jpg
      9. Scenario
        Given Refund confirmation modal
        When Cancel button pressed
        Then close Refund confirmation modal, leaving user back at Refund fee/fine modal
      10. Scenario
        Given Refund confirmation modal
        When Confirm button pressed
        Then determine the makeup of the refunded amount. Was some or all transferred to the Bursar (or some other account)? Was some or all paid by patron? To determine this...
        • Add up the amounts for all "action" records for Paid Fully/Paid Partially. If the total amount for all ACTION records for Paid Fully/Paid Partially is > 0.00 o to CREATE REFUND TO PATRON
        • Add up the amounts for all "action" records for Transferred Fully/Transferred Partially. If the total amount for all ACTION records for Transferred Fully/Transferred Partially is > 0.00 o to CREATE REFUND TO TRANSFER ACCOUNT
        • Then close Refund confirmation modal and Refund fee/fine modal, leaving the user where they originated the refund (at Fees/Fines History or Fee/Fine Details)
        • Then display the "Success Toast" as shown in attached mock-up 5-Success-Toast-Refund.jpg
        • Send patron notice if one was generated

      CREATE REFUND TO PATRON

      • Create two fees/fines "action" records for each refunded fee/fine: one for the credit and one for the refund. What we call "action" records are what is shown in the table section of the Fee/Fine Details page (see attached mock-up 3-FF-Refund-Example-1). PO is not sure of actual field names, but is using Fee/Fine Detail field names instead.
        • CREDIT ACTION RECORD (see attached example New-refund-example.jpg)
          • Action date should include system date and time of credit (this is what will be used to add this transaction to the report)
          • Action should be set to "Credited fully" or "Credited partially", depending on which took place
          • Amount should be set to the amount of this particular fee/fine that was credited
          • Balance of fee/fine should have credited amount subtracted from it
          • Transaction information should be set to "Refund to patron"
          • Created at should be set to service point where refund was entered
          • Source should identify the library staff member who did the refund
          • Refund reason should be a new data field that will show up on Fee/Fine Details with Action (e.g. Credited Fully-Lost item found, Credited Partially-Overpaid)
          • Additional information includes both Additional information for staff and Additional Information for patron
        • REFUND ACTION RECORD (see attached example New-refund-example.jpg)
          • Action date should include system date and time of refund (this is what will be used to add this transaction to the report)
          • Action should be set to "Refunded fully" or "Refunded partially", depending on which took place
          • Amount should be set to the amount of this particular fee/fine that was refunded
          • Balance of fee/fine should have refunded amount subtracted from it
          • Transaction information should be set to "Refunded to patron"
          • Created at should be set to service point where the refund was entered
          • Source should identify the library staff member who did the refund
          • Refund reason should be a new data field that will show up on Fee/Fine Details with Action (e.g. Refunded Fully-Lost item found, Refunded Partially-Overpaid)
          • Additional information includes both Additional information for staff and Additional Information for patron

      CREATE REFUND TO TRANSFER ACCOUNT

      • Create two fees/fines "action" records for each refunded fee/fine: one for the credit and one for the refund. What we call "action" records are what is shown in the table section of the Fee/Fine Details page (see attached mock-up 3-FF-Refund-Example-1). PO is not sure of actual field names, but is using Fee/Fine Detail field names instead.
        • CREDIT ACTION RECORD (see attached example New-refund-example.jpg)
          • Action date should include system date and time of credit (this is what will be used to add this transaction to the report)
          • Action should be set to "Credited fully" or "Credited partially", depending on which took place
          • Amount should be set to the amount of this particular fee/fine that was credited
          • Balance of fee/fine should have credited amount subtracted from it
          • Transaction information should be set to "Refund to <Transfer-Account>"
          • Created at should be set to service point where refund was entered
          • Source should identify the library staff member who did the refund
          • Refund reason should be a new data field that will show up on Fee/Fine Details with Action (e.g. Credited Fully-Lost item found, Credited Partially-Overpaid)
          • Additional information includes both Additional information for staff and Additional Information for patron
        • REFUND ACTION RECORD (see attached example New-refund-example.jpg)
          • Action date should include system date and time of refund (this is what will be used to add this transaction to the report)
          • Action should be set to "Refunded fully" or "Refunded partially", depending on which took place
          • Amount should be set to the amount of this particular fee/fine that was refunded
          • Balance of fee/fine should have refunded amount subtracted from it
          • Transaction information should be set to "Refunded to <Transfer-Account>"
          • Created at should be set to service point where the refund was entered
          • Source should identify the library staff member who did the refund
          • Refund reason should be a new data field that will show up on Fee/Fine Details with Action (e.g. Refunded Fully-Lost item found, Refunded Partially-Overpaid)
          • Additional information includes both Additional information for staff and Additional Information for patron

        TestRail: Results

          Attachments

          1. 1-Refund-Fee-Fine-No-Notice.jpg
            1-Refund-Fee-Fine-No-Notice.jpg
            175 kB
          2. 2-Refund-Fee-Fine-With-Notice-Checked.jpg
            2-Refund-Fee-Fine-With-Notice-Checked.jpg
            131 kB
          3. 3-FF-Refund-Example-1.jpg
            3-FF-Refund-Example-1.jpg
            198 kB
          4. 3-Refund-Fee-Fine-With-Notice-Unchecked.jpg
            3-Refund-Fee-Fine-With-Notice-Unchecked.jpg
            121 kB
          5. 4-Confirm-Refund-Fee-Fine.jpg
            4-Confirm-Refund-Fee-Fine.jpg
            96 kB
          6. 5-Success-Toast-Refund .jpg
            5-Success-Toast-Refund .jpg
            111 kB
          7. 6-Refund-Error-Modal.JPG
            6-Refund-Error-Modal.JPG
            248 kB
          8. 7-FF-Details-Example.JPG
            7-FF-Details-Example.JPG
            179 kB
          9. 8-Refund-Fee-Fine-No-Reasons.jpg
            8-Refund-Fee-Fine-No-Reasons.jpg
            126 kB
          10. FF-Details-After-Refund.jpg
            FF-Details-After-Refund.jpg
            201 kB
          11. FF-Details-Before-Refund.jpg
            FF-Details-Before-Refund.jpg
            212 kB
          12. New-refund-example.jpg
            New-refund-example.jpg
            312 kB
          13. Refund-example.jpg
            Refund-example.jpg
            333 kB

            Issue Links

              Activity

                People

                Assignee:
                maxim_didenko Maxim Didenko
                Reporter:
                hollyolepm Holly Mistlebauer
                Tester Assignee:
                Holly Mistlebauer Holly Mistlebauer
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:

                    TestRail: Runs

                      TestRail: Cases