From 3b95c4d2d1ae75185765eee92b2f66f3594ba92d Mon Sep 17 00:00:00 2001 From: kittapath Date: Fri, 7 Mar 2025 23:30:43 +0700 Subject: [PATCH] report leave sort --- .github/workflows/release_leave.yaml | 72 +++++++++---------- .../Controllers/LeaveReportController.cs | 34 +++++++-- 2 files changed, 64 insertions(+), 42 deletions(-) diff --git a/.github/workflows/release_leave.yaml b/.github/workflows/release_leave.yaml index b017222d..a354557f 100644 --- a/.github/workflows/release_leave.yaml +++ b/.github/workflows/release_leave.yaml @@ -68,40 +68,40 @@ jobs: docker compose pull docker compose up -d echo "${{ steps.gen_ver.outputs.image_ver }}"> success - - name: Notify Discord Success - if: success() - run: | - curl -H "Content-Type: application/json" \ - -X POST \ - -d '{ - "embeds": [{ - "title": "✅ Deployment Success!", - "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Deployed by: `${{github.actor}}`", - "color": 3066993, - "footer": { - "text": "Release Notification", - "icon_url": "https://example.com/success-icon.png" - }, - "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" - }] - }' \ - ${{ secrets.DISCORD_WEBHOOK }} + # - name: Notify Discord Success + # if: success() + # run: | + # curl -H "Content-Type: application/json" \ + # -X POST \ + # -d '{ + # "embeds": [{ + # "title": "✅ Deployment Success!", + # "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Deployed by: `${{github.actor}}`", + # "color": 3066993, + # "footer": { + # "text": "Release Notification", + # "icon_url": "https://example.com/success-icon.png" + # }, + # "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" + # }] + # }' \ + # ${{ secrets.DISCORD_WEBHOOK }} - - name: Notify Discord Failure - if: failure() - run: | - curl -H "Content-Type: application/json" \ - -X POST \ - -d '{ - "embeds": [{ - "title": "❌ Deployment Failed!", - "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Attempted by: `${{github.actor}}`", - "color": 15158332, - "footer": { - "text": "Release Notification", - "icon_url": "https://example.com/failure-icon.png" - }, - "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" - }] - }' \ - ${{ secrets.DISCORD_WEBHOOK }} + # - name: Notify Discord Failure + # if: failure() + # run: | + # curl -H "Content-Type: application/json" \ + # -X POST \ + # -d '{ + # "embeds": [{ + # "title": "❌ Deployment Failed!", + # "description": "**Details:**\n- Image: `${{env.IMAGE_NAME}}`\n- Version: `${{ steps.gen_ver.outputs.image_ver }}`\n- Attempted by: `${{github.actor}}`", + # "color": 15158332, + # "footer": { + # "text": "Release Notification", + # "icon_url": "https://example.com/failure-icon.png" + # }, + # "timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'" + # }] + # }' \ + # ${{ secrets.DISCORD_WEBHOOK }} diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index 33198b05..509917c9 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -77,6 +77,22 @@ namespace BMA.EHR.Leave.Service.Controllers public bool isHoliday { get; set; } } + private class DateResultReport + { + public int no { get; set; } + + public string fullName { get; set; } + public string dutyTimeName { get; set; } + public string checkInLocation { get; set; } + public string checkInTime { get; set; } + public string checkOutLocation { get; set; } + public string checkOutTime { get; set; } + public string remark { get; set; } + public string checkInDate { get; set; } + public string checkedOutDate { get; set; } + public DateTime? checkInTimeRaw { get; set; } + public DateTime? checkOutTimeRaw { get; set; } + } #endregion @@ -1159,7 +1175,7 @@ namespace BMA.EHR.Leave.Service.Controllers var dateList = new List(); for (DateTime i = req.StartDate.Date; i <= req.EndDate.Date; i = i.AddDays(1)) { - if (!excludeDates.Contains(i)) + if (excludeDates.Contains(i)) { dateList.Add(new LoopDate { @@ -1172,12 +1188,12 @@ namespace BMA.EHR.Leave.Service.Controllers dateList.Add(new LoopDate { date = i, - isHoliday = true, + isHoliday = false, }); } } - var employees = new List(); + var employees = new List(); var count = 1; var restTotal = 0; @@ -1278,7 +1294,7 @@ namespace BMA.EHR.Leave.Service.Controllers } } - var emp = new + var emp = new DateResultReport { no = count, fullName = fullName, @@ -1291,12 +1307,13 @@ namespace BMA.EHR.Leave.Service.Controllers $"{timeStamps.CheckOut.Value.ToString("HH:mm")} น." : "", remark = remarkStr, - date = timeStamps == null ? dd.date.Date : timeStamps.CheckIn.Date, checkInDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() : timeStamps.CheckIn.Date.ToThaiFullDate2(), checkedOutDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() : timeStamps.CheckOut != null ? timeStamps.CheckOut.Value.ToThaiFullDate2() : "", + checkInTimeRaw = timeStamps?.CheckIn, + checkOutTimeRaw = timeStamps?.CheckOut, }; if (timeStamps != null) @@ -1332,6 +1349,11 @@ namespace BMA.EHR.Leave.Service.Controllers count++; } } + employees = employees.OrderBy(x => x.checkInTimeRaw ?? DateTime.MaxValue).ThenBy(x => x.checkOutTimeRaw ?? DateTime.MaxValue).ToList(); + for (int i = 0; i < employees.Count; i++) + { + employees[i].no = i + 1; + } var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}"; var item = new @@ -1346,7 +1368,7 @@ namespace BMA.EHR.Leave.Service.Controllers wfhTotal = wfhTotal, seminarTotal = seminarTotal, studyTotal = studyTotal, - employees = employees.OrderBy(x => x.date).ToList() + employees = employees }; //วันที่ออก var result = new