mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-12 19:00:31 +00:00
196 lines
4.5 KiB
TypeScript
196 lines
4.5 KiB
TypeScript
import { ACCOUNT_TYPES } from '@/data/AccountTypes';
|
|
|
|
export default {
|
|
defaultFilterField: 'name',
|
|
defaultSort: {
|
|
sortOrder: 'DESC',
|
|
sortField: 'name',
|
|
},
|
|
importable: true,
|
|
exportable: true,
|
|
fields: {
|
|
name: {
|
|
name: 'account.field.name',
|
|
column: 'name',
|
|
fieldType: 'text',
|
|
},
|
|
description: {
|
|
name: 'account.field.description',
|
|
column: 'description',
|
|
fieldType: 'text',
|
|
},
|
|
slug: {
|
|
name: 'account.field.slug',
|
|
column: 'slug',
|
|
fieldType: 'text',
|
|
columnable: false,
|
|
filterable: false,
|
|
},
|
|
code: {
|
|
name: 'account.field.code',
|
|
column: 'code',
|
|
fieldType: 'text',
|
|
},
|
|
root_type: {
|
|
name: 'account.field.root_type',
|
|
fieldType: 'enumeration',
|
|
options: [
|
|
{ key: 'asset', label: 'Asset' },
|
|
{ key: 'liability', label: 'Liability' },
|
|
{ key: 'equity', label: 'Equity' },
|
|
{ key: 'Income', label: 'Income' },
|
|
{ key: 'expense', label: 'Expense' },
|
|
],
|
|
filterCustomQuery: RootTypeFieldFilterQuery,
|
|
sortable: false,
|
|
},
|
|
normal: {
|
|
name: 'account.field.normal',
|
|
fieldType: 'enumeration',
|
|
options: [
|
|
{ key: 'debit', label: 'account.field.normal.debit' },
|
|
{ key: 'credit', label: 'account.field.normal.credit' },
|
|
],
|
|
filterCustomQuery: NormalTypeFieldFilterQuery,
|
|
sortable: false,
|
|
},
|
|
type: {
|
|
name: 'account.field.type',
|
|
column: 'account_type',
|
|
fieldType: 'enumeration',
|
|
options: ACCOUNT_TYPES.map((accountType) => ({
|
|
label: accountType.label,
|
|
key: accountType.key,
|
|
})),
|
|
},
|
|
active: {
|
|
name: 'account.field.active',
|
|
column: 'active',
|
|
fieldType: 'boolean',
|
|
filterable: false,
|
|
},
|
|
balance: {
|
|
name: 'account.field.balance',
|
|
column: 'amount',
|
|
fieldType: 'number',
|
|
},
|
|
currency: {
|
|
name: 'account.field.currency',
|
|
column: 'currency_code',
|
|
fieldType: 'text',
|
|
filterable: false,
|
|
},
|
|
created_at: {
|
|
name: 'account.field.created_at',
|
|
column: 'created_at',
|
|
fieldType: 'date',
|
|
},
|
|
},
|
|
columns: {
|
|
name: {
|
|
name: 'account.field.name',
|
|
type: 'text',
|
|
},
|
|
code: {
|
|
name: 'account.field.code',
|
|
type: 'text',
|
|
},
|
|
rootType: {
|
|
name: 'account.field.root_type',
|
|
type: 'text',
|
|
accessor: 'accountRootType',
|
|
},
|
|
accountType: {
|
|
name: 'account.field.type',
|
|
accessor: 'accountTypeLabel',
|
|
type: 'text',
|
|
},
|
|
accountNormal: {
|
|
name: 'account.field.normal',
|
|
accessor: 'accountNormalFormatted',
|
|
},
|
|
currencyCode: {
|
|
name: 'account.field.currency',
|
|
type: 'text',
|
|
},
|
|
bankBalance: {
|
|
name: 'account.field.bank_balance',
|
|
accessor: 'bankBalanceFormatted',
|
|
type: 'text',
|
|
exportable: true,
|
|
},
|
|
balance: {
|
|
name: 'account.field.balance',
|
|
accessor: 'amount',
|
|
},
|
|
description: {
|
|
name: 'account.field.description',
|
|
type: 'text',
|
|
},
|
|
active: {
|
|
name: 'account.field.active',
|
|
type: 'boolean',
|
|
},
|
|
createdAt: {
|
|
name: 'account.field.created_at',
|
|
},
|
|
},
|
|
fields2: {
|
|
name: {
|
|
name: 'account.field.name',
|
|
fieldType: 'text',
|
|
unique: true,
|
|
required: true,
|
|
},
|
|
description: {
|
|
name: 'account.field.description',
|
|
fieldType: 'text',
|
|
},
|
|
code: {
|
|
name: 'account.field.code',
|
|
fieldType: 'text',
|
|
minLength: 3,
|
|
maxLength: 6,
|
|
unique: true,
|
|
importHint: 'Unique number to identify the account.',
|
|
},
|
|
accountType: {
|
|
name: 'account.field.type',
|
|
fieldType: 'enumeration',
|
|
options: ACCOUNT_TYPES.map((accountType) => ({
|
|
label: accountType.label,
|
|
key: accountType.key,
|
|
})),
|
|
required: true,
|
|
},
|
|
active: {
|
|
name: 'account.field.active',
|
|
fieldType: 'boolean',
|
|
},
|
|
currencyCode: {
|
|
name: 'account.field.currency',
|
|
fieldType: 'text',
|
|
},
|
|
parentAccountId: {
|
|
name: 'account.field.parent_account',
|
|
fieldType: 'relation',
|
|
relationModel: 'Account',
|
|
relationImportMatch: ['name', 'code'],
|
|
},
|
|
},
|
|
};
|
|
|
|
/**
|
|
* Filter query of root type field .
|
|
*/
|
|
function RootTypeFieldFilterQuery(query, role) {
|
|
query.modify('filterByRootType', role.value);
|
|
}
|
|
|
|
/**
|
|
* Filter query of normal field .
|
|
*/
|
|
function NormalTypeFieldFilterQuery(query, role) {
|
|
query.modify('filterByAccountNormal', role.value);
|
|
}
|