From 1d6c6e1da397d9e0a559d51cdae814b29c618c92 Mon Sep 17 00:00:00 2001 From: RunasSudo Date: Sun, 1 Jun 2025 23:21:40 +1000 Subject: [PATCH] UpdateBalancesBetween depends on BalancesBetween product when required --- libdrcr/src/reporting/builders.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/libdrcr/src/reporting/builders.rs b/libdrcr/src/reporting/builders.rs index abacade..f095b90 100644 --- a/libdrcr/src/reporting/builders.rs +++ b/libdrcr/src/reporting/builders.rs @@ -764,14 +764,17 @@ impl ReportingStep for UpdateBalancesBetween { let dependencies_for_step = dependencies.dependencies_for_step(&parent_step.id()); let balances_between_product = &dependencies_for_step[0].product; // Existence and uniqueness checked in can_build - if matches!( - balances_between_product.args, - ReportingStepArgs::DateStartDateEndArgs(_) - ) { - // Directly depends on BalanceBetween -> Transaction with appropriate date - // Do not need to add extra dependencies - } else { - // Depends on BalanceBetween with appropriate date + let mut is_already_transitive_dependency = false; + if let ReportingStepArgs::DateStartDateEndArgs(args) = &balances_between_product.args { + if *args == self.args { + // Directly depends on BalanceBetween -> Transaction with appropriate date + // Do not need to add extra dependencies + is_already_transitive_dependency = true; + } + } + + if !is_already_transitive_dependency { + // Add dependency on BalanceBetween with appropriate date dependencies.add_dependency( self.id(), ReportingProductId {