diff --git a/packages/server/src/services/Accounting/Ledger.ts b/packages/server/src/services/Accounting/Ledger.ts index 155a61e10..6e7519bc8 100644 --- a/packages/server/src/services/Accounting/Ledger.ts +++ b/packages/server/src/services/Accounting/Ledger.ts @@ -238,6 +238,7 @@ export default class Ledger implements ILedger { return { credit: defaultTo(entry.credit, 0), debit: defaultTo(entry.debit, 0), + exchangeRate: entry.exchangeRate, currencyCode: entry.currencyCode, diff --git a/packages/server/src/services/Accounting/LedgerEntriesStorage.ts b/packages/server/src/services/Accounting/LedgerEntriesStorage.ts index dd192b811..8f789e3cf 100644 --- a/packages/server/src/services/Accounting/LedgerEntriesStorage.ts +++ b/packages/server/src/services/Accounting/LedgerEntriesStorage.ts @@ -9,15 +9,18 @@ import { import HasTenancyService from '@/services/Tenancy/TenancyService'; import { transformLedgerEntryToTransaction } from './utils'; +// Filter the blank entries. +const filterBlankEntry = (entry: ILedgerEntry) => Boolean(entry.credit || entry.debit); + @Service() export class LedgerEntriesStorage { @Inject() - tenancy: HasTenancyService; + private tenancy: HasTenancyService; /** * Saves entries of the given ledger. - * @param {number} tenantId - * @param {ILedger} ledger - * @param {Knex.Transaction} knex + * @param {number} tenantId + * @param {ILedger} ledger + * @param {Knex.Transaction} knex * @returns {Promise} */ public saveEntries = async ( @@ -26,7 +29,7 @@ export class LedgerEntriesStorage { trx?: Knex.Transaction ) => { const saveEntryQueue = async.queue(this.saveEntryTask, 10); - const entries = ledger.getEntries(); + const entries = ledger.filter(filterBlankEntry).getEntries(); entries.forEach((entry) => { saveEntryQueue.push({ tenantId, entry, trx }); @@ -57,8 +60,8 @@ export class LedgerEntriesStorage { /** * Saves the ledger entry to the account transactions repository. - * @param {number} tenantId - * @param {ILedgerEntry} entry + * @param {number} tenantId + * @param {ILedgerEntry} entry * @returns {Promise} */ private saveEntry = async (