mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { Service, Inject } from 'typedi';
|
|
import JournalPoster from 'services/Accounting/JournalPoster';
|
|
import TenancyService from 'services/Tenancy/TenancyService';
|
|
import JournalCommands from 'services/Accounting/JournalCommands';
|
|
|
|
@Service()
|
|
export default class JournalPosterService {
|
|
@Inject()
|
|
tenancy: TenancyService;
|
|
|
|
/**
|
|
* Deletes the journal transactions that associated to the given reference id.
|
|
* @param {number} tenantId - The given tenant id.
|
|
* @param {number} referenceId - The transaction reference id.
|
|
* @param {string} referenceType - The transaction reference type.
|
|
* @return {Promise}
|
|
*/
|
|
async revertJournalTransactions(
|
|
tenantId: number,
|
|
referenceId: number|number[],
|
|
referenceType: string
|
|
): Promise<void> {
|
|
const journal = new JournalPoster(tenantId);
|
|
const journalCommand = new JournalCommands(journal);
|
|
|
|
await journalCommand.revertJournalEntries(referenceId, referenceType);
|
|
|
|
await Promise.all([
|
|
journal.deleteEntries(),
|
|
journal.saveBalance()
|
|
]);
|
|
}
|
|
} |