Contract.cs 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using MTWorkHR.Core.Entities.Base;
  2. using MTWorkHR.Core.Global;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.ComponentModel.DataAnnotations.Schema;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace MTWorkHR.Core.Entities
  11. {
  12. public class Contract : FullAuditEntity, IHaveCompany
  13. {
  14. public ContractTypeEnum ContractTypeId { get; set; }
  15. public ContractStatusEnum ContractStatusId { get; set; }
  16. public long CompanyId { get; set; }
  17. public string CompanyRepresentativeId { get; set; }
  18. public string UserId { get; set; }
  19. public int? JobId { get; set; }
  20. public int? AcademicQualificationId { get; set; }
  21. public int? SpecializationId { get; set; }
  22. public int WorkCountryId { get; set; }
  23. public int WorkStateId { get; set; }
  24. public int ContractorTaxResidencyId { get; set; }
  25. //-------------------Scope of work-----------
  26. public int? JobTitleId { get; set; }
  27. public string? JobDescription{ get; set; }
  28. [MaxLength(150)]
  29. public string? JobNumber { get; set; } //ثابت و مأخوذ من المنصة
  30. //----------------Contract data -------------------------
  31. public DateTime? StartDate { get; set; }
  32. public DateTime? EndDate { get; set; }
  33. public int ContractDurationId { get; set; } //: اختيار: شهري – ربعي – نصف سنوي – 3 ارباع – سنوي
  34. public TypeOfWork TypeOfWork { get; set; } //: : اختيار: عقد بدوام كامل - عقد دوام جزئي
  35. public int VacationDays { get; set; } //اختيار: بدون – سنويا (رقم)
  36. public int TrialPeriod { get; set; } // تجربة (ادخال: تلقائياً كل ربع سنوي أسبوع تلقائياً) آخر: تعديل
  37. public TerminateContractEnum WhoCanTerminateContractInTrial { get; set; } //اختيار الجميع – صاحب العمل – الموظف
  38. public TerminateContractEnum WhoCanTerminateContract { get; set; }
  39. public int NoticePeriodBeforeTermination { get; set; } //اختيار: بدون – تحديد (ادخال: تلقائياً مدة 10 أيام قبل انتهاء الاستحقاق) آخر: تعديل
  40. //------Working time---------------
  41. public string WorkingDays { get; set; } //: اختيار متعدد الأيام سبت أحد اثنين..... (بحيث الأيام الأخرى تكون إجازة) 1,2,3,4,5
  42. public WorkingHours WorkingHours { get; set; } // يومي/ اسبوعي
  43. public DateTime? StartDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  44. public DateTime? EndDailyWorkingHours { get; set; } // تحديد ساعات الدوام قائمة الساعات << التوقيت بحسب دولة صاحب العمل
  45. //----------Salary-----------------
  46. [MaxLength(50)]
  47. public string? Currency { get; set; }
  48. public decimal? Salary{ get; set; }
  49. public BillingCycle BillingCycle { get; set; }// 2 fortnightly, 4 Monthly
  50. //---------Allowances----------------------
  51. public bool IncludesAllAllowances { get; set; }
  52. public List<ContractAllowance>? FixedAllowances { get; set; }
  53. //-------------------------------
  54. public List<ContractTask>? ContractTasks { get; set; }
  55. public List<ProjectStage>? ProjectStages { get; set; }
  56. // public decimal? GrossAnnualBaseSalary { get; set; }
  57. // public bool? AddSigningBonus { get; set; }
  58. // public bool? AddAnnualVariableCompensation { get; set; }
  59. //public bool FullTime { get; set; } = true; //full-time that will be 40 hours , part-time will be add it manually
  60. //public int EmployeeTypeHours { get; set; } = 40; //full-time that will be 40 hours , part-time will be add it manually
  61. //public int PaidVacationDays { get; set; }
  62. //public int SickDays { get; set; }
  63. //public bool EmploymentTerms { get; set; }
  64. }
  65. }