UNPKG

@accounter/server

Version:
28 lines (26 loc) 1.26 kB
import { AdminContext } from '../../admin-context/types.js'; import type { IGetTransactionsByChargeIdsResult } from '../../transactions/types.js'; import { splitFeeTransactions } from './fee-transactions.js'; export function splitDividendTransactions( transactions: Array<IGetTransactionsByChargeIdsResult>, dividends: AdminContext['dividends'], ) { const { dividendWithholdingTaxBusinessId, dividendPaymentBusinessIds } = 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 }; }