diff --git a/src/app-gocardless/bank-factory.js b/src/app-gocardless/bank-factory.js index 8c9cc62d..1f2e3068 100644 --- a/src/app-gocardless/bank-factory.js +++ b/src/app-gocardless/bank-factory.js @@ -3,6 +3,7 @@ import AbnamroAbnanl2a from './banks/abnamro_abnanl2a.js'; import AmericanExpressAesudef1 from './banks/american-express-aesudef1.js'; import BancsabadellBsabesbb from './banks/bancsabadell-bsabesbbb.js'; import BankinterBkbkesmm from './banks/bankinter-bkbkesmm.js'; +import BankOfIrelandB365 from './banks/bank_of_ireland_b365_bofiie2d.js'; import Belfius from './banks/belfius_gkccbebb.js'; import Berliner_Sparkasse_beladebexxx from './banks/berliner_sparkasse_beladebexxx.js'; import BnpBeGebabebb from './banks/bnp-be-gebabebb.js'; @@ -41,6 +42,7 @@ export const banks = [ AmericanExpressAesudef1, BancsabadellBsabesbb, BankinterBkbkesmm, + BankOfIrelandB365, Belfius, Berliner_Sparkasse_beladebexxx, BnpBeGebabebb, diff --git a/src/app-gocardless/banks/bank_of_ireland_b365_bofiie2d.js b/src/app-gocardless/banks/bank_of_ireland_b365_bofiie2d.js new file mode 100644 index 00000000..959a0fd9 --- /dev/null +++ b/src/app-gocardless/banks/bank_of_ireland_b365_bofiie2d.js @@ -0,0 +1,37 @@ +import Fallback from './integration-bank.js'; + +/** @type {import('./bank.interface.js').IBank} */ +export default { + ...Fallback, + + institutionIds: ['BANK_OF_IRELAND_B365_BOFIIE2D'], + + normalizeTransaction(transaction, booked) { + transaction.remittanceInformationUnstructured = fixupPayee( + transaction.remittanceInformationUnstructured, + ); + + return Fallback.normalizeTransaction(transaction, booked); + }, +}; + +function fixupPayee(/** @type {string} */ payee) { + let fixedPayee = payee; + + // remove all duplicate whitespace + fixedPayee = fixedPayee.replace(/\s+/g, ' ').trim(); + + // remove date prefix + fixedPayee = fixedPayee.replace(/^(POS)?(C)?[0-9]{1,2}\w{3}/, '').trim(); + + // remove direct debit postfix + fixedPayee = fixedPayee.replace(/sepa dd$/i, '').trim(); + + // remove bank transfer prefix + fixedPayee = fixedPayee.replace(/^365 online/i, '').trim(); + + // remove curve card prefix + fixedPayee = fixedPayee.replace(/^CRV\*/, '').trim(); + + return fixedPayee; +} diff --git a/upcoming-release-notes/539.md b/upcoming-release-notes/539.md new file mode 100644 index 00000000..28b6968b --- /dev/null +++ b/upcoming-release-notes/539.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [MatissJanis] +--- + +Add GoCardless formatter for `BANK_OF_IRELAND_B365_BOFIIE2D` Bank of Ireland.