diff options
| author | Benedict Börger <benedict@0xb8000.de> | 2019-03-23 15:40:35 +0100 |
|---|---|---|
| committer | Benedict Börger <benedict@0xb8000.de> | 2019-03-23 15:41:11 +0100 |
| commit | 2e0a6909cbfb2479edd7fba78fa4d0135a79ae3f (patch) | |
| tree | 83070d9e1489faaea9a94609e7ff5bccedeb66d5 /src/banking | |
| parent | 7fcdc3ecc0f077ff7ff4ec57c912beae4f974fdb (diff) | |
[global] refactoring code base
Diffstat (limited to 'src/banking')
| -rw-r--r-- | src/banking/mod.rs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/banking/mod.rs b/src/banking/mod.rs new file mode 100644 index 0000000..410bae1 --- /dev/null +++ b/src/banking/mod.rs @@ -0,0 +1,59 @@ + +use parsers::csv::CsvFile; + + +pub struct Account { + name : String, + iban : String, + transactions : Vec<Transaction> +} + + +#[derive(Serialize)] +pub struct Transaction { + pub sender_name : String, + pub amount : f32, + pub reference : String, + pub date : chrono::NaiveDate +} + +impl Transaction { + pub fn from_sparkasse_csv_file(file : CsvFile) -> Vec<Transaction> { + let mut ret = Vec::new(); + for line in file.iter() { + let mut sender_name_f = String::from(""); + let mut sender_iban_f = String::from(""); + let mut amount_f : f32 = 0.0; + let mut reference_f = String::from(""); + let mut date_f = chrono::NaiveDate::parse_from_str("01.01.2019", "%d.%m.%Y").unwrap(); + match line.get(&String::from("Kontonummer")) { + Some(value) => sender_iban_f = value.to_string(), + None => println!("missing sender") + } + match line.get(&String::from("Beguenstigter/Zahlungspflichtiger")) { + Some(value) => sender_name_f = value.to_string(), + None => println!("missing sender") + } + match line.get(&String::from("Verwendungszweck")) { + Some(value) => reference_f = value.to_string(), + None => println!("missing refernce") + } + match line.get(&String::from("Betrag")) { + Some(value) => amount_f = value.parse().unwrap(), + None => println!("missing amount") + } + match line.get(&String::from("Valutadatum")) { + Some(value) => { + date_f = chrono::NaiveDate::parse_from_str(value, "%d.%m.%y").unwrap();} , + None => println!("missing date") + } + ret.push(Transaction { + sender_name : sender_name_f, + amount : amount_f, + reference : reference_f, + date : date_f }); + + } + ret + } +} |
