mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
64 lines
2.1 KiB
TypeScript
64 lines
2.1 KiB
TypeScript
import { Inject, Container } from 'typedi';
|
|
import { On, EventSubscriber } from "event-dispatch";
|
|
import events from 'subscribers/events';
|
|
import SettingsService from 'services/Settings/SettingsService';
|
|
import ManualJournalsService from 'services/ManualJournals/ManualJournalsService';
|
|
|
|
@EventSubscriber()
|
|
export class ManualJournalSubscriber {
|
|
logger: any;
|
|
settingsService: SettingsService;
|
|
|
|
constructor() {
|
|
this.logger = Container.get('logger');
|
|
this.settingsService = Container.get(SettingsService);
|
|
}
|
|
|
|
/**
|
|
* Handle manual journal created event.
|
|
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
|
*/
|
|
@On(events.manualJournals.onCreated)
|
|
public async handleWriteJournalEntries({ tenantId, manualJournal }) {
|
|
const manualJournalsService = Container.get(ManualJournalsService);
|
|
|
|
await manualJournalsService
|
|
.writeJournalEntries(tenantId, manualJournal.id, manualJournal);
|
|
}
|
|
|
|
/**
|
|
* Handle manual journal edited event.
|
|
* @param {{ tenantId: number, manualJournal: IManualJournal }}
|
|
*/
|
|
@On(events.manualJournals.onEdited)
|
|
public async handleRewriteJournalEntries({ tenantId, manualJournal }) {
|
|
const manualJournalsService = Container.get(ManualJournalsService);
|
|
|
|
await manualJournalsService
|
|
.writeJournalEntries(tenantId, manualJournal.id, manualJournal, true);
|
|
}
|
|
|
|
/**
|
|
* Handle manual journal deleted event.
|
|
* @param {{ tenantId: number, manualJournalId: number }}
|
|
*/
|
|
@On(events.manualJournals.onDeleted)
|
|
public async handleRevertJournalEntries({ tenantId, manualJournalId, }) {
|
|
const manualJournalsService = Container.get(ManualJournalsService);
|
|
|
|
await manualJournalsService
|
|
.writeJournalEntries(tenantId, manualJournalId, null, true);
|
|
}
|
|
|
|
/**
|
|
* Handle increment next number of manual journal once be created.
|
|
*/
|
|
@On(events.manualJournals.onCreated)
|
|
public async handleJournalNextNumberIncrement({ tenantId }) {
|
|
const query = {
|
|
group: 'manual_journals',
|
|
key: 'next_number',
|
|
};
|
|
await this.settingsService.incrementNextNumber(tenantId, query);
|
|
}
|
|
} |