Erster Entwurf bzgl XRechnung: Objekte, UnitTest.

This commit is contained in:
2024-12-10 13:59:43 +01:00
parent b03437ffa6
commit d5697cfd91
34 changed files with 806 additions and 137 deletions

2
.gitignore vendored
View File

@@ -629,6 +629,8 @@ obj
/DakotaUnitTest/obj
/WohneinheitUnitTest/bin
/WohneinheitUnitTest/obj
/XRechnungUnitTest/bin
/XRechnungUnitTest/obj
/BeWoDatabaseTerminator/BeWoDatabaseTerminator/bin/Debug
/BeWoDatabaseTerminator/BeWoDatabaseTerminator/bin/Release
/ReportImp/TestLWV

View File

@@ -2066,6 +2066,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.Compact.CompactCustomerDC, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.ServiceRecordDC, System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AccountingReportRowDC>))]
@@ -2100,9 +2101,13 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppRequestDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.RequestType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferResultType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungRequest))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungResponse))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC))]
@@ -6332,6 +6337,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.Compact.CompactCustomerDC, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.ServiceRecordDC, System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AccountingReportRowDC>))]
@@ -6366,9 +6372,13 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppRequestDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.RequestType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferResultType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungRequest))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungResponse))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC))]
@@ -9741,6 +9751,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/StorniereInvoiceBasesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void StorniereInvoiceBases(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> invoices);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetXRechnung", ReplyAction="http://tempuri.org/IAccountingService/GetXRechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetXRechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungResponse GetXRechnung(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungRequest req);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/GetGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC GetGkvAbrechnung(long oid);
@@ -9968,6 +9982,11 @@ namespace BeWo.ServiceProxy
base.Channel.StorniereInvoiceBases(invoices);
}
public BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungResponse GetXRechnung(BS.Shared.DataContracts.Invoicing.XRechnung.XRechnungRequest req)
{
return base.Channel.GetXRechnung(req);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC GetGkvAbrechnung(long oid)
{
return base.Channel.GetGkvAbrechnung(oid);

View File

@@ -43,6 +43,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Translation", "Translation"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TranslationUnitTest", "TranslationUnitTest\TranslationUnitTest.csproj", "{83C43FEC-233D-49EF-BD23-BF842A3EBDF5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Invoicing", "Invoicing", "{67C70649-9837-49F3-982A-993DBD5A7AD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XRechnungUnitTest", "XRechnungUnitTest\XRechnungUnitTest.csproj", "{6CED1002-FFB1-46AD-97C7-583BA11208F3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -189,6 +193,18 @@ Global
{83C43FEC-233D-49EF-BD23-BF842A3EBDF5}.Release|Any CPU.Build.0 = Release|Any CPU
{83C43FEC-233D-49EF-BD23-BF842A3EBDF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{83C43FEC-233D-49EF-BD23-BF842A3EBDF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|.NET.ActiveCfg = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|.NET.Build.0 = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|.NET.ActiveCfg = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|.NET.Build.0 = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|Any CPU.Build.0 = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{6CED1002-FFB1-46AD-97C7-583BA11208F3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -207,6 +223,8 @@ Global
{7630915F-DFE4-45A4-A7B1-B6D19B0126C1} = {2F7893AD-34FC-40A2-838A-3D2D8596E9AC}
{B331128C-7E9F-4BDC-B509-A8DAE1B94E5C} = {CCD6B644-49E7-4A11-BD8F-607088A4AC83}
{83C43FEC-233D-49EF-BD23-BF842A3EBDF5} = {B331128C-7E9F-4BDC-B509-A8DAE1B94E5C}
{67C70649-9837-49F3-982A-993DBD5A7AD3} = {CCD6B644-49E7-4A11-BD8F-607088A4AC83}
{6CED1002-FFB1-46AD-97C7-583BA11208F3} = {67C70649-9837-49F3-982A-993DBD5A7AD3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5352BE53-F2FD-442F-85A8-4157599AA153}

View File

@@ -392,6 +392,16 @@
<Compile Include="LoggedInUserOperationContextExt.cs" />
<EmbeddedResource Include="Mappings\Bargeldtransaktionshistory.hbm.xml" />
<Compile Include="Models\AddressInformation.cs" />
<Compile Include="Models\XRechnung\XRBuyerBankAccount.cs" />
<Compile Include="Models\XRechnung\XRechnung.cs" />
<Compile Include="Models\XRechnung\XRSellerBankAccount.cs" />
<Compile Include="Models\XRechnung\XRSellerContact.cs" />
<Compile Include="Models\XRechnung\XRBuyer.cs" />
<Compile Include="Models\XRechnung\XRInvoice.cs" />
<Compile Include="Models\XRechnung\XRInvoicePayment.cs" />
<Compile Include="Models\XRechnung\XRInvoicePeriod.cs" />
<Compile Include="Models\XRechnung\XRPosition.cs" />
<Compile Include="Models\XRechnung\XRSeller.cs" />
<Compile Include="MultitenancyOperationContextExt.cs" />
<Compile Include="Security\BCrypt.cs" />
<Compile Include="Security\BeWoToolUserCollection.cs" />

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRBuyer
{
public string Name { get; set; }
public string ID { get; set; }
public string Street { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string EMail { get; set; }
public string CountryCode { get; set; }
public string Reference { get; set; }
public XRBuyerBankAccount BankAccount { get; set; }
public XRBuyer()
{
BankAccount = new XRBuyerBankAccount();
}
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRBuyerBankAccount
{
public string IBAN { get; set; }
public string BIC { get; set; }
public string Owner { get; set; }
public string MandateID { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRInvoice
{
public string Type { get; set; }
public string Number { get; set; }
public string Date { get; set; }
public string Currency { get; set; }
public string Notice { get; set; }
public XRInvoicePeriod Peroid { get; set; }
public XRInvoicePayment Payment { get; set; }
public XRInvoice()
{
Peroid = new XRInvoicePeriod();
Payment = new XRInvoicePayment();
}
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRInvoicePayment
{
public string Type { get; set; }
public string Term { get; set; }
public string DueDate { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRInvoicePeriod
{
public string Start { get; set; }
public string End { get; set; }
public string Description { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRPosition
{
public string Quantity { get; set; }
public string QuantityType { get; set; }
public string Text { get; set; }
public string Net { get; set; }
public string NetTotal { get; set; }
public string Tax { get; set; }
public string TaxSum { get; set; }
public string TaxType { get; set; }
}
}

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRSeller
{
public string Name { get; set; }
public string ID { get; set; }
public string TaxID { get; set; }
public string VatID { get; set; }
public string Street { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string EMail { get; set; }
public string CountryCode { get; set; }
public XRSellerContact Contact { get; set; }
public XRSellerBankAccount BankAccount { get; set; }
public XRSeller()
{
Contact = new XRSellerContact();
BankAccount = new XRSellerBankAccount();
}
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRSellerBankAccount
{
public string IBAN { get; set; }
public string BIC { get; set; }
public string Owner { get; set; }
public string Reference { get; set; }
public string ReferenceID { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRSellerContact
{
public string Name { get; set; }
public string Department { get; set; }
public string Phone { get; set; }
public string EMail { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Models.XRechnung
{
public class XRechnung
{
public XRInvoice Invoice { get; set; }
public XRSeller Seller { get; set; }
public XRBuyer Buyer { get; set; }
public List<XRPosition> Position { get; set; }
public XRechnung()
{
Invoice = new XRInvoice();
Seller = new XRSeller();
Buyer = new XRBuyer();
Position = new List<XRPosition>();
}
//public static XRechnung GetExample()
//{
// var xrec = new XRechnung();
// xrec.Invoice.Type = "380";
// xrec.Invoice.Number = "BWP28418";
// xrec.Invoice.Date = "20141002";
// xrec.Invoice.Currency = "EUR";
// xrec.Invoice.Notice = "Rechnung gemäß Bestellung vom 01.03.2018.";
//}
}
}

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile>
<UseIISExpress>true</UseIISExpress>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress>false</Use64BitIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
@@ -12,5 +12,29 @@
<UseGlobalApplicationHostFile />
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<ProjectExtensions />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<StartPageUrl>
</StartPageUrl>
<StartAction>CurrentPage</StartAction>
<AspNetDebugging>True</AspNetDebugging>
<SilverlightDebugging>False</SilverlightDebugging>
<NativeDebugging>False</NativeDebugging>
<SQLDebugging>False</SQLDebugging>
<ExternalProgram>
</ExternalProgram>
<StartExternalURL>
</StartExternalURL>
<StartCmdLineArguments>
</StartCmdLineArguments>
<StartWorkingDirectory>
</StartWorkingDirectory>
<EnableENC>True</EnableENC>
<AlwaysStartWebServerOnDebug>False</AlwaysStartWebServerOnDebug>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@@ -6,6 +6,7 @@ using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Invoicing.XRechnung;
using BS.Shared.DataContracts.Reports;
namespace BeWo.Service.ServiceContracts
@@ -141,36 +142,14 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
void StorniereInvoiceBases(List<InvoiceBaseDC> invoices);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
GkvAbrechnungDC GetGkvAbrechnung(long oid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<GkvAbrechnungDC> GetAllGkvAbrechnungen();
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<GkvAbrechnungDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(GkvAbrechnungCreateRequestDC request);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
GkvAbrechnungDC UpdateGkvAbrechnung(GkvAbrechnungDC abrechnung);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void DeleteGkvAbrechnung(GkvAbrechnungDC abrechnung);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
GkvAbrechnungSendResponseDC SendNewGkvAbrechnung(GkvAbrechnungSendRequestDC req);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
GkvAbrechnungGetIKResponseDC SendGetIKRequest(GkvAbrechnungGetIKRequestDC req);
[FaultContract(typeof(BeWoFault))] [OperationContract] XRechnungResponse GetXRechnung(XRechnungRequest req);
[FaultContract(typeof(BeWoFault))] [OperationContract] GkvAbrechnungDC GetGkvAbrechnung(long oid);
[FaultContract(typeof(BeWoFault))] [OperationContract] List<GkvAbrechnungDC> GetAllGkvAbrechnungen();
[FaultContract(typeof(BeWoFault))] [OperationContract] List<GkvAbrechnungDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter);
[FaultContract(typeof(BeWoFault))] [OperationContract] GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(GkvAbrechnungCreateRequestDC request);
[FaultContract(typeof(BeWoFault))] [OperationContract] GkvAbrechnungDC UpdateGkvAbrechnung(GkvAbrechnungDC abrechnung);
[FaultContract(typeof(BeWoFault))] [OperationContract] void DeleteGkvAbrechnung(GkvAbrechnungDC abrechnung);
[FaultContract(typeof(BeWoFault))] [OperationContract] GkvAbrechnungSendResponseDC SendNewGkvAbrechnung(GkvAbrechnungSendRequestDC req);
[FaultContract(typeof(BeWoFault))] [OperationContract] GkvAbrechnungGetIKResponseDC SendGetIKRequest(GkvAbrechnungGetIKRequestDC req);
}
}

View File

@@ -28,6 +28,7 @@ using BS.Shared.Extensions;
using BS.Shared.Exceptions;
using BS.Shared.AppSender;
using BeWo.Data.Security;
using BS.Shared.DataContracts.Invoicing.XRechnung;
namespace BeWo.Service.ServiceImplementations
{
@@ -746,6 +747,11 @@ namespace BeWo.Service.ServiceImplementations
}
}
public XRechnungResponse GetXRechnung(XRechnungRequest req)
{
return null;
}
#region GKV
public GkvAbrechnungDC GetGkvAbrechnung(long oid)
{

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.AppSender
{
public static class OwnSoftSender
{
public static string Send(string url, string dataString)
{
string response;
using (WebClient client = new WebClient())
{
client.Encoding = Encoding.UTF8;
client.Headers.Add(HttpRequestHeader.ContentType, "application/xml");
response = client.UploadString(url, "POST", dataString);
}
return response;
}
}
}

View File

@@ -11,7 +11,7 @@ namespace BS.Shared.DataContracts
/// Kann per RequestSender gesendet werden und als ResponseDC empfangen wird.
/// </summary>
[DataContract]
public abstract class AppRequestDC : IDataContract
public abstract class AppRequestDC
{
public AppRequestDC(RequestType type)
{

View File

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace BS.Shared.DataContracts
{
[DataContract]
public abstract class AppResponseDC : IDataContract
public abstract class AppResponseDC
{
[DataMember] public bool Success { get; set; }
[DataMember] public string Message { get; set; }

View File

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace BS.Shared.DataContracts.GkvAbrechnung
{
[DataContract]
public class GkvRequestDC : AppRequestDC
public class GkvRequestDC : AppRequestDC, IDataContract
{
public GkvRequestDC() : base(RequestType.Default) { }

View File

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace BS.Shared.DataContracts.GkvAbrechnung
{
[DataContract]
public class GkvResponseDC : AppResponseDC
public class GkvResponseDC : AppResponseDC, IDataContract
{
public GkvResponseDC() : base(false) { }
public GkvResponseDC(bool success) : base(success) { }

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Invoicing.XRechnung
{
public class XRechnungRequest : OwnSoftRequest
{
public string Data { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Invoicing.XRechnung
{
public class XRechnungResponse : OwnSoftResponse
{
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts
{
public class OwnSoftRequest
{
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts
{
public class OwnSoftResponse
{
}
}

View File

@@ -133,6 +133,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AppSender\GkvSender.cs" />
<Compile Include="AppSender\OwnSoftSender.cs" />
<Compile Include="BeWoEntityEnums.cs" />
<Compile Include="Core\AppSettingReader.cs" />
<Compile Include="Core\ComplexWohnheimbuchungsRelationHelper.cs" />
@@ -190,6 +191,10 @@
<Compile Include="DataContracts\GkvAbrechnung\GkvServerGetStatusResponseDC.cs" />
<Compile Include="DataContracts\GkvAbrechnung\GkvClientResultRequestDC.cs" />
<Compile Include="DataContracts\Invoicing\BankAccountDC.cs" />
<Compile Include="DataContracts\Invoicing\XRechnung\XRechnungRequest.cs" />
<Compile Include="DataContracts\Invoicing\XRechnung\XRechnungResponse.cs" />
<Compile Include="DataContracts\OwnSoftRequest.cs" />
<Compile Include="DataContracts\OwnSoftResponse.cs" />
<Compile Include="DataContracts\Wohnhilfe\CustomerWohnhilfeDC.cs" />
<Compile Include="DataContracts\ImageDC.cs" />
<Compile Include="DataContracts\Wohnhilfe\CustomerWohnhilfeBereichBundDC.cs" />
@@ -535,6 +540,7 @@
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("XRechnung")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("XRechnung")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("2ac73051-954e-4516-b7a9-79f5ea35d12a")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>2ac73051-954e-4516-b7a9-79f5ea35d12a</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>XRechnung</RootNamespace>
<AssemblyName>XRechnung</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System"/>
<Reference Include="System.Core"/>
<Reference Include="System.Xml.Linq"/>
<Reference Include="System.Data.DataSetExtensions"/>
<Reference Include="Microsoft.CSharp"/>
<Reference Include="System.Data"/>
<Reference Include="System.Net.Http"/>
<Reference Include="System.Xml"/>
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,20 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("XRechnungUnitTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("XRechnungUnitTest")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("6ced1002-ffb1-46ad-97c7-583ba11208f3")]
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,32 @@
using BeWo.Data.Models.XRechnung;
using BS.Shared.AppSender;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using System;
using System.IO;
namespace XRechnungUnitTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void JsonConvertTest()
{
var json = File.ReadAllText("invoicetest.json");
var xr = JsonConvert.DeserializeObject<XRechnung>(json);
var txt = JsonConvert.SerializeObject(xr);
}
[TestMethod]
public void SendTest()
{
var url = "https://test2.evplaner.de/xrg/create";
var json = File.ReadAllText("invoicetest.json");
var response = OwnSoftSender.Send(url, json);
}
}
}

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6CED1002-FFB1-46AD-97C7-583BA11208F3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>XRechnungUnitTest</RootNamespace>
<AssemblyName>XRechnungUnitTest</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="UnitTest1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="invoicetest.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj">
<Project>{b0d73e3d-4ae7-4024-93a6-db1f46d7ccee}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets'))" />
</Target>
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" />
</Project>

View File

@@ -0,0 +1,81 @@
{
"Invoice": {
"Type": "380",
"Number": "BWP28418",
"Date": "20141002",
"Currency": "EUR",
"Notice": "Rechnung gem\u00e4\u00df Bestellung vom 01.03.2018.",
"Period": {
"Start": "20140101",
"End": "20140130",
"Description": "Leistungszeitraum xx bis yy"
},
"Payment": {
"Type": 58,
"Term": "Zahlbar innerhalb 14 Tagen netto",
"DueDate": "20140101"
}
},
"Seller": {
"Name": "Muster GmbH",
"ID": null,
"TaxID": null,
"VatID": "DE123456789",
"Street": "Musterstr. 1-3",
"ZipCode": "30674",
"City": "Frankfurt",
"EMail": "rechnungen@musterfirma.de",
"CountryCode": "DE",
"Contact": {
"Name": "Peter Musterfrau",
"Department": "Buchhaltung",
"Phone": "+49211171717",
"EMail": "pm@muster.de"
},
"BankAccount": {
"IBAN": "DE38370501980147522957",
"BIC": "SSKMDEMMXXX",
"Owner": "Muster GmbH",
"Reference": "z.B. Rechnungnummer",
"ReferenceID": "Gl\u00e4ubigerID"
}
},
"Buyer": {
"Name": "Kunde GmbH",
"ID": null,
"Street": "Stra\u00dfe & Hausnummer",
"ZipCode": "Plz",
"City": "Ort",
"EMail": "rechnungen@kunde.de",
"CountryCode": "DE",
"Reference": "PO-Nummer oder andere Referenz, die Kunde haben will",
"BankAccount": {
"IBAN": "DE38370501980147522957",
"BIC": "SSKMDEMMXXX",
"Owner": "Muster GmbH",
"MandateID": "Mandatsreferenznummer"
}
},
"Position": [
{
"Quantity": 2,
"QuantityType": "H87",
"Text": "Artikel 1",
"Net": 200,
"NetTotal": 400,
"Tax": 19,
"TaxSum": 76,
"TaxType": "S"
},
{
"Quantity": 4,
"QuantityType": "H87",
"Text": "Artikel 2",
"Net": 10,
"NetTotal": 40,
"Tax": 7,
"TaxSum": 2.8,
"TaxType": "S"
}
]
}

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MSTest.TestAdapter" version="2.1.2" targetFramework="net472" />
<package id="MSTest.TestFramework" version="2.1.2" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
</packages>