diff options
Diffstat (limited to 'rust')
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, |
