| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- using System;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     [UserTracking(typeof(Qualification))]
 
-     public class EmployeeQualification : Entity, IRemotable, IPersistent, IManyToMany<Employee, Qualification>, ILicense<HumanResourcesLicense>,
 
-         IExportable, IImportable
 
-     {
 
-         [EditorSequence(0)]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public EmployeeLink Employee { get; set; }
 
-         [EditorSequence(1)]
 
-         [EntityRelationship(DeleteAction.Cascade)]
 
-         public QualificationLink Qualification { get; set; }
 
-         [EditorSequence(2)]
 
-         public string QualificationNumber { get; set; }
 
-         [DateEditor]
 
-         [EditorSequence(3)]
 
-         public DateTime Qualified { get; set; }
 
-         [DateEditor]
 
-         [EditorSequence(4)]
 
-         public DateTime Expiry { get; set; }
 
-         [EditorSequence(5)]
 
-         public ImageDocumentLink FrontPhoto { get; set; }
 
-         [EditorSequence(6)]
 
-         public ImageDocumentLink BackPhoto { get; set; }
 
-         [TimestampEditor]
 
-         [EditorSequence(7)]
 
-         public DateTime Verified { get; set; }
 
-         protected override void DoPropertyChanged(string name, object? before, object? after)
 
-         {
 
-             base.DoPropertyChanged(name, before, after);
 
-             if (name.Equals(nameof(Qualified)))
 
-                 Expiry = CalculateExpiry((DateTime)after, Qualification.Renewal, Qualification.Period, Expiry);
 
-         }
 
-         public DateTime CalculateExpiry(DateTime start, QualificationRenewal renewal, int period, DateTime expiry)
 
-         {
 
-             if (renewal == QualificationRenewal.Permanent)
 
-                 return DateTime.MaxValue;
 
-             if (renewal == QualificationRenewal.Days)
 
-                 return start.AddDays(period);
 
-             if (renewal == QualificationRenewal.Weeks)
 
-                 return start.AddDays(period * 7);
 
-             if (renewal == QualificationRenewal.Months)
 
-                 return start.AddMonths(period);
 
-             if (renewal == QualificationRenewal.Years)
 
-                 return start.AddYears(period);
 
-             return expiry.Equals(DateTime.MaxValue) || expiry.Equals(DateTime.MinValue) ? DateTime.Today : expiry;
 
-         }
 
-     }
 
- }
 
 
  |