Skip to content

Commit 05abfd3

Browse files
Adding Bankverbindung and Erreichbarkeit COM objects (#466)
* 🔧 Update tax-related properties and add bank details * adding Erreichbarkeit as COM * Erreichbarkeit * format * adding proto messages * remove BOM * Land in proto * proto index starts from 3 * fix indexes * fixing JsonPropertyOrder numbers * Update BO4E/COM/Bankverbindung.cs Co-authored-by: konstantin <[email protected]> * file-scoped namespaces * improve docstrings * Using TimeOnly and new COM class `Zeitfenster` * adding JsonProperties * using Zeitfenster in proto * Update BO4E/BO/Zeitfenster.cs Co-authored-by: konstantin <[email protected]> * Update BO4E/BO/Zeitfenster.cs Co-authored-by: konstantin <[email protected]> * Update BO4E/BO/Zeitfenster.cs Co-authored-by: konstantin <[email protected]> * using ParseExact * move it to COM folder * adding TestZeitfenster * namespace ebene * remove unnecessary properties from Bankverbindung * generated schemas --------- Co-authored-by: konstantin <[email protected]>
1 parent c9038e1 commit 05abfd3

34 files changed

+3573
-111
lines changed

BO4E/BO/Geschaeftspartner.cs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ public class Geschaeftspartner : BusinessObject
113113
[ProtoMember(12)]
114114
public List<Kontaktart>? Kontaktweg { get; set; }
115115

116-
/// <summary>Die Steuer-ID des Geschäftspartners. Beispiel: DE 813281825</summary>
116+
/// <summary>Die Umsatzsteuer-ID des Geschäftspartners. Beispiel: DE 813281825</summary>
117+
/// <remarks>VA Umsatzsteuernummer</remarks>
117118
[JsonProperty(Required = Required.Default, Order = 15, PropertyName = "umsatzsteuerId")]
118119
[JsonPropertyOrder(15)]
119120
[JsonPropertyName("umsatzsteuerId")]
@@ -183,4 +184,30 @@ public class Geschaeftspartner : BusinessObject
183184
[NonOfficial(NonOfficialCategory.CUSTOMER_REQUIREMENTS)]
184185
[ProtoMember(20)]
185186
public GrundDerPrivilegierungNachEnFG? GrundDerPrivilegierungNachEnFG { get; set; }
187+
188+
/// <summary>Bankverbindung</summary>
189+
[JsonProperty(Required = Required.Default, Order = 23, PropertyName = "bankverbindung")]
190+
[JsonPropertyName("bankverbindung")]
191+
[JsonPropertyOrder(23)]
192+
[ProtoMember(21)]
193+
[DataCategory(DataCategory.FINANCE)]
194+
[NonOfficial(NonOfficialCategory.CUSTOMER_REQUIREMENTS)]
195+
public Bankverbindung? Bankverbindung { get; set; }
196+
197+
/// <summary>Die Steuernummer-ID des Geschäftspartners. Beispiel: 30120345678</summary>
198+
/// <remarks>FC Steuernummer</remarks>
199+
[JsonProperty(Required = Required.Default, Order = 24, PropertyName = "steuernummer")]
200+
[JsonPropertyOrder(24)]
201+
[JsonPropertyName("steuernummer")]
202+
[ProtoMember(22)]
203+
[DataCategory(DataCategory.LEGAL)]
204+
public string? Steuernummer { get; set; }
205+
206+
/// <summary>Die Erreichbarkeit eines Unternehmens an Werktagen.</summary>
207+
[JsonProperty(Required = Required.Default, Order = 25, PropertyName = "erreichbarkeit")]
208+
[JsonPropertyOrder(25)]
209+
[JsonPropertyName("erreichbarkeit")]
210+
[ProtoMember(23)]
211+
[DataCategory(DataCategory.LEGAL)]
212+
public Erreichbarkeit? Erreichbarkeit { get; set; }
186213
}

BO4E/BO4E.csproj

Lines changed: 98 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,98 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
2-
<PropertyGroup>
3-
<TargetFramework>netstandard2.0</TargetFramework>
4-
<RootNamespace>BO4E</RootNamespace>
5-
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6-
<PackageId>Hochfrequenz.BO4Enet</PackageId>
7-
<Authors>Hochfrequenz Untenehmensberatung GmbH</Authors>
8-
<Product>BO4E .net core bindings</Product>
9-
<RepositoryUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</RepositoryUrl>
10-
11-
<VersionPrefix>0.2.50</VersionPrefix>
12-
<AssemblyName>BO4Enet</AssemblyName>
13-
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
14-
<PublishRepositoryUrl>true</PublishRepositoryUrl>
15-
16-
<!-- Optional: Embed source files that are not tracked by the source control manager to the PDB -->
17-
<EmbedUntrackedSources>true</EmbedUntrackedSources>
18-
19-
<!-- Optional: Include PDB in the built .nupkg -->
20-
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
21-
<PackageProjectUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</PackageProjectUrl>
22-
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
23-
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
24-
25-
<RepositoryType>git</RepositoryType>
26-
<IncludeSymbols>true</IncludeSymbols>
27-
<DebugType>Embedded</DebugType>
28-
<EmbedAllSources>True</EmbedAllSources>
29-
<LangVersion>latest</LangVersion>
30-
<DocumentationFile>BO4Enet.xml</DocumentationFile>
31-
<Nullable>annotations</Nullable>
32-
</PropertyGroup>
33-
34-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
35-
<Optimize>false</Optimize>
36-
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
37-
</PropertyGroup>
38-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
39-
<DefineConstants>DEBUG</DefineConstants>
40-
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
41-
</PropertyGroup>
42-
43-
<ItemGroup>
44-
<Compile Remove="BO\NewFolder\**" />
45-
<Compile Remove="json-schema-files\**" />
46-
<EmbeddedResource Remove="BO\NewFolder\**" />
47-
<EmbeddedResource Remove="json-schema-files\**" />
48-
<None Remove="BO\NewFolder\**" />
49-
<None Remove="json-schema-files\**" />
50-
<None Include="..\LICENSE.txt">
51-
<Pack>True</Pack>
52-
<PackagePath />
53-
</None>
54-
</ItemGroup>
55-
56-
<ItemGroup>
57-
<None Remove="CentralEuropeStandardTime.json" />
58-
<None Remove="protobuf-files\BO4E.BO.Angebot.proto" />
59-
<None Remove="protobuf-files\BO4E.BO.Ansprechpartner.proto" />
60-
<None Remove="protobuf-files\BO4E.BO.Benachrichtigung.proto" />
61-
<None Remove="protobuf-files\BO4E.BO.Energiemenge.proto" />
62-
<None Remove="protobuf-files\BO4E.BO.Geschaeftspartner.proto" />
63-
<None Remove="protobuf-files\BO4E.BO.Kosten.proto" />
64-
<None Remove="protobuf-files\BO4E.BO.Marktlokation.proto" />
65-
<None Remove="protobuf-files\BO4E.BO.Messlokation.proto" />
66-
<None Remove="protobuf-files\BO4E.BO.Preisblatt.proto" />
67-
<None Remove="protobuf-files\BO4E.BO.Rechnung.proto" />
68-
<None Remove="protobuf-files\BO4E.BO.Region.proto" />
69-
<None Remove="protobuf-files\BO4E.BO.Vertrag.proto" />
70-
<None Remove="protobuf-files\BO4E.BO.Zaehler.proto" />
71-
</ItemGroup>
72-
73-
<ItemGroup>
74-
<EmbeddedResource Include="meta\CentralEuropeStandardTime.json">
75-
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
76-
</EmbeddedResource>
77-
</ItemGroup>
78-
79-
<ItemGroup>
80-
<PackageReference Include="Enums.NET" Version="5.0.0" />
81-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
82-
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
83-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
84-
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
85-
<PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />
86-
<PackageReference Include="Polyfill" Version="6.1.1">
87-
<PrivateAssets>all</PrivateAssets>
88-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
89-
</PackageReference>
90-
<PackageReference Include="protobuf-net" Version="3.2.30" />
91-
<PackageReference Include="SourceLink.Copy.PdbFiles" Version="2.8.3" PrivateAssets="All" />
92-
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
93-
<PackageReference Include="System.Text.Encodings.Web" Version="8.0.0" />
94-
<PackageReference Include="System.Text.Json" Version="8.0.4" />
95-
</ItemGroup>
96-
97-
</Project>
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>netstandard2.0</TargetFramework>
4+
<RootNamespace>BO4E</RootNamespace>
5+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6+
<PackageId>Hochfrequenz.BO4Enet</PackageId>
7+
<Authors>Hochfrequenz Untenehmensberatung GmbH</Authors>
8+
<Product>BO4E .net core bindings</Product>
9+
<RepositoryUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</RepositoryUrl>
10+
11+
<VersionPrefix>0.2.50</VersionPrefix>
12+
<AssemblyName>BO4Enet</AssemblyName>
13+
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
14+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
15+
16+
<!-- Optional: Embed source files that are not tracked by the source control manager to the PDB -->
17+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
18+
19+
<!-- Optional: Include PDB in the built .nupkg -->
20+
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
21+
<PackageProjectUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</PackageProjectUrl>
22+
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
23+
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
24+
25+
<RepositoryType>git</RepositoryType>
26+
<IncludeSymbols>true</IncludeSymbols>
27+
<DebugType>Embedded</DebugType>
28+
<EmbedAllSources>True</EmbedAllSources>
29+
<LangVersion>latest</LangVersion>
30+
<DocumentationFile>BO4Enet.xml</DocumentationFile>
31+
<Nullable>annotations</Nullable>
32+
</PropertyGroup>
33+
34+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
35+
<Optimize>false</Optimize>
36+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
37+
</PropertyGroup>
38+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
39+
<DefineConstants>DEBUG</DefineConstants>
40+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
41+
</PropertyGroup>
42+
43+
<ItemGroup>
44+
<Compile Remove="BO\NewFolder\**" />
45+
<Compile Remove="json-schema-files\**" />
46+
<EmbeddedResource Remove="BO\NewFolder\**" />
47+
<EmbeddedResource Remove="json-schema-files\**" />
48+
<None Remove="BO\NewFolder\**" />
49+
<None Remove="json-schema-files\**" />
50+
<None Include="..\LICENSE.txt">
51+
<Pack>True</Pack>
52+
<PackagePath />
53+
</None>
54+
</ItemGroup>
55+
56+
<ItemGroup>
57+
<None Remove="CentralEuropeStandardTime.json" />
58+
<None Remove="protobuf-files\BO4E.BO.Angebot.proto" />
59+
<None Remove="protobuf-files\BO4E.BO.Ansprechpartner.proto" />
60+
<None Remove="protobuf-files\BO4E.BO.Benachrichtigung.proto" />
61+
<None Remove="protobuf-files\BO4E.BO.Energiemenge.proto" />
62+
<None Remove="protobuf-files\BO4E.BO.Geschaeftspartner.proto" />
63+
<None Remove="protobuf-files\BO4E.BO.Kosten.proto" />
64+
<None Remove="protobuf-files\BO4E.BO.Marktlokation.proto" />
65+
<None Remove="protobuf-files\BO4E.BO.Messlokation.proto" />
66+
<None Remove="protobuf-files\BO4E.BO.Preisblatt.proto" />
67+
<None Remove="protobuf-files\BO4E.BO.Rechnung.proto" />
68+
<None Remove="protobuf-files\BO4E.BO.Region.proto" />
69+
<None Remove="protobuf-files\BO4E.BO.Vertrag.proto" />
70+
<None Remove="protobuf-files\BO4E.BO.Zaehler.proto" />
71+
</ItemGroup>
72+
73+
<ItemGroup>
74+
<EmbeddedResource Include="meta\CentralEuropeStandardTime.json">
75+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
76+
</EmbeddedResource>
77+
</ItemGroup>
78+
79+
<ItemGroup>
80+
<PackageReference Include="Enums.NET" Version="5.0.0" />
81+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
82+
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
83+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
84+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
85+
<PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />
86+
<PackageReference Include="Polyfill" Version="6.1.1">
87+
<PrivateAssets>all</PrivateAssets>
88+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
89+
</PackageReference>
90+
<PackageReference Include="Portable.System.DateTimeOnly" Version="8.0.1" />
91+
<PackageReference Include="protobuf-net" Version="3.2.30" />
92+
<PackageReference Include="SourceLink.Copy.PdbFiles" Version="2.8.3" PrivateAssets="All" />
93+
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
94+
<PackageReference Include="System.Text.Encodings.Web" Version="8.0.0" />
95+
<PackageReference Include="System.Text.Json" Version="8.0.4" />
96+
</ItemGroup>
97+
98+
</Project>

BO4E/COM/Bankverbindung.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System.Text.Json.Serialization;
2+
using BO4E.ENUM;
3+
using BO4E.meta;
4+
using Newtonsoft.Json;
5+
using ProtoBuf;
6+
7+
namespace BO4E.COM;
8+
9+
/// <summary>Enthält eine Bankverbindung</summary>
10+
[ProtoContract]
11+
public class Bankverbindung : COM
12+
{
13+
/// <summary>IBAN</summary>
14+
[DataCategory(DataCategory.FINANCE)]
15+
[JsonProperty(PropertyName = "iban", Required = Required.Default, Order = 3)]
16+
[JsonPropertyName("iban")]
17+
[ProtoMember(3)]
18+
[JsonPropertyOrder(3)]
19+
public string? IBAN { get; set; }
20+
21+
/// <summary>Der kontoinhaber</summary>
22+
[DataCategory(DataCategory.FINANCE)]
23+
[JsonProperty(PropertyName = "kontoinhaber", Required = Required.Default, Order = 4)]
24+
[JsonPropertyName("kontoinhaber")]
25+
[ProtoMember(4)]
26+
[JsonPropertyOrder(4)]
27+
public string? Kontoinhaber { get; set; }
28+
29+
/// <summary>Die Bankkennung, BIC</summary>
30+
[DataCategory(DataCategory.FINANCE)]
31+
[JsonProperty(PropertyName = "bankkennung", Required = Required.Default, Order = 5)]
32+
[JsonPropertyName("bankkennung")]
33+
[ProtoMember(5)]
34+
[JsonPropertyOrder(5)]
35+
public string? Bankkennung { get; set; }
36+
37+
/// <summary>Der Bankname</summary>
38+
[DataCategory(DataCategory.FINANCE)]
39+
[JsonProperty(PropertyName = "bankname", Required = Required.Default, Order = 6)]
40+
[JsonPropertyName("bankname")]
41+
[ProtoMember(6)]
42+
[JsonPropertyOrder(6)]
43+
public string? Bankname { get; set; }
44+
}

BO4E/COM/Erreichbarkeit.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using System.Text.Json.Serialization;
2+
3+
using Newtonsoft.Json;
4+
5+
using ProtoBuf;
6+
7+
namespace BO4E.COM;
8+
9+
/// <summary>
10+
/// Die Erreichbarkeit eines Unternehmens an Werktagen.
11+
/// </summary>
12+
[ProtoContract]
13+
public class Erreichbarkeit : COM
14+
{
15+
/// <summary>Erreichbarkeit am Montag</summary>
16+
[JsonProperty(PropertyName = "montagErreichbarkeit", Required = Required.Default, Order = 3)]
17+
[JsonPropertyName("montagErreichbarkeit")]
18+
[ProtoMember(3)]
19+
[JsonPropertyOrder(3)]
20+
public Zeitfenster? MontagErreichbarkeit { get; set; }
21+
22+
/// <summary>Erreichbarkeit am Dienstag</summary>
23+
[JsonProperty(PropertyName = "dienstagErreichbarkeit", Required = Required.Default, Order = 4)]
24+
[JsonPropertyName("dienstagErreichbarkeit")]
25+
[ProtoMember(4)]
26+
[JsonPropertyOrder(4)]
27+
public Zeitfenster? DienstagErreichbarkeit { get; set; }
28+
29+
/// <summary>Erreichbarkeit am Mittwoch</summary>
30+
[JsonProperty(PropertyName = "mittwochErreichbarkeit", Required = Required.Default, Order = 5)]
31+
[JsonPropertyName("mittwochErreichbarkeit")]
32+
[ProtoMember(5)]
33+
[JsonPropertyOrder(5)]
34+
public Zeitfenster? MittwochErreichbarkeit { get; set; }
35+
36+
/// <summary>Erreichbarkeit am Donnerstag</summary>
37+
[JsonProperty(PropertyName = "donnerstagErreichbarkeit", Required = Required.Default, Order = 6)]
38+
[JsonPropertyName("donnerstagErreichbarkeit")]
39+
[ProtoMember(6)]
40+
[JsonPropertyOrder(6)]
41+
public Zeitfenster? DonnerstagErreichbarkeit { get; set; }
42+
43+
/// <summary>Erreichbarkeit am Freitag</summary>
44+
[JsonProperty(PropertyName = "freitagErreichbarkeit", Required = Required.Default, Order = 7)]
45+
[JsonPropertyName("freitagErreichbarkeit")]
46+
[ProtoMember(7)]
47+
[JsonPropertyOrder(7)]
48+
public Zeitfenster? FreitagErreichbarkeit { get; set; }
49+
50+
/// <summary>Mittagspause (Ausschluss der Erreichbarkeit)</summary>
51+
[JsonProperty(PropertyName = "mittagspause", Required = Required.Default, Order = 8)]
52+
[JsonPropertyName("mittagspause")]
53+
[ProtoMember(8)]
54+
[JsonPropertyOrder(8)]
55+
public Zeitfenster? Mittagspause { get; set; }
56+
}

0 commit comments

Comments
 (0)