diff options
Diffstat (limited to 'src/web_frontend/chart.rs')
| -rw-r--r-- | src/web_frontend/chart.rs | 12 |
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(); |
