StandardLeave.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public interface IStandardLeave
  6. {
  7. string Name { get; set; }
  8. DateTime From { get; set; }
  9. DateTime To { get; set; }
  10. }
  11. public class StandardLeaveLink : EntityLink<StandardLeave>, IStandardLeave, IExportable, IImportable
  12. {
  13. [LookupEditor(typeof(StandardLeave))]
  14. public override Guid ID { get; set; }
  15. [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
  16. [EditorSequence(1)]
  17. public string Name { get; set; }
  18. [DateEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
  19. [EditorSequence(2)]
  20. public DateTime From { get; set; }
  21. [DateEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
  22. [EditorSequence(3)]
  23. public DateTime To { get; set; }
  24. }
  25. [UserTracking(typeof(LeaveRequest))]
  26. public class StandardLeave : Entity, IStandardLeave, IRemotable, IPersistent, ILicense<LeaveManagementLicense>
  27. {
  28. [TextBoxEditor]
  29. [EditorSequence(1)]
  30. public string Name { get; set; }
  31. [EntityRelationship(DeleteAction.SetNull)]
  32. [EditorSequence(2)]
  33. public ActivityLink LeaveType { get; set; }
  34. [DateEditor]
  35. [EditorSequence(3)]
  36. public DateTime From { get; set; }
  37. [TimeOfDayEditor]
  38. [EditorSequence(4)]
  39. public TimeSpan FromTime { get; set; }
  40. [DateEditor]
  41. [EditorSequence(5)]
  42. public DateTime To { get; set; }
  43. [TimeOfDayEditor]
  44. [EditorSequence(6)]
  45. public TimeSpan ToTime { get; set; }
  46. [TimestampEditor(Editable = Editable.Disabled)]
  47. public DateTime Processed { get; set; }
  48. protected override void Init()
  49. {
  50. base.Init();
  51. LeaveType = new ActivityLink();
  52. ToTime = new TimeSpan(23, 59, 59);
  53. }
  54. }
  55. public class PublicHolidayLookups : EntityLookup<StandardLeave>
  56. {
  57. public override Columns<StandardLeave> DefineColumns()
  58. {
  59. return new Columns<StandardLeave>().Default();
  60. }
  61. public override Filter<StandardLeave> DefineFilter()
  62. {
  63. return null;
  64. }
  65. public override SortOrder<StandardLeave> DefineSortOrder()
  66. {
  67. return new SortOrder<StandardLeave>(x => x.From);
  68. }
  69. }
  70. }