UNPKG

@accounter/server

Version:

The test suite is split into three Vitest projects for efficiency and isolation:

28 lines (26 loc) 1.22 kB
import type { IGetTransactionsByChargeIdsResult } from '../../transactions/types.js'; import { splitFeeTransactions } from './fee-transactions.js'; export function splitDividendTransactions( transactions: Array<IGetTransactionsByChargeIdsResult>, context: GraphQLModules.Context, ) { const { dividendWithholdingTaxBusinessId, dividendPaymentBusinessIds } = context.adminContext.dividends; if (!dividendWithholdingTaxBusinessId) { throw new Error('Dividend withholding tax business ID is not set'); } const { mainTransactions, feeTransactions } = splitFeeTransactions(transactions); const withholdingTaxTransactions = []; const paymentsTransactions = []; const errors: string[] = []; for (const transaction of mainTransactions) { if (transaction.business_id === dividendWithholdingTaxBusinessId) { withholdingTaxTransactions.push(transaction); } else if (dividendPaymentBusinessIds.includes(transaction.business_id as string)) { paymentsTransactions.push(transaction); } else { errors.push(`Transaction ID: ${transaction.id} is not a dividend transaction`); } } return { withholdingTaxTransactions, paymentsTransactions, feeTransactions, errors }; }