Files
bigcapital/packages/server/src/models/ExpenseCategory.ts
2024-01-26 23:46:45 +02:00

47 lines
944 B
TypeScript

import { Model } from 'objection';
import TenantModel from 'models/TenantModel';
export default class ExpenseCategory extends TenantModel {
amount: number;
/**
* Table name
*/
static get tableName() {
return 'expense_transaction_categories';
}
/**
* Virtual attributes.
*/
static get virtualAttributes() {
return ['unallocatedCostAmount'];
}
/**
* Remain unallocated landed cost.
* @return {number}
*/
get unallocatedCostAmount() {
return Math.max(this.amount - this.allocatedCostAmount, 0);
}
/**
* Relationship mapping.
*/
static get relationMappings() {
const Account = require('models/Account');
return {
expenseAccount: {
relation: Model.BelongsToOneRelation,
modelClass: Account.default,
join: {
from: 'expense_transaction_categories.expenseAccountId',
to: 'accounts.id',
},
},
};
}
}