diff --git a/pfbudget/db/client.py b/pfbudget/db/client.py index c122126..90191e1 100644 --- a/pfbudget/db/client.py +++ b/pfbudget/db/client.py @@ -96,7 +96,7 @@ class DatabaseClient: def insert_transactions(self, transactions: Q.DbTransactions): logger.info(f"Adding {len(transactions)} into {self.db}") - self.__executemany(Q.ADD_TRANSACTION, transactions) + self.__executemany(Q.ADD_TRANSACTION, [t.tuple() for t in transactions]) def update_category(self, transaction: Transaction): logger.info(f"Update {transaction} category") diff --git a/pfbudget/db/schema.py b/pfbudget/db/schema.py index 78909d0..1b5eb24 100644 --- a/pfbudget/db/schema.py +++ b/pfbudget/db/schema.py @@ -1,6 +1,5 @@ from dataclasses import dataclass from decimal import Decimal -import sqlite3 CREATE_TRANSACTIONS_TABLE = """ CREATE TABLE IF NOT EXISTS "transactions" ( @@ -25,15 +24,14 @@ class DbTransaction: original: str comments: str - def __conform__(self, protocol): - if protocol is sqlite3.PrepareProtocol: - return ( - self.date, - self.description, - self.bank, - self.value, - self.category, - ) + def tuple(self) -> tuple: + return ( + self.date, + self.description, + self.bank, + self.value, + self.category, + ) DbTransactions = list[DbTransaction] diff --git a/pfbudget/utils/converters.py b/pfbudget/utils/converters.py index 3622e49..106b65d 100644 --- a/pfbudget/utils/converters.py +++ b/pfbudget/utils/converters.py @@ -13,7 +13,7 @@ def convert(t): @convert.register def _(t: Transaction) -> DbTransaction: - return (t.date, t.description, t.bank, t.value, t.category) + return DbTransaction(t.date, t.description, t.bank, t.value, t.category, t.original, t.additional_comment) @convert.register