com.Steuerbetrag enthält das nicht BO4E Standard Feld BasiswertVorausgezahlt. In der EDIFACT Kommunikation wird jedoch nur der Bruttowert und nicht der Nettowert übermittelt.
Especially in the Vertrag Object (Vertragskonditionen) we stubled upon an issue, that using Newtonsoft JsonConvert the serialized-deserialized-serialized Json does not equal the serialized Json.
Todo: Write corresponding UnitTest in BO4E project and check.
Port our own (Hochfrequenz) Business Object Bilanzierung to Python.
Add tests (to the python implementation) as usual
Put focus on a well documented data model (docstrings) Ask for help if necessary.
If the CI passes let someone from the Hochfrequenz team review it
Do not merge it to bo4e/BO4E-Python yet! We want to use th BO Bilanzierung to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)
run tox and create dev environment (see python template repository)
port all the properties from the c# avis class (link above) to the new class in bo4e-python
create missing coms and enums in BO4E-python
Add tests (to the python implementation) as usual
Put focus on a well documented data model (docstrings). Ask for help if necessary.
If the CI passes let someone from the Hochfrequenz team review it
Do not merge it to bo4e/BO4E-Python yet! We want to use th BO Avis to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)
Port our own (Hochfrequenz) COMponent Lastprofil to Python.
Add tests (to the python implementation) as usual
Put focus on a well documented data model (docstrings) Ask for help if necessary.
If the CI passes let someone from the Hochfrequenz team review it
Do not merge it to bo4e/BO4E-Python yet! We want to use the COM Lastprofil to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)
Hi there!
Am I the only one who would appreciate the models to implement some kine of model validation options?
Stumbled upon IValidatableObject - wouldn't it be nice to have that?
I stumbled upon an issues in our system where a Marktlokation contained a Messlokation with a different Sparte than the Marktlokation itself. Such logical restrictions could easily be enforced with such an universal validation mechanis as provided with the IValidatableObject interface.
In an ideal world, the methods for setting/nulling/reading flags should only accept Enum-Values (bonus: only those with an Flags-Attribute).
ToDo: Make the public method generic enough to consume only enums, not strings. The internal/private methods might still use strings because, as the flags are stored in a Dictionary<string,JToken> (constraint by JSON.Net), the keys are ultimately stored as strings in the UserProperties.
The non-official Enum WertMengeArt corresponds to the official Messwertstatus except the value ANGABE_FUER_LIEFERSCHEIN is missing.
The library should incorporate the offical enum.
The current implementation of IsValid simply tries to serialize the respective BusinessObject or COMponent. While this is inherently consistent with the Newtonsoft.Json attributes there is a more .NET-Standard way to do it: By implementing IValidatableObject
We need a check, that the files in json-schema-files are in sync with the actual c# code base managed in this repository. We don't want to do manual re-generations like in #414 .
This is relevant to have our .ts package in sync: https://github.com/Hochfrequenz/bo4e-dotnet-ts-models (as of today this sync happens more or less manually: some one updates the json schemas, this triggers an update of the .ts package).
See e.g. the bo4e-python tooling (ask @lord-haffi), where the comparison happens.
The comparison shhuld be semantic, not string based.
Many properties are currently annotated with two or three JsonProperty attributes, such as JsonPropertyOrder and JsonPropertyName. These additional annotations can be removed.