Setout.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Linq;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. [UserTracking(typeof(ManufacturingPacket))]
  7. public class Setout : Entity, IPersistent, IRemotable, ILicense<ManufacturingLicense>
  8. {
  9. [EntityRelationship(DeleteAction.Cascade)]
  10. public JobLink JobLink { get; set; }
  11. [UniqueCodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  12. public string Number { get; set; }
  13. [Obsolete("Supreceded by ManufacturingPacket.Serial")]
  14. public string Reference { get; set; }
  15. [MemoEditor]
  16. public string Description { get; set; }
  17. [Obsolete("Superceded by ManufacturingPacket.Location")]
  18. public string Location { get; set; }
  19. public DateTime DueDate { get; set; }
  20. //[NullEditor]
  21. //public PackableList<FactoryTemplateItem> Items { get; set; }
  22. //[NullEditor]
  23. //public PackableList<ManufacturingItem> Manufacturing { get; set; }
  24. private class JobStageLookup : LookupDefinitionGenerator<JobStage, Setout>
  25. {
  26. public override Filter<JobStage> DefineFilter(Setout[] items)
  27. {
  28. if (items.Length == 1)
  29. return new Filter<JobStage>(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID).And(x => x.IsHeader).IsEqualTo(false);
  30. return new Filter<JobStage>(x => x.ID).IsEqualTo(Guid.Empty);
  31. }
  32. public override Columns<Setout> DefineFilterColumns()
  33. => Columns.None<Setout>().Add(x => x.JobLink.ID);
  34. }
  35. [LookupDefinition(typeof(JobStageLookup))]
  36. public JobStageLink JobStage { get; set; }
  37. public SetoutGroupLink Group { get; set; }
  38. public override string ToString()
  39. {
  40. return string.Format("{0}: {1}", Number, Reference);
  41. }
  42. }
  43. }