JobBillOfMaterials.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Linq.Expressions;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public class JobBillOfMaterials : Entity, IRemotable, IPersistent, IOneToMany<Job>, ISequenceable, ILicense<ProjectManagementLicense>, INumericAutoIncrement<JobBillOfMaterials>
  7. {
  8. [NullEditor]
  9. [EntityRelationship(DeleteAction.Cascade)]
  10. public JobLink Job { get; set; }
  11. [IntegerEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
  12. [EditorSequence(1)]
  13. public int Number { get; set; }
  14. [EditorSequence(2)]
  15. public string Description { get; set; }
  16. [TimestampEditor]
  17. [EditorSequence(3)]
  18. [LoggableProperty]
  19. public DateTime Approved { get; set; }
  20. [NullEditor]
  21. public long Sequence { get; set; }
  22. [MemoEditor]
  23. public string Notes { get; set; }
  24. public Expression<Func<JobBillOfMaterials, int>> AutoIncrementField()
  25. {
  26. return x => x.Number;
  27. }
  28. public Filter<JobBillOfMaterials> AutoIncrementFilter()
  29. {
  30. return new Filter<JobBillOfMaterials>(x => x.Job.ID).IsEqualTo(Job.ID);
  31. }
  32. protected override void Init()
  33. {
  34. base.Init();
  35. Job = new JobLink();
  36. Notes = "";
  37. }
  38. }
  39. }