1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using System;
- using System.Linq.Expressions;
- using InABox.Core;
- namespace Comal.Classes
- {
- [UserTracking(typeof(Job))]
- public class JobITP : Entity, IRemotable, IPersistent, IOneToMany<Job>, IStringAutoIncrement<JobITP>, ILicense<ProjectManagementLicense>,
- IExportable,
- IImportable, IMergeable
- {
- [NullEditor]
- [EditorSequence(0)]
- public JobLink Job { get; set; }
- [CodeEditor(Editable = Editable.Enabled)]
- [EditorSequence(1)]
- public string Code { get; set; }
- [TextBoxEditor]
- [EditorSequence(2)]
- public string Description { get; set; }
- [MemoEditor]
- [EditorSequence(3)]
- public string Comments { get; set; }
- [EditorSequence(4)]
- public EmployeeLink EmployeeLink { get; set; }
- [DateEditor]
- [EditorSequence(5)]
- public DateTime DueDate { get; set; }
- [Caption("ITP Form Type")]
- [EditorSequence(6)]
- public DigitalFormLink DigitalForm { get; set; }
- private class OpenFormsFormula : ComplexFormulaGenerator<JobITP, int>
- {
- public override IComplexFormulaNode<JobITP, int> GetFormula() =>
- Count<JobITPForm, Guid>(x => x.Property(x => x.ID),
- new Filter<JobITPForm>(x => x.FormCompleted).IsEqualTo(DateTime.MinValue))
- .WithLink(x => x.Parent.ID, x => x.ID);
- }
- [ComplexFormula(typeof(OpenFormsFormula))]
- [EditorSequence(7)]
- public int OpenForms { get; set; }
- private class ClosedFormsFormula : ComplexFormulaGenerator<JobITP, int>
- {
- public override IComplexFormulaNode<JobITP, int> GetFormula() =>
- Count<JobITPForm, Guid>(x => x.Property(x => x.ID),
- new Filter<JobITPForm>(x => x.FormCompleted).IsNotEqualTo(DateTime.MinValue))
- .WithLink(x => x.Parent.ID, x => x.ID);
- }
- [ComplexFormula(typeof(ClosedFormsFormula))]
- [EditorSequence(7)]
- public int ClosedForms { get; set; }
- public Expression<Func<JobITP, string>> AutoIncrementField()
- {
- return x => x.Code;
- }
- public Filter<JobITP> AutoIncrementFilter()
- {
- return null;
- }
- public string AutoIncrementPrefix() => "";
- public string AutoIncrementFormat() => "{0:D4}";
- public override string ToString()
- {
- return string.Format("{0}: {1}", Code, Description);
- }
- }
- }
|