summaryrefslogtreecommitdiff
path: root/src/web_frontend/balance.rs
diff options
context:
space:
mode:
authorBenedict Börger <benedict@0xb8000.de>2019-06-28 22:00:33 +0200
committerBenedict Börger <benedict@0xb8000.de>2019-06-28 22:00:33 +0200
commit236a2609eb153ae428b35c9a31eaedf197a5b036 (patch)
treeae70d754d402184c664b0739f3f83c6b969376a9 /src/web_frontend/balance.rs
parent5d33ed945c5be832d6a6e08eda4e35dde00ac362 (diff)
[web_frontemd] move date filtering to util
Diffstat (limited to 'src/web_frontend/balance.rs')
-rw-r--r--src/web_frontend/balance.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/web_frontend/balance.rs b/src/web_frontend/balance.rs
index f05b69a..98d86b6 100644
--- a/src/web_frontend/balance.rs
+++ b/src/web_frontend/balance.rs
@@ -49,28 +49,29 @@ pub fn balance_handler(account : &RawStr, start : Option<&RawStr>, end : Option<
let asset_ini = "data/asset.ini";
let asset : Asset = crate::banking::asset::Asset::from_ini_file(asset_ini);
- let transactions = asset.get_account_by_name(&account_name);
- let acc;
- match transactions {
- Some(trans) => acc = trans,
- None => panic!("could not read file")
- }
- let t = acc.transactions;
+ let transactions = asset.get_account_by_name(&account_name);
+ let acc;
+ match transactions {
+ Some(trans) => acc = trans,
+ None => panic!("could not read file")
+ }
+ let t = acc.transactions;
- let mut earn_spend_v = Vec::new();
+ let mut earn_spend_v = Vec::new();
for date in date_range {
- let result : Vec<_> = t.iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect();
- let mut earn = 0.0;
- let mut spend = 0.0;
- for r in &result {
+ let result : Vec<_> = t.iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect();
+ let mut earn = 0.0;
+ let mut spend = 0.0;
+ for r in &result {
if r.amount > 0.0 {
earn = earn + r.amount;
} else {
spend = spend + r.amount.abs();
}
- }
- earn_spend_v.push(MonthEarnSpend { name : date.to_string(), earned : earn, spent : spend});
+ }
+ earn_spend_v.push(MonthEarnSpend { name : date.to_string(), earned : earn, spent : spend});
}
+
let context = BalanceContext { account_name : account_name,
months : earn_spend_v , date_start : date_start.to_string()[0..7].to_string(),
date_end : date_end.to_string()[0..7].to_string()};