Fix all to single department range

This commit is contained in:
michaelpivato
2023-03-10 11:34:01 +10:30
parent 568a66c6cf
commit 8dc0881197

View File

@@ -179,12 +179,6 @@ where
.sorted()
.collect()
};
let line_departments_sorted = lines
.keys()
.map(|key| key.department.clone())
.unique()
.sorted()
.collect();
let all_departments_sorted = cost_centres_reader
.deserialize::<PartialCostCentre>()
.map(|cc| cc.unwrap().code)
@@ -213,7 +207,6 @@ where
extract_range(
movement_rule.source_from_account,
movement_rule.source_to_account,
false,
&all_accounts_sorted,
)
}
@@ -235,7 +228,6 @@ where
extract_range(
movement_rule.dest_from_account,
movement_rule.dest_to_account,
false,
&all_accounts_sorted,
)
}
@@ -246,9 +238,7 @@ where
extract_range(
movement_rule.source_from_department,
movement_rule.source_to_department,
false,
// Don't use all departments, as we only need ones that actually have costs
&line_departments_sorted,
&all_departments_sorted,
)
};
let to_departments = if is_separator {
@@ -257,19 +247,18 @@ where
extract_range(
movement_rule.dest_from_department,
movement_rule.dest_to_department,
false,
&all_departments_sorted,
)
};
rules.push(MovementRule {
all_from_departments: from_departments.is_empty(),
all_to_departments: to_departments.is_empty(),
from_departments,
to_departments,
all_from_departments: false,
all_to_departments: false,
all_from_accounts: from_accounts.is_empty(),
all_to_accounts: to_accounts.is_empty(),
from_accounts,
to_accounts,
all_from_accounts: false,
all_to_accounts: false,
amount: movement_rule.amount.unwrap_or(0.)
* (if movement_rule.is_percent == "%" {
0.01
@@ -299,9 +288,9 @@ where
Ok(())
}
fn extract_range(from: String, to: String, all: bool, options: &Vec<String>) -> HashSet<String> {
if all || (from.is_empty() && to.is_empty()) {
return options.clone().into_iter().collect();
fn extract_range(from: String, to: String, options: &Vec<String>) -> HashSet<String> {
if from.is_empty() && to.is_empty() {
return HashSet::new();
}
let start_index = options
.iter()