summaryrefslogtreecommitdiff
path: root/src/web_frontend/balance.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/web_frontend/balance.rs')
-rw-r--r--src/web_frontend/balance.rs56
1 files changed, 5 insertions, 51 deletions
diff --git a/src/web_frontend/balance.rs b/src/web_frontend/balance.rs
index 2cbebec..77311b0 100644
--- a/src/web_frontend/balance.rs
+++ b/src/web_frontend/balance.rs
@@ -1,5 +1,5 @@
use parsers::csv::CsvFile;
-use banking::Account;
+use banking::account::Account;
//use parsers::ini::IniFile;
use std::collections::HashMap;
use rocket_contrib::templates::Template;
@@ -10,6 +10,7 @@ use rocket::http::RawStr;
use regex::Regex;
use chrono::{NaiveDate, Utc};
use chrono::Datelike;
+use crate::web_frontend::util;
#[derive(Serialize)]
struct MonthEarnSpend {
@@ -27,53 +28,6 @@ struct BalanceContext {
date_end : String
}
-#[derive(Debug)]
-struct DateRange {
- start_year : i32,
- start_month : u32,
- end_year : i32,
- end_month : u32,
-}
-
-impl DateRange {
- fn new(start : chrono::NaiveDate, end : chrono::NaiveDate) -> DateRange {
- DateRange {
- start_year : start.year(),
- start_month : start.month(),
- end_year : end.year(),
- end_month : end.month(),
- }
- }
-}
-
-impl Iterator for DateRange {
- type Item = chrono::NaiveDate;
-
- fn next(&mut self) -> Option<Self::Item> {
- println!("next called");
- if (self.start_year <= self.end_year) {
- if(self.start_month <= self.end_month) {
- let mut tmp = self.start_year.to_string();
- if self.start_month < 10 {
- tmp.push_str("-0");
- } else {
- tmp.push_str("-");
- }
- tmp.push_str(&self.start_month.to_string());
- tmp.push_str("-01");
- if self.start_month < 13 {
- self.start_month = self.start_month + 1;
- } else {
- self.start_month = 1;
- self.start_year = self.start_year + 1;
- }
- println!("{}", tmp);
- return Some(chrono::NaiveDate::parse_from_str(&tmp, "%Y-%m-%d").unwrap())
- }
- }
- None
- }
-}
#[get("/balance?<start>&<end>")]
pub fn balance_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_contrib::templates::Template {
@@ -89,14 +43,14 @@ pub fn balance_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket
chrono::NaiveDate::parse_from_str(&tmp, "%Y-%m-%d").unwrap() },
None => Utc::today().naive_utc()
};
- let date_range = DateRange::new(date_start, date_end);
+ let date_range = crate::web_frontend::util::DateRange::new(date_start, date_end);
let mut earn_spend_v = Vec::new();
for date in date_range {
let transactions = CsvFile::from_file("data/t.csv", ";", true);
- let t : Vec<crate::banking::Transaction> ;
+ let t : Vec<crate::banking::account::Transaction> ;
match transactions {
- Ok(trans) => t = crate::banking::Transaction::from_sparkasse_csv_file(trans),
+ Ok(trans) => t = crate::banking::account::Transaction::from_sparkasse_csv_file(trans),
Err(e) => panic!("could not read file {:?}", e)
}
let result : Vec<_> = t.iter().filter(|x| x.date.month() == date.month()).collect();