mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 05:40:31 +00:00
add server to monorepo.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
import * as R from 'ramda';
|
||||
import { ACCOUNT_TYPE } from '@/data/AccountTypes';
|
||||
import {
|
||||
ProfitLossAggregateNodeId,
|
||||
ProfitLossNodeType,
|
||||
IProfitLossSchemaNode,
|
||||
} from '@/interfaces';
|
||||
import { FinancialSchema } from '../FinancialSchema';
|
||||
|
||||
export const ProfitLossShema = (Base) =>
|
||||
class extends R.compose(FinancialSchema)(Base) {
|
||||
/**
|
||||
* Retrieves the report schema.
|
||||
* @returns {IProfitLossSchemaNode[]}
|
||||
*/
|
||||
getSchema = (): IProfitLossSchemaNode[] => {
|
||||
return getProfitLossSheetSchema();
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieves P&L sheet schema.
|
||||
* @returns {IProfitLossSchemaNode}
|
||||
*/
|
||||
export const getProfitLossSheetSchema = (): IProfitLossSchemaNode[] => [
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.INCOME,
|
||||
name: 'profit_loss_sheet.income',
|
||||
nodeType: ProfitLossNodeType.ACCOUNTS,
|
||||
accountsTypes: [ACCOUNT_TYPE.INCOME],
|
||||
alwaysShow: true,
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.COS,
|
||||
name: 'profit_loss_sheet.cost_of_sales',
|
||||
nodeType: ProfitLossNodeType.ACCOUNTS,
|
||||
accountsTypes: [ACCOUNT_TYPE.COST_OF_GOODS_SOLD],
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.GROSS_PROFIT,
|
||||
name: 'profit_loss_sheet.gross_profit',
|
||||
nodeType: ProfitLossNodeType.EQUATION,
|
||||
equation: `${ProfitLossAggregateNodeId.INCOME} - ${ProfitLossAggregateNodeId.COS}`,
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.EXPENSES,
|
||||
name: 'profit_loss_sheet.expenses',
|
||||
nodeType: ProfitLossNodeType.ACCOUNTS,
|
||||
accountsTypes: [ACCOUNT_TYPE.EXPENSE],
|
||||
alwaysShow: true,
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.NET_OPERATING_INCOME,
|
||||
name: 'profit_loss_sheet.net_operating_income',
|
||||
nodeType: ProfitLossNodeType.EQUATION,
|
||||
equation: `${ProfitLossAggregateNodeId.GROSS_PROFIT} - ${ProfitLossAggregateNodeId.EXPENSES}`,
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.OTHER_INCOME,
|
||||
name: 'profit_loss_sheet.other_income',
|
||||
nodeType: ProfitLossNodeType.ACCOUNTS,
|
||||
accountsTypes: [ACCOUNT_TYPE.OTHER_INCOME],
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.OTHER_EXPENSES,
|
||||
name: 'profit_loss_sheet.other_expenses',
|
||||
nodeType: ProfitLossNodeType.ACCOUNTS,
|
||||
accountsTypes: [ACCOUNT_TYPE.OTHER_EXPENSE],
|
||||
},
|
||||
{
|
||||
id: ProfitLossAggregateNodeId.NET_INCOME,
|
||||
name: 'profit_loss_sheet.net_income',
|
||||
nodeType: ProfitLossNodeType.EQUATION,
|
||||
equation: `${ProfitLossAggregateNodeId.NET_OPERATING_INCOME} + ${ProfitLossAggregateNodeId.OTHER_INCOME} - ${ProfitLossAggregateNodeId.OTHER_EXPENSES}`,
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user