summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rust/schist_actualbudget_importer/src/transformers.rs26
1 files changed, 17 insertions, 9 deletions
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(),
}
}