JobBillOfMaterials.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. }
  33. }