summaryrefslogtreecommitdiff
path: root/src/banking
diff options
context:
space:
mode:
Diffstat (limited to 'src/banking')
-rw-r--r--src/banking/account.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/banking/account.rs b/src/banking/account.rs
index baaccec..584386a 100644
--- a/src/banking/account.rs
+++ b/src/banking/account.rs
@@ -1,4 +1,5 @@
use parsers::csv::CsvFile;
+use chrono::Datelike;
pub struct Account {
pub name : String,
@@ -27,6 +28,22 @@ impl Account {
}
Account { name : name, iban : iban, transactions : trans, institute : institute, groupFile : groupFile, category : category }
}
+
+ pub fn get_balance(&self, date : chrono::NaiveDate) -> f32 {
+ self.transactions.iter().filter(|transaction| Account::date_is_before(transaction.date, date)).fold(0.0, |acc, x| acc + x.amount).abs()
+ }
+
+ fn date_is_before(left: chrono::NaiveDate, right : chrono::NaiveDate) -> bool {
+ if left.year() < right.year() {
+ return true;
+ }
+ else if left.year() == right.year() {
+ if left.month() > right.month() {
+ return false;
+ }
+ return true;
+ }
+ return false;
}
}