summaryrefslogtreecommitdiff
path: root/src/web_frontend/chart.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/web_frontend/chart.rs')
-rw-r--r--src/web_frontend/chart.rs12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/web_frontend/chart.rs b/src/web_frontend/chart.rs
index a6b387a..1c74e80 100644
--- a/src/web_frontend/chart.rs
+++ b/src/web_frontend/chart.rs
@@ -44,7 +44,6 @@ pub fn chart_handler(account : &RawStr, start : Option<&RawStr>, end : Option<&R
chrono::NaiveDate::parse_from_str(&tmp, "%Y-%m-%d").unwrap() },
None => Utc::today().naive_utc()
};
- let date_range = crate::web_frontend::util::DateRange::new(date_start, date_end);
let asset_ini = "data/asset.ini";
let asset = crate::banking::asset::Asset::from_ini_file(asset_ini);
let account = asset.get_account_by_name(&account_name);
@@ -64,18 +63,13 @@ pub fn chart_handler(account : &RawStr, start : Option<&RawStr>, end : Option<&R
let t = acc.transactions;
// filter transaction to match only the specified timeframe
- let mut t_filtered = Vec::new();
- for date in date_range {
- let tc = t.clone();
- let mut tmp : Vec<_> = tc.into_iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect();
- t_filtered.append(&mut tmp);
+ let t_filtered = crate::web_frontend::util::apply_date_filter(t, date_start, date_end);
- }
// spending chart, so do not consider income
let t_final : Vec<_> = t_filtered.clone().into_iter().filter(|t| t.amount < 0.0 ).collect();
let total_sum = t_final.clone().into_iter().fold(0.0, |acc, x| acc + x.amount).abs();
- println!("total sum: {}", total_sum);
+
let mut total_chart = 0.0;
for (section_name, entries) in ini_file.sections {
let mut filter_string = String::from("");
@@ -92,7 +86,7 @@ pub fn chart_handler(account : &RawStr, start : Option<&RawStr>, end : Option<&R
}
}
let t_filtered_cloned = crate::web_frontend::util::apply_transaction_filter(filter_string.clone(), t_final.clone());
- println!("for filter: {}: transactions: {}", filter_string, t_filtered_cloned.len());
+
let tmp = t_filtered_cloned.into_iter()
.fold(0.0, |acc, x| acc + x.amount);
complete = complete + tmp.abs();