Wishlist: Configurable Payment Types
Bug #1669445 reported by
Chris Sharp
This bug affects 15 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
Evergreen provides a UI for managing billing types, allowing system administrators to create or remove different types as needed. Unfortunately, payment types are not at all configurable because of how they are implemented. Currently, "payment type" relies on database views based on money.payment, and include cash, check, credit card, forgive, work, and goods payments. It would improve Evergreen's configurability to rearchitect this structure to allow addition/removal of payment types in the same way we can manage billing types currently.
tags: | added: billing circulation wishlist |
tags: |
added: circ-billing removed: billing wishlist |
Changed in evergreen: | |
milestone: | 3.next → none |
Changed in evergreen: | |
status: | New → Confirmed |
To post a comment you must log in.
For clarification about the database layer, the different payment types are not views but child tables. The reason to use table inheritance is to provide for the differing fields of different payment types.
Doing this also improves the code as it avoids the possibility of whole classes bugs. For instance, the business logic code does not have to make sure to conditionally use (or avoid) some fields for one payment type and others for another.
It also simplifies reporting, providing layers of abstraction such as when payments are tied to a particular location, or not.
I can certainly see a benefit to being able to "disable" certain payment types, and that would not be too hard to do. We could definitely improve the process of adding new types, as well, but because we're dealing with recording incoming money I feel strongly that the precision and bug-avoidance of the existing scheme has major benefits