Hello all,

I've been mucking about in the fine code and getting a bit frustrated, so I'm 
looking for input before I move ahead.

As it stands, fine generation is part of the storage API.  As such, when it is 
called during checkin, it runs in its own transaction (independent of the 
circ/copy transaction).  The issue is that (increasing) various pieces of the 
circ code also mangle handle fines, particular the lost item related code, and 
any code related to voiding/zeroing balances.

I think we have two (not necessarily exclusive) paths to move forward:


1)      Move the fine generation code into open-ils.circ and rewrite the 
necessary bits to use cstore.  This would at least bring in the possibility of 
having all the checkin-time fine handling done in the same transaction, and 
thus give us a lot of flexibility in how we structure things.

2)      Refactor the code so that more (or all) fine handling (not just 
generation, but lost bill processing, voiding, etc.) happens *after* the 
checkin transaction rather than during.

I'm leaning toward #1 under the hope that it would mean fewer changes overall, 
but there are certainly merits to #2.  Does anyone see anything in particular 
to suggest we should instead pursue #2 exclusively?

Thanks for any input.

Sincerely,
Dan


Daniel Wells
Library Programmer/Analyst
Hekman Library, Calvin College
616.526.7133


Reply via email to