UNPKG

@accounter/server

Version:

24 lines (22 loc) 1.07 kB
import { GraphQLError } from 'graphql'; import type { IGetTransactionsByChargeIdsResult } from '@modules/transactions/types'; import { DIVIDEND_PAYMENT_BUSINESS_IDS, DIVIDEND_WITHHOLDING_TAX_BUSINESS_ID, } from '@shared/constants'; import { splitFeeTransactions } from './fee-transactions.js'; export function splitDividendTransactions(transactions: Array<IGetTransactionsByChargeIdsResult>) { const { mainTransactions, feeTransactions } = splitFeeTransactions(transactions); const withholdingTaxTransactions = []; const paymentsTransactions = []; for (const transaction of mainTransactions) { if (transaction.business_id === DIVIDEND_WITHHOLDING_TAX_BUSINESS_ID) { withholdingTaxTransactions.push(transaction); } else if (DIVIDEND_PAYMENT_BUSINESS_IDS.includes(transaction.business_id as string)) { paymentsTransactions.push(transaction); } else { throw new GraphQLError(`Transaction ID: ${transaction.id} is not a dividend transaction`); } } return { withholdingTaxTransactions, paymentsTransactions, feeTransactions }; }