Files
BeWoPlaner/BeWo/ViewModel/BargeldtransaktionsVM.cs

248 lines
7.1 KiB
C#

using System;
using BeWo.Validation;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel
{
public class BargeldtransaktionsVM : AbstractDCMapperVM<BargeldtransaktionDC>
{
//public static string PropertyName_Customer = "Customer";
public static string PropertyName_Zahlungstyp = "Zahlungstyp";
public static string PropertyName_Zahlungsdatum = "Zahlungsdatum";
public static string PropertyName_Betrag = "Betrag";
public static string PropertyName_Transaktionskassenbestand = "Transaktionskassenbestand";
public static string PropertyName_Belegnummer = "Belegnummer";
public static string PropertyName_Notice = "Notice";
//private CompactCustomerDC _Customer;
private EnumValue<Zahlungstyp> _Zahlungstyp;
private DateTime? _Zahlungsdatum;
private decimal? _Betrag;
private decimal? _Transaktionskassenbestand;
private string _Belegnummer;
private string _Notice;
//public CompactCustomerDC Customer
//{
// get { return _Customer; }
// set
// {
// if (!AreDifferent(_Customer, value))
// {
// return;
// }
// _Customer = value;
// StoreDirtyInformation(AreDifferent(DataContract.Customer, value), PropertyName_Customer);
// FirePropertyChanged(PropertyName_Customer);
// }
//}
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 Belegnummer
{
get { return _Belegnummer; }
set
{
if (AreDifferent(_Belegnummer, value))
{
_Belegnummer = value;
StoreDirtyInformation(AreDifferent(DataContract.Belegnummer, value), PropertyName_Belegnummer);
FirePropertyChanged(PropertyName_Belegnummer);
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public EnumValue<Zahlungstyp> Zahlungstyp
{
get { return _Zahlungstyp; }
set
{
if (!AreDifferent(_Zahlungstyp, value))
{
return;
}
_Zahlungstyp = value;
StoreDirtyInformation(AreDifferent(DataContract.Zahlungstyp, value), PropertyName_Zahlungstyp);
FirePropertyChanged(PropertyName_Zahlungstyp);
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? Zahlungsdatum
{
get { return _Zahlungsdatum; }
set
{
if (!AreDifferent(_Zahlungsdatum, value))
{
return;
}
_Zahlungsdatum = value;
StoreDirtyInformation(AreDifferent(DataContract.Zahlungsdatum, value), PropertyName_Zahlungsdatum);
FirePropertyChanged(PropertyName_Zahlungsdatum);
}
}
[Validation(ValidationRule = ValidationRules.GreaterThanZero)]
public decimal? Betrag
{
get { return _Betrag; }
set
{
if (!AreDifferent(_Betrag, value))
{
return;
}
_Betrag = value;
StoreDirtyInformation(AreDifferent(DataContract.Betrag, value), PropertyName_Betrag);
FirePropertyChanged(PropertyName_Betrag);
}
}
public bool DarfEinzahlungBearbeiten
{
get
{
return Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung;
}
}
public bool DarfAuszahlungBearbeiten
{
get
{
return Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung;
}
}
public decimal? BetragEinzahlung
{
get {
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung)
{
return _Betrag;
}
return null;
}
set
{
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung)
{
if (!AreDifferent(_Betrag, value))
{
return;
}
_Betrag = value;
StoreDirtyInformation(AreDifferent(DataContract.Betrag, value), PropertyName_Betrag);
FirePropertyChanged(PropertyName_Betrag);
}
}
}
public decimal? BetragAuszahlung
{
get
{
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung)
{
return _Betrag;
}
return null;
}
set
{
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung)
{
if (!AreDifferent(_Betrag, value))
{
return;
}
_Betrag = value;
StoreDirtyInformation(AreDifferent(DataContract.Betrag, value), PropertyName_Betrag);
FirePropertyChanged(PropertyName_Betrag);
}
}
}
public String InsUser
{
get { return DataContract.InsUser; }
}
public DateTime? InsTs
{
get { return DataContract.InsTs; }
}
public decimal? Transaktionskassenbestand
{
get { return _Transaktionskassenbestand; }
set
{
if (!AreDifferent(_Transaktionskassenbestand, value))
return;
_Transaktionskassenbestand = value;
StoreDirtyInformation(AreDifferent(DataContract.Transaktionskassenbestand, value), PropertyName_Transaktionskassenbestand);
FirePropertyChanged(PropertyName_Transaktionskassenbestand);
}
}
public BargeldtransaktionsVM(BargeldtransaktionDC pDataContract) : base(pDataContract, pDataContract.BargeldtransaktionOid == null) { }
protected override void InitByDataContract(BargeldtransaktionDC pDataContract)
{
if (!IsNew)
{
_Zahlungsdatum = pDataContract.Zahlungsdatum;
_Betrag = pDataContract.Betrag;
//_Customer = pDataContract.Customer;
_Zahlungstyp = new EnumValue<Zahlungstyp>(pDataContract.Zahlungstyp, EnumTranslations.AllTranslations[pDataContract.Zahlungstyp]);
//_Transaktionskassenbestand = pDataContract.Transaktionskassenbestand;
_Notice = pDataContract.Notice;
_Belegnummer = pDataContract.Belegnummer;
}
}
protected override BargeldtransaktionDC MapToDataContract(BargeldtransaktionDC pDataContract, bool doCommit)
{
pDataContract.Zahlungsdatum = _Zahlungsdatum;
pDataContract.Betrag = _Betrag;
//pDataContract.Customer = _Customer;
pDataContract.Zahlungstyp = _Zahlungstyp.Enum;
//pDataContract.Transaktionskassenbestand = _Transaktionskassenbestand;
pDataContract.Notice = _Notice;
pDataContract.Belegnummer = _Belegnummer;
return pDataContract;
}
}
}