| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | using System;using InABox.Core;namespace Comal.Classes{    [UserTracking("Accounts Payable")]    public class Bill : Entity, IPersistent, IRemotable, ILicense<AccountsPayableLicense>, IScannable, IPostable    {                [EditorSequence(1)]        [TextBoxEditor]        public string Number { get; set; }                [EditorSequence(2)]        [EntityRelationship(DeleteAction.Cascade)]        public SupplierLink SupplierLink { get; set; }                [EditorSequence(3)]        [DateEditor]        public DateTime BillDate { get; set; }                [EditorSequence(4)]        [DateEditor]        public DateTime PaymentDate { get; set; }        [EditorSequence(5)]        [DateEditor]        public DateTime AccountingDate { get; set; }        [EditorSequence("Additional",1)]        [TimestampEditor]        public DateTime Checked { get; set; }        [EditorSequence("Additional",2)]        [TimestampEditor]        public DateTime Approved { get; set; }                        [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        [Aggregate(typeof(BillExTax))]        public double ExTax { get; set; }        [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        [Aggregate(typeof(BillTax))]        public double Tax { get; set; }        [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        [Aggregate(typeof(BillIncTax))]        public double IncTax { get; set; }        [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        [Aggregate(typeof(BillAmountPaid))]        public double AmountPaid { get; set; }        [CurrencyEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        [Formula(typeof(BillBalance))]        public double Balance { get; set; }        [Aggregate(typeof(BillDocumentCount))]        [IntegerEditor(Editable = Editable.Hidden)]        public int Documents { get; set; }        [NullEditor]        [LoggableProperty]        public DateTime Posted { get; set; }        [NullEditor]        [LoggableProperty]        public PostedStatus PostedStatus { get; set; }        [NullEditor]        public string PostedNote { get; set; }        [NullEditor]        public string PostedReference { get; set; }        protected override void Init()        {            base.Init();            SupplierLink = new SupplierLink(() => this);        }        protected override void DoPropertyChanged(string name, object before, object after)        {            base.DoPropertyChanged(name, before, after);            if (name.Equals("AmountPaid") || name.Equals("IncTax"))                Balance = IncTax - AmountPaid;        }    }}
 |