diff --git a/BMA.EHR.Leave/BMA.EHR.Leave.csproj b/BMA.EHR.Leave/BMA.EHR.Leave.csproj
index 83132dd1..28f42590 100644
--- a/BMA.EHR.Leave/BMA.EHR.Leave.csproj
+++ b/BMA.EHR.Leave/BMA.EHR.Leave.csproj
@@ -45,6 +45,7 @@
+
diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs
index 926842e4..6d16e8de 100644
--- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs
+++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs
@@ -17,6 +17,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using NodaTime;
using Org.BouncyCastle.Asn1.Pkcs;
using Sentry;
using Swashbuckle.AspNetCore.Annotations;
@@ -986,6 +987,13 @@ namespace BMA.EHR.Leave.Service.Controllers
// var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken);
var profile = await _userProfileRepository.GetProfileByKeycloakIdNewAsync(userId, AccessToken);
var govAge = (profile?.DateStart?.Date ?? DateTime.Now.Date).DiffDay(DateTime.Now.Date);
+ var date1Raw = profile?.DateStart?.Date ?? DateTime.Now.Date;
+ var date1 = new LocalDate(date1Raw.Year, date1Raw.Month, date1Raw.Day);
+ var date2 = new LocalDate(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
+ Period period = Period.Between(date1, date2);
+ var govAgeMonth = period.Months;
+ var govAgeYear = period.Years;
+
var thisYear = DateTime.Now.Year;
var message = string.Empty;
@@ -1055,12 +1063,11 @@ namespace BMA.EHR.Leave.Service.Controllers
case "LV-002":
// fix issue : ระบบลา (ขรก.) >> ลากิจส่วนตัว (กรณียื่นขอลาเกิน 45 วัน/ปี) #829
// fix issue : ระบบลา (ขรก.) >> ลากิจส่วนตัว (กรณีผู้เข้ารับราชการไม่เกิน 1 ปี ยื่นขอลาเกิน 15 วัน/ปี) #831
- if (govAge <= 365)
+ if (govAgeYear <= 1)
{
isLeave = (totalDay - (sumWorkDay + sumWeekend) + approveDay) <= 15;
if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด";
}
-
else
{
isLeave = (totalDay - (sumWorkDay + sumWeekend) + approveDay) <= 45;
@@ -1084,13 +1091,14 @@ namespace BMA.EHR.Leave.Service.Controllers
// fix issue : ระบบลา (ขรก.) >> ลาพักผ่อน (กรณีรับราชการไม่ถึง 6 เดือน) #838
//var leavePrevYear = (await _leaveRequestRepository.GetSumApproveLeaveAsync(fiscalYear - 1)).Where(x => x.LeaveTypeCode == "LV-005" && x.KeycloakUserId == userId).FirstOrDefault();
//var leavePrevYearRemain = 10 - (leavePrevYear == null ? 0 : leavePrevYear.SumLeaveDay); // หายอดวันลาที่เหลือของปีก่อน
- if (profile.IsProbation! == true)
- {
- isLeave = false;
- if (!isLeave) message = "ยังอยู่ในช่วงทดลองปฏิบัติราชการ ไม่สามารถลาพักผ่อนได้";
- }
- //else if (govAge >= 180)
- else
+ // if (profile.IsProbation! == true)
+ // {
+ // isLeave = false;
+ // if (!isLeave) message = "ยังอยู่ในช่วงทดลองปฏิบัติราชการ ไม่สามารถลาพักผ่อนได้";
+ // }
+ // else
+ if (govAgeMonth >= 6)
+ //else
{
isLeave = (totalDay - (sumWorkDay + sumWeekend) + approveDay) <= (limitDay);
if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด";
@@ -1112,17 +1120,16 @@ namespace BMA.EHR.Leave.Service.Controllers
// isLeave = (totalDay - (sumWorkDay + sumWeekend) + sumApproveLeave) <= (10 + leavePrevYearRemain);
// if (!isLeave) message = "จำนวนวันลาเกินที่กำหนด";
// }
-
- // else
- // {
- // isLeave = false;
- // if (!isLeave) message = "อายุราชการน้อยกว่า 6 เดือนหรือ 180 วัน";
- // }
+ else
+ {
+ isLeave = false;
+ if (!isLeave) message = "อายุราชการน้อยกว่า 6 เดือนหรือ 180 วัน";
+ }
break;
case "LV-006":
// fix issue : ระบบลา(ขรก.) >> ลาอุปสมบทหรือการลาประกอบพิธีฮัจย์ฯ(กรณีรับราชการน้อยกว่า 1 ปี) #840
- if (govAge < 365)
+ if (govAgeYear < 1)
{
isLeave = false;
if (!isLeave) message = "อายุราชการน้อยกว่า 1 ปีหรือ 365 วัน";
@@ -1148,7 +1155,7 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-008":
case "LV-009":
- isLeave = govAge >= 365;
+ isLeave = govAgeYear >= 1;
if (!isLeave) message = "อายุราชการน้อยกว่า 1 ปีหรือ 365 วัน";
break;
case "LV-010":