| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | using System;using InABox.Core;namespace Comal.Classes{    public class BillLineLink : EntityLink<BillLine>    {        [NullEditor]        public override Guid ID { get; set; }    }    [UserTracking(typeof(Bill))]    public class BillLine : Entity, IPersistent, IRemotable, IOneToMany<Bill>, ITaxable, ILicense<AccountsPayableLicense>, IPostableFragment    {        [EntityRelationship(DeleteAction.Cascade)]        [NullEditor]        public BillLink BillLink { get; set; }        [EntityRelationship(DeleteAction.SetNull)]        [EditorSequence(1)]        public PurchaseOrderItemLink OrderItem { get; set; }        [MemoEditor]        [EditorSequence(2)]        public string Description { get; set; }                [EditorSequence(3)]        public PurchaseGLCodeLink PurchaseGL { get; set; }                [EditorSequence(4)]        public CostCentreLink CostCentre { get; set; }        [DoubleEditor(Summary = Summary.Sum)]        [EditorSequence(5)]        public double ExTax { get; set; }        [RequiredColumn]        [EditorSequence(6)]        public TaxCodeLink TaxCode { get; set; }        [DoubleEditor(Editable = Editable.Hidden)]        public double TaxRate { get; set; }        [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)]        public double Tax { get; set; }        [DoubleEditor(Summary = Summary.Sum)]        [EditorSequence(7)]        public double IncTax { get; set; }        [NullEditor]        public string PostedReference { get; set; }                protected override void Init()        {            base.Init();            BillLink = new BillLink();            TaxCode = new TaxCodeLink(() => this);                        OrderItem = new PurchaseOrderItemLink(() => this);            CostCentre = new CostCentreLink(() => this);            PurchaseGL = new PurchaseGLCodeLink(() => this);        }        static BillLine()        {                        LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.ExTax,                x => x.ExTax);            LinkedProperties.Register<BillLine, PurchaseGLCodeLink, Guid>(x => x.OrderItem.PurchaseGL, x => x.ID,                x => x.PurchaseGL.ID);                        LinkedProperties.Register<BillLine, CostCentreLink, Guid>(x => x.OrderItem.CostCentre, x => x.ID,                x => x.CostCentre.ID);                        LinkedProperties.Register<BillLine, TaxCodeLink, Guid>(x => x.OrderItem.TaxCode, x => x.ID,                x => x.TaxCode.ID);                        LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Code,                x => x.TaxCode.Code);                        LinkedProperties.Register<BillLine, TaxCodeLink, String>(x => x.OrderItem.TaxCode, x => x.Description,                x => x.TaxCode.Description);                        LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.OrderItem.TaxCode, x => x.Rate,                x => x.TaxCode.Rate);                                    LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.Tax,                x => x.Tax);                        LinkedProperties.Register<BillLine, PurchaseOrderItemLink, double>(x => x.OrderItem, x => x.IncTax,                x => x.IncTax);            LinkedProperties.Register<BillLine, TaxCodeLink, double>(x => x.TaxCode, x => x.Rate, x => x.TaxRate);        }           }}
 |