refactor: dynamic list to nestjs

This commit is contained in:
Ahmed Bouhuolia
2025-01-14 22:57:54 +02:00
parent 081fdebee0
commit e7e7a95aa1
81 changed files with 596 additions and 742 deletions

View File

@@ -1,30 +1,30 @@
export const OtherExpensesAccount = {
name: 'Other Expenses',
slug: 'other-expenses',
account_type: 'other-expense',
accountType: 'other-expense',
code: '40011',
description: '',
active: 1,
active: true,
index: 1,
predefined: 1,
predefined: true,
};
export const TaxPayableAccount = {
name: 'Tax Payable',
slug: 'tax-payable',
account_type: 'tax-payable',
accountType: 'tax-payable',
code: '20006',
description: '',
active: 1,
active: true,
index: 1,
predefined: 1,
predefined: true,
};
export const UnearnedRevenueAccount = {
name: 'Unearned Revenue',
slug: 'unearned-revenue',
account_type: 'other-current-liability',
parent_account_id: null,
accountType: 'other-current-liability',
parentAccountId: null,
code: '50005',
active: true,
index: 1,
@@ -34,8 +34,8 @@ export const UnearnedRevenueAccount = {
export const PrepardExpenses = {
name: 'Prepaid Expenses',
slug: 'prepaid-expenses',
account_type: 'other-current-asset',
parent_account_id: null,
accountType: 'other-current-asset',
parentAccountId: null,
code: '100010',
active: true,
index: 1,
@@ -45,8 +45,8 @@ export const PrepardExpenses = {
export const StripeClearingAccount = {
name: 'Stripe Clearing',
slug: 'stripe-clearing',
account_type: 'other-current-asset',
parent_account_id: null,
accountType: 'other-current-asset',
parentAccountId: null,
code: '100020',
active: true,
index: 1,
@@ -56,7 +56,7 @@ export const StripeClearingAccount = {
export const DiscountExpenseAccount = {
name: 'Discount',
slug: 'discount',
account_type: 'other-income',
accountType: 'other-income',
code: '40008',
active: true,
index: 1,
@@ -66,7 +66,7 @@ export const DiscountExpenseAccount = {
export const PurchaseDiscountAccount = {
name: 'Purchase Discount',
slug: 'purchase-discount',
account_type: 'other-expense',
accountType: 'other-expense',
code: '40009',
active: true,
index: 1,
@@ -76,7 +76,7 @@ export const PurchaseDiscountAccount = {
export const OtherChargesAccount = {
name: 'Other Charges',
slug: 'other-charges',
account_type: 'other-income',
accountType: 'other-income',
code: '40010',
active: true,
index: 1,
@@ -87,7 +87,7 @@ export const SeedAccounts = [
{
name: 'Bank Account',
slug: 'bank-account',
account_type: 'bank',
accountType: 'bank',
code: '10001',
description: '',
active: 1,

View File

@@ -41,7 +41,7 @@ export class DeleteAccount {
await this.accountModel
.query(trx)
.whereIn('parent_account_id', accountsIds)
.patch({ parent_account_id: null });
.patch({ parentAccountId: null });
}
/**

View File

@@ -13,10 +13,10 @@ export class GetAccountsService {
constructor(
private readonly dynamicListService: DynamicListService,
private readonly transformerService: TransformerInjectable,
private readonly accountRepository: AccountRepository,
@Inject(Account.name)
private readonly accountModel: typeof Account,
private readonly accountRepository: AccountRepository,
) {}
/**

View File

@@ -13,32 +13,29 @@ import { TenantModel } from '@/modules/System/models/TenantModel';
import { AccountTypesUtils } from '@/libs/accounts-utils/AccountTypesUtils';
import { Model } from 'objection';
import { PlaidItem } from '@/modules/BankingPlaid/models/PlaidItem';
import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel';
// import AccountSettings from './Account.Settings';
// import { DEFAULT_VIEWS } from '@/modules/Accounts/constants';
// import { buildFilterQuery, buildSortColumnQuery } from '@/lib/ViewRolesBuilder';
// import { flatToNestedArray } from 'utils';
// @ts-expect-error
// export class Account extends mixin(TenantModel, [
// ModelSettings,
// CustomViewBaseModel,
// SearchableModel,
// ]) {
export class Account extends TenantModel {
export class Account extends TenantBaseModel {
public name!: string;
public slug!: string;
public code!: string;
public index!: number;
public accountType!: string;
public parentAccountId!: number | null;
public predefined!: boolean;
public currencyCode!: string;
public active!: boolean;
public bankBalance!: number;
public lastFeedsUpdatedAt!: string | null;
public lastFeedsUpdatedAt!: string | Date | null;
public amount!: number;
public plaidItemId!: number;
public plaidAccountId!: string | null;
public isFeedsActive!: boolean;
public plaidItem!: PlaidItem;
/**
@@ -73,11 +70,11 @@ export class Account extends TenantModel {
/**
* Account normal.
*/
get accountNormal() {
get accountNormal(): string {
return AccountTypesUtils.getType(this.accountType, 'normal');
}
get accountNormalFormatted() {
get accountNormalFormatted(): string {
const paris = {
credit: 'Credit',
debit: 'Debit',
@@ -88,35 +85,35 @@ export class Account extends TenantModel {
/**
* Retrieve account type label.
*/
get accountTypeLabel() {
get accountTypeLabel(): string {
return AccountTypesUtils.getType(this.accountType, 'label');
}
/**
* Retrieve account parent type.
*/
get accountParentType() {
get accountParentType(): string {
return AccountTypesUtils.getType(this.accountType, 'parentType');
}
/**
* Retrieve account root type.
*/
get accountRootType() {
get accountRootType(): string {
return AccountTypesUtils.getType(this.accountType, 'rootType');
}
/**
* Retrieve whether the account is balance sheet account.
*/
get isBalanceSheetAccount() {
get isBalanceSheetAccount(): boolean {
return this.isBalanceSheet();
}
/**
* Retrieve whether the account is profit/loss sheet account.
*/
get isPLSheet() {
get isPLSheet(): boolean {
return this.isProfitLossSheet();
}
/**

View File

@@ -147,7 +147,7 @@ export class AccountRepository extends TenantRepository {
}),
accountType: 'accounts-receivable',
currencyCode,
active: 1,
active: true,
...extraAttrs,
});
}
@@ -199,7 +199,7 @@ export class AccountRepository extends TenantRepository {
}),
accountType: 'accounts-payable',
currencyCode,
active: 1,
active: true,
...extraAttrs,
});
}