| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | using System;using InABox.Core;namespace Comal.Classes{    [UserTracking(typeof(Quote))]    public class QuoteCostSheetItem : Entity, IRemotable, IPersistent, IQuoteCostSheetItem, IOneToMany<QuoteCostSheet>, ITaxable, ILicense<QuotesManagementLicense>    {        [NullEditor]        [EntityRelationship(DeleteAction.Cascade)]        public QuoteCostSheetLink CostSheet { get; set; }        [EntityRelationship(DeleteAction.SetNull)]        [EditorSequence(1)]        public ProductLink Product { get; set; }        [TextBoxEditor]        [EditorSequence(2)]        public string Description { get; set; }        [DoubleEditor]        [EditorSequence(3)]        public double Qty { get; set; }        [DoubleEditor]        [EditorSequence(4)]        public double Cost { get; set; }        [EditorSequence(6)]        public TaxCodeLink TaxCode { get; set; }        [EnumLookupEditor(typeof(QuoteCostSheetItemLineType))]        public QuoteCostSheetItemLineType Type { get; set; }        [NullEditor]        public long Sequence { get; set; }        [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]        [EditorSequence(5)]        public double ExTax { get; set; }        [NullEditor]        public double TaxRate { get; set; }        [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]        [EditorSequence(7)]        public double Tax { get; set; }        [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]        [EditorSequence(8)]        public double IncTax { get; set; }        static QuoteCostSheetItem()        {            LinkedProperties.Register<QuoteCostSheetItem, ProductLink, String>(x => x.Product, x => x.Name, x => x.Description);            LinkedProperties.Register<QuoteCostSheetItem, ProductLink, double>(x => x.Product, x => x.NettCost, x => x.Cost);            LinkedProperties.Register<QuoteCostSheetItem, TaxCodeLink, Guid>(x => x.Product.TaxCode, x => x.ID, x => x.TaxCode.ID);            LinkedProperties.Register<QuoteCostSheetItem, TaxCodeLink, double>(x => x.Product.TaxCode, x => x.Rate, x => x.TaxCode.Rate);            LinkedProperties.Register<QuoteCostSheetItem, TaxCodeLink, double>(x=>x.TaxCode, x => x.Rate, x => x.TaxRate);        }        protected override void DoPropertyChanged(string name, object? before, object? after)        {            base.DoPropertyChanged(name, before, after);            if (name.Equals("Qty"))                ExTax = (double)after * Cost;            else if (name.Equals("Cost"))                ExTax = (double)after * Qty;        }    }}
 |