Skip to content

Commit

Permalink
Merge branch 'openid' of https://github.com/lelemm/actual-server into…
Browse files Browse the repository at this point in the history
… openid
  • Loading branch information
lelemm committed Nov 11, 2024
2 parents 3c5e12e + 6ff1c59 commit 2233ba1
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 15 deletions.
16 changes: 16 additions & 0 deletions src/app-gocardless/banks/1822-direkt-heladef1822.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Fallback from './integration-bank.js';

/** @type {import('./bank.interface.js').IBank} */
export default {
...Fallback,

institutionIds: ['DIREKT_HELADEF1822'],

normalizeTransaction(transaction, booked) {
transaction.remittanceInformationUnstructured =
transaction.remittanceInformationUnstructured ??
transaction.remittanceInformationStructured;

return Fallback.normalizeTransaction(transaction, booked);
},
};
2 changes: 1 addition & 1 deletion src/app-gocardless/banks/ing-pl-ingbplpw.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default {
return {
...transaction,
payeeName: formatPayeeName(transaction),
date: transaction.bookingDate || transaction.valueDate,
date: transaction.valueDate ?? transaction.bookingDate,
};
},

Expand Down
37 changes: 28 additions & 9 deletions src/app-gocardless/banks/swedbank-habalv22.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,36 @@ export default {
* The actual transaction date for card transactions is only available in the remittanceInformationUnstructured field when the transaction is booked.
*/
normalizeTransaction(transaction, booked) {
const dateMatch = transaction.remittanceInformationUnstructured?.match(
/PIRKUMS [\d*]+ (\d{2}.\d{2}.\d{4})/,
);
const isCardTransaction =
transaction.remittanceInformationUnstructured?.startsWith('PIRKUMS');

if (isCardTransaction) {
if (!booked && !transaction.creditorName) {
const creditorNameMatch =
transaction.remittanceInformationUnstructured?.match(
/PIRKUMS [\d*]+ \d{2}\.\d{2}\.\d{2} \d{2}:\d{2} [\d.]+ \w{3} \(\d+\) (.+)/,
);

if (creditorNameMatch) {
transaction = {
...transaction,
creditorName: creditorNameMatch[1],
};
}
}

const dateMatch = transaction.remittanceInformationUnstructured?.match(
/PIRKUMS [\d*]+ (\d{2}\.\d{2}\.\d{4})/,
);

if (dateMatch) {
const extractedDate = d.parse(dateMatch[1], 'dd.MM.yyyy', new Date());
if (dateMatch) {
const extractedDate = d.parse(dateMatch[1], 'dd.MM.yyyy', new Date());

return Fallback.normalizeTransaction(
{ ...transaction, bookingDate: d.format(extractedDate, 'yyyy-MM-dd') },
booked,
);
transaction = {
...transaction,
bookingDate: d.format(extractedDate, 'yyyy-MM-dd'),
};
}
}

return Fallback.normalizeTransaction(transaction, booked);
Expand Down
27 changes: 23 additions & 4 deletions src/app-gocardless/banks/tests/swedbank-habalv22.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import SwedbankHabaLV22 from '../swedbank-habalv22.js';

describe('#normalizeTransaction', () => {
const cardTransaction = {
const bookedCardTransaction = {
transactionId: '2024102900000000-1',
bookingDate: '2024-10-29',
valueDate: '2024-10-29',
Expand All @@ -18,11 +18,12 @@ describe('#normalizeTransaction', () => {

it('extracts card transaction date', () => {
expect(
SwedbankHabaLV22.normalizeTransaction(cardTransaction, true).bookingDate,
SwedbankHabaLV22.normalizeTransaction(bookedCardTransaction, true)
.bookingDate,
).toEqual('2024-10-28');

expect(
SwedbankHabaLV22.normalizeTransaction(cardTransaction, true).date,
SwedbankHabaLV22.normalizeTransaction(bookedCardTransaction, true).date,
).toEqual('2024-10-28');
});

Expand All @@ -32,12 +33,30 @@ describe('#normalizeTransaction', () => {
['null value', null],
])('normalizes non-card transaction with %s', (_, remittanceInfo) => {
const transaction = {
...cardTransaction,
...bookedCardTransaction,
remittanceInformationUnstructured: remittanceInfo,
};
const normalized = SwedbankHabaLV22.normalizeTransaction(transaction, true);

expect(normalized.bookingDate).toEqual('2024-10-29');
expect(normalized.date).toEqual('2024-10-29');
});

const pendingCardTransaction = {
transactionId: '2024102900000000-1',
valueDate: '2024-10-29',
transactionAmount: {
amount: '-22.99',
currency: 'EUR',
},
remittanceInformationUnstructured:
'PIRKUMS 424242******4242 28.10.24 13:37 22.99 EUR (111111) SOME CREDITOR NAME',
};

it('extracts pending card transaction creditor name', () => {
expect(
SwedbankHabaLV22.normalizeTransaction(pendingCardTransaction, false)
.creditorName,
).toEqual('SOME CREDITOR NAME');
});
});
2 changes: 1 addition & 1 deletion src/app-simplefin/app-simplefin.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ function getAccountResponse(results, accountId, startDate) {

let dateToUse = 0;

if (trans.posted == 0) {
if (trans.pending ?? trans.posted == 0) {
newTrans.booked = false;
dateToUse = trans.transacted_at;
} else {
Expand Down
6 changes: 6 additions & 0 deletions upcoming-release-notes/484.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
category: Enhancements
authors: [matt-fidd]
---

Add support for `1822-DIREKT-HELADEF1822` transaction information
6 changes: 6 additions & 0 deletions upcoming-release-notes/493.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
category: Enhancements
authors: [matt-fidd]
---

GoCardless: `ING_PL_INGBPLPW` should prefer valueDate over bookingDate
6 changes: 6 additions & 0 deletions upcoming-release-notes/494.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
category: Bugfix
authors: [matt-fidd]
---

Prefer using the SimpleFin pending flag to set cleared status
6 changes: 6 additions & 0 deletions upcoming-release-notes/497.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
category: Enhancements
authors: [dmednis]
---

Improve support for "SWEDBANK_HABALV22" transaction date & enrich creditor name for pending transactions

0 comments on commit 2233ba1

Please sign in to comment.