| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | using System;using InABox.Core;namespace Comal.Classes{    [UserTracking("Accounts Payable")]    public class Bill : Entity, IPersistent, IRemotable, ILicense<AccountsPayableLicense>, IScannable    {        [EntityRelationship(DeleteAction.Cascade)]        public SupplierLink SupplierLink { get; set; }        [DateEditor]        public DateTime Date { get; set; }        [TextBoxEditor]        public string Number { 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; }        [TimestampEditor]        public DateTime Checked { get; set; }        [TimestampEditor]        public DateTime Approved { get; set; }        [Aggregate(typeof(BillDocumentCount))]        [IntegerEditor(Editable = Editable.Hidden)]        public int Documents { 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;        }    }}
 |