Setout.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. [RequiredColumn]
  13. public string Number { get; set; }
  14. [Obsolete("Supreceded by ManufacturingPacket.Serial")]
  15. public string Reference { get; set; }
  16. [MemoEditor]
  17. public string Description { get; set; }
  18. [Obsolete("Superceded by ManufacturingPacket.Location")]
  19. public string Location { get; set; }
  20. public DateTime DueDate { get; set; }
  21. //[NullEditor]
  22. //public PackableList<FactoryTemplateItem> Items { get; set; }
  23. //[NullEditor]
  24. //public PackableList<ManufacturingItem> Manufacturing { get; set; }
  25. private class JobStageLookup : LookupDefinitionGenerator<JobStage, Setout>
  26. {
  27. public override Filter<JobStage> DefineFilter(Setout[] items)
  28. {
  29. if (items.Length == 1)
  30. return Filter<JobStage>.Where(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID).And(x => x.IsHeader).IsEqualTo(false);
  31. return Filter<JobStage>.Where(x => x.ID).IsEqualTo(Guid.Empty);
  32. }
  33. public override Columns<Setout> DefineFilterColumns()
  34. => Columns.None<Setout>().Add(x => x.JobLink.ID);
  35. }
  36. [LookupDefinition(typeof(JobStageLookup))]
  37. public JobStageLink JobStage { get; set; }
  38. public SetoutGroupLink Group { get; set; }
  39. public override string ToString()
  40. {
  41. return string.Format("{0}: {1}", Number, Reference);
  42. }
  43. static Setout()
  44. {
  45. DefaultColumns.Add<Setout>(x => x.Number);
  46. DefaultColumns.Add<Setout>(x => x.Description);
  47. DefaultColumns.Add<Setout>(x => x.DueDate);
  48. }
  49. }
  50. }