Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(bug) Posting Journal suffers JS rounding flaws #1402

Closed
jniles opened this issue Mar 22, 2017 · 1 comment · Fixed by #2085
Closed

(bug) Posting Journal suffers JS rounding flaws #1402

jniles opened this issue Mar 22, 2017 · 1 comment · Fixed by #2085
Labels

Comments

@jniles
Copy link
Collaborator

jniles commented Mar 22, 2017

The Posting Journal's aggregation functions seem to suffer from the addition flaws that JavaScript has when adding two floating point numbers. MySQL's Trial Balance thinks this transaction balances, but the Posting Journal is displaying a different view.

unbalancedbalancedtxn
Fig 1: Unbalanced (but actually balanced) transaction

@jniles jniles added the Bug label Mar 22, 2017
@sfount
Copy link
Contributor

sfount commented Mar 27, 2017

We could use a small library like https://github.com/MikeMcl/bignumber.js/ to try and address this. By specifying a maximum precision (potentially defined by the currency) we can make sure numbers that can't be represented well by JS can be used with guaranteed results. This would however mean writing custom SUM methods for any currency/ financial grid columns.

bors bot added a commit that referenced this issue Sep 25, 2017
2085: refactor: Posting Journal and Associated Tools r=mbayopanda a=jniles

This Pull Request finalizes the refactor of the Posting Journal and associated modules.  The commit history contains a full list of changes.  In brief:
 1. Editing has been moved out into a modal.  By breaking out the editing code, the complexity of the Posting Journal is reduced.  It also enforces editing a single transaction at a time.
 2. The Trial Balance has moved into Stored Procedures.  This separates the JS code from the SQL code and speeds up the execution of the Trail Balance slightly.
 3. The Trial Balance no longer reloads data between `$state` changes.  The modal is much more snappy than previous.
 4. Links to the receipts/documents/patients associated with each transaction are embedded in the Posting Journal.  This makes it easy to find the details associated with a given transaction.
 5. The Posting Journal is able to load "posted" transactions.  To accommodate this, the Posting Journal footer has been improved to show the number of unposted or posted transactions.  Additionally, the "Posted Journal" module has been removed.

There have been a number of miscellaneous bug fixes addressed as well.  As with any change, this may introduce new bugs specific to the changes listed above.

Partially addresses #1432.

Closes #1034.
Closes #1163.
Closes #1402.
Closes #1500.
Closes #1640.
Closes #1659.
Closes #1716.
Closes #1717.
Closes #1724.
Closes #1832.
Closes #1839.
Closes #1921.
Closes #1928.
Closes #1934.
Closes #1943.
Closes #1944.
Closes #1948.
Closes #1950.
Closes #1961.
Closes #2031.
Closes #2041.

---

### TODO Before Merge
 - [x] Ensure all keys are translated into both French and English
 - [x] Ensure tests pass
 - [x] Make sure all filters/links work on Posting Journal page.
 - [x] Make sure all filters/links work on the Trial Balance
 - [x] Ensure all editors work as expected.
 - [x] Ensure that new code passes lint checks.
@bors bors bot closed this as completed in #2085 Sep 25, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants