mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
add server to monorepo.
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
import { Service, Inject } from 'typedi';
|
||||
import { isUndefined } from 'lodash';
|
||||
import HasTenancyService from '@/services/Tenancy/TenancyService';
|
||||
import {
|
||||
ITransactionMeta,
|
||||
TransactionsLockingGroup,
|
||||
TransactionsLockingType,
|
||||
} from '@/interfaces';
|
||||
import { parseDate } from 'utils';
|
||||
|
||||
@Service()
|
||||
export default class TransactionsLockingRepository {
|
||||
@Inject()
|
||||
tenancy: HasTenancyService;
|
||||
|
||||
async saveTransactionsLocking(
|
||||
tenantId: number,
|
||||
lockingGroup: string = TransactionsLockingGroup.All,
|
||||
transactionlocking
|
||||
) {
|
||||
const settings = this.tenancy.settings(tenantId);
|
||||
const group = `transactions-locking`;
|
||||
|
||||
if (!isUndefined(transactionlocking.active)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.active`,
|
||||
value: transactionlocking.active,
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.lockToDate)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.lock_to_date`,
|
||||
value: parseDate(transactionlocking.lockToDate),
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.unlockFromDate)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_from_date`,
|
||||
value: parseDate(transactionlocking.unlockFromDate),
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.unlockToDate)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_to_date`,
|
||||
value: parseDate(transactionlocking.unlockToDate),
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.lockReason)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.lock_reason`,
|
||||
value: transactionlocking.lockReason,
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.unlockReason)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_reason`,
|
||||
value: transactionlocking.unlockReason,
|
||||
});
|
||||
}
|
||||
if (!isUndefined(transactionlocking.partialUnlockReason)) {
|
||||
settings.set({
|
||||
group,
|
||||
key: `${lockingGroup}.partial_unlock_reason`,
|
||||
value: transactionlocking.partialUnlockReason,
|
||||
});
|
||||
}
|
||||
|
||||
await settings.save();
|
||||
}
|
||||
|
||||
getTransactionsLocking(
|
||||
tenantId: number,
|
||||
lockingGroup: string = TransactionsLockingGroup.All
|
||||
): ITransactionMeta {
|
||||
const settings = this.tenancy.settings(tenantId);
|
||||
const group = `transactions-locking`;
|
||||
|
||||
const isEnabled = settings.get({ group, key: `${lockingGroup}.active` });
|
||||
|
||||
const lockFromDate = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.lock_from_date`,
|
||||
});
|
||||
const lockToDate = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.lock_to_date`,
|
||||
});
|
||||
|
||||
const unlockFromDate = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_from_date`,
|
||||
});
|
||||
const unlockToDate = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_to_date`,
|
||||
});
|
||||
|
||||
const lockReason = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.lock_reason`,
|
||||
});
|
||||
const unlockReason = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.unlock_reason`,
|
||||
});
|
||||
const partialUnlockReason = settings.get({
|
||||
group,
|
||||
key: `${lockingGroup}.partial_unlock_reason`,
|
||||
});
|
||||
|
||||
return {
|
||||
isEnabled,
|
||||
lockToDate: lockToDate || null,
|
||||
unlockFromDate: unlockFromDate || null,
|
||||
unlockToDate: unlockToDate || null,
|
||||
isPartialUnlock: Boolean(unlockToDate && unlockFromDate),
|
||||
lockReason: lockReason || '',
|
||||
unlockReason: unlockReason || '',
|
||||
partialUnlockReason: partialUnlockReason || '',
|
||||
};
|
||||
}
|
||||
|
||||
getTransactionsLockingType(tenantId: number) {
|
||||
const settings = this.tenancy.settings(tenantId);
|
||||
|
||||
const lockingType = settings.get({
|
||||
group: 'transactions-locking',
|
||||
key: 'locking-type',
|
||||
});
|
||||
return lockingType || 'partial';
|
||||
}
|
||||
|
||||
flagTransactionsLockingType(
|
||||
tenantId: number,
|
||||
transactionsType: TransactionsLockingType
|
||||
) {
|
||||
const settings = this.tenancy.settings(tenantId);
|
||||
|
||||
settings.set({
|
||||
group: 'transactions-locking',
|
||||
key: 'locking-type',
|
||||
value: transactionsType,
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user