1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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; }
- protected override void Init()
- {
- base.Init();
- CostSheet = new QuoteCostSheetLink();
- Product = new ProductLink(() => this);
- TaxCode = new TaxCodeLink(() => this);
- }
- 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;
- }
- }
- }
|