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

Adding Bankverbindung and Erreichbarkeit COM objects #466

Merged
merged 26 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f6a3a9a
🔧 Update tax-related properties and add bank details
hamidhajiparvaneh Aug 5, 2024
26364aa
adding Erreichbarkeit as COM
hamidhajiparvaneh Aug 5, 2024
8c9f66b
Erreichbarkeit
hamidhajiparvaneh Aug 5, 2024
46b7f16
format
hamidhajiparvaneh Aug 5, 2024
9f2171e
adding proto messages
hamidhajiparvaneh Aug 5, 2024
f6facbd
remove BOM
hamidhajiparvaneh Aug 5, 2024
af286eb
Land in proto
hamidhajiparvaneh Aug 5, 2024
266e862
proto index starts from 3
hamidhajiparvaneh Aug 5, 2024
daae52f
fix indexes
hamidhajiparvaneh Aug 5, 2024
9e56565
fixing JsonPropertyOrder numbers
hamidhajiparvaneh Aug 5, 2024
07506ec
Update BO4E/COM/Bankverbindung.cs
hamidhajiparvaneh Aug 5, 2024
d25466c
file-scoped namespaces
hamidhajiparvaneh Aug 5, 2024
1fd5e90
Merge branch 'PARTIN_changes' of https://github.com/Hochfrequenz/BO4E…
hamidhajiparvaneh Aug 5, 2024
9cbb0a8
improve docstrings
hamidhajiparvaneh Aug 5, 2024
d94564f
Using TimeOnly and new COM class `Zeitfenster`
hamidhajiparvaneh Aug 6, 2024
f2eeb4b
adding JsonProperties
hamidhajiparvaneh Aug 6, 2024
7fbf1c9
using Zeitfenster in proto
hamidhajiparvaneh Aug 6, 2024
7294d39
Update BO4E/BO/Zeitfenster.cs
hamidhajiparvaneh Aug 6, 2024
168aa26
Update BO4E/BO/Zeitfenster.cs
hamidhajiparvaneh Aug 6, 2024
c1ff1b7
Update BO4E/BO/Zeitfenster.cs
hamidhajiparvaneh Aug 6, 2024
c530cb6
using ParseExact
hamidhajiparvaneh Aug 6, 2024
93e143d
move it to COM folder
hamidhajiparvaneh Aug 6, 2024
663080a
adding TestZeitfenster
hamidhajiparvaneh Aug 6, 2024
69889f9
namespace ebene
hamidhajiparvaneh Aug 6, 2024
4727a19
remove unnecessary properties from Bankverbindung
hamidhajiparvaneh Aug 6, 2024
98e74fb
generated schemas
hamidhajiparvaneh Aug 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion BO4E/BO/Geschaeftspartner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ public class Geschaeftspartner : BusinessObject
[ProtoMember(12)]
public List<Kontaktart>? Kontaktweg { get; set; }

/// <summary>Die Steuer-ID des Geschäftspartners. Beispiel: DE 813281825</summary>
/// <summary>Die Umsatzsteuer-ID des Geschäftspartners. Beispiel: DE 813281825</summary>
/// <remarks>VA Umsatzsteuernummer</remarks>
[JsonProperty(Required = Required.Default, Order = 15, PropertyName = "umsatzsteuerId")]
[JsonPropertyOrder(15)]
[JsonPropertyName("umsatzsteuerId")]
Expand Down Expand Up @@ -183,4 +184,30 @@ public class Geschaeftspartner : BusinessObject
[NonOfficial(NonOfficialCategory.CUSTOMER_REQUIREMENTS)]
[ProtoMember(20)]
public GrundDerPrivilegierungNachEnFG? GrundDerPrivilegierungNachEnFG { get; set; }

/// <summary>Bankverbindung</summary>
[JsonProperty(Required = Required.Default, Order = 23, PropertyName = "bankverbindung")]
[JsonPropertyName("bankverbindung")]
[JsonPropertyOrder(23)]
[ProtoMember(21)]
[DataCategory(DataCategory.FINANCE)]
[NonOfficial(NonOfficialCategory.CUSTOMER_REQUIREMENTS)]
public Bankverbindung? Bankverbindung { get; set; }

/// <summary>Die Steuernummer-ID des Geschäftspartners. Beispiel: 30120345678</summary>
/// <remarks>FC Steuernummer</remarks>
[JsonProperty(Required = Required.Default, Order = 24, PropertyName = "steuernummer")]
[JsonPropertyOrder(24)]
[JsonPropertyName("steuernummer")]
[ProtoMember(22)]
[DataCategory(DataCategory.LEGAL)]
public string? Steuernummer { get; set; }

/// <summary>Die Erreichbarkeit eines Unternehmens an Werktagen.</summary>
[JsonProperty(Required = Required.Default, Order = 25, PropertyName = "erreichbarkeit")]
[JsonPropertyOrder(25)]
[JsonPropertyName("erreichbarkeit")]
[ProtoMember(23)]
[DataCategory(DataCategory.LEGAL)]
public Erreichbarkeit? Erreichbarkeit { get; set; }
}
195 changes: 98 additions & 97 deletions BO4E/BO4E.csproj
Original file line number Diff line number Diff line change
@@ -1,97 +1,98 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>BO4E</RootNamespace>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>Hochfrequenz.BO4Enet</PackageId>
<Authors>Hochfrequenz Untenehmensberatung GmbH</Authors>
<Product>BO4E .net core bindings</Product>
<RepositoryUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</RepositoryUrl>

<VersionPrefix>0.2.50</VersionPrefix>
<AssemblyName>BO4Enet</AssemblyName>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PublishRepositoryUrl>true</PublishRepositoryUrl>

<!-- Optional: Embed source files that are not tracked by the source control manager to the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>

<!-- Optional: Include PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<PackageProjectUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</PackageProjectUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>

<RepositoryType>git</RepositoryType>
<IncludeSymbols>true</IncludeSymbols>
<DebugType>Embedded</DebugType>
<EmbedAllSources>True</EmbedAllSources>
<LangVersion>latest</LangVersion>
<DocumentationFile>BO4Enet.xml</DocumentationFile>
<Nullable>annotations</Nullable>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Optimize>false</Optimize>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DefineConstants>DEBUG</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<Compile Remove="BO\NewFolder\**" />
<Compile Remove="json-schema-files\**" />
<EmbeddedResource Remove="BO\NewFolder\**" />
<EmbeddedResource Remove="json-schema-files\**" />
<None Remove="BO\NewFolder\**" />
<None Remove="json-schema-files\**" />
<None Include="..\LICENSE.txt">
<Pack>True</Pack>
<PackagePath />
</None>
</ItemGroup>

<ItemGroup>
<None Remove="CentralEuropeStandardTime.json" />
<None Remove="protobuf-files\BO4E.BO.Angebot.proto" />
<None Remove="protobuf-files\BO4E.BO.Ansprechpartner.proto" />
<None Remove="protobuf-files\BO4E.BO.Benachrichtigung.proto" />
<None Remove="protobuf-files\BO4E.BO.Energiemenge.proto" />
<None Remove="protobuf-files\BO4E.BO.Geschaeftspartner.proto" />
<None Remove="protobuf-files\BO4E.BO.Kosten.proto" />
<None Remove="protobuf-files\BO4E.BO.Marktlokation.proto" />
<None Remove="protobuf-files\BO4E.BO.Messlokation.proto" />
<None Remove="protobuf-files\BO4E.BO.Preisblatt.proto" />
<None Remove="protobuf-files\BO4E.BO.Rechnung.proto" />
<None Remove="protobuf-files\BO4E.BO.Region.proto" />
<None Remove="protobuf-files\BO4E.BO.Vertrag.proto" />
<None Remove="protobuf-files\BO4E.BO.Zaehler.proto" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="meta\CentralEuropeStandardTime.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Enums.NET" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />
<PackageReference Include="Polyfill" Version="6.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="protobuf-net" Version="3.2.30" />
<PackageReference Include="SourceLink.Copy.PdbFiles" Version="2.8.3" PrivateAssets="All" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Text.Encodings.Web" Version="8.0.0" />
<PackageReference Include="System.Text.Json" Version="8.0.4" />
</ItemGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>BO4E</RootNamespace>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>Hochfrequenz.BO4Enet</PackageId>
<Authors>Hochfrequenz Untenehmensberatung GmbH</Authors>
<Product>BO4E .net core bindings</Product>
<RepositoryUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</RepositoryUrl>

<VersionPrefix>0.2.50</VersionPrefix>
<AssemblyName>BO4Enet</AssemblyName>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PublishRepositoryUrl>true</PublishRepositoryUrl>

<!-- Optional: Embed source files that are not tracked by the source control manager to the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>

<!-- Optional: Include PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<PackageProjectUrl>https://github.com/Hochfrequenz/BO4E-dotnet/</PackageProjectUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>

<RepositoryType>git</RepositoryType>
<IncludeSymbols>true</IncludeSymbols>
<DebugType>Embedded</DebugType>
<EmbedAllSources>True</EmbedAllSources>
<LangVersion>latest</LangVersion>
<DocumentationFile>BO4Enet.xml</DocumentationFile>
<Nullable>annotations</Nullable>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Optimize>false</Optimize>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DefineConstants>DEBUG</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<Compile Remove="BO\NewFolder\**" />
<Compile Remove="json-schema-files\**" />
<EmbeddedResource Remove="BO\NewFolder\**" />
<EmbeddedResource Remove="json-schema-files\**" />
<None Remove="BO\NewFolder\**" />
<None Remove="json-schema-files\**" />
<None Include="..\LICENSE.txt">
<Pack>True</Pack>
<PackagePath />
</None>
</ItemGroup>

<ItemGroup>
<None Remove="CentralEuropeStandardTime.json" />
<None Remove="protobuf-files\BO4E.BO.Angebot.proto" />
<None Remove="protobuf-files\BO4E.BO.Ansprechpartner.proto" />
<None Remove="protobuf-files\BO4E.BO.Benachrichtigung.proto" />
<None Remove="protobuf-files\BO4E.BO.Energiemenge.proto" />
<None Remove="protobuf-files\BO4E.BO.Geschaeftspartner.proto" />
<None Remove="protobuf-files\BO4E.BO.Kosten.proto" />
<None Remove="protobuf-files\BO4E.BO.Marktlokation.proto" />
<None Remove="protobuf-files\BO4E.BO.Messlokation.proto" />
<None Remove="protobuf-files\BO4E.BO.Preisblatt.proto" />
<None Remove="protobuf-files\BO4E.BO.Rechnung.proto" />
<None Remove="protobuf-files\BO4E.BO.Region.proto" />
<None Remove="protobuf-files\BO4E.BO.Vertrag.proto" />
<None Remove="protobuf-files\BO4E.BO.Zaehler.proto" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="meta\CentralEuropeStandardTime.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Enums.NET" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="4.0.1" />
<PackageReference Include="Polyfill" Version="6.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Portable.System.DateTimeOnly" Version="8.0.1" />
<PackageReference Include="protobuf-net" Version="3.2.30" />
<PackageReference Include="SourceLink.Copy.PdbFiles" Version="2.8.3" PrivateAssets="All" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Text.Encodings.Web" Version="8.0.0" />
<PackageReference Include="System.Text.Json" Version="8.0.4" />
</ItemGroup>

</Project>
44 changes: 44 additions & 0 deletions BO4E/COM/Bankverbindung.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using System.Text.Json.Serialization;
using BO4E.ENUM;
using BO4E.meta;
using Newtonsoft.Json;
using ProtoBuf;

namespace BO4E.COM;

/// <summary>Enthält eine Bankverbindung</summary>
[ProtoContract]
public class Bankverbindung : COM
{
/// <summary>IBAN</summary>
[DataCategory(DataCategory.FINANCE)]
[JsonProperty(PropertyName = "iban", Required = Required.Default, Order = 3)]
[JsonPropertyName("iban")]
[ProtoMember(3)]
[JsonPropertyOrder(3)]
public string? IBAN { get; set; }

/// <summary>Der kontoinhaber</summary>
[DataCategory(DataCategory.FINANCE)]
[JsonProperty(PropertyName = "kontoinhaber", Required = Required.Default, Order = 4)]
[JsonPropertyName("kontoinhaber")]
[ProtoMember(4)]
[JsonPropertyOrder(4)]
public string? Kontoinhaber { get; set; }

/// <summary>Die Bankkennung, BIC</summary>
[DataCategory(DataCategory.FINANCE)]
[JsonProperty(PropertyName = "bankkennung", Required = Required.Default, Order = 5)]
[JsonPropertyName("bankkennung")]
[ProtoMember(5)]
[JsonPropertyOrder(5)]
public string? Bankkennung { get; set; }
hf-fvesely marked this conversation as resolved.
Show resolved Hide resolved

/// <summary>Der Bankname</summary>
[DataCategory(DataCategory.FINANCE)]
[JsonProperty(PropertyName = "bankname", Required = Required.Default, Order = 6)]
[JsonPropertyName("bankname")]
[ProtoMember(6)]
[JsonPropertyOrder(6)]
public string? Bankname { get; set; }
}
56 changes: 56 additions & 0 deletions BO4E/COM/Erreichbarkeit.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System.Text.Json.Serialization;

using Newtonsoft.Json;

using ProtoBuf;

namespace BO4E.COM;

/// <summary>
/// Die Erreichbarkeit eines Unternehmens an Werktagen.
/// </summary>
[ProtoContract]
public class Erreichbarkeit : COM
{
hf-kklein marked this conversation as resolved.
Show resolved Hide resolved
/// <summary>Erreichbarkeit am Montag</summary>
[JsonProperty(PropertyName = "montagErreichbarkeit", Required = Required.Default, Order = 3)]
[JsonPropertyName("montagErreichbarkeit")]
[ProtoMember(3)]
[JsonPropertyOrder(3)]
public Zeitfenster? MontagErreichbarkeit { get; set; }

/// <summary>Erreichbarkeit am Dienstag</summary>
[JsonProperty(PropertyName = "dienstagErreichbarkeit", Required = Required.Default, Order = 4)]
[JsonPropertyName("dienstagErreichbarkeit")]
[ProtoMember(4)]
[JsonPropertyOrder(4)]
public Zeitfenster? DienstagErreichbarkeit { get; set; }

/// <summary>Erreichbarkeit am Mittwoch</summary>
[JsonProperty(PropertyName = "mittwochErreichbarkeit", Required = Required.Default, Order = 5)]
[JsonPropertyName("mittwochErreichbarkeit")]
[ProtoMember(5)]
[JsonPropertyOrder(5)]
public Zeitfenster? MittwochErreichbarkeit { get; set; }

/// <summary>Erreichbarkeit am Donnerstag</summary>
[JsonProperty(PropertyName = "donnerstagErreichbarkeit", Required = Required.Default, Order = 6)]
[JsonPropertyName("donnerstagErreichbarkeit")]
[ProtoMember(6)]
[JsonPropertyOrder(6)]
public Zeitfenster? DonnerstagErreichbarkeit { get; set; }

/// <summary>Erreichbarkeit am Freitag</summary>
[JsonProperty(PropertyName = "freitagErreichbarkeit", Required = Required.Default, Order = 7)]
[JsonPropertyName("freitagErreichbarkeit")]
[ProtoMember(7)]
[JsonPropertyOrder(7)]
public Zeitfenster? FreitagErreichbarkeit { get; set; }

/// <summary>Mittagspause (Ausschluss der Erreichbarkeit)</summary>
[JsonProperty(PropertyName = "mittagspause", Required = Required.Default, Order = 8)]
[JsonPropertyName("mittagspause")]
[ProtoMember(8)]
[JsonPropertyOrder(8)]
public Zeitfenster? Mittagspause { get; set; }
}
Loading
Loading