mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { OnEvent } from '@nestjs/event-emitter';
|
|
import { events } from '@/common/events/events';
|
|
import { ValidateBranchExistance } from '../../integrations/ValidateBranchExistance';
|
|
import {
|
|
ICustomerOpeningBalanceEditingPayload,
|
|
ICustomerEventCreatingPayload,
|
|
} from '@/modules/Customers/types/Customers.types';
|
|
import {
|
|
IVendorEventCreatingPayload,
|
|
IVendorOpeningBalanceEditingPayload,
|
|
} from '@/modules/Vendors/types/Vendors.types';
|
|
|
|
@Injectable()
|
|
export class ContactBranchValidateSubscriber {
|
|
constructor(
|
|
private readonly validateBranchExistance: ValidateBranchExistance,
|
|
) {}
|
|
|
|
/**
|
|
* Validate branch existance on customer creating.
|
|
* @param {ICustomerEventCreatingPayload} payload
|
|
*/
|
|
@OnEvent(events.customers.onCreating, { suppressErrors: false })
|
|
async validateBranchExistanceOnCustomerCreating({
|
|
customerDTO,
|
|
}: ICustomerEventCreatingPayload) {
|
|
// Can't continue if the customer opening balance is zero.
|
|
if (!customerDTO.openingBalance) return;
|
|
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
customerDTO.openingBalanceBranchId,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Validate branch existance once customer opening balance editing.
|
|
* @param {ICustomerOpeningBalanceEditingPayload} payload
|
|
*/
|
|
@OnEvent(events.customers.onOpeningBalanceChanging, { suppressErrors: false })
|
|
async validateBranchExistanceOnCustomerOpeningBalanceEditing({
|
|
openingBalanceEditDTO,
|
|
}: ICustomerOpeningBalanceEditingPayload) {
|
|
if (!openingBalanceEditDTO.openingBalance) return;
|
|
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
openingBalanceEditDTO.openingBalanceBranchId,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Validates the branch existance on vendor creating.
|
|
* @param {IVendorEventCreatingPayload} payload
|
|
*/
|
|
@OnEvent(events.vendors.onCreating, { suppressErrors: false })
|
|
async validateBranchExistanceonVendorCreating({
|
|
vendorDTO,
|
|
}: IVendorEventCreatingPayload) {
|
|
// Can't continue if the customer opening balance is zero.
|
|
if (!vendorDTO.openingBalance) return;
|
|
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
vendorDTO.openingBalanceBranchId,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Validate branch existance once the vendor opening balance editing.
|
|
* @param {IVendorOpeningBalanceEditingPayload} payload
|
|
*/
|
|
@OnEvent(events.vendors.onOpeningBalanceChanging, { suppressErrors: false })
|
|
async validateBranchExistanceOnVendorOpeningBalanceEditing({
|
|
openingBalanceEditDTO,
|
|
}: IVendorOpeningBalanceEditingPayload) {
|
|
if (!openingBalanceEditDTO.openingBalance) return;
|
|
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
openingBalanceEditDTO.openingBalanceBranchId,
|
|
);
|
|
}
|
|
}
|