diff options
| author | ivar <i@oiee.no> | 2025-12-26 22:19:09 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2025-12-26 22:19:09 +0100 |
| commit | abf37599c877a8cc83e5a24c775c3999a9879abf (patch) | |
| tree | 234fbafdadda08735c4cbf6d3092bebd1d725691 /app/src/lib/server/actual.ts | |
| parent | fe0fe074ec8e8959bbdeff0ccc7f68d20b30e963 (diff) | |
| download | sparebank1-actualbudget-abf37599c877a8cc83e5a24c775c3999a9879abf.tar.xz sparebank1-actualbudget-abf37599c877a8cc83e5a24c775c3999a9879abf.zip | |
Remove delta from form, wip import method
Diffstat (limited to 'app/src/lib/server/actual.ts')
| -rw-r--r-- | app/src/lib/server/actual.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/src/lib/server/actual.ts b/app/src/lib/server/actual.ts index 0875273..389f390 100644 --- a/app/src/lib/server/actual.ts +++ b/app/src/lib/server/actual.ts @@ -3,6 +3,9 @@ import * as actual from "@actual-app/api" import { existsSync, mkdirSync } from "node:fs"; import path from "node:path" import process from "node:process"; +import type { Sb1Transaction } from "./sb1"; +import type { ImportTransactionEntity } from "@actual-app/api/@types/loot-core/src/types/models/import-transaction"; +import { Temporal } from "temporal-polyfill"; async function init_actual() { const dataDir = path.resolve(process.cwd(), "data/actualDataDir") @@ -17,6 +20,24 @@ async function init_actual() { }) } +export async function import_transactions(account: string, transactions: Sb1Transaction[], dryRun: boolean) { + + function parsedDate(date: number) { + const instant = Temporal.Instant.fromEpochMilliseconds(date) + return instant.toString({ timeZone: "Europe/Oslo" }).split("T")[0] + } + + const actualMappedTransactions: ImportTransactionEntity[] = transactions.filter(c => c.bookingStatus === "BOOKED").map(c => ({ + account, + date: parsedDate(c.date), + amount: c.amount, + notes: c.description, + payee_name: c.cleanedDescription + })) + + actual.importTransactions(account, actualMappedTransactions, { dryRun }) +} + export async function get_budgets() { await init_actual() return actual.getBudgets() |
