[OPEN-ILS-GENERAL] Negative balances and void payment types

Kathy Lussier klussier at masslnc.org
Wed Mar 5 12:18:47 EST 2014


Hi all,

Following up on a suggestion Chris Sharp made to the Evergreen 
developers list that more development discussion happen on the public 
lists - http://markmail.org/message/cueotsw7ck7crkvd, I would like to 
bring forward a discussion that has been taking place on 
https://bugs.launchpad.net/evergreen/+bug/1198465.

MassLNC contracted with Jason Stephenson to do several projects in the 
area of billing, including this project that would give libraries more 
control over whether negative balances appear on user's record. As many 
of you know, if you configure Evergreen to void a bill when a lost item 
is returned and the patron has already paid for that lost item, a 
negative balance is applied to the patron's record. Some libraries will 
refund these lost fees, so the negative balance makes sense, but most of 
our libraries are unable to issue refunds. Jason shared his plans 
regarding the project on this list back in July - 
http://markmail.org/message/rbz6atf7j2zhe2k3.

I don't think there is any disagreement that fixing the negative balance 
issue is a good thing, but there have been disagreements about the 
approach taken.

To approach this problem, Jason changed the way voiding works in 
Evergreen. Instead of entirely voiding a payment, the system would start 
using a void payment type, similar to the cash, credit, and forgive 
payment types that are already in use. This would allow the system to 
partially void bills that would otherwise show a negative balance. 
Quoting from his original specs:

> I believe that a new payment type will need to be added to handle 
> voiding of bills. This new payment type will replace the current void 
> logic that simply flags bills as voided.
>
> This new payment type is needed because the current way that Evergreen 
> voids bills requires that all voids happen in the same increments as 
> the bills themselves. This prevents voiding of a partial bill or a 
> bill that has had a partial payment applied.
>
Upon a week's worth reflection on the original code and the alternate 
approaches that have been suggested, I would like to advocate for the 
approach that Jason originally proposed for this project. The void 
payment type makes sense to me for several reasons:

- As was mentioned in the Launchpad discussion, it provides something 
akin to an accounting ledger of credits and debits. No bills simply 
disappear because they have been voided.

- The void payment type works the same way as other credits on the 
patrons' records, providing a level of consistency to the end user.

- There have been suggestions to rename things to fine_reversal or 
account_adjustment. However, I think "void" is the term that is most 
understandable to our users. Conceptually, when a lost book is returned, 
the billing shouldn't have happened and therefore should be voided. For 
our circ desk staff, there is no distinction in the terminology used for 
bills that are fully voided or partially voided.

- After spending many hours testing this development, I can say the 
learning curve for this new approach is small. Since void payments is 
using the same logic as our other payment types, it is something I 
believe staff can easily understand. When a bill is voided, it no longer 
disappears on the patron record, but remains  with a clear indication 
that the bill was voided, making it very easy for staff to track the 
history of a bill. I have some screenshots at 
http://www.screencast.com/t/ETwr4HCz0 and 
http://www.screencast.com/t/7zgMIiQqu if anyone is interested in seeing 
how it looks to the end user.

I also am concerned about an approach that would make voids work one 
with in a certain set of circumstances and in another way for another 
set of circumstances. One thing that can be confusing for our users is 
when the system does things in a particular way in some cases, but not 
in others. It also makes training and documentation more difficult. I 
wouldn't want to exacerbate this problem.

I agree that there are bugs with this code that needs to be fixed. 
However, having been involved in multiple development project over the 
past few years, I can't say this code has more bugs than other code when 
it is first submitted. Those are fixable. I also understand from the LP 
discussion that the code may affect existing reports. I hope there are 
ways to mitigate this issue, but am I correct in assuming this is likely 
to happen whenever there is an infrastructure change? This bug submitted 
to Launchpad yesterday regarding another recent infrastructure change 
makes me think it isn't unique - 
https://bugs.launchpad.net/evergreen/+bug/1287967. Does this mean we 
shouldn't sometimes look at infrastructure changes when there is an 
overall benefit to the change?

Thank you all for hearing me out on this issue. This functionality is 
something our users are looking forward to seeing in Evergreen, and I 
hope we can come to some kind of agreement.

Kathy

-- 
Kathy Lussier
Project Coordinator
Massachusetts Library Network Cooperative
(508) 343-0128
klussier at masslnc.org
Twitter: http://www.twitter.com/kmlussier



More information about the Open-ils-general mailing list