From 11cdd2ad3368e349d1cebe079629af61e8c45d78 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Thu, 21 Nov 2024 21:50:41 +0000 Subject: Minor fixes in AB transformers --- .../src/transformers.rs | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'rust') diff --git a/rust/schist_actualbudget_importer/src/transformers.rs b/rust/schist_actualbudget_importer/src/transformers.rs index cf62608..711904b 100644 --- a/rust/schist_actualbudget_importer/src/transformers.rs +++ b/rust/schist_actualbudget_importer/src/transformers.rs @@ -125,19 +125,23 @@ pub fn transform_transactions( transactions.push(Transaction { id: transaction_id, - description: atomic_actualbudget_transaction.notes, - payee: atomic_actualbudget_transaction.payee, + description: atomic_actualbudget_transaction.notes.unwrap_or_else(String::new), + payee: atomic_actualbudget_transaction.payee.unwrap_or_else(String::new), quantity: atomic_actualbudget_transaction.amount.try_into().unwrap(), date: transform_date(&atomic_actualbudget_transaction.date)?, account_id: transform_id(&atomic_actualbudget_transaction.account_id), }); + let actualbudget_category_id = atomic_actualbudget_transaction + .category_id + .expect("actualbudget transaction should have been atomic, but in fact had no category ID"); + transaction_categorisations.push(TransactionCategorisation { id: transaction_id, description: String::new(), quantity: atomic_actualbudget_transaction.amount.try_into().unwrap(), transaction_id, - category_id: transform_id(&atomic_actualbudget_transaction.category_id), + category_id: transform_id(&actualbudget_category_id), }); } @@ -153,20 +157,24 @@ pub fn transform_transactions( transactions.push(Transaction { id: transaction_id, - description: parent_actualbudget_transaction.notes, - payee: parent_actualbudget_transaction.payee, + description: parent_actualbudget_transaction.notes.unwrap_or_else(String::new), + payee: parent_actualbudget_transaction.payee.unwrap_or_else(String::new), quantity: parent_actualbudget_transaction.amount.try_into().unwrap(), date: transform_date(&parent_actualbudget_transaction.date)?, account_id: transform_id(&parent_actualbudget_transaction.account_id), }); for child_actualbudget_transaction in child_actualbudget_transactions { + let actualbudget_category_id = child_actualbudget_transaction + .category_id + .expect("actualbudget transaction should have been a child transaction, but in fact had no category ID"); + transaction_categorisations.push(TransactionCategorisation { id: transform_id(&child_actualbudget_transaction.id), - description: child_actualbudget_transaction.notes, + description: child_actualbudget_transaction.notes.unwrap_or_else(String::new), quantity: child_actualbudget_transaction.amount.try_into().unwrap(), transaction_id, - category_id: transform_id(&child_actualbudget_transaction.category_id), + category_id: transform_id(&actualbudget_category_id), }); } } @@ -218,7 +226,7 @@ pub fn transform_category_transfers( category_transfers.push(CategoryTransfer { id: transform_id(&actualbudget_parent_category_transfer.id), - description: actualbudget_parent_category_transfer.notes, + description: actualbudget_parent_category_transfer.notes.unwrap_or_else(String::new), quantity: actualbudget_child_category_transfers[0] .amount .try_into() @@ -237,7 +245,7 @@ fn is_category_transfer( ) -> bool { match actualbudget_category_transfers_account { None => false, - Some(acc) => transaction.category_id.clone() == acc.id.clone(), + Some(acc) => transaction.account_id.clone() == acc.id.clone(), } } -- cgit v1.2.3