Skip to content

feat: transfer view#829

Open
CodeNamedRobin wants to merge 9 commits into
developfrom
feat/transfer-view
Open

feat: transfer view#829
CodeNamedRobin wants to merge 9 commits into
developfrom
feat/transfer-view

Conversation

@CodeNamedRobin
Copy link
Copy Markdown
Contributor

Provides a transfer view for each category of transfer. This enables the BAC PM and Financial Audit Committee to easily check the SudoSOS balance, if it tracks correctly with the MV balance and if it doesn't, where the fault lies.
Each view provides a list of individual transfers of that category with a date, credit, debit, saldo, id and description. Each view also provides a widget showing the aggregate of all the transfers in that category. The user can select transfers to exclude from the total, allowing fine-grained checking with MV.
image

Related issues/external references

Works on #817
Works on (and potentially closes) #506

Types of changes

  • New feature (non-breaking change which adds functionality)

@CodeNamedRobin CodeNamedRobin requested a review from RubenLWF May 12, 2026 18:45
@RubenLWF RubenLWF requested a review from a team May 12, 2026 18:53
Copy link
Copy Markdown
Contributor

@RubenLWF RubenLWF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sjaars

@gewis/sudosos-client@1.30.0 requires axios@1.16.0 exactly. The root
package had ^1.13.2 which resolved to a different version, causing yarn
to install a nested copy under the client's node_modules. TypeScript then
saw two incompatible AxiosResponse types from different paths.

Pin the root axios to 1.16.0 and add a resolutions override to force a
single hoisted copy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “Transfer View” in the financial module to inspect transfers per transfer category (linked from the financial overview), including a selectable table and an aggregate widget to help reconcile bookkeeping balances.

Changes:

  • Introduces /financial/transfer/:category route and a new TransferView with an EntityTable and aggregate widget.
  • Makes rows in FinancialOverviewTable clickable to navigate into the category-specific transfer view (preserving the fiscal year via query params).
  • Updates dependencies (@gewis/sudosos-client to 1.30.0, pins axios to 1.16.0) and adds supporting i18n keys.

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
yarn.lock Updates locked versions for @gewis/sudosos-client, axios, and transitive deps.
package.json Bumps @gewis/sudosos-client, pins axios, adds resolutions.axios.
apps/dashboard/src/modules/financial/views/transfer/TransferView.vue New transfer category table view with selection + saldo display and aggregate widget.
apps/dashboard/src/modules/financial/views/overview/FinancialOverviewTable.vue Adds deep-links from overview rows to the transfer category view.
apps/dashboard/src/modules/financial/utils/transferCategories.ts Adds a small helper to determine credit vs debit categories.
apps/dashboard/src/modules/financial/routes.ts Registers the new transferView route.
apps/dashboard/src/modules/financial/components/transfer/TransferAggregateWidget.vue New widget showing aggregate totals and selected/excluded amounts.
apps/dashboard/src/locales/*/modules/financial.json Adds translations for transfer view + widget.
apps/dashboard/src/locales/*/common/common.json Adds from/to labels and a route title for the transfer view.
apps/dashboard/src/components/EntityTable.vue Adds selection support to the shared table component for multi-select use cases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +162 to +164
const { year, years, search, rows, isLoading, records, totalRecords, onPage, searchById } = useEntityTable(
fetchRecords,
undefined,
Comment on lines +136 to +137
const selectedRows = ref<TransferResponse[]>([]);
const selectedCategory = ref<string | undefined>(undefined);
Comment on lines +32 to 36
:selection="selection"
table-style="min-width: 50rem"
:total-records="totalRecords"
:value="records"
v-bind="dataTableProps"
@RubenLWF
Copy link
Copy Markdown
Contributor

Please have a look at the copilot comments

@JustSamuel
Copy link
Copy Markdown
Contributor

JustSamuel commented May 18, 2026

Maybe also add which type of transfer it is?

@CodeNamedRobin
Copy link
Copy Markdown
Contributor Author

Maybe also add which type of transfer it is?

I did think of this, but might be irrelevant due to it being in the route? What I implemented are /financial/transfer/{category}, so the type will be all the same. I could add a /financial/transfer/all route that does specify type for each individual transfer.

@JustSamuel
Copy link
Copy Markdown
Contributor

Maybe then improve visually what type it is? since now screenshots are ambiguous.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants