Uploaded image for project: 'mod-feesfines'
  1. mod-feesfines
  2. MODFEE-56

[SPIKE] Fees/fines refactoring estimation



    • Story
    • Status: Closed (View Workflow)
    • TBD
    • Resolution: Done
    • None
    • None
    • None
    • EPAM-Veg Sprint 41, EPAM-Veg Sprint 42, EPAM-Veg Sprint 91, EPAM-Veg Sprint 92
    • 3
    • Vega


      Summary of the known issues:

      Calculations on FE

      Initially fee/fine actions were implemented in such a way that all calculations are happening on FE while BE acts as a simple CRUD service for storing results of these calculations. Not only this approach is an anti-pattern, it is also not safe and, considering we're talking about financial data, poses a significant risk. Anyone who can use Postman or Fiddler can write anything he or she wants to the DB (provided they have access to the platform).


      While working on UIU-1139 maxim_didenko has found a bug UIU-1626 on the fee/fine details page that allows, among other things, to overpay a fine by any amount. It is a bug in the UI architecture that leads to account data not being updated on the screen after PUT request to the server. Account state will remain the same as it was when the user has loaded the page. No matter what actions you'll do, the system will allow you. But when you reload the page you'll see that the client was charged hundreds of dollars instead of ten.

      Double vs. BigDecimal

      In February we created a technical debt ticket https://issues.folio.org/browse/MODFEE-29. Java type "double" is being used for monetary values, which is dangerous because it might potentially lead to wrong calculation results. This issue can be fixed independently, but if we're going to start major refactoring of Fees/fines it should also be part of it.

      TestRail: Results


          Issue Links



                oleksandrkurash Alexander Kurash
                oleksandrkurash Alexander Kurash
                0 Vote for this issue
                1 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases