JobBillOfMaterials.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  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() => x => x.Number;
  25. public Filter<JobBillOfMaterials> AutoIncrementFilter() => new Filter<JobBillOfMaterials>(x => x.Job.ID).IsEqualTo(Job.ID);
  26. public int AutoIncrementDefault() => 1;
  27. }
  28. }