fix defect 12/12/66 14:16

This commit is contained in:
Suphonchai Phoonsawat 2023-12-12 14:17:00 +07:00
parent d4ae5f8c53
commit 7fa4ba9750
10 changed files with 192 additions and 65 deletions

35
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md.
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/BMA.EHR.Leave.Service/bin/Debug/net7.0/BMA.EHR.Leave.Service.dll",
"args": [],
"cwd": "${workspaceFolder}/BMA.EHR.Leave.Service",
"stopAtEntry": false,
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}

41
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,41 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/BMA.EHR.Solution.sln",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary;ForceNoAlign"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/BMA.EHR.Solution.sln",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary;ForceNoAlign"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"--project",
"${workspaceFolder}/BMA.EHR.Solution.sln"
],
"problemMatcher": "$msCompile"
}
]
}

View file

@ -39,6 +39,8 @@ namespace BMA.EHR.Application
services.AddTransient<HolidayRepository>();
//services.AddTransient<UserDutyTimeRepository>();
return services;
}

View file

@ -138,6 +138,23 @@ namespace BMA.EHR.Application.Repositories
}
}
public Guid? GetRootOcId(Guid ocId)
{
try
{
var data = _dbContext.Set<OrganizationEntity>()
.FirstOrDefault(o => o.Id == ocId);
return data == null ? Guid.Empty : data.OrganizationAgencyId;
}
catch
{
throw;
}
}
#endregion
}
}

View file

@ -175,7 +175,7 @@ namespace BMA.EHR.Leave.Service.Controllers
EndTimeMorning = data.EndTimeMorning,
StartTimeAfternoon = data.StartTimeAfternoon,
EndTimeAfternoon = data.EndTimeAfternoon,
IsActive = true,
IsActive = data.IsActive,
IsDefault = true,
};
@ -244,7 +244,7 @@ namespace BMA.EHR.Leave.Service.Controllers
}
}
oldData.Description = data.Description;
oldData.Description = data.Description ?? "";
oldData.IsDefault = data.IsDefault;
oldData.IsActive = data.IsActive;
@ -1309,8 +1309,8 @@ namespace BMA.EHR.Leave.Service.Controllers
{
Id = data.Id,
CheckInTime = checkInData == null ? "00:00" : checkInData.CheckIn.ToString("HH:mm"),
CheckOutTime = checkInData == null ? "00:00" : checkInData.CheckOut == null ? "00:00" : checkInData.CheckOut.Value.ToString("HH:mm"),
CheckInTime = checkInData == null ? duty.StartTimeMorning : checkInData.CheckIn.ToString("HH:mm"),
CheckOutTime = checkInData == null ? duty.EndTimeAfternoon : checkInData.CheckOut == null ? "00:00" : checkInData.CheckOut.Value.ToString("HH:mm"),
CheckInStatus = checkInData == null ? null :
DateTime.Parse(checkInData.CheckIn.ToString("yyyy-MM-dd HH:mm")) >

View file

@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Mvc.Routing;
using Sentry;
using Swashbuckle.AspNetCore.Annotations;
using System.Security.Claims;
using BMA.EHR.Application.Repositories.Commands;
namespace BMA.EHR.Leave.Service.Controllers
{
@ -35,6 +36,7 @@ namespace BMA.EHR.Leave.Service.Controllers
private readonly LeaveRequestRepository _leaveRequestRepository;
private readonly MinIOLeaveService _minIOService;
private readonly HolidayRepository _holidayRepository;
private readonly CommandRepository _commandRepository;
#endregion
@ -48,7 +50,8 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveTypeRepository leaveTypeRepository,
LeaveRequestRepository leaveRequestRepository,
MinIOLeaveService minIOService,
HolidayRepository holidayRepository)
HolidayRepository holidayRepository,
CommandRepository commandRepository)
{
_context = context;
_httpContextAccessor = httpContextAccessor;
@ -59,6 +62,7 @@ namespace BMA.EHR.Leave.Service.Controllers
_leaveRequestRepository = leaveRequestRepository;
_minIOService = minIOService;
_holidayRepository = holidayRepository;
_commandRepository = commandRepository;
}
#endregion
@ -165,8 +169,10 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-005":
{
leaveRequest.RestDayOldTotal = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1);
leaveRequest.RestDayCurrentTotal = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear);
leaveRequest.RestDayOldTotal =
await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1);
leaveRequest.RestDayCurrentTotal =
await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear);
}
break;
case "LV-006":
@ -186,7 +192,6 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveRequest.LeaveGovernmentDate = profile.DateStart;
leaveRequest.HajjDayStatus = req.HajjDayStatus ?? false;
}
break;
case "LV-007":
@ -206,7 +211,8 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText = lastSalary == null ? "" : ((int)lastSalary.Amount.Value).ToThaiBahtText(false);
leaveRequest.LeaveSalaryText =
lastSalary == null ? "" : ((int)lastSalary.Amount.Value).ToThaiBahtText(false);
leaveRequest.LeaveBirthDate = profile.BirthDate;
leaveRequest.LeaveGovernmentDate = profile.DateStart;
@ -218,7 +224,6 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveRequest.StudyDayTrainingSubject = req.StudyDayTrainingSubject ?? "";
leaveRequest.StudyDayTrainingName = req.StudyDayTrainingName ?? "";
}
break;
case "LV-010":
@ -226,7 +231,8 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText = lastSalary == null ? "" : ((int)lastSalary.Amount.Value).ToThaiBahtText(false);
leaveRequest.LeaveSalaryText =
lastSalary == null ? "" : ((int)lastSalary.Amount.Value).ToThaiBahtText(false);
leaveRequest.CoupleDayName = req.CoupleDayName ?? "";
leaveRequest.CoupleDayPosition = req.CoupleDayPosition ?? "";
@ -242,8 +248,6 @@ namespace BMA.EHR.Leave.Service.Controllers
leaveRequest.CoupleDayEndDateHistory = req.CoupleDayEndDateHistory.Value;
leaveRequest.CoupleDaySumTotalHistory = req.CoupleDaySumTotalHistory ?? "";
}
break;
}
@ -288,24 +292,32 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var approver = string.Empty;
if (rootOc != null)
{
var list = await _commandRepository.GetOrgApproverAsync(rootOc ?? Guid.Empty);
if (list.Count > 0)
approver = list.First().Name;
}
var result = new GetUserLeaveProfileResultDto
{
DateSendLeave = DateTime.Now.Date,
LeaveTypeName = leaveType.Name,
Dear = "นายณัฐพงษ์ ดิษยบุตร",
Dear = approver,
FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}",
PositionName = profile.Position.Name,
PositionLevelName = profile.PositionEmployeeLevel.Name,
OrganizationName = profile.Oc,
PositionName = profile.Position == null ? "" : profile.Position.Name,
PositionLevelName = profile.PositionLevel == null ? "" : profile.PositionLevel.Name,
OrganizationName = profile.Oc ?? "",
LeaveLimit = leaveType.Limit,
LeaveTotal = sumLeave,
LeaveRemain = leaveType.Limit - sumLeave,
RestDayTotalOld = restOldDay,
BirthDate = profile.BirthDate.Date,
DateAppoint = profile.DateAppoint.Value.Date,
DateAppoint = profile.DateAppoint == null ? null : profile.DateAppoint.Value.Date,
Salary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value,
SalaryText = lastSalary == null ? "" : ((int)lastSalary.Amount.Value).ToThaiBahtText(false),
};
return Success(result);
@ -332,9 +344,12 @@ namespace BMA.EHR.Leave.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var sumLeave = await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, req.StartLeaveDate.Year);
var sumLeave =
await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, req.StartLeaveDate.Year);
var sumWorkDay = await _holidayRepository.GetHolidayCountAsync(req.StartLeaveDate, req.EndLeaveDate);
var totalDay = req.StartLeaveDate.DiffDay(req.EndLeaveDate);
var sumWeekend = _holidayRepository.GetWeekEndCount(req.StartLeaveDate, req.EndLeaveDate);
var isLeave = sumLeave + (totalDay - sumWorkDay) <= leaveType.Limit;
var result = new GetLeaveCheckResultDto
@ -342,6 +357,7 @@ namespace BMA.EHR.Leave.Service.Controllers
IsLeave = isLeave,
SumDateWork = sumWorkDay,
TotalDate = totalDay,
SumDateHoliday = sumWeekend
};
return Success(result);
@ -360,7 +376,8 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetLeaveRequestCalendarAsync([FromBody] GetLeaveRequestCalendarDto req)
public async Task<ActionResult<ResponseObject>> GetLeaveRequestCalendarAsync(
[FromBody] GetLeaveRequestCalendarDto req)
{
//var thisYear = DateTime.Now.Year;
var data = await _leaveRequestRepository.GetLeaveRequestByYearAsync(req.Year);
@ -402,7 +419,8 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetLeaveRequestTableAsync([FromBody] GetLeaveRequestTableDto req)
public async Task<ActionResult<ResponseObject>> GetLeaveRequestTableAsync(
[FromBody] GetLeaveRequestTableDto req)
{
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
@ -412,7 +430,8 @@ namespace BMA.EHR.Leave.Service.Controllers
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
}
var rawData = await _leaveRequestRepository.GetLeaveRequestByUserIdAsync(userId, req.Year, req.Type, req.Status);
var rawData =
await _leaveRequestRepository.GetLeaveRequestByUserIdAsync(userId, req.Year, req.Type, req.Status);
var result = new List<GetLeaveRequestTableResultDto>();
@ -437,7 +456,6 @@ namespace BMA.EHR.Leave.Service.Controllers
var pageResult = result.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
return Success(new { data = pageResult, total = result.Count });
}
/// <summary>
@ -473,7 +491,9 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalaryAmount = lastSalary == null ? 0 : lastSalary.Amount ?? 0;
var lastLeaveRequest = await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(rawData.KeycloakUserId, rawData.Type.Id);
var lastLeaveRequest =
await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(rawData.KeycloakUserId,
rawData.Type.Id);
var result = new GetLeaveRequestByIdDto
{
@ -537,7 +557,6 @@ namespace BMA.EHR.Leave.Service.Controllers
CoupleDayStartDateHistory = rawData.CoupleDayStartDateHistory,
CoupleDayEndDateHistory = rawData.CoupleDayEndDateHistory,
CoupleDaySumTotalHistory = rawData.CoupleDaySumTotalHistory,
};
return Success(result);
@ -555,7 +574,8 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetLeaveRequestForAdminAsync([FromBody] GetLeaveRequestForAdminDto req)
public async Task<ActionResult<ResponseObject>> GetLeaveRequestForAdminAsync(
[FromBody] GetLeaveRequestForAdminDto req)
{
var rawData = await _leaveRequestRepository.GetLeaveRequestForAdminAsync(req.Year, req.Type, req.Status);
@ -597,7 +617,8 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> CancelLeaveRequestAsync([FromForm] CancelLeaveRequestDto req, Guid id)
public async Task<ActionResult<ResponseObject>> CancelLeaveRequestAsync([FromForm] CancelLeaveRequestDto req,
Guid id)
{
var data = await _leaveRequestRepository.GetByIdAsync(id);
if (data == null)
@ -630,7 +651,6 @@ namespace BMA.EHR.Leave.Service.Controllers
// await _leaveRequestRepository.AddAsync(data);
return Success();
}
/// <summary>
@ -645,9 +665,11 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetCancelLeaveRequestForAdminAsync([FromBody] GetLeaveRequestForAdminDto req)
public async Task<ActionResult<ResponseObject>> GetCancelLeaveRequestForAdminAsync(
[FromBody] GetLeaveRequestForAdminDto req)
{
var rawData = await _leaveRequestRepository.GetCancelLeaveRequestForAdminAsync(req.Year, req.Type, req.Status);
var rawData =
await _leaveRequestRepository.GetCancelLeaveRequestForAdminAsync(req.Year, req.Type, req.Status);
var result = new List<GetLeaveCancelRequestResultDto>();
@ -717,7 +739,9 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveAddress = rawData.LeaveAddress,
LeaveNumber = rawData.LeaveNumber,
LeaveDetail = rawData.LeaveDetail,
LeaveDocDelete = rawData.LeaveCancelDocument == null ? "" : await _minIOService.ImagesPath(rawData.LeaveCancelDocument.Id),
LeaveDocDelete = rawData.LeaveCancelDocument == null
? ""
: await _minIOService.ImagesPath(rawData.LeaveCancelDocument.Id),
LeaveReasonDelete = rawData.LeaveCancelComment ?? "",
LeaveTotal = rawData.LeaveTotal,
};
@ -737,9 +761,9 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> ApproveCancelLeaveRequestAsync(Guid id, [FromBody] CancelLeaveRequestApproveDto req)
public async Task<ActionResult<ResponseObject>> ApproveCancelLeaveRequestAsync(Guid id,
[FromBody] CancelLeaveRequestApproveDto req)
{
await _leaveRequestRepository.ApproveCancelLeaveRequestAsync(id, req.Reason ?? "");
return Success();
@ -758,9 +782,9 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> RejectCancelLeaveRequestAsync(Guid id, [FromBody] CancelLeaveRequestApproveDto req)
public async Task<ActionResult<ResponseObject>> RejectCancelLeaveRequestAsync(Guid id,
[FromBody] CancelLeaveRequestApproveDto req)
{
await _leaveRequestRepository.RejectCancelLeaveRequestAsync(id, req.Reason ?? "");
return Success();
@ -780,7 +804,6 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> OfficerApproveLeaveRequestAsync(Guid id)
{
await _leaveRequestRepository.OfficerApproveLeaveRequest(id);
return Success();
@ -794,13 +817,13 @@ namespace BMA.EHR.Leave.Service.Controllers
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("admin/approve/commander/{id:guid}")]
[HttpPut("admin/approve/comander/{id:guid}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> CommanderApproveLeaveRequestAsync(Guid id, [FromBody] LeaveRequestApproveDto req)
public async Task<ActionResult<ResponseObject>> CommanderApproveLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
await _leaveRequestRepository.CommanderApproveLeaveRequest(id, req.Reason ?? "");
return Success();
@ -818,9 +841,9 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> ApproveLeaveRequestAsync(Guid id, [FromBody] LeaveRequestApproveDto req)
public async Task<ActionResult<ResponseObject>> ApproveLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
await _leaveRequestRepository.ApproveLeaveRequest(id, req.Reason ?? "");
return Success();
@ -838,9 +861,9 @@ namespace BMA.EHR.Leave.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> RejectLeaveRequestAsync(Guid id, [FromBody] LeaveRequestApproveDto req)
public async Task<ActionResult<ResponseObject>> RejectLeaveRequestAsync(Guid id,
[FromBody] LeaveRequestApproveDto req)
{
await _leaveRequestRepository.RejectLeaveRequest(id, req.Reason ?? "");
return Success();
@ -879,7 +902,9 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalaryAmount = lastSalary == null ? 0 : lastSalary.Amount ?? 0;
var lastLeaveRequest = await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(rawData.KeycloakUserId, rawData.Type.Id);
var lastLeaveRequest =
await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(rawData.KeycloakUserId,
rawData.Type.Id);
var result = new GetLeaveRequestForAdminByIdDto
{
@ -948,7 +973,6 @@ namespace BMA.EHR.Leave.Service.Controllers
CoupleDayStartDateHistory = rawData.CoupleDayStartDateHistory,
CoupleDayEndDateHistory = rawData.CoupleDayEndDateHistory,
CoupleDaySumTotalHistory = rawData.CoupleDaySumTotalHistory,
};
return Success(result);
@ -976,13 +1000,17 @@ namespace BMA.EHR.Leave.Service.Controllers
var result = new List<dynamic>();
foreach (var leaveType in leaveTypes)
{
var send = await _leaveRequestRepository.GetSumSendLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var send = await _leaveRequestRepository.GetSumSendLeaveByTypeForUserAsync(userId, leaveType.Id,
thisYear);
var approve = await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var approve =
await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var reject = await _leaveRequestRepository.GetSumRejectLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var reject =
await _leaveRequestRepository.GetSumRejectLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var delete = await _leaveRequestRepository.GetSumDeleteLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var delete =
await _leaveRequestRepository.GetSumDeleteLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
var data = new
{
@ -997,7 +1025,6 @@ namespace BMA.EHR.Leave.Service.Controllers
LeaveCountDelete = delete,
};
result.Add(data);
}
return Success(result);

View file

@ -23,5 +23,8 @@ namespace BMA.EHR.Leave.Service.DTOs.DutyTime
[Required, Comment("สถานะว่ารอบใดเป็นค่า Default ของข้าราชการ (สำหรับทุกคนที่ยังไม่ได้ทำการเลือกรอบ)")]
public bool IsDefault { get; set; } = false;
[Required, Comment("Is Active")]
public bool IsActive { get; set; } = false;
}
}

View file

@ -5,8 +5,8 @@ namespace BMA.EHR.Leave.Service.DTOs.DutyTime
{
public class UpdateDutyTimeDto
{
[Required, Comment("คำอธิบาย")]
public string Description { get; set; } = string.Empty;
[Comment("คำอธิบาย")]
public string? Description { get; set; } = string.Empty;
[Required, Comment("สถานะว่ารอบใดเป็นค่า Default ของข้าราชการ (สำหรับทุกคนที่ยังไม่ได้ทำการเลือกรอบ)")]
public bool IsDefault { get; set; } = false;

View file

@ -2,10 +2,12 @@
{
public class GetLeaveCheckResultDto
{
public bool IsLeave { get;set; } = false;
public bool IsLeave { get; set; } = false;
public double SumDateWork { get; set; } = 0;
public double TotalDate { get; set; } = 0;
public double SumDateHoliday { get; set; } = 0;
}
}

View file

@ -26,7 +26,7 @@
public DateTime BirthDate { get; set; }
public DateTime DateAppoint { get; set; }
public DateTime? DateAppoint { get; set; }
public int Salary { get; set; }