feat: transfer view#829
Conversation
2b88cdf to
03a045c
Compare
03a045c to
b6a72ae
Compare
@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>
There was a problem hiding this comment.
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/:categoryroute and a newTransferViewwith anEntityTableand aggregate widget. - Makes rows in
FinancialOverviewTableclickable to navigate into the category-specific transfer view (preserving the fiscal year via query params). - Updates dependencies (
@gewis/sudosos-clientto1.30.0, pinsaxiosto1.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.
| const { year, years, search, rows, isLoading, records, totalRecords, onPage, searchById } = useEntityTable( | ||
| fetchRecords, | ||
| undefined, |
| const selectedRows = ref<TransferResponse[]>([]); | ||
| const selectedCategory = ref<string | undefined>(undefined); |
| :selection="selection" | ||
| table-style="min-width: 50rem" | ||
| :total-records="totalRecords" | ||
| :value="records" | ||
| v-bind="dataTableProps" |
|
Please have a look at the copilot comments |
|
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 |
|
Maybe then improve visually what type it is? since now screenshots are ambiguous. |
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.
Related issues/external references
Works on #817
Works on (and potentially closes) #506
Types of changes