using System.ComponentModel.DataAnnotations; using System.Xml.Serialization; namespace Schaad.Accounting.Models { public class Account { public string Id { get; set; } [Display(Name = "Nummer")] [Required] public int Number { get; set; } [Display(Name = "Name")] [Required] [MinLength(3)] public string Name { get; set; } [Display(Name = "Währung")] [Required] [MinLength(3)] [MaxLength(3)] public string Currency { get; set; } [XmlIgnore] [Display(Name = "Klasse")] public int Class { get { return Number / 1000; } } [XmlIgnore] [Display(Name = "Subklasse")] public int SubClass { get { return Number / 100; } } /// /// If mapped to a bank account /// [Display(Name = "Bankkontonummer")] public string BankAccountNumber { get; set; } /// /// Start balance for acitvas /// [Display(Name = "Start Saldo")] public decimal StartBalance { get; set; } /// /// Last received balance from bank /// [Display(Name = "Letzter Banksaldo")] public decimal LastBankBalance { get; set; } [XmlIgnore] public bool IsFxAccount { get { return string.IsNullOrEmpty(Currency) == false && Currency != "CHF"; } } /// /// Makes a copy /// public void Copy(Account target) { target.LastBankBalance = LastBankBalance; target.StartBalance = StartBalance; target.BankAccountNumber = BankAccountNumber; target.Currency = string.IsNullOrEmpty(Currency) ? "CHF" : Currency; target.Id = Id; target.Name = Name; target.Number = Number; } } }