using InABox.Core; namespace Comal.Classes { [UserTracking(typeof(Invoice))] public class InvoiceLine : Entity, IPersistent, IRemotable, ISequenceable, IOneToMany, ITaxable, ILicense { [NullEditor] [EntityRelationship(DeleteAction.Cascade)] public InvoiceLink InvoiceLink { get; set; } [MemoEditor] [EditorSequence(1)] public string Description { get; set; } [EditorSequence(2)] [DoubleEditor(Summary = Summary.Sum)] public double ExTax { get; set; } [EditorSequence(3)] public TaxCodeLink TaxCode { get; set; } [EditorSequence(4)] [DoubleEditor(Summary = Summary.Sum)] public double IncTax { get; set; } [EditorSequence(5)] public JobFinancialLink Financial { get; set; } [EditorSequence(6)] public CostCentreLink CostCentre { get; set; } [EditorSequence(7)] [CurrencyEditor(Editable = Editable.Hidden)] public double Amount { get; set; } [EditorSequence(8)] [DoubleEditor(Editable = Editable.Hidden)] public double TaxRate { get; set; } [EditorSequence(9)] [DoubleEditor(Editable = Editable.Hidden, Summary = Summary.Sum)] public double Tax { get; set; } [NullEditor] public long Sequence { get; set; } protected override void Init() { base.Init(); InvoiceLink = new InvoiceLink(); TaxCode = new TaxCodeLink(() => this); Financial = new JobFinancialLink(); CostCentre = new CostCentreLink(); } static InvoiceLine() { LinkedProperties.Register(x => x.TaxCode, x => x.Rate, x => x.TaxRate); } } }