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

proposal: remove the grouped transaction view from the TrialBalance #1716

Closed
jniles opened this issue May 31, 2017 · 0 comments · Fixed by #2085
Closed

proposal: remove the grouped transaction view from the TrialBalance #1716

jniles opened this issue May 31, 2017 · 0 comments · Fixed by #2085
Assignees

Comments

@jniles
Copy link
Contributor

jniles commented May 31, 2017

The Trial Balance allows a user to view all the transactions that are currently selected. This makes the page excessively heavy, and the view doesn't give enough information to resolve several classes of errors (dates in the wrong period, etc) since it only shows ~4 columns. Furthermore, to resolve these issues, a user will need to go back to the Journal anyway.

I propose that we remove this functionality. I cannot find an issue proposing it to understand it's advantages. #585 only describes the error modal and an initial design for #1559.

Remove it has the following advantages:

  1. Easier $state management - no need to pass Mb of transactions back and forth.
  2. Cleaner TB API - The Trial Balance only needs to know the trans_id for display and record_uuid for processing.
  3. Lighter weight ui-grid - we can remove the ui-grid grouping functionality, plus all imports needed by it since this is the functionality which uses it.
  4. Simpler UX - For a user, it greatly simplifies the procedure. One page is for looking at account balances, another is for errors. Both can be used to clear the Trial Balance and return to the Journal for edits.
@jniles jniles self-assigned this Aug 3, 2017
jniles added a commit that referenced this issue Aug 3, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit to jniles/bhima that referenced this issue Aug 3, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses IMA-WorldHealth#1163.  Closes IMA-WorldHealth#1716.
jniles added a commit to jniles/bhima that referenced this issue Aug 4, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses IMA-WorldHealth#1163.  Closes IMA-WorldHealth#1716.
jniles added a commit to jniles/bhima that referenced this issue Aug 16, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses IMA-WorldHealth#1163.  Closes IMA-WorldHealth#1716.
jniles added a commit to jniles/bhima that referenced this issue Aug 16, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in IMA-WorldHealth#1839.

Closes IMA-WorldHealth#1716. Closes IMA-WorldHealth#1163. Closes IMA-WorldHealth#1839.
sfount pushed a commit that referenced this issue Aug 17, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
sfount pushed a commit that referenced this issue Aug 17, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 15, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 15, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 18, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 18, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 19, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 19, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 20, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 20, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 21, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 21, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 22, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 22, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 22, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 22, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
jniles added a commit that referenced this issue Sep 25, 2017
This commit refactors the trial balance to show all the trial balance
details in the Journal, rather than trying to render a grouped ui-grid
on top of another grouped ui-grid.

Currently, this has some drawbacks:
 1. Because the filtering is done on the server, this requires an
 additional round-trip to the server. We could reasonably easily
 implement an inline-filter to take care of this, but it isn't a pattern
 we've followed so far.
 2. Destroys the previous filters; this may not be necessarily
 understood by the user.  We can revert this behavior with an
 angular.merge() of the two filters (cached and $state defined).

Partially addresses #1163.  Closes #1716.
jniles added a commit that referenced this issue Sep 25, 2017
This commit completely rewrites the Trail Balance removing the old
multi-controller headers and replacing it with a single modal controller
and substate controllers for the modal body.  It also introduces the
Trial Balance Service that interacts with the server to load the Trial
Balance.

Key Differences/Features:
 1. Data is loaded a single time - no additional requests are made for
 data-by-account.
 2. Instantaneously switching between error and overview states.
 3. More room on the UI grid display
 4. ui-grid complexity reduce by removing grid grouping and features.
 5. [IN PROGRESS] Links to filter the journal based on the account and
 transaction.

Since all data is loaded on startup, it should remove all issues
reported in #1839.

Closes #1716. Closes #1163. Closes #1839.
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