Files
BeWoPlaner/BeWo/ViewModel/InvoiceBaseVM.cs

1089 lines
30 KiB
C#
Raw Permalink Normal View History

2016-06-27 01:45:38 +02:00
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Interface;
2021-04-12 20:32:10 +02:00
using BS.Shared.Translation;
2016-06-27 01:45:38 +02:00
namespace BeWo.ViewModel
{
public class InvoiceBaseVM : AbstractDCMapperVM<InvoiceBaseDC>, IInvoiceBase
{
public static string PropertyName_AccountingPeriodEnd = "AccountingPeriodEnd";
2016-06-27 01:45:38 +02:00
public static string PropertyName_AccountingPeriodStart = "AccountingPeriodStart";
2016-06-27 01:45:38 +02:00
public static string PropertyName_CreatorFirstName = "CreatorFirstName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_CreatorLastName = "CreatorLastName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_CustomerReferenceNumber = "CustomerReferenceNumber";
2016-06-27 01:45:38 +02:00
public static string PropertyName_DueDate = "DueDate";
2016-06-27 01:45:38 +02:00
public static string PropertyName_DunningLetterCount = "DunningLetterCount";
2016-06-27 01:45:38 +02:00
public static string PropertyName_InvoiceDate = "InvoiceDate";
2016-06-27 01:45:38 +02:00
public static string PropertyName_InvoiceItems = "InvoiceItems";
2016-06-27 01:45:38 +02:00
public static string PropertyName_InvoiceNumber = "InvoiceNumber";
2016-06-27 01:45:38 +02:00
public static string PropertyName_InvoiceTitle = "InvoiceTitle";
2016-06-27 01:45:38 +02:00
public static string PropertyName_NeuErstellen = "NeuErstellen";
2016-06-27 01:45:38 +02:00
public static string PropertyName_DiffErstellen = "DiffErstellen";
2023-12-13 12:53:20 +01:00
public static string PropertyName_IsReviewed = "IsReviewed";
2023-12-13 12:53:20 +01:00
public static string PropertyName_IsSent = "IsSent";
public static string PropertyName_IsExported = "IsExported";
public static string PropertyName_IsPaid = "IsPaid";
public static string PropertyName_PartialPayment = "PartialPayment";
2016-06-27 01:45:38 +02:00
public static string PropertyName_Notice = "Notice";
public static string PropertyName_RecipientCostBearerOid = "RecipientCostBearerOid";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientCustomerOid = "RecipientCustomerOid";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientDivision = "RecipientDivision";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientOrganisation = "RecipientOrganisation";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientOrganisationOid = "RecipientOrganisationOid";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientPostBox = "RecipientPostBox";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientPersonFirstName = "RecipientPersonFirstName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientPersonLastName = "RecipientPersonLastName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientPersonOid = "RecipientPersonOid";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientPostCode = "RecipientPostCode";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientAddressLine1 = "RecipientAddressLine1";
2016-06-27 01:45:38 +02:00
public static string PropertyName_RecipientStreet = "RecipientStreet";
2018-10-08 11:57:16 +02:00
public static string PropertyName_RecipientTown = "RecipientTown";
2016-06-27 01:45:38 +02:00
public static string PropertyName_ReportLink = "ReportLink";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderDivision = "SenderDivision";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderFax = "SenderFax";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderFirstName = "SenderFirstName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderLastName = "SenderLastName";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderOrganisation = "SenderOrganisation";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SenderPhone = "SenderPhone";
2016-06-27 01:45:38 +02:00
public static string PropertyName_SupportConceptOid = "SupportConceptOid";
2016-06-27 01:45:38 +02:00
public static string PropertyName_TotalAmount = "TotalAmount";
2016-06-27 01:45:38 +02:00
public static string PropertyName_TypeString = "TypeString";
2016-06-27 01:45:38 +02:00
private readonly Dictionary<InvoiceType, string> _TypeTranslation = new Dictionary<InvoiceType, string>
{
{
InvoiceType.CustomerEquity, Translator.Translate("Eigenanteil")
},
{
InvoiceType.General, Translator.Translate("Allgemein")
},
{
InvoiceType.Settlement, Translator.Translate("Spitzabrechnung")
},
{
InvoiceType.Service, Translator.Translate("Rechnung")
}
};
2016-06-27 01:45:38 +02:00
private DateTime? _AccountingPeriodEnd;
private DateTime? _AccountingPeriodStart;
private string _CreatorFirstName = string.Empty;
private string _CreatorLastName = string.Empty;
private string _CustomerReferenceNumber = string.Empty;
private DateTime? _DueDate;
private int? _DunningLetterCount;
private DateTime? _InvoiceDate;
private InvoiceItemListVM _InvoiceItems;
private string _InvoiceNumber = string.Empty;
private string _InvoiceTitle = string.Empty;
internal bool _IsReviewed;
internal bool _IsSent;
internal bool _IsExported;
internal bool _IsPaid;
private string _PartialPayment = string.Empty;
internal bool _NeuErstellen;
internal bool _DiffErstellen;
internal bool _IsChecked;
private string _Notice = string.Empty;
private long? _RecipientCostBearerOid;
private long? _RecipientCustomerOid;
private string _RecipientDivision = string.Empty;
private string _RecipientOrganisation = string.Empty;
private long? _RecipientOrganisationOid;
private String _RecipientPostBox;
private string _RecipientPersonFirstName = string.Empty;
private string _RecipientPersonLastName = string.Empty;
private long? _RecipientPersonOid;
private string _RecipientPostCode = string.Empty;
private string _RecipientAddressLine1 = string.Empty;
private string _RecipientStreet = string.Empty;
private string _RecipientTown = string.Empty;
private string _SenderDivision = string.Empty;
private string _SenderFax = string.Empty;
private string _SenderFirstName = string.Empty;
private string _SenderLastName = string.Empty;
private string _SenderOrganisation = string.Empty;
private string _SenderPhone = string.Empty;
private long? _SupportConceptOid;
private decimal? _TotalAmount;
2016-06-27 01:45:38 +02:00
public InvoiceBaseVM(InvoiceBaseDC pDC) : this(pDC, false) { }
2016-06-27 01:45:38 +02:00
public InvoiceBaseVM(InvoiceBaseDC pDC, bool isChecked = false)
: base(pDC, pDC.InvoiceBaseOid == null)
{
_IsChecked = isChecked;
}
2016-06-27 01:45:38 +02:00
public bool IsGkvValid { get; private set; }
public string IsGkvValidError { get; private set; }
2024-10-23 17:05:20 +02:00
public bool? IsAlreadyInActiveGkvAbrechnung { get; private set; }
2016-06-27 01:45:38 +02:00
public bool IsChecked
{
get { return _IsChecked; }
2016-06-27 01:45:38 +02:00
set
{
if (AreDifferent(_IsChecked, value))
{
_IsChecked = value;
FirePropertyChanged("IsChecked");
}
}
}
2016-06-27 01:45:38 +02:00
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? AccountingPeriodEnd
{
get { return _AccountingPeriodEnd; }
2016-06-27 01:45:38 +02:00
set
{
if (AreDifferent(_AccountingPeriodEnd, value))
{
_AccountingPeriodEnd = value;
StoreDirtyInformation(AreDifferent(DataContract.AccountingPeriodEnd, value), PropertyName_AccountingPeriodEnd);
FirePropertyChanged(PropertyName_AccountingPeriodEnd);
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? AccountingPeriodStart
{
get { return _AccountingPeriodStart; }
set
{
if (AreDifferent(_AccountingPeriodStart, value))
{
_AccountingPeriodStart = value;
StoreDirtyInformation(AreDifferent(DataContract.AccountingPeriodStart, value), PropertyName_AccountingPeriodStart);
FirePropertyChanged(PropertyName_AccountingPeriodStart);
}
}
}
public string AccountingPeriodString
{
get
{
return _AccountingPeriodEnd.HasValue && _AccountingPeriodStart.HasValue
? _AccountingPeriodStart.Value.ToShortDateString() + " - " + _AccountingPeriodEnd.Value.ToShortDateString()
: string.Empty;
}
set { }
}
public string CreatorFirstName
{
get { return _CreatorFirstName; }
set
{
if (AreDifferent(_CreatorFirstName, value))
{
_CreatorFirstName = value;
StoreDirtyInformation(AreDifferent(DataContract.CreatorFirstName, value), PropertyName_CreatorFirstName);
FirePropertyChanged(PropertyName_CreatorFirstName);
}
}
}
public string CreatorLastName
{
get { return _CreatorLastName; }
set
{
if (AreDifferent(_CreatorLastName, value))
{
_CreatorLastName = value;
StoreDirtyInformation(AreDifferent(DataContract.CreatorLastName, value), PropertyName_CreatorLastName);
FirePropertyChanged(PropertyName_CreatorLastName);
}
}
}
public string CustomerName
{
get
{
string result = string.Empty;
if (!String.IsNullOrEmpty(DataContract.CustomerLastName))
{
result = DataContract.CustomerLastName;
}
if (!String.IsNullOrEmpty(DataContract.CustomerFirstName))
{
if (result.Length > 0)
{
result += ", ";
}
result += DataContract.CustomerFirstName;
}
return result;
}
set { }
}
public string CustomerReferenceNumber
{
get { return _CustomerReferenceNumber; }
set
{
if (AreDifferent(_CustomerReferenceNumber, value))
{
_CustomerReferenceNumber = value;
StoreDirtyInformation(AreDifferent(DataContract.CustomerReferenceNumber, value), PropertyName_CustomerReferenceNumber);
FirePropertyChanged(PropertyName_CustomerReferenceNumber);
}
}
}
public DateTime? DueDate
{
get { return _DueDate; }
set
{
if (AreDifferent(_DueDate, value))
{
_DueDate = value;
StoreDirtyInformation(AreDifferent(DataContract.DueDate, value), PropertyName_DueDate);
FirePropertyChanged(PropertyName_DueDate);
}
}
}
public int? DunningLetterCount
{
get { return _DunningLetterCount; }
set
{
if (AreDifferent(_DunningLetterCount, value))
{
_DunningLetterCount = value;
StoreDirtyInformation(AreDifferent(DataContract.DunningLetterCount, value), PropertyName_DunningLetterCount);
FirePropertyChanged(PropertyName_DunningLetterCount);
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? InvoiceDate
{
get { return _InvoiceDate; }
set
{
if (AreDifferent(_InvoiceDate, value))
{
_InvoiceDate = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceDate, value), PropertyName_InvoiceDate);
FirePropertyChanged(PropertyName_InvoiceDate);
}
}
}
public InvoiceItemListVM InvoiceItems
{
get { return _InvoiceItems; }
set
{
if (AreDifferent(_InvoiceItems, value))
{
_InvoiceItems = value;
FirePropertyChanged(PropertyName_InvoiceItems);
}
}
}
public string InvoiceNumber
{
get { return _InvoiceNumber; }
set
{
if (AreDifferent(_InvoiceNumber, value))
{
_InvoiceNumber = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceNumber, value), PropertyName_InvoiceNumber);
FirePropertyChanged(PropertyName_InvoiceNumber);
}
}
}
public string InvoiceTitle
{
get { return _InvoiceTitle; }
set
{
if (AreDifferent(_InvoiceTitle, value))
{
_InvoiceTitle = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceTitle, value), PropertyName_InvoiceTitle);
FirePropertyChanged(PropertyName_InvoiceTitle);
}
}
}
public string Details
{
get { return DataContract.Details; }
}
public string Hinweise
{
get { return DataContract.Hinweise; }
}
public bool NeuErstellen
{
get { return _NeuErstellen; }
set
{
if (AreDifferent(_NeuErstellen, value))
{
_NeuErstellen = value;
StoreDirtyInformation(AreDifferent(DataContract.NeuErstellen, value), PropertyName_NeuErstellen);
FirePropertyChanged(PropertyName_NeuErstellen);
}
}
}
public bool DiffErstellen
{
get { return _DiffErstellen; }
set
{
if (AreDifferent(_DiffErstellen, value))
{
_DiffErstellen = value;
StoreDirtyInformation(AreDifferent(DataContract.DiffErstellen, value), PropertyName_DiffErstellen);
FirePropertyChanged(PropertyName_DiffErstellen);
}
}
}
public bool IsReviewed
{
get { return _IsReviewed; }
set
{
if (AreDifferent(_IsReviewed, value))
{
_IsReviewed = value;
StoreDirtyInformation(AreDifferent(DataContract.IsReviewed, value), PropertyName_IsReviewed);
FirePropertyChanged(PropertyName_IsReviewed);
}
}
}
public bool IsSent
{
get { return _IsSent; }
set
{
if (AreDifferent(_IsSent, value))
{
_IsSent = value;
StoreDirtyInformation(AreDifferent(DataContract.IsSent, value), PropertyName_IsSent);
FirePropertyChanged(PropertyName_IsSent);
}
}
}
public bool IsExported
{
get { return _IsExported; }
set
{
if (AreDifferent(_IsExported, value))
{
_IsExported = value;
StoreDirtyInformation(AreDifferent(DataContract.IsExported, value), PropertyName_IsExported);
FirePropertyChanged(PropertyName_IsExported);
}
}
}
public bool IsPaid
{
get { return _IsPaid; }
set
{
if (AreDifferent(_IsPaid, value))
{
_IsPaid = value;
StoreDirtyInformation(AreDifferent(DataContract.IsPaid, value), PropertyName_IsPaid);
FirePropertyChanged(PropertyName_IsPaid);
}
}
}
public string Notice
{
get { return _Notice; }
set
{
if (AreDifferent(_Notice, value))
{
_Notice = value;
StoreDirtyInformation(AreDifferent(DataContract.Notice, value), PropertyName_Notice);
FirePropertyChanged(PropertyName_Notice);
}
}
}
public string PartialPayment
{
get { return _PartialPayment; }
set
{
if (AreDifferent(_PartialPayment, value))
{
_PartialPayment = value;
StoreDirtyInformation(AreDifferent(DataContract.PartialPayment, value), PropertyName_PartialPayment);
FirePropertyChanged(PropertyName_PartialPayment);
}
}
}
public long? RecipientCostBearerOid
{
get { return _RecipientCostBearerOid; }
set
{
if (AreDifferent(_RecipientCostBearerOid, value))
{
_RecipientCostBearerOid = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientCostBearerOid, value), PropertyName_RecipientCostBearerOid);
FirePropertyChanged(PropertyName_RecipientCostBearerOid);
}
}
}
public long? RecipientCustomerOid
{
get { return _RecipientCustomerOid; }
set
{
if (AreDifferent(_RecipientCustomerOid, value))
{
_RecipientCustomerOid = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientCustomerOid, value), PropertyName_RecipientCustomerOid);
FirePropertyChanged(PropertyName_RecipientCustomerOid);
}
}
}
public string RecipientDivision
{
get { return _RecipientDivision; }
set
{
if (AreDifferent(_RecipientDivision, value))
{
_RecipientDivision = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientDivision, value), PropertyName_RecipientDivision);
FirePropertyChanged(PropertyName_RecipientDivision);
}
}
}
public string RecipientOrganisation
{
get { return _RecipientOrganisation; }
set
{
if (AreDifferent(_RecipientOrganisation, value))
{
_RecipientOrganisation = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientOrganisation, value), PropertyName_RecipientOrganisation);
FirePropertyChanged(PropertyName_RecipientOrganisation);
}
}
}
public long? RecipientOrganisationOid
{
get { return _RecipientOrganisationOid; }
set
{
if (AreDifferent(_RecipientOrganisationOid, value))
{
_RecipientOrganisationOid = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientOrganisationOid, value), PropertyName_RecipientOrganisationOid);
FirePropertyChanged(PropertyName_RecipientOrganisationOid);
}
}
}
public String RecipientPostBox
{
get { return _RecipientPostBox; }
set
{
if (AreDifferent(_RecipientPostBox, value))
{
_RecipientPostBox = value;
StoreDirtyInformation(
DataContract.RecipientContactInformations.SingleOrDefault(con => con.ContactType == ContactType.business_POBox && con.ContactValue == value) == null,
PropertyName_RecipientPostBox);
FirePropertyChanged(PropertyName_RecipientPostBox);
}
}
}
public string RecipientPersonFirstName
{
get { return _RecipientPersonFirstName; }
set
{
if (AreDifferent(_RecipientPersonFirstName, value))
{
_RecipientPersonFirstName = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientPersonFirstName, value), PropertyName_RecipientPersonFirstName);
FirePropertyChanged(PropertyName_RecipientPersonFirstName);
}
}
}
public string RecipientPersonLastName
{
get { return _RecipientPersonLastName; }
set
{
if (AreDifferent(_RecipientPersonLastName, value))
{
_RecipientPersonLastName = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientPersonLastName, value), PropertyName_RecipientPersonLastName);
FirePropertyChanged(PropertyName_RecipientPersonLastName);
}
}
}
public long? RecipientPersonOid
{
get { return _RecipientPersonOid; }
set
{
if (AreDifferent(_RecipientPersonOid, value))
{
_RecipientPersonOid = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientPersonOid, value), PropertyName_RecipientPersonOid);
FirePropertyChanged(PropertyName_RecipientPersonOid);
}
}
}
public string RecipientPostCode
{
get { return _RecipientPostCode; }
set
{
if (AreDifferent(_RecipientPostCode, value))
{
_RecipientPostCode = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientPostCode, value), PropertyName_RecipientPostCode);
FirePropertyChanged(PropertyName_RecipientPostCode);
}
}
}
public string RecipientAddressLine1
{
get { return _RecipientAddressLine1; }
set
{
if (AreDifferent(_RecipientAddressLine1, value))
{
_RecipientAddressLine1 = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientAddressLine1, value), PropertyName_RecipientAddressLine1);
FirePropertyChanged(PropertyName_RecipientAddressLine1);
}
}
}
public string RecipientStreet
{
get { return _RecipientStreet; }
set
{
if (AreDifferent(_RecipientStreet, value))
{
_RecipientStreet = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientStreet, value), PropertyName_RecipientStreet);
FirePropertyChanged(PropertyName_RecipientStreet);
}
}
}
public string RecipientString
{
get
{
string result = _RecipientOrganisation;
if (!string.IsNullOrEmpty(result) && (!string.IsNullOrEmpty(_RecipientPersonFirstName) || !string.IsNullOrEmpty(_RecipientPersonLastName)))
{
result += " - ";
}
result += _RecipientPersonFirstName + " " + _RecipientPersonLastName;
return result;
}
set { }
}
public string RecipientTown
{
get { return _RecipientTown; }
set
{
if (AreDifferent(_RecipientTown, value))
{
_RecipientTown = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientTown, value), PropertyName_RecipientTown);
FirePropertyChanged(PropertyName_RecipientTown);
}
}
}
public string ReportLink
{
get
{
string url = string.Empty;
switch (DataContract.Type)
{
case InvoiceType.CustomerEquity:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ioid=" + DataContract.InvoiceBaseOid + "&type=CustomerInvoice";
break;
case InvoiceType.General:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ioid=" + DataContract.InvoiceBaseOid + "&type=CustomerInvoice";
break;
case InvoiceType.Settlement:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ibid=" + DataContract.InvoiceBaseOid + "&type=" + Utils.EnumName(ReportTypes.Settlement);
break;
case InvoiceType.Service:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ibid=" + DataContract.InvoiceBaseOid + "&type=" + Utils.EnumName(ReportTypes.ServiceInvoice);
break;
default:
url = string.Empty;
break;
}
return url;
}
}
public string SenderDivision
{
get { return _SenderDivision; }
set
{
if (AreDifferent(_SenderDivision, value))
{
_SenderDivision = value;
StoreDirtyInformation(AreDifferent(DataContract.SenderDivision, value), PropertyName_SenderDivision);
FirePropertyChanged(PropertyName_SenderDivision);
}
}
}
public string SenderFax
{
get { return _SenderFax; }
set
{
if (AreDifferent(_SenderFax, value))
{
_SenderFax = value;
StoreDirtyInformation(
DataContract.SenderContactInformations.SingleOrDefault(con => con.ContactType == ContactType.business_Fax && con.ContactValue == value) == null,
PropertyName_SenderFax);
FirePropertyChanged(PropertyName_SenderFax);
}
}
}
public string SenderFirstName
{
get { return _SenderFirstName; }
set
{
if (AreDifferent(_SenderFirstName, value))
{
_SenderFirstName = value;
StoreDirtyInformation(AreDifferent(DataContract.SenderFirstName, value), PropertyName_SenderFirstName);
FirePropertyChanged(PropertyName_SenderFirstName);
}
}
}
public string SenderLastName
{
get { return _SenderLastName; }
set
{
if (AreDifferent(_SenderLastName, value))
{
_SenderLastName = value;
StoreDirtyInformation(AreDifferent(DataContract.SenderLastName, value), PropertyName_SenderLastName);
FirePropertyChanged(PropertyName_SenderLastName);
}
}
}
public string SenderOrganisation
{
get { return _SenderOrganisation; }
set
{
if (AreDifferent(_SenderOrganisation, value))
{
_SenderOrganisation = value;
StoreDirtyInformation(AreDifferent(DataContract.SenderOrganisation, value), PropertyName_SenderOrganisation);
FirePropertyChanged(PropertyName_SenderOrganisation);
}
}
}
public string SenderPhone
{
get { return _SenderPhone; }
set
{
if (AreDifferent(_SenderPhone, value))
{
_SenderPhone = value;
StoreDirtyInformation(
DataContract.SenderContactInformations.Where(con => con.ContactType == ContactType.business_Phone && con.ContactValue == value).SingleOrDefault() == null,
PropertyName_SenderPhone);
FirePropertyChanged(PropertyName_SenderPhone);
}
}
}
public long? SupportConceptOid
{
get { return _SupportConceptOid; }
set
{
if (AreDifferent(_SupportConceptOid, value))
{
_SupportConceptOid = value;
StoreDirtyInformation(AreDifferent(DataContract.SupportConceptOid, value), PropertyName_SupportConceptOid);
FirePropertyChanged(PropertyName_SupportConceptOid);
}
}
}
public string SenderAddressLine1 { get; set; }
public decimal? TotalAmount
{
get { return _TotalAmount; }
set
{
if (AreDifferent(_TotalAmount, value))
{
_TotalAmount = value;
StoreDirtyInformation(AreDifferent(DataContract.TotalAmount, value), PropertyName_TotalAmount);
FirePropertyChanged(PropertyName_TotalAmount);
}
}
}
public string TypeString
{
get
{
if (!String.IsNullOrEmpty(DataContract.InvoiceTypeText))
{
return DataContract.InvoiceTypeText;
}
return _TypeTranslation[DataContract.Type];
}
}
public String BackgroundColor
{
get; set;
}
public StoredFileVM XRechnungStoredFileVM { get; set; }
public long? Oid => DataContract.InvoiceBaseOid;
2025-11-07 14:54:55 +01:00
public string InvoiceId => DataContract.InvoiceId;
public string SenderStreet => DataContract.SenderStreet;
public string SenderTown => DataContract.SenderTown;
public string SenderPostCode => DataContract.SenderPostCode;
2025-06-23 16:35:33 +02:00
public IEnumerable<IInvoiceItem> IInvoiceItems => InvoiceItems.VMList;
2025-05-14 10:52:22 +02:00
protected override void InitByDataContract(InvoiceBaseDC pDataContract)
{
_SupportConceptOid = pDataContract.SupportConceptOid;
_SenderOrganisation = pDataContract.SenderOrganisation;
_SenderLastName = pDataContract.SenderLastName;
_SenderFirstName = pDataContract.SenderFirstName;
_SenderDivision = pDataContract.SenderDivision;
_RecipientPersonOid = pDataContract.RecipientPersonOid;
_RecipientPersonLastName = pDataContract.RecipientPersonLastName;
_RecipientPersonFirstName = pDataContract.RecipientPersonFirstName;
_RecipientOrganisationOid = pDataContract.RecipientOrganisationOid;
_RecipientOrganisation = pDataContract.RecipientOrganisation;
_RecipientDivision = pDataContract.RecipientDivision;
_RecipientCustomerOid = pDataContract.RecipientCustomerOid;
_RecipientCostBearerOid = pDataContract.RecipientCostBearerOid;
_RecipientStreet = pDataContract.RecipientStreet;
_RecipientAddressLine1 = pDataContract.RecipientAddressLine1;
_RecipientTown = pDataContract.RecipientTown;
_RecipientPostCode = pDataContract.RecipientPostCode;
_IsReviewed = pDataContract.IsReviewed;
_IsSent = pDataContract.IsSent;
_IsExported = pDataContract.IsExported;
_IsPaid = pDataContract.IsPaid;
_PartialPayment = pDataContract.PartialPayment;
_NeuErstellen = pDataContract.NeuErstellen;
_DiffErstellen = pDataContract.DiffErstellen;
_InvoiceTitle = pDataContract.InvoiceTitle;
_InvoiceNumber = pDataContract.InvoiceNumber;
_InvoiceDate = pDataContract.InvoiceDate;
_DueDate = pDataContract.DueDate;
_CreatorLastName = pDataContract.CreatorLastName;
_CreatorFirstName = pDataContract.CreatorFirstName;
_AccountingPeriodEnd = pDataContract.AccountingPeriodEnd;
_AccountingPeriodStart = pDataContract.AccountingPeriodStart;
_Notice = pDataContract.Notice;
_DunningLetterCount = pDataContract.DunningLetterCount;
_TotalAmount = pDataContract.TotalAmount;
_CustomerReferenceNumber = pDataContract.CustomerReferenceNumber;
BackgroundColor = pDataContract.BackgroundColor;
foreach (var iContactDC in pDataContract.SenderContactInformations)
{
if (iContactDC.ContactType == ContactType.business_Fax)
{
_SenderFax = iContactDC.ContactValue;
}
if (iContactDC.ContactType == ContactType.business_Phone)
{
_SenderPhone = iContactDC.ContactValue;
}
}
foreach (var iContactDC in pDataContract.RecipientContactInformations)
{
if (iContactDC.ContactType == ContactType.business_POBox)
{
_RecipientPostBox = iContactDC.ContactValue;
}
}
_InvoiceItems = new InvoiceItemListVM(pDataContract.InvoiceItems);
IsGkvValid = pDataContract.IsGkvValid;
IsGkvValidError = pDataContract.IsGkvValidError;
2024-10-23 17:05:20 +02:00
IsAlreadyInActiveGkvAbrechnung = pDataContract.IsAlreadyInActiveGkvAbrechnung;
XRechnungStoredFileVM = new StoredFileVM(pDataContract.XRechnungStoredFile);
}
protected override InvoiceBaseDC MapToDataContract(InvoiceBaseDC pDataContract, bool doCommit)
{
pDataContract.SupportConceptOid = _SupportConceptOid;
pDataContract.SenderOrganisation = _SenderOrganisation;
pDataContract.SenderLastName = _SenderLastName;
pDataContract.SenderFirstName = _SenderFirstName;
pDataContract.SenderDivision = _SenderDivision;
pDataContract.RecipientPersonOid = _RecipientPersonOid;
pDataContract.RecipientPersonLastName = _RecipientPersonLastName;
pDataContract.RecipientPersonFirstName = _RecipientPersonFirstName;
pDataContract.RecipientOrganisationOid = _RecipientOrganisationOid;
pDataContract.RecipientOrganisation = _RecipientOrganisation;
pDataContract.RecipientDivision = _RecipientDivision;
pDataContract.RecipientCustomerOid = _RecipientCustomerOid;
pDataContract.RecipientCostBearerOid = _RecipientCostBearerOid;
pDataContract.RecipientPostCode = _RecipientPostCode;
pDataContract.RecipientStreet = _RecipientStreet;
pDataContract.RecipientAddressLine1 = _RecipientAddressLine1;
pDataContract.RecipientTown = _RecipientTown;
pDataContract.IsReviewed = _IsReviewed;
pDataContract.IsSent = _IsSent;
pDataContract.IsExported = _IsExported;
pDataContract.IsPaid = _IsPaid;
pDataContract.PartialPayment = _PartialPayment;
pDataContract.NeuErstellen = _NeuErstellen;
pDataContract.DiffErstellen = _DiffErstellen;
pDataContract.InvoiceTitle = _InvoiceTitle;
pDataContract.InvoiceNumber = _InvoiceNumber;
pDataContract.InvoiceDate = _InvoiceDate;
pDataContract.DueDate = _DueDate;
pDataContract.CreatorLastName = _CreatorLastName;
pDataContract.CreatorFirstName = _CreatorFirstName;
pDataContract.AccountingPeriodEnd = _AccountingPeriodEnd;
pDataContract.AccountingPeriodStart = _AccountingPeriodStart;
pDataContract.Notice = _Notice;
pDataContract.DunningLetterCount = _DunningLetterCount;
pDataContract.TotalAmount = _TotalAmount;
pDataContract.CustomerReferenceNumber = _CustomerReferenceNumber;
CommitSenderContact(_SenderFax, ContactType.business_Fax);
CommitSenderContact(_SenderPhone, ContactType.business_Phone);
CommitReceiverContact(_RecipientPostBox, ContactType.business_POBox);
pDataContract.InvoiceItems = _InvoiceItems.CopyToDCList(doCommit);
return pDataContract;
}
private void CommitSenderContact(string pValue, ContactType pContactType)
{
var lOldContactDCs = DataContract.SenderContactInformations != null ? DataContract.SenderContactInformations.ToList() : new List<ContactDC>();
CommitContact(pValue, pContactType, lOldContactDCs);
DataContract.SenderContactInformations = lOldContactDCs;
}
private void CommitReceiverContact(string pValue, ContactType pContactType)
{
var lOldContactDCs = DataContract.RecipientContactInformations != null ? DataContract.RecipientContactInformations.ToList() : new List<ContactDC>();
CommitContact(pValue, pContactType, lOldContactDCs);
DataContract.RecipientContactInformations = lOldContactDCs;
}
private void CommitContact(string pValue, ContactType pContactType, List<ContactDC> lOldContactDCs)
{
var lContactDC = lOldContactDCs.SingleOrDefault(con => con.ContactType == pContactType);
if (string.IsNullOrEmpty(pValue) && lContactDC != null)
{
lOldContactDCs.Remove(lContactDC);
}
else if (!string.IsNullOrEmpty(pValue))
{
if (lContactDC == null)
{
lContactDC = new ContactDC
{
ContactType = pContactType
};
lOldContactDCs.Add(lContactDC);
}
lContactDC.ContactValue = pValue;
}
}
}
2016-06-27 01:45:38 +02:00
}