add server to monorepo.

This commit is contained in:
a.bouhuolia
2023-02-03 11:57:50 +02:00
parent 28e309981b
commit 80b97b5fdc
1303 changed files with 137049 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
import { Service } from 'typedi';
import { omit } from 'lodash';
import JournalPoster from '@/services/Accounting/JournalPoster';
import JournalEntry from '@/services/Accounting/JournalEntry';
import Knex from 'knex';
import { ILedgerEntry } from '@/interfaces';
@Service()
export default class LedgerRepository {
/**
*
* @param {number} tenantId
* @param {ILedgerEntry[]} ledgerEntries
* @param {Knex.Transaction} trx
*/
public saveLedgerEntries = async (
tenantId: number,
ledgerEntries: ILedgerEntry[],
trx?: Knex.Transaction
) => {
const journal = new JournalPoster(tenantId, null, trx);
ledgerEntries.forEach((ledgerEntry) => {
const entry = new JournalEntry({
...omit(ledgerEntry, [
'accountNormal',
'referenceNo',
'transactionId',
'transactionType',
]),
contactId: ledgerEntry.contactId,
account: ledgerEntry.accountId,
referenceId: ledgerEntry.transactionId,
referenceType: ledgerEntry.transactionType,
referenceNumber: ledgerEntry.referenceNo,
transactionNumber: ledgerEntry.transactionNumber,
index: ledgerEntry.index,
indexGroup: ledgerEntry.indexGroup,
});
if (ledgerEntry.credit) {
journal.credit(entry);
}
if (ledgerEntry.debit) {
journal.debit(entry);
}
});
await Promise.all([
journal.deleteEntries(),
journal.saveBalance(),
journal.saveContactsBalance(),
journal.saveEntries(),
]);
}
}