123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using InABox.Clients;
- using InABox.Core;
- namespace Comal.Classes
- {
-
- public enum PaperSize
- {
- A0,
- A1,
- A2,
- A3,
- A4,
- A5,
- Custom,
- NotSet
- }
- public class JobDocumentSet : Entity, IRemotable, IPersistent, IOneToMany<Job>, IJobDocumentSet, ILicense<ProjectManagementLicense>
- {
- [EntityRelationship(DeleteAction.Cascade)]
- [NullEditor]
- public JobLink Job { get; set; }
- [EntityRelationship(DeleteAction.Cascade)]
- [NullEditor]
- public JobDocumentSetFolderLink Folder { get; set; }
- [NullEditor]
- [EntityRelationship(DeleteAction.Cascade)]
- public JobDocumentSetLink Parent { get; set; }
- [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
- [EditorSequence(1)]
- public string Code { get; set; }
- [TextBoxEditor]
- [EditorSequence(2)]
- public string Description { get; set; }
- [EditorSequence(3)]
- public JobDocumentSetDisciplineLink Discipline { get; set; }
- [EditorSequence(4)]
- public JobDocumentSetTypeLink Type { get; set; }
- [DateTimeEditor]
- [EditorSequence(5)]
- public DateTime Date { get; set; }
- [Caption("Assigned To")]
- [EditorSequence(6)]
- public EmployeeLink Employee { get; set; }
- [EnumLookupEditor(typeof(PaperSize))]
- [EditorSequence("Advanced", 1)]
- public PaperSize Size { get; set; } = PaperSize.NotSet;
- [CodeEditor(Editable = Editable.Enabled)]
- [EditorSequence("Advanced", 2)]
- public string Scale { get; set; } = "";
- [EditorSequence("Advanced", 3)]
- public JobDocumentSetCategoryLink Category { get; set; }
- private class JobITPLookup : LookupDefinitionGenerator<JobITP, JobDocumentSet>
- {
- public override Filter<JobITP> DefineFilter(JobDocumentSet[] items)
- {
- Guid id = items.FirstOrDefault()?.Job.ID ?? Guid.Empty;
- return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(id);
- }
- public override Columns<JobDocumentSet> DefineFilterColumns()
- => new Columns<JobDocumentSet>(x => x.Job.ID);
- }
- [LookupDefinition(typeof(JobITPLookup))]
- [EditorSequence("Advanced", 4)]
- public JobITPLink Area { get; set; }
- [EditorSequence("Advanced", 5)]
- public DateTime Retired { get; set; }
- [ChildEntity(typeof(JobDocumentSetCurrentMileStone))]
- public LightJobDocumentSetMileStoneLink CurrentMileStone { get; set; }
- }
- public class JobDocumentSetCurrentMileStone : IChildEntityDefinition<JobDocumentSetMileStone>
- {
- public Filter<JobDocumentSetMileStone>? Filter { get; set; } = null;
- public SortOrder<JobDocumentSetMileStone>? Sort { get; set; }
- = new SortOrder<JobDocumentSetMileStone>(x => x.Type.Sequence, SortDirection.Descending).ThenBy(x => x.Created, SortDirection.Descending);
- public Expression<Func<JobDocumentSetMileStone, Guid>> Parent => x => x.DocumentSet.ID;
- }
- }
|