Crates.io | datev-types |
lib.rs | datev-types |
version | 0.4.0 |
source | src |
created_at | 2021-11-23 16:19:29.972612 |
updated_at | 2021-12-09 09:45:55.247424 |
description | Provides the DATEV format types including some serialization. |
homepage | |
repository | https://github.com/JensWalter/datev-types-rs/ |
max_upload_size | |
id | 486334 |
size | 217,572 |
provides the DATEV format types including some serialization.
This crate is still a work in progress and breaking changes will come at any time.
render datev csv
use datev_types::header::Header;
use datev_types::buchung::Buchung;
use datev_types::buchung::SollHabenKennzeichen;
use datev_types::Buchungsstapel;
use chrono::NaiveDate;
fn main() {
let header = Header{
format_name: "Buchungsstapel".to_string(),
erzeugt_am: chrono::Local::now().naive_local(),
beraternummer: 1000,
mandantennummer: 1,
wj_beginn: NaiveDate::from_ymd(2019,01,01),
sachkontenlänge: 4,
datum_von: NaiveDate::from_ymd(2019,01,01),
datum_bis: NaiveDate::from_ymd(2019,12,31),
..Default::default()
};
let buchung = Buchung{
soll_haben_kennzeichen: SollHabenKennzeichen::Soll,
umsatz: 100.0,
beleg_datum: NaiveDate::from_ymd(2021, 2, 28),
konto: 1800,
gegenkonto: 1420,
buchungstext: Some("zahlung 123".to_string()),
..Default::default()
};
let stapel = Buchungsstapel{
header: header,
buchungen: vec![buchung],
};
let str = format!("{}", stapel);
println!("{}", str);
let json_str = serde_json::to_string_pretty(&stapel).unwrap();
println!("{}", json_str);
}
produces the following output
"EXTF";700;21;"Buchungsstapel";12;20211127230309532;;;;;1000;1;20190101;4;20190101;20191231;;;;;;;;;;;;;;;
100;S;EUR;;;;1800;1420;;2802;;;;zahlung 123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
{
"header": {
"Kennzeichen": "EXTF",
"Versionsnummer": 700,
"FormatKategorie": 21,
"FormatName": "Buchungsstapel",
"FormatVersion": 12,
"ErzeugtAm": "2021-11-27T23:03:09.532227",
"Beraternummer": 1000,
"Mandantennummer": 1,
"WjBeginn": "2019-01-01",
"Sachkontenlänge": 4,
"DatumVon": "2019-01-01",
"DatumBis": "2019-12-31"
},
"buchungen": [
{
"umsatz": 100.0,
"sollHabenKennzeichen": "Soll",
"wkzUmsatz": "EUR",
"konto": 1800,
"gegenkonto": 1420,
"belegDatum": "2021-02-28",
"buchungstext": "zahlung 123"
}
]
}