From 40b2ba099e5e33c02c013e9e14b02d08e82a4015 Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Thu, 25 Mar 2021 12:46:36 +0200 Subject: [PATCH] fix(Journal): account balance with journal entries. --- .../Preferences/PreferencesContentRoute.js | 5 +---- .../TrialBalanceSheet/components.js | 8 ++++---- client/src/containers/Preferences/DefaultRoute.js | 8 ++++++++ client/src/routes/preferences.js | 6 ++++++ .../src/style/pages/FinancialStatements/Journal.scss | 2 +- client/src/utils.js | 2 +- server/src/models/Bill.js | 12 +++++++++++- server/src/services/Accounting/JournalPoster.ts | 4 ++-- .../services/ManualJournals/ManualJournalsService.ts | 6 +++--- 9 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 client/src/containers/Preferences/DefaultRoute.js diff --git a/client/src/components/Preferences/PreferencesContentRoute.js b/client/src/components/Preferences/PreferencesContentRoute.js index 7981fda09..21f099032 100644 --- a/client/src/components/Preferences/PreferencesContentRoute.js +++ b/client/src/components/Preferences/PreferencesContentRoute.js @@ -4,12 +4,9 @@ import preferencesRoutes from 'routes/preferences' export default function DashboardContentRoute() { - const defaultTab = '/preferences/general'; - + return ( - - { preferencesRoutes.map((route, index) => ( { Header: formatMessage({ id: 'account_name' }), accessor: (row) => (row.code ? `${row.name} - ${row.code}` : row.name), className: 'name', - width: 160, + width: 180, textOverview: true, }, { @@ -33,14 +33,14 @@ export const useTrialBalanceTableColumns = () => { accessor: 'formatted_credit', className: 'credit', width: getColumnWidth(tableRows, `credit`, { - minWidth: 95, + minWidth: 80, }), }, { Header: formatMessage({ id: 'debit' }), Cell: CellTextSpan, accessor: 'formatted_debit', - width: getColumnWidth(tableRows, `debit`, { minWidth: 95 }), + width: getColumnWidth(tableRows, `debit`, { minWidth: 80 }), }, { Header: formatMessage({ id: 'balance' }), @@ -48,7 +48,7 @@ export const useTrialBalanceTableColumns = () => { accessor: 'formatted_balance', className: 'balance', width: getColumnWidth(tableRows, `balance`, { - minWidth: 95, + minWidth: 80, }), }, ], diff --git a/client/src/containers/Preferences/DefaultRoute.js b/client/src/containers/Preferences/DefaultRoute.js new file mode 100644 index 000000000..2b9b51f73 --- /dev/null +++ b/client/src/containers/Preferences/DefaultRoute.js @@ -0,0 +1,8 @@ +import React from 'react'; +import { Redirect } from 'react-router-dom'; + +export default function DefaultRoute() { + const defaultTab = '/preferences/general'; + + return (); +} \ No newline at end of file diff --git a/client/src/routes/preferences.js b/client/src/routes/preferences.js index e66835ad5..7bd0cb385 100644 --- a/client/src/routes/preferences.js +++ b/client/src/routes/preferences.js @@ -4,6 +4,7 @@ import Accountant from 'containers/Preferences/Accountant/Accountant'; import Accounts from 'containers/Preferences/Accounts/Accounts'; import Currencies from 'containers/Preferences/Currencies/Currencies'; import Item from 'containers/Preferences/Item/Item'; +import DefaultRoute from '../containers/Preferences/DefaultRoute'; const BASE_URL = '/preferences'; @@ -33,4 +34,9 @@ export default [ component: Item, exact: true, }, + { + path: `${BASE_URL}/`, + component: DefaultRoute, + exact: true, + }, ]; diff --git a/client/src/style/pages/FinancialStatements/Journal.scss b/client/src/style/pages/FinancialStatements/Journal.scss index d544ee1b7..40fecf503 100644 --- a/client/src/style/pages/FinancialStatements/Journal.scss +++ b/client/src/style/pages/FinancialStatements/Journal.scss @@ -36,7 +36,7 @@ font-weight: 600; } - .tr{ + .tr:not(.no-results) { height: 28px; } diff --git a/client/src/utils.js b/client/src/utils.js index f5ec0db74..e08b226e9 100644 --- a/client/src/utils.js +++ b/client/src/utils.js @@ -160,7 +160,7 @@ export function formattedAmount(cents, currency, props) { precision: 0, format: { pos: '%s%v', - neg: '%s%v', + neg: '%s-%v', zero: parsedProps.noZero ? '' : '%s%v', }, }; diff --git a/server/src/models/Bill.js b/server/src/models/Bill.js index 44164227e..9b69d0c3e 100644 --- a/server/src/models/Bill.js +++ b/server/src/models/Bill.js @@ -72,7 +72,14 @@ export default class Bill extends TenantModel { */ fromDate(query, fromDate) { query.where('bill_date', '<=', fromDate) - } + }, + + /** + * Sort the bills by full-payment bills. + */ + sortByStatus(query, order) { + query.orderByRaw(`PAYMENT_AMOUNT = AMOUNT ${order}`); + }, }; } @@ -299,6 +306,9 @@ export default class Bill extends TenantModel { break; } }, + sortQuery(query, role) { + query.modify('sortByStatus', role.order); + }, }, amount: { label: 'Amount', diff --git a/server/src/services/Accounting/JournalPoster.ts b/server/src/services/Accounting/JournalPoster.ts index 9ed95cdfa..2b7652bda 100644 --- a/server/src/services/Accounting/JournalPoster.ts +++ b/server/src/services/Accounting/JournalPoster.ts @@ -278,13 +278,13 @@ export default class JournalPoster implements IJournalPoster { let change = 0; if (accountChange.credit) { - change = + change += normal === 'credit' ? accountChange.credit : -1 * accountChange.credit; } if (accountChange.debit) { - change = + change += normal === 'debit' ? accountChange.debit : -1 * accountChange.debit; } mappedList.push({ account, change }); diff --git a/server/src/services/ManualJournals/ManualJournalsService.ts b/server/src/services/ManualJournals/ManualJournalsService.ts index d70592222..1101b5403 100644 --- a/server/src/services/ManualJournals/ManualJournalsService.ts +++ b/server/src/services/ManualJournals/ManualJournalsService.ts @@ -424,7 +424,7 @@ export default class ManualJournalsService implements IManualJournalsService { '[manual_journal] trying to save manual journal to the storage.', { tenantId, manualJournalDTO } ); - + // Upsert the manual journal object. const manualJournal = await ManualJournal.query().upsertGraph({ ...manualJournalObj, }); @@ -492,7 +492,7 @@ export default class ManualJournalsService implements IManualJournalsService { tenantId, manualJournalDTO.entries ); - + await ManualJournal.query().upsertGraph({ ...manualJournalObj, }); @@ -797,7 +797,7 @@ export default class ManualJournalsService implements IManualJournalsService { return manualJournal; } - + /** * Reverts the manual journal journal entries. * @param {number} tenantId