Files
BeWoPlaner/BeWo/ViewModel/AccountingTransactionVM.cs

353 lines
11 KiB
C#
Raw Normal View History

2016-06-27 01:45:38 +02:00
using System;
using System.Windows.Media;
using BeWo.Validation;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace BeWo.ViewModel
{
public class AccountingTransactionVM : AbstractDCMapperVM<AccountingTransactionDC>
{
public static string PropertyName_Amount = "Amount";
public static string PropertyName_BookingDate = "BookingDate";
public static string PropertyName_ValidityDate = "ValidityDate";
public static string PropertyName_Category = "Category";
public static string PropertyName_CostBearerRel = "CostBearerRel";
public static string PropertyName_Notice = "Notice";
private decimal? _Amount;
private DateTime? _BookingDate;
private DateTime? _ValidityDate;
private ValueListEntryDC _Category;
private SupportConceptCostBearerRelDC _CostBearerRel;
private string _InsUser;
private DateTime? _InsertedOn;
private string _Notice;
private FlatSupportConceptTreeNodeDC _SupportConceptTreeNode;
public AccountingTransactionVM(AccountingTransactionDC pDC) : base(pDC, pDC.AccountingTransactionOid == null)
{
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public decimal? Amount
{
get { return this._Amount; }
set
{
if (this.AreDifferent(this._Amount, value))
{
this._Amount = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Amount, value), PropertyName_Amount);
this.FirePropertyChanged(PropertyName_Amount);
}
}
}
public Brush AmountForegroundBrush
{
get
{
if (this.Amount > 0)
{
return Brushes.DarkGreen;
}
else if (this.Amount < 0)
{
return Brushes.DarkRed;
}
else
{
return Brushes.Black;
}
}
}
public String DatumsText
{
get
{
if (!ValidityDate.HasValue)
{
return String.Format("Für Monat {0:MMMM yyyy}, Buchungsdatum: {0:dd.MM.yyyy}", BookingDate);
}
return String.Format("Für Monat {0:MMMM yyyy}, Buchungsdatum: {1:dd.MM.yyyy}", ValidityDate, BookingDate);
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? BookingDate
{
get { return this._BookingDate; }
set
{
if (this.AreDifferent(this._BookingDate, value))
{
this._BookingDate = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.BookingDate, value), PropertyName_BookingDate);
this.FirePropertyChanged(PropertyName_BookingDate);
}
}
}
public DateTime? ValidityDate
{
get { return this._ValidityDate; }
set
{
if (this.AreDifferent(this._ValidityDate, value))
{
this._ValidityDate = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.ValidityDate, value), PropertyName_ValidityDate);
this.FirePropertyChanged(PropertyName_ValidityDate);
}
}
}
public ValueListEntryDC Category
{
get { return this._Category; }
set
{
if (this.AreDifferent(this._Category, value))
{
this._Category = value;
this.StoreDirtyInformation(!this.AreEqual(value, this.DataContract.Category), PropertyName_Category);
this.FirePropertyChanged(PropertyName_Category);
}
}
}
2017-11-17 22:24:00 +01:00
public String CostBearerName
{
get
{
if (CostBearer != null)
{
return CostBearer.Name;
}
return null;
}
}
2016-06-27 01:45:38 +02:00
public CompactOrganisationDC CostBearer
{
get
{
if (this.CostBearerRel == null)
{
return null;
}
return this.CostBearerRel.CostBearer;
}
}
public SupportConceptCostBearerRelDC CostBearerRel
{
get { return this._CostBearerRel; }
set
{
if (this.AreDifferent(this._CostBearerRel, value))
{
this._CostBearerRel = value;
this.StoreDirtyInformation(!this.AreEqual(this.DataContract.SupportConceptCostBearerRelDC, value), PropertyName_CostBearerRel);
this.FirePropertyChanged(PropertyName_CostBearerRel);
}
}
}
public bool EditAllowed
{
get
{
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.AccountingTransactionView_Edit))
{
return true;
}
return false;
}
}
public string InsUser
{
get { return this._InsUser; }
set { this._InsUser = value; }
}
public string InsertedOn
{
get
{
if (this._InsertedOn != null)
{
return this._InsertedOn.Value.ToShortDateString() + " " + this._InsertedOn.Value.ToShortTimeString();
}
return null;
}
}
public string Notice
{
get { return this._Notice; }
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
this.FirePropertyChanged(PropertyName_Notice);
}
}
}
// Workaround for Devexpress grid: doesn´t (yet) support property chanes
public CompactSupportConceptDC SupportConcept
{
get
{
if (this.CostBearerRel == null)
{
return null;
}
return this.CostBearerRel.SupportConcept;
}
}
public string SupportConceptName
{
get
{
CompactSupportConceptDC dc = this.SupportConcept;
if (dc != null)
{
return dc.Customer + " " + dc;
}
return null;
}
}
// Workaround for Devexpress grid: doesn´t (yet) support property chanes
public FlatSupportConceptTreeNodeDC SupportConceptTreeNode
{
get { return this._SupportConceptTreeNode; }
set
{
this._SupportConceptTreeNode = value;
if (value != null)
{
this.CostBearerRel = value.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC;
}
else
{
this.CostBearerRel = null;
}
}
}
public AccountingTransactionVM Clone()
{
AccountingTransactionDC dc = new AccountingTransactionDC();
return new AccountingTransactionVM(this.CopyToDataContract(dc));
}
public void CopyTo(AccountingTransactionVM copy)
{
copy.Notice = this.Notice;
copy.BookingDate = this.BookingDate;
copy.ValidityDate = this.ValidityDate;
copy.Amount = this.Amount;
copy.CostBearerRel = this.CostBearerRel;
copy.Category = this.Category;
}
public void SetInsertedOn(DateTime dt)
{
this._InsertedOn = dt;
}
protected override void InitByDataContract(AccountingTransactionDC pDataContract)
{
this._CostBearerRel = pDataContract.SupportConceptCostBearerRelDC;
this._Category = pDataContract.Category;
this._Notice = pDataContract.Notice;
this._BookingDate = pDataContract.BookingDate;
this._ValidityDate = pDataContract.ValidityDate;
this._Amount = pDataContract.Amount;
this._InsertedOn = pDataContract.InsertedOn;
this._InsUser = pDataContract.InsUser;
// if (!IsNew)
// {
// _CostBearerRel = pDataContract.SupportConceptCostBearerRelDC;
// _Category = pDataContract.Category;
// _Notice = pDataContract.Notice;
// _BookingDate = pDataContract.BookingDate;
// _Amount = pDataContract.Amount;
// _InsertedOn = pDataContract.InsertedOn;
// _InsUser = pDataContract.InsUser;
// }
// else
// BookingDate = DateTime.Now;
}
protected override AccountingTransactionDC MapToDataContract(AccountingTransactionDC pDataContract, bool doCommit)
{
pDataContract.SupportConceptCostBearerRelDC = this._CostBearerRel;
pDataContract.Category = this._Category;
pDataContract.BookingDate = this._BookingDate;
pDataContract.ValidityDate = this._ValidityDate;
pDataContract.Amount = this._Amount.Value;
pDataContract.Notice = this._Notice;
return pDataContract;
}
private AccountingTransactionDC CopyToDataContract(AccountingTransactionDC pDataContract)
{
//decimal amount = 0;
//if (this._Amount.HasValue)
//{
// amount = this._Amount.Value;
//}
pDataContract.Amount = this._Amount.Value;
pDataContract.BookingDate = this._BookingDate;
pDataContract.ValidityDate = this._ValidityDate;
pDataContract.Category = this._Category;
pDataContract.Notice = this._Notice;
pDataContract.SupportConceptCostBearerRelDC = this._CostBearerRel;
return pDataContract;
}
}
}