Add NodaTime package and update LeaveRequestController to use LocalDate for date calculations
#2324
This commit is contained in:
parent
c42aaa38f6
commit
b8df2d4024
2 changed files with 25 additions and 17 deletions
|
|
@ -45,6 +45,7 @@
|
|||
<PackageReference Include="Microsoft.IdentityModel.Logging" Version="6.31.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.18.1" />
|
||||
<PackageReference Include="NEST" Version="7.17.5" />
|
||||
<PackageReference Include="NodaTime" Version="3.3.0" />
|
||||
<PackageReference Include="runtime.osx.10.10-x64.CoreCompat.System.Drawing" Version="6.0.5.128" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
|
||||
|
|
|
|||
|
|
@ -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":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue