Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion for improvement] Add German labels to property summaries #12

Open
faiteanu opened this issue Aug 13, 2023 · 3 comments
Open
Assignees

Comments

@faiteanu
Copy link

Hallo Achim,

as the DATEV-Format is a German thing, I'd suggest to add the values of the fields Label and OrdinalNumber from Format_Buchungsstapel.xml (and for the other formats as well) to the summaries of properties. I'm not sure whether you auto-generated the code for e.g. BookingBaseRow.cs, then it should be rather simple.

When I wanted to set the Umsatzsteuer-ID for a booking row, I had to look up the field name "EU-Mitgliedstaat u. UStID (Bestimmung)" in the DATEV online documentation to find the corresponding ID 040, subtract 1 to obtain the 0-based index 39, and then look through the files BookingBaseRow, BookingDocumentRow, BookingInfoRow, and BookingMiscRow to find out that value 39 corresponds to the property CountryCodeAndTaxId. That is a pretty awkward workflow.

My suggestion is thus to add the German label and field number to all summaries:

/// <summary>   Gets or sets the identifier of the country code and tax. 
/// ("EU-Mitgliedstaat u. UStID (Bestimmung)"; Field 040)</summary>
/// <value> The identifier of the country code and tax. </value>
/// <remarks>
///     MaxLength=15
/// </remarks>
[DatevField(39, 1)]
public string CountryCodeAndTaxId { get; set; }

PS: The [MaxLength(int)] attribute could be added to properties and then simplify the code in the validator classes.

@IInvocation
Copy link
Member

Hallo Fabian,

der Wunsch ist durchaus berechtigt - das Problem ist mir auch aufgefallen.

Grundlegend sind die Klassen handgeschrieben und nicht generiert, da ich persönlich davon ausgehe, dass eine vollständige Generierung entweder recht aufwändig - oder ggf. mies wäre. (Wobei sich natürlich durchaus darüber reden ließe, zumindest einen Teil mit einer Übersetzungsliste generieren zu lassen)

Damit ergibt sich, dass entweder eine händische Ergänzung - oder aber eine Neugenerierung mit Hilfe einer Übersetzungsliste anbieten, was beides seine Zeit benötigen wird.

Muss hier auch erst mal in mich gehen und schauen, ob ich mit einer generierten Lösung wirklich zufrieden wäre.

In der Zwischenzeit:
Hier im Code gibt's auch ein Tool, welches einen Überblick über die je Version implementierten Felder bietet, welches
entsprechend HTML-Dateien ausspuckt - siehe https://github.com/FluiTec/FluiTec.DatevSharp/tree/master/src/FluiTec.DatevSharp.VersionCoverageReport/Reports

@faiteanu
Copy link
Author

Hallo Achim,

eine manuelle Überarbeitung ist recht aufwändig, was ich verstehen kann.

Mir hat sich in dem Zusammenhang die philosophische Frage gestellt, ob ich so eine Klasse grundsätzlich mit deutschen Bezeichnern für Properties programmieren würde. Aktuell arbeite ich an einem Projekt, dessen Code komplett auf deutsch geschrieben ist, was anfangs sehr gewöhnungsbedürftig aussieht. Bei dem Datev-Export mit DatevSharp fällt mir dann die Diskrepanz auf: unsere Anwendung läuft komplett auf deutsch, alle Entwickler und Nutzer sprechen deutsch, Datev Kanzlei-Rechnungwesen läuft ebenfalls auf deutsch. Die englischen Bezeichner aus DatevSharp finden sich hingegen an keiner Stelle der Oberflächen und Prozesse wieder und sind daher weder für Buchhalter noch für Entwickler besonders eingängig.

Aber wie gesagt, das ist eher eine philosophische Frage. Letzlich muss man als Nutzer von DatevSharp alle benötigten Felder nur ein Mal heraus suchen und mappen, danach spielen die Bezeichner keine große Rolle mehr.

Danke nochmal für die tolle Bibliothek und die Mühe, die du hinein gesteckt hast!

Viele Grüße, Fabian

@faiteanu
Copy link
Author

Wie mir gerade auffällt, fehlt im NuGet-Paket die XML-Datei mit den Summaries komplett. In FluiTec.DatevSharp.csproj muss noch <GenerateDocumentationFile>True</GenerateDocumentationFile> eingetragen werden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants