mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-11 20:44:32 -05:00
Add GoCardless integration for ENTERCARD_SWEDNOKK (#506)
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
This commit is contained in:
committed by
GitHub
parent
0d06bc1f7e
commit
70f6afbda6
@@ -9,6 +9,7 @@ import BnpBeGebabebb from './banks/bnp-be-gebabebb.js';
|
||||
import CBCcregbebb from './banks/cbc_cregbebb.js';
|
||||
import DanskeBankDabNO22 from './banks/danskebank-dabno22.js';
|
||||
import EasybankBawaatww from './banks/easybank-bawaatww.js';
|
||||
import EntercardSwednokk from './banks/entercard-swednokk.js';
|
||||
import Fortuneo from './banks/FORTUNEO_FTNOFRP1XXX.js';
|
||||
import HanseaticBank from './banks/HANSEATIC_HSTBDEHH.js';
|
||||
import Hype_HYEEIT22 from './banks/hype_hyeeit22.js';
|
||||
@@ -23,9 +24,9 @@ import NationwideNaiaGB21 from './banks/nationwide-naiagb21.js';
|
||||
import NbgEthngraaxxx from './banks/nbg_ethngraaxxx.js';
|
||||
import NorwegianXxNorwnok1 from './banks/norwegian-xx-norwnok1.js';
|
||||
import RevolutRevolt21 from './banks/revolut_revolt21.js';
|
||||
import SandboxfinanceSfin0000 from './banks/sandboxfinance-sfin0000.js';
|
||||
import SEBKortBankAB from './banks/seb-kort-bank-ab.js';
|
||||
import SEBPrivat from './banks/seb-privat.js';
|
||||
import SandboxfinanceSfin0000 from './banks/sandboxfinance-sfin0000.js';
|
||||
import SparNordSpNoDK22 from './banks/sparnord-spnodk22.js';
|
||||
import SpkKarlsruhekarsde66 from './banks/spk-karlsruhe-karsde66.js';
|
||||
import SpkMarburgBiedenkopfHeladef1mar from './banks/spk-marburg-biedenkopf-heladef1mar.js';
|
||||
@@ -45,6 +46,7 @@ export const banks = [
|
||||
CBCcregbebb,
|
||||
DanskeBankDabNO22,
|
||||
EasybankBawaatww,
|
||||
EntercardSwednokk,
|
||||
Fortuneo,
|
||||
HanseaticBank,
|
||||
Hype_HYEEIT22,
|
||||
@@ -58,9 +60,9 @@ export const banks = [
|
||||
NbgEthngraaxxx,
|
||||
NorwegianXxNorwnok1,
|
||||
RevolutRevolt21,
|
||||
SandboxfinanceSfin0000,
|
||||
SEBKortBankAB,
|
||||
SEBPrivat,
|
||||
SandboxfinanceSfin0000,
|
||||
SparNordSpNoDK22,
|
||||
SpkKarlsruhekarsde66,
|
||||
SpkMarburgBiedenkopfHeladef1mar,
|
||||
|
||||
59
src/app-gocardless/banks/entercard-swednokk.js
Normal file
59
src/app-gocardless/banks/entercard-swednokk.js
Normal file
@@ -0,0 +1,59 @@
|
||||
import * as d from 'date-fns';
|
||||
import {
|
||||
amountToInteger,
|
||||
printIban,
|
||||
sortByBookingDateOrValueDate,
|
||||
} from '../utils.js';
|
||||
import { formatPayeeName } from '../../util/payee-name.js';
|
||||
|
||||
/** @type {import('./bank.interface.js').IBank} */
|
||||
export default {
|
||||
institutionIds: ['ENTERCARD_SWEDNOKK'],
|
||||
|
||||
accessValidForDays: 180,
|
||||
|
||||
normalizeAccount(account) {
|
||||
return {
|
||||
account_id: account.id,
|
||||
institution: account.institution,
|
||||
mask: (account?.iban || '0000').slice(-4),
|
||||
iban: account?.iban || null,
|
||||
name: [account.name, printIban(account), account.currency]
|
||||
.filter(Boolean)
|
||||
.join(' '),
|
||||
official_name: `integration-${account.institution_id}`,
|
||||
type: 'checking',
|
||||
};
|
||||
},
|
||||
|
||||
normalizeTransaction(transaction, _booked) {
|
||||
// GoCardless's Entercard integration returns forex transactions with the
|
||||
// foreign amount in `transactionAmount`, but at least the amount actually
|
||||
// billed to the account is now available in
|
||||
// `remittanceInformationUnstructured`.
|
||||
const remittanceInformationUnstructured =
|
||||
transaction.remittanceInformationUnstructured;
|
||||
if (remittanceInformationUnstructured.startsWith('billingAmount: ')) {
|
||||
transaction.transactionAmount = {
|
||||
amount: remittanceInformationUnstructured.substring(15),
|
||||
currency: 'SEK',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
...transaction,
|
||||
payeeName: formatPayeeName(transaction),
|
||||
date: d.format(d.parseISO(transaction.valueDate), 'yyyy-MM-dd'),
|
||||
};
|
||||
},
|
||||
|
||||
sortTransactions(transactions = []) {
|
||||
return sortByBookingDateOrValueDate(transactions);
|
||||
},
|
||||
|
||||
calculateStartingBalance(sortedTransactions = [], balances = []) {
|
||||
return sortedTransactions.reduce((total, trans) => {
|
||||
return total - amountToInteger(trans.transactionAmount.amount);
|
||||
}, amountToInteger(balances[0]?.balanceAmount?.amount || 0));
|
||||
},
|
||||
};
|
||||
6
upcoming-release-notes/506.md
Normal file
6
upcoming-release-notes/506.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Enhancements
|
||||
authors: [kyrias]
|
||||
---
|
||||
|
||||
Add GoCardless integration for ENTERCARD_SWEDNOKK
|
||||
Reference in New Issue
Block a user