summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rust/actualbudget_models/src/actualbudget_account.rs2
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs13
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs6
3 files changed, 14 insertions, 7 deletions
diff --git a/rust/actualbudget_models/src/actualbudget_account.rs b/rust/actualbudget_models/src/actualbudget_account.rs
index 9aa501f..8691ec1 100644
--- a/rust/actualbudget_models/src/actualbudget_account.rs
+++ b/rust/actualbudget_models/src/actualbudget_account.rs
@@ -1,7 +1,7 @@
use derive_builder::Builder;
use diesel::prelude::{Queryable, Selectable};
-#[derive(Builder, Clone, Queryable, Selectable)]
+#[derive(Builder, Clone, PartialEq, Eq, Queryable, Selectable)]
#[diesel(table_name = crate::actualbudget_schema::accounts)]
pub struct ActualbudgetAccount {
pub id: String,
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
index 68691eb..f4c0773 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_accounts.rs
@@ -5,13 +5,16 @@ use super::transform_id;
pub fn transform_accounts(
actualbudget_accounts: &[ActualbudgetAccount],
+ actualbudget_category_transfers_account: &Option<ActualbudgetAccount>,
first_transaction_date: &DateUtc,
) -> Vec<Account> {
- let mut accounts = Vec::<Account>::new();
- for account in actualbudget_accounts {
- accounts.push(transform_account(account, first_transaction_date));
- }
- accounts
+ actualbudget_accounts
+ .iter()
+ .filter(|a| actualbudget_category_transfers_account
+ .clone()
+ .is_some_and(|cta| cta.id != a.id)
+ ).map(|a| transform_account(a, first_transaction_date))
+ .collect()
}
fn transform_account(
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
index 66bb489..2864f38 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_state.rs
@@ -18,7 +18,11 @@ fn transform_state_without_context(actualbudget_state: ActualbudgetState) -> Res
transform_date(&actualbudget_state.actualbudget_first_transaction_date)?;
let before_first_transaction_date = find_date_before(&first_transaction_date)?;
let accounts: Vec<Account> =
- transform_accounts(&actualbudget_state.actualbudget_accounts, &first_transaction_date);
+ transform_accounts(
+ &actualbudget_state.actualbudget_accounts,
+ &actualbudget_state.actualbudget_category_transfers_account,
+ &first_transaction_date,
+ );
let budget_drips = transform_budget_drips(&actualbudget_state.actualbudget_zero_budgets)?;
let categories: Vec<Category> = transform_categories(
&actualbudget_state.actualbudget_categories,