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 _ContactInformations; private List _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 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 ContactInformations { get { return this._ContactInformations ?? (this._ContactInformations = new List()); } 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 CostRatePeriods { get { return this._CostRatePeriods ?? (this._CostRatePeriods = new List()); } set { this._CostRatePeriods = value; } } [DataMember] public string DebitorNumber { get; set; } [DataMember] public List Feiertage { get; set; } [DataMember] public ValueListEntryDC Function { get; set; } [DataMember] public bool GkvAusblenden { get; set; } [DataMember] public AddressDC GrosskundenanschriftDatenannahmestelle { get; set; } [DataMember] public AddressDC PapierannahmeanschriftDatenannahmestelle { 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 AddressDC PostfachGKanschriftDatenannahmestelle { get; set; } [DataMember] public List RelatedPersons { get; set; } [DataMember] public string Street { get; set; } [DataMember] public string Town { get; set; } [DataMember] public List 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() { HausanschriftDatenannahmestelle, PostfachGKanschriftDatenannahmestelle, PapierannahmeanschriftDatenannahmestelle}; foreach (var add in lst) { if (add is AddressDC) return add; } throw new BeWoInvalidOperationException(AppError.GkvDatenannahmestelleAdresseNotFound(this)); return null; } } }