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

refactor: Post to General Ledger #1928

Closed
jniles opened this issue Aug 2, 2017 · 0 comments · Fixed by #2085
Closed

refactor: Post to General Ledger #1928

jniles opened this issue Aug 2, 2017 · 0 comments · Fixed by #2085

Comments

@jniles
Copy link
Contributor

jniles commented Aug 2, 2017

We have received reports from HEV that posting to the General Ledger takes a very long time. This is part of the motivation for a hardware upgrade that was installed recently.

On analysis of the code, it appears that the SQL is formed using a large string - the one below:

"INSERT INTO stage_journal_transaction 
  SELECT DISTINCT record_uuid FROM posting_journal WHERE trans_id IN (", transactions, ");"

I believe this string may be the source of many of our problems - it requires a search on trans_id which is a string and does not leverage indexes properly.

This should be investigated - I believe if we use the StageTransaction() method such as the Trial Balance, we could gain some massive speed ups.

@jniles jniles self-assigned this Aug 16, 2017
jniles added a commit to jniles/bhima that referenced this issue Aug 16, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes IMA-WorldHealth#1928.
sfount pushed a commit that referenced this issue Aug 17, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 15, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 18, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 19, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 20, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 21, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 22, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 22, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
jniles added a commit that referenced this issue Sep 25, 2017
This commit rewrites the PostToGeneralLedger function for speed.  It now
shares common functions with the Trial Balance to stage transactions.

Closes #1928.
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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant