summaryrefslogtreecommitdiff
path: root/rust/actualbudget_to_schist_transformer/src
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-05 08:38:52 +0000
committerJoe Carstairs <me@joeac.net>2024-12-05 08:38:52 +0000
commit47f56d8eac2807b161a76a01f397c25f8c7fdcad (patch)
tree458de9b9bbcfcae513b9f3028cd3b0ba612406c2 /rust/actualbudget_to_schist_transformer/src
parentc20dc5c1e56d180eef8e0303762dcb3e358cbb58 (diff)
Only transforms non-zero budget drips
Diffstat (limited to 'rust/actualbudget_to_schist_transformer/src')
-rw-r--r--rust/actualbudget_to_schist_transformer/src/transform_state/transform_budget_drips.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_budget_drips.rs b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_budget_drips.rs
index 7ec41af..1163e56 100644
--- a/rust/actualbudget_to_schist_transformer/src/transform_state/transform_budget_drips.rs
+++ b/rust/actualbudget_to_schist_transformer/src/transform_state/transform_budget_drips.rs
@@ -9,8 +9,15 @@ use schist_traits::dateable::Dateable;
use super::{transform_date::transform_date, transform_id::transform_id};
pub fn transform_budget_drips(actualbudget_zero_budgets: &[ActualbudgetZeroBudget]) -> Result<Vec<BudgetDrip>> {
- let budget_drips = group_actualbudget_zero_budgets_by_category_id(actualbudget_zero_budgets)
+ let non_zero_actualbudget_zero_budgets: Vec<ActualbudgetZeroBudget> = actualbudget_zero_budgets
.iter()
+ .filter(|zb| zb.amount != 0)
+ .cloned()
+ .collect();
+
+ let budget_drips = group_actualbudget_zero_budgets_by_category_id(
+ &non_zero_actualbudget_zero_budgets,
+ ).iter()
.map(sort_actualbudget_zero_budgets_by_month)
.flat_map(|sorted_actualbudget_zero_budgets| sorted_actualbudget_zero_budgets
.iter()
@@ -18,7 +25,9 @@ pub fn transform_budget_drips(actualbudget_zero_budgets: &[ActualbudgetZeroBudge
.collect::<Result<Vec<Vec<BudgetDrip>>>>()
).flatten()
.flatten()
+ .filter(|bd| bd.quantity != 0)
.collect();
+
Ok(budget_drips)
}