using System; using System.Linq; using InABox.Core; namespace Comal.Classes { [UserTracking(typeof(ManufacturingPacket))] public class Setout : Entity, IPersistent, IRemotable, ILicense { [EntityRelationship(DeleteAction.Cascade)] public JobLink JobLink { get; set; } [UniqueCodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)] public string Number { get; set; } [Obsolete("Supreceded by ManufacturingPacket.Serial")] public string Reference { get; set; } [MemoEditor] public string Description { get; set; } [Obsolete("Superceded by ManufacturingPacket.Location")] public string Location { get; set; } public DateTime DueDate { get; set; } //[NullEditor] //public PackableList Items { get; set; } //[NullEditor] //public PackableList Manufacturing { get; set; } private class JobStageLookup : LookupDefinitionGenerator { public override Filter DefineFilter(Setout[] items) { if (items.Length == 1) return new Filter(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID).And(x => x.IsHeader).IsEqualTo(false); return new Filter(x => x.ID).IsEqualTo(Guid.Empty); } public override Columns DefineFilterColumns() => Columns.None().Add(x => x.JobLink.ID); } [LookupDefinition(typeof(JobStageLookup))] public JobStageLink JobStage { get; set; } public SetoutGroupLink Group { get; set; } public override string ToString() { return string.Format("{0}: {1}", Number, Reference); } } }