From 47c1f7dac061e2b3e3456920ea5ff9b635939fcc Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Mon, 22 Jan 2024 13:00:45 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88?= =?UTF-8?q?=E0=B8=A1=E0=B9=80=E0=B8=95=E0=B8=B4=E0=B8=A1=E0=B8=A3=E0=B8=B2?= =?UTF-8?q?=E0=B8=A2=E0=B8=87=E0=B8=B2=E0=B8=99=E0=B9=81=E0=B8=AA=E0=B8=94?= =?UTF-8?q?=E0=B8=87=E0=B8=A7=E0=B8=B1=E0=B8=99=E0=B8=A5=E0=B8=87=E0=B9=80?= =?UTF-8?q?=E0=B8=A7=E0=B8=A5=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/LeaveReportController.cs | 60 +++++++++++++++---- .../DTOs/Reports/GetLeaveDetailReportDto.cs | 1 + 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs index 5f910816..64ff7344 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs @@ -1,3 +1,5 @@ +using System.Data.Common; +using System.Globalization; using System.IO.Pipelines; using BMA.EHR.Application.Repositories; using BMA.EHR.Application.Repositories.Commands; @@ -27,6 +29,8 @@ namespace BMA.EHR.Leave.Service.Controllers public class LeaveReportController : BaseController { #region " Fields " + + private static CultureInfo _culture = new CultureInfo("th-TH"); private readonly LeaveRequestRepository _leaveRequestRepository; private readonly UserProfileRepository _userProfileRepository; private readonly CommandRepository _commandRepository; @@ -1178,22 +1182,40 @@ namespace BMA.EHR.Leave.Service.Controllers { if (timeStamps == null) { - remarkStr = "ขาดราชการ"; + if (dd <= DateTime.Now.Date) + remarkStr = "ขาดราชการ"; + else remarkStr = ""; } else { // check status ของการลงเวลา - if (timeStamps.CheckOutStatus == "ABSENT") - remarkStr = "ขาดราชการ"; - else if (timeStamps.CheckInStatus == "ABSENT") - remarkStr = "ขาดราชการ"; - else if (timeStamps.CheckInStatus == "LATE") + if (timeStamps.CheckOut != null) { - remarkStr = "สาย"; - lateTotal += 1; + if (timeStamps.CheckOutStatus == "ABSENT") + remarkStr = "ขาดราชการ"; + else if (timeStamps.CheckInStatus == "ABSENT") + remarkStr = "ขาดราชการ"; + else if (timeStamps.CheckInStatus == "LATE") + { + remarkStr = "สาย"; + lateTotal += 1; + } + else + remarkStr = ""; } else - remarkStr = ""; + { + if (timeStamps.CheckInStatus == "ABSENT") + remarkStr = "ขาดราชการ"; + else if (timeStamps.CheckInStatus == "LATE") + { + remarkStr = "สาย"; + lateTotal += 1; + } + else + remarkStr = ""; + } + } } @@ -1214,8 +1236,8 @@ namespace BMA.EHR.Leave.Service.Controllers //remark = timeStamps == null ? "ขาดราชการ" : "", remark = remarkStr, - checkInDate = timeStamps == null ? "" : timeStamps.CheckIn.Date.ToThaiFullDate2().ToThaiNumber(), - checkedOutDate = timeStamps == null ? "" : + checkInDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() : timeStamps.CheckIn.Date.ToThaiFullDate2().ToThaiNumber(), + checkedOutDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() : timeStamps.CheckOut != null ? timeStamps.CheckOut.Value.ToThaiFullDate2().ToThaiNumber() : "", @@ -1255,9 +1277,23 @@ namespace BMA.EHR.Leave.Service.Controllers } + var dateStamp = ""; + switch (req.Type.ToUpper()) + { + case "MONTH": + { + var dd = req.StartDate.Date; + dateStamp = $"เดือน {dd.ToString("MMMM", _culture.DateTimeFormat)} พ.ศ. {dd.Year.ToThaiYear()}".ToThaiNumber(); + break; + } + default: + dateStamp = req.StartDate.Date.ToThaiFullDate().ToThaiNumber(); + break; + } + var item = new { - DateTimeStamp = date.Date.ToThaiFullDate(), + DateTimeStamp = dateStamp, officerTotal = profile.Count, workTotal = (count - 1), restTotal = restTotal, diff --git a/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs b/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs index 4a12851a..bc18bb5b 100644 --- a/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs +++ b/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs @@ -6,5 +6,6 @@ namespace BMA.EHR.Leave.Service.DTOs.Reports public DateTime EndDate { get; set; } = DateTime.MinValue; + public string Type { get; set; } = string.Empty; } } \ No newline at end of file