Details
-
Story
-
Status: Closed (View Workflow)
-
P2
-
Resolution: Done
-
None
-
None
-
customfield_11100 27941
-
EPAM-Veg Sprint 38, EPAM-Veg Sprint 39, EPAM-Veg Sprint 99
-
0
-
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:
- 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
- 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 - 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 - 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) - 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) - 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 - Scenario
Given displaying Refund error modal
When fees/fines marked as "Deselect to continue" have been unchecked
Then activate the Continue button - 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) - 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
- 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 - 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 - 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
- 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 - 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 - 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
- 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
- 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
- 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 - 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 - 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" - Scenario
Given Refund fees/fines modal validation
When passed
Then activate Refund button on Refund fees/fines modal - 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) - 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 - Scenario
Given Refund confirmation modal
When Cancel button pressed
Then close Refund confirmation modal, leaving user back at Refund fee/fine modal - 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
- CREDIT ACTION RECORD (see attached example New-refund-example.jpg)
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
- CREDIT ACTION RECORD (see attached example New-refund-example.jpg)
TestRail: Results
Attachments
Issue Links
- blocks
-
UIU-1164 Refund fees/fines: Report of refunds to process manually
-
- Closed
-
- defines
-
UXPROD-106 Refund paid fees/fines and create report (mostly finished in Q3 2020 but not released)
-
- Closed
-
- is blocked by
-
MODFEE-56 [SPIKE] Fees/fines refactoring estimation
-
- Closed
-
-
UXPROD-2445 Refactoring of Fees/Fines Actions
-
- Closed
-
- is cloned by
-
MODFEE-38 Refund fees/fines
-
- Closed
-