Files
BeWoPlaner/BeWo/ViewModel/ServiceInvoiceVM.cs

227 lines
7.6 KiB
C#
Raw Normal View History

2016-06-27 01:45:38 +02:00
using System;
using System.Collections;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel
{
public class ServiceInvoiceVM : AbstractDCMapperVM<ServiceInvoiceDC>
{
public static string PropertyName_AmountAdvancePayments = "AmountAdvancePayments";
public static string PropertyName_AmountEquityContribution = "AmountEquityContribution";
public static string PropertyName_ClaimSum = "ClaimSum";
public static string PropertyName_EndClaim = "EndClaim";
public static string PropertyName_InvoiceBase = "InvoiceBase";
public static string PropertyName_IsPrinting = "IsPrinting";
public static string PropertyName_RecipientPostBox = "RecipientPostBox";
public static string PropertyName_ServiceInvoicePeriods = "ServiceInvoicePeriods";
public static string PropertyName_ServiceUnit = "ServiceUnit";
private decimal? _AmountAdvancePayments;
private decimal? _AmountEquityContribution;
private decimal? _ClaimSum;
private decimal? _EndClaim;
private InvoiceBaseVM _InvoiceBase;
private bool _IsPrinting;
private String _RecipientPostBox;
private ServiceInvoicePeriodListVM _ServiceInvoicePeriods;
private CostRatePeriodDC _ServiceUnit;
public ServiceInvoiceVM(ServiceInvoiceDC pDC) : base(pDC, !pDC.ServiceInvoiceOid.HasValue)
{
}
public decimal? AmountAdvancePayments
{
get { return _AmountAdvancePayments; }
set
{
if (AreDifferent(_AmountAdvancePayments, value))
{
_AmountAdvancePayments = value;
StoreDirtyInformation(AreDifferent(DataContract.AmountAdvancePayments, value), PropertyName_AmountAdvancePayments);
FirePropertyChanged(PropertyName_AmountAdvancePayments);
}
}
}
public decimal? AmountEquityContribution
{
get { return _AmountEquityContribution; }
set
{
if (AreDifferent(_AmountEquityContribution, value))
{
_AmountEquityContribution = value;
StoreDirtyInformation(AreDifferent(DataContract.AmountEquityContribution, value), PropertyName_AmountEquityContribution);
FirePropertyChanged(PropertyName_AmountEquityContribution);
}
}
}
public decimal? ClaimSum
{
get { return _ClaimSum; }
set
{
if (AreDifferent(_ClaimSum, value))
{
_ClaimSum = value;
StoreDirtyInformation(AreDifferent(DataContract.ClaimSum, value), PropertyName_ClaimSum);
FirePropertyChanged(PropertyName_ClaimSum);
}
}
}
public decimal? EndClaim
{
get { return _EndClaim; }
set
{
if (AreDifferent(_EndClaim, value))
{
_EndClaim = value;
StoreDirtyInformation(AreDifferent(DataContract.EndClaim, value), PropertyName_EndClaim);
FirePropertyChanged(PropertyName_EndClaim);
}
}
}
public InvoiceBaseVM InvoiceBase
{
get { return _InvoiceBase ?? (_InvoiceBase = new InvoiceBaseVM(new InvoiceBaseDC())); }
set
{
if (AreDifferent(_InvoiceBase, value))
{
_InvoiceBase = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceBase, value), PropertyName_InvoiceBase);
FirePropertyChanged(PropertyName_InvoiceBase);
}
}
}
public bool IsPrinting
{
get { return _IsPrinting; }
set
{
if (AreDifferent(_IsPrinting, value))
{
_IsPrinting = value;
FirePropertyChanged(PropertyName_IsPrinting);
}
}
}
public String RecipientPostBox
{
get { return _RecipientPostBox; }
set
{
if (AreDifferent(_RecipientPostBox, value))
{
_RecipientPostBox = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientPostBox, value), PropertyName_RecipientPostBox);
FirePropertyChanged(PropertyName_RecipientPostBox);
}
}
}
public ServiceInvoicePeriodListVM ServiceInvoicePeriods
{
get { return _ServiceInvoicePeriods; }
set
{
if (AreDifferent(_ServiceInvoicePeriods, value))
{
_ServiceInvoicePeriods = value;
FirePropertyChanged(PropertyName_ServiceInvoicePeriods);
}
}
}
public CostRatePeriodDC ServiceUnit
{
get { return _ServiceUnit; }
set
{
if (AreDifferent(_ServiceUnit, value))
{
_ServiceUnit = value;
StoreDirtyInformation(AreDifferent(DataContract.ServiceUnit, value), PropertyName_ServiceUnit);
FirePropertyChanged(PropertyName_ServiceUnit);
}
}
}
public ArrayList ServiceInvoicePeriodTabItemSource
{
get
{
var result = new ArrayList {this};
result.AddRange(ServiceInvoicePeriods.VMList);
return result;
}
}
protected override void InitByDataContract(ServiceInvoiceDC pDataContract)
{
_AmountAdvancePayments = pDataContract.AmountAdvancePayments;
_AmountEquityContribution = pDataContract.AmountEquityContribution;
_InvoiceBase = new InvoiceBaseVM(pDataContract.InvoiceBase);
_ServiceInvoicePeriods = new ServiceInvoicePeriodListVM(pDataContract.ServiceInvoicePeriods);
_ServiceUnit = pDataContract.ServiceUnit;
_ClaimSum = pDataContract.ClaimSum;
_EndClaim = pDataContract.EndClaim;
_RecipientPostBox = pDataContract.RecipientPostBox;
}
protected override ServiceInvoiceDC MapToDataContract(ServiceInvoiceDC pDataContract, bool doCommit)
{
pDataContract.AmountAdvancePayments = _AmountAdvancePayments;
pDataContract.AmountEquityContribution = _AmountEquityContribution;
pDataContract.InvoiceBase = InvoiceBase.CommitToDataContract();
foreach (var serviceInvoicePeriod in ServiceInvoicePeriods.VMList)
{
var test = serviceInvoicePeriod.InvoiceItemList;
var count = test.VMList.Count; // Hack:force VMList to initialize
}
pDataContract.RecipientPostBox = _RecipientPostBox;
pDataContract.ServiceInvoicePeriods = ServiceInvoicePeriods.CopyToDCList(true);
// pDataContract.ClaimSum = _ClaimSum;
// pDataContract.EndClaim = _EndClaim;
return pDataContract;
}
}
}