| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | using System;using InABox.Core;namespace Comal.Classes{    [UserTracking("Accounts Payable")]    public class Bill : Entity, IPersistent, IRemotable, ILicense<AccountsPayableLicense>, IDataEntryInstance, IPostable    {                [EditorSequence(1)]        [EntityRelationship(DeleteAction.Cascade)]        public SupplierLink SupplierLink { get; set; }                [EditorSequence(2)]        [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]        public string Number { get; set; }        [EditorSequence(3)]        [MemoEditor]        public string Description { get; set; }        [EditorSequence(4)]        [DateEditor]        public DateTime BillDate { get; set; }                [EditorSequence(5)]        [DateEditor]        public DateTime PaymentDate { get; set; }        [EditorSequence(6)]        [DateEditor]        public DateTime AccountingDate { get; set; }                [EditorSequence("Additional",1)]        [TimestampEditor]        public DateTime DataEntered { get; set; }                [EditorSequence("Additional",2)]        [TimestampEditor]        [Security(typeof(CanCheckBills), Editable = Editable.Disabled)]        public DateTime Checked { get; set; }        [EditorSequence("Additional",3)]        [TimestampEditor]        [Security(typeof(CanApproveBills), Editable = Editable.Disabled)]        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 DoPropertyChanged(string name, object? before, object? after)        {            base.DoPropertyChanged(name, before, after);            if (name.Equals("AmountPaid") || name.Equals("IncTax"))                Balance = IncTax - AmountPaid;        }    }}
 |