4 个版本 (破坏性更新)
0.4.0 | 2021 年 12 月 9 日 |
---|---|
0.3.0 | 2021 年 11 月 28 日 |
0.2.0 | 2021 年 11 月 27 日 |
0.1.0 | 2021 年 11 月 23 日 |
#256 在 #types
155KB
3K SLoC
datev-types-rs
提供 DATEV 格式类型,包括一些序列化功能。
仍在开发中
此包仍在开发中,任何时间都可能发生破坏性更改。
示例
渲染 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);
}
产生以下输出
"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"
}
]
}
依赖项
~6–8.5MB
~165K SLoC