Files
BeWoPlaner/Shared/DataContracts/OrganisationDC.cs

115 lines
4.7 KiB
C#

using BS.Shared.Core;
using BS.Shared.Exceptions;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace BS.Shared.DataContracts
{
[DataContract]
public partial class OrganisationDC : IDataContract
{
// Contacts
private List<ContactDC> _ContactInformations;
private List<CostRatePeriodDC> _CostRatePeriods;
[DataMember] public string AccountNumber { get; set; }
[DataMember] public ActivationTypeId ActivationType { get; set; }
[DataMember] public string AddressLine1 { get; set; }
[DataMember] public long? AddressOid { get; set; }
[DataMember] public long? AddressVersion { get; set; }
[DataMember] public List<ArbeitszeitDC> Arbeitszeiten { get; set; }
[DataMember] public long? BankAccountOid { get; set; }
[DataMember] public long? BankAccountVersion { get; set; }
[DataMember] public string BankCode { get; set; }
[DataMember] public string BankName { get; set; }
[DataMember] public string BezDatenannahmestelle { get; set; }
[DataMember] public string Bic { get; set; }
[DataMember] public string BusinessPartnerId { get; set; }
[DataMember]
public List<ContactDC> ContactInformations
{
get { return this._ContactInformations ?? (this._ContactInformations = new List<ContactDC>()); }
set { this._ContactInformations = value; }
}
[DataMember] public long? CostBearerOid { get; set; }
[DataMember] public long? CostBearerVersion { get; set; }
[DataMember] public string CostCenter { get; set; }
[DataMember]
public List<CostRatePeriodDC> CostRatePeriods
{
get { return this._CostRatePeriods ?? (this._CostRatePeriods = new List<CostRatePeriodDC>()); }
set { this._CostRatePeriods = value; }
}
[DataMember] public string DebitorNumber { get; set; }
[DataMember] public List<FeiertagDC> Feiertage { get; set; }
[DataMember] public ValueListEntryDC Function { get; set; }
[DataMember] public bool GkvAusblenden { get; set; }
[DataMember] public AddressDC GrosskundenanschriftDatenannahmestelle { get; set; }
[DataMember] public AddressDC HausanschriftDatenannahmestelle { get; set; }
[DataMember] public string IBAN { get; set; }
[DataMember] public string IKDatenannahmestelle { get; set; }
[DataMember] public string IKKostentrager { get; set; }
[DataMember] public string IKKrankenkasse { get; set; }
[DataMember] public string InvoiceAddressLine1 { get; set; }
[DataMember] public long? InvoiceAddressOid { get; set; }
[DataMember] public string InvoiceAddressPostalCode { get; set; }
[DataMember] public string InvoiceAddressStreet { get; set; }
[DataMember] public string InvoiceAddressTown { get; set; }
[DataMember] public long? InvoiceAddressVersion { get; set; }
[DataMember] public bool IsCalculatingWithFactor { get; set; }
[DataMember] public bool IsSingleInvoicePerCustomer { get; set; }
[DataMember] public string Leistungserbringergruppe { get; set; }
[DataMember] public string Name { get; set; }
[DataMember] public string Name2 { get; set; }
[DataMember] public string OrganisationNotice { get; set; }
[DataMember] public long? OrganisationOid { get; set; }
[DataMember] public long? OrganisationVersion { get; set; }
[DataMember] public string PostalCode { get; set; }
[DataMember] public AddressDC PostfachanschriftDatenannahmestelle { get; set; }
[DataMember] public List<OrganisationPersonRelationDC> RelatedPersons { get; set; }
[DataMember] public string Street { get; set; }
[DataMember] public string Town { get; set; }
[DataMember] public List<VarFieldDC> VarFields { get; set; }
[DataMember] public GkvVerfahrensstufe Verfahrensstufe { get; set; }
public bool ContainsAddressData()
{ return !Utils.AreAllNullOrEmpty(this.Street, this.PostalCode, this.Town, this.AddressLine1); }
public bool ContainsBankAccountData()
{ return !Utils.AreAllNullOrEmpty(BankCode, BankName, AccountNumber, IBAN, Bic); }
public bool ContainsCostBearerData()
{ return !Utils.AreAllNullOrEmpty(this._CostRatePeriods) || this.IsCalculatingWithFactor; }
public bool ContainsInvoiceAddressData()
{
return !Utils.AreAllNullOrEmpty(
this.InvoiceAddressStreet,
this.InvoiceAddressPostalCode,
this.InvoiceAddressTown,
this.InvoiceAddressLine1);
}
public AddressDC GetDatenannahmestelleAddress()
{
var lst = new List<AddressDC>() {
HausanschriftDatenannahmestelle,
PostfachanschriftDatenannahmestelle,
GrosskundenanschriftDatenannahmestelle};
foreach (var add in lst)
{
if (add is AddressDC)
return add;
}
throw new BeWoInvalidOperationException(AppError.GkvDatenannahmestelleAdresseNotFound(this));
return null;
}
}
}