From b747e3ae684a4745eccaf8fcd17ce23ccaacba55 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Thu, 5 Jun 2025 15:36:44 +0700 Subject: [PATCH 1/4] change word --- BMA.EHR.Leave/Controllers/LeaveRequestController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index a69dcf59..ebe2757d 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -1746,7 +1746,7 @@ namespace BMA.EHR.Leave.Service.Controllers // Send Notification var noti1 = new Notification { - Body = $"การขอลาของคุณ {data.FirstName} {data.LastName} รอรับการอนุมัติจากคุณ", + Body = $"คำร้องขอยกเลิกการลาของคุณ {data.FirstName} {data.LastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = approver!.ProfileId, Type = "", Payload = $"{URL}/leave/detail/{id}", From 9bde6a98957417a9617fb7a03a386af72adc6479 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 10 Jun 2025 11:10:40 +0700 Subject: [PATCH 2/4] #1425 --- .../Reports/InsigniaReportRepository.cs | 32 ++- .../Controllers/InsigniaReportController.cs | 259 +++++++++++++++--- 2 files changed, 250 insertions(+), 41 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs index 52600792..95bef940 100644 --- a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs @@ -1000,16 +1000,36 @@ namespace BMA.EHR.Application.Repositories.Reports r.FirstName, r.LastName, r.Gender, + r.Root, + r.RootId, + r.Child1, + r.Child1Id, + r.Child2, + r.Child2Id, + r.Child3, + r.Child3Id, + r.Child4, + r.Child4Id, r.RequestInsignia.Id, r.Request.OrganizationId }) .Select(group => new - { + { InsigniaInitial = group.Key.ShortName, InsigniaName = group.Key.Name, ProfileId = group.Key.ProfileId, FullName = $"{group.Key.Prefix}{group.Key.FirstName} {group.Key.LastName}", Gender = group.Key.Gender, + Root = group.Key.Root ?? "", + RootId = group.Key.RootId, + Child1 = group.Key.Child1 ?? "", + Child1Id = group.Key.Child1Id, + Child2 = group.Key.Child2 ?? "", + Child2Id = group.Key.Child2Id, + Child3 = group.Key.Child3 ?? "", + Child3Id = group.Key.Child3Id, + Child4 = group.Key.Child4 ?? "", + Child4Id = group.Key.Child4Id, Male = group.Count(r => r.Gender == "Male"), // Count male entries Female = group.Count(r => r.Gender == "Female"), // Count female entries InsigniaId = group.Key.Id, @@ -1035,6 +1055,16 @@ namespace BMA.EHR.Application.Repositories.Reports ProfileId = Guid.Parse("00000000-0000-0000-0000-000000000000"), FullName = "", Gender = "", + Root = "", + RootId = (Guid?)Guid.Parse("00000000-0000-0000-0000-000000000000"), + Child1 = "", + Child1Id = (Guid?)Guid.Parse("00000000-0000-0000-0000-000000000000"), + Child2 = "", + Child2Id = (Guid?)Guid.Parse("00000000-0000-0000-0000-000000000000"), + Child3 = "", + Child3Id = (Guid?)Guid.Parse("00000000-0000-0000-0000-000000000000"), + Child4 = "", + Child4Id = (Guid?)Guid.Parse("00000000-0000-0000-0000-000000000000"), Male = 0, Female = 0, InsigniaId = ins.InsigniaId, diff --git a/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs b/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs index 620ab706..e5c28e4f 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs @@ -99,6 +99,7 @@ namespace BMA.EHR.Insignia.Service.Controllers var data = await _repository.GetCoinReport(req.roundId, type, req.node, req.nodeId); var yearInsignalPeriod = await _repository.GetYearInsigniaPeriod(req.roundId); + var yearLastTwoDigits = yearInsignalPeriod.Substring(yearInsignalPeriod.Length - 2); var dataResult = new List(); var dataList = new List(data); @@ -117,6 +118,16 @@ namespace BMA.EHR.Insignia.Service.Controllers InsigniaName = dataList[i].GetType().GetProperty("InsigniaName").GetValue(dataList[i]), FullName = dataList[i].GetType().GetProperty("FullName").GetValue(dataList[i]), InsigniaInitial = dataList[i].GetType().GetProperty("InsigniaInitial").GetValue(dataList[i]), + Root = dataList[i].GetType().GetProperty("Root").GetValue(dataList[i]), + RootId = dataList[i].GetType().GetProperty("RootId").GetValue(dataList[i]), + Child1 = dataList[i].GetType().GetProperty("Child1").GetValue(dataList[i]), + Child1Id = dataList[i].GetType().GetProperty("Child1Id").GetValue(dataList[i]), + Child2 = dataList[i].GetType().GetProperty("Child2").GetValue(dataList[i]), + Child2Id = dataList[i].GetType().GetProperty("Child2Id").GetValue(dataList[i]), + Child3 = dataList[i].GetType().GetProperty("Child3").GetValue(dataList[i]), + Child3Id = dataList[i].GetType().GetProperty("Child3Id").GetValue(dataList[i]), + Child4 = dataList[i].GetType().GetProperty("Child4").GetValue(dataList[i]), + Child4Id = dataList[i].GetType().GetProperty("Child4Id").GetValue(dataList[i]), Male = gender == "ชาย" ? 1 : 0, Female = gender == "หญิง" ? 1 : 0, }); @@ -145,54 +156,221 @@ namespace BMA.EHR.Insignia.Service.Controllers var stop = 0; var colLeft = 0; var colRight = 0; - for (int i = 0; i < detailList.Count / 2; i++) - { - if (InsigniaName != (string)left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i))) - { - InsigniaName = (string)left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i)); - male = left.Count(x => x.Male == 1 && x.InsigniaName == InsigniaName) + right.Count(x => x.Male == 1 && x.InsigniaName == InsigniaName); - female = left.Count(x => x.Female == 1 && x.InsigniaName == InsigniaName) + right.Count(x => x.Female == 1 && x.InsigniaName == InsigniaName); - var countGroup = detailList.Count(x => x.InsigniaName == InsigniaName); - var countGroupTemp = detailList.Count(x => x.InsigniaName == InsigniaName && x.FullName == ""); - start = i == 0 ? (mergeList.Count + 1) : (stop + 1); - stop = i == 0 ? (mergeList.Count) + (countGroup - countGroupTemp) : (countGroup - countGroupTemp) == 1 ? start : start + (countGroup - countGroupTemp); - range = countGroup - countGroupTemp != 1 ? $"{start} - {stop}" : $"{start}"; - colLeft = start; - colRight = start + 25; - } - // ดึงข้อมูล NameLeft และ NameRight - var nameLeft = left.ElementAt(i).GetType().GetProperty("FullName").GetValue(left.ElementAt(i)); - var nameRight = right.ElementAt(i).GetType().GetProperty("FullName").GetValue(right.ElementAt(i)); + var maxRow = Math.Max(left.Count(), right.Count()); + + for (int i = 0; i < maxRow; i++) + { + var leftItem = i < left.Count() ? left.ElementAt(i) : null; + var rightItem = i < right.Count() ? right.ElementAt(i) : null; + + // ข้ามถ้าไม่มีข้อมูลทั้งสองฝั่ง + if (leftItem == null && rightItem == null) + continue; + + var insigniaName = leftItem != null + ? leftItem.GetType().GetProperty("InsigniaName").GetValue(leftItem) + : rightItem.GetType().GetProperty("InsigniaName").GetValue(rightItem); + + male = detailList.Count(x => x.Male == 1 && x.InsigniaName == insigniaName); + female = detailList.Count(x => x.Female == 1 && x.InsigniaName == insigniaName); + var countGroup = detailList.Count(x => x.InsigniaName == insigniaName); + var countGroupTemp = detailList.Count(x => x.InsigniaName == insigniaName && x.FullName == ""); + + start = mergeList.Count + 1; + stop = start + (countGroup - countGroupTemp) - 1; + range = (countGroup - countGroupTemp) != 1 ? $"{start} - {stop}" : $"{start}"; - // ถ้าไม่มีทั้ง NameLeft และ NameRight ให้ข้ามไป - if (string.IsNullOrEmpty((string)nameLeft) && string.IsNullOrEmpty((string)nameRight)) - { - continue; // ข้ามการทำงานของลูปในรอบนี้ - } mergeList.Add(new { - row = mergeList.Count + 1, - ColLeft = colLeft.ToString().ToThaiNumber(), - NameLeft = left.ElementAt(i).GetType().GetProperty("FullName").GetValue(left.ElementAt(i)), - ColRight = colRight.ToString().ToThaiNumber(), - NameRight = right.ElementAt(i).GetType().GetProperty("FullName").GetValue(right.ElementAt(i)), - InsigniaInitial = left.ElementAt(i).GetType().GetProperty("InsigniaInitial").GetValue(left.ElementAt(i)), - InsigniaName = left.ElementAt(i).GetType().GetProperty("InsigniaName").GetValue(left.ElementAt(i)), + ColLeft = colLeft > 0 ? colLeft.ToString().ToThaiNumber() : "", + NameLeft = leftItem?.GetType().GetProperty("FullName").GetValue(leftItem), + RootLeft = leftItem?.GetType().GetProperty("Root").GetValue(leftItem), + Child1Left = leftItem?.GetType().GetProperty("Child1").GetValue(leftItem), + Child2Left = leftItem?.GetType().GetProperty("Child2").GetValue(leftItem), + Child3Left = leftItem?.GetType().GetProperty("Child3").GetValue(leftItem), + Child4Left = leftItem?.GetType().GetProperty("Child4").GetValue(leftItem), + + ColRight = colRight > 0 ? colRight.ToString().ToThaiNumber() : "", + NameRight = rightItem?.GetType().GetProperty("FullName").GetValue(rightItem), + RootRight = rightItem?.GetType().GetProperty("Root").GetValue(rightItem), + Child1Right = rightItem?.GetType().GetProperty("Child1").GetValue(rightItem), + Child2Right = rightItem?.GetType().GetProperty("Child2").GetValue(rightItem), + Child3Right = rightItem?.GetType().GetProperty("Child3").GetValue(rightItem), + Child4Right = rightItem?.GetType().GetProperty("Child4").GetValue(rightItem), + + InsigniaInitial = leftItem?.GetType().GetProperty("InsigniaInitial").GetValue(leftItem) + ?? rightItem?.GetType().GetProperty("InsigniaInitial").GetValue(rightItem), + InsigniaName = insigniaName, Range = range.ToThaiNumber(), Male = male.ToString().ToThaiNumber(), - Female = female.ToString().ToThaiNumber(), + Female = female.ToString().ToThaiNumber() }); - if (mergeList.Count % 25 == 0) - { - colLeft = colRight; - colRight = colLeft + 25; - } - colLeft++; - colRight++; } - dataResult = mergeList; + + dataResult = mergeList; } + var groupedByOrg = detailList + .GroupBy(x => + { + string child4Id = x.Child4Id?.ToString() ?? ""; + string child3Id = x.Child3Id?.ToString() ?? ""; + string child2Id = x.Child2Id?.ToString() ?? ""; + string child1Id = x.Child1Id?.ToString() ?? ""; + string rootId = x.RootId?.ToString() ?? ""; + + + if (!string.IsNullOrEmpty(child4Id)) return child4Id; + if (!string.IsNullOrEmpty(child3Id)) return child3Id; + if (!string.IsNullOrEmpty(child2Id)) return child2Id; + if (!string.IsNullOrEmpty(child1Id)) return child1Id; + return rootId; + }) + .Where(g => !string.IsNullOrWhiteSpace(g.Key)) + .Select(orgGroup => + { + var first = orgGroup.FirstOrDefault(); + + var org = !string.IsNullOrWhiteSpace(first?.Child4) ? first.Child4.Trim() : + !string.IsNullOrWhiteSpace(first?.Child3) ? first.Child3.Trim() : + !string.IsNullOrWhiteSpace(first?.Child2) ? first.Child2.Trim() : + !string.IsNullOrWhiteSpace(first?.Child1) ? first.Child1.Trim() : + first.Root.Trim(); + + // Group by InsigniaName + var groupedByInsignia = orgGroup + .GroupBy(x => x.InsigniaName) + .Select(insigniaGroup => + { + if (!insigniaGroup.Any(x => !string.IsNullOrWhiteSpace(x.FullName))) + return null; + + var insigniaName = insigniaGroup.Key; + var left = insigniaGroup.Where(x => x.status == false).ToList(); + var right = insigniaGroup.Where(x => x.status == true).ToList(); + + var male = insigniaGroup.Count(x => x.Male == 1); + var female = insigniaGroup.Count(x => x.Female == 1); + var countGroup = insigniaGroup.Count(); + var countGroupTemp = insigniaGroup.Count(x => x.FullName == ""); + + var start = 1; + var stop = countGroup - countGroupTemp; + var range = stop == 1 ? $"{start}" : $"{start} - {stop}"; + range = range.ToThaiNumber(); + + var people = new List(); + + int colLeft = 1; + int colRight = 26; + int rowCount = Math.Max(left.Count, right.Count); + + var allPeople = left.Concat(right).ToList(); + + int colLeftStart = 1; + int colRightStart = 26; + + for (int i = 0; i < allPeople.Count; i++) + { + var person = allPeople[i]; + + if (string.IsNullOrWhiteSpace(person?.FullName)) + continue; + + if (i < 25) + { + people.Add(new + { + ColLeft = colLeftStart.ToString().ToThaiNumber(), + NameLeft = person.FullName, + RootLeft = person.Root, + Child1Left = person.Child1, + Child2Left = person.Child2, + Child3Left = person.Child3, + Child4Left = person.Child4, + + ColRight = "", + NameRight = "", + RootRight = "", + Child1Right = "", + Child2Right = "", + Child3Right = "", + Child4Right = "", + + InsigniaInitial = person.InsigniaInitial, + InsigniaName = insigniaName, + Range = range, + Male = male.ToString().ToThaiNumber(), + Female = female.ToString().ToThaiNumber() + }); + + colLeftStart++; + } + else + { + // คำนวณแถวที่จะเอาข้อมูลขวาไปใส่ + int indexToUpdate = i - 25; // ถ้า i=25 จะไปแถว 0, i=26 ไปแถว 1 เป็นต้น + + // ดึงแถวที่ต้องการมาแก้ไข + var row = (dynamic)people[indexToUpdate]; + + // สร้าง object ใหม่โดยคัดลอกข้อมูลซ้ายเดิมและเพิ่มข้อมูลขวา + var updatedRow = new + { + ColLeft = row.ColLeft, + NameLeft = row.NameLeft, + RootLeft = row.RootLeft, + Child1Left = row.Child1Left, + Child2Left = row.Child2Left, + Child3Left = row.Child3Left, + Child4Left = row.Child4Left, + + ColRight = colRightStart.ToString().ToThaiNumber(), + NameRight = person.FullName, + RootRight = person.Root, + Child1Right = person.Child1, + Child2Right = person.Child2, + Child3Right = person.Child3, + Child4Right = person.Child4, + + InsigniaInitial = person.InsigniaInitial, + InsigniaName = insigniaName, + Range = range, + Male = male.ToString().ToThaiNumber(), + Female = female.ToString().ToThaiNumber() + }; + + // แทนที่แถวเดิมด้วยแถวที่อัพเดต + people[indexToUpdate] = updatedRow; + + colRightStart++; + } + } + + + + return new + { + name = $"(ชั้นตรา) {insigniaName}", + shotName = left.FirstOrDefault()?.InsigniaInitial ?? right.FirstOrDefault()?.InsigniaInitial, + range = range, + male = male.ToString().ToThaiNumber(), + female = female.ToString().ToThaiNumber(), + people = people + }; + }).ToList(); + + return new + { + org = org, + insignia = groupedByInsignia + }; + }) + .Where(x => !string.IsNullOrWhiteSpace(x.org) && x.insignia.Any()) + .ToList(); + + + var result = new { template = "reportInsignia1", @@ -200,7 +378,8 @@ namespace BMA.EHR.Insignia.Service.Controllers data = new { yearInsignalPeriod = yearInsignalPeriod, - data = dataResult, + yearLastTwoDigits = yearLastTwoDigits, + data = groupedByOrg, } }; return Success(result); From b0cfc2eee90ee95795a7eabaf986574563dc87d1 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 10 Jun 2025 12:25:21 +0700 Subject: [PATCH 3/4] fix url noti retirement reject & field Id --- .../Repositories/RetirementEmployeeRepository.cs | 12 ++++++------ .../Repositories/RetirementRepository.cs | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/BMA.EHR.Application/Repositories/RetirementEmployeeRepository.cs b/BMA.EHR.Application/Repositories/RetirementEmployeeRepository.cs index ca9b8821..d20589c5 100644 --- a/BMA.EHR.Application/Repositories/RetirementEmployeeRepository.cs +++ b/BMA.EHR.Application/Repositories/RetirementEmployeeRepository.cs @@ -625,7 +625,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = _firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(_noti1); } @@ -643,7 +643,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); await _dbContext.SaveChangesAsync(); @@ -731,7 +731,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = nextApprover!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti); await _dbContext.SaveChangesAsync(); @@ -758,7 +758,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); await _dbContext.SaveChangesAsync(); @@ -820,7 +820,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = nextApprover!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti); @@ -848,7 +848,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-employee-detail/{rawData.RetirementResignEmployee.Id}", + Payload = $"{URL}/retirement/resign-employee-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); await _dbContext.SaveChangesAsync(); diff --git a/BMA.EHR.Application/Repositories/RetirementRepository.cs b/BMA.EHR.Application/Repositories/RetirementRepository.cs index 1cc84895..b03a2afb 100644 --- a/BMA.EHR.Application/Repositories/RetirementRepository.cs +++ b/BMA.EHR.Application/Repositories/RetirementRepository.cs @@ -550,7 +550,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = _firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(_noti1); } @@ -566,7 +566,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); await _dbContext.SaveChangesAsync(); @@ -626,7 +626,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = nextApprover!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti); await _dbContext.SaveChangesAsync(); @@ -650,7 +650,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); } @@ -713,7 +713,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = nextApprover!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti); @@ -742,7 +742,7 @@ namespace BMA.EHR.Application.Repositories Body = $"การขอยกเลิกลาออกของคุณ {rawData.firstName} {rawData.lastName} รอรับการอนุมัติจากคุณ", ReceiverUserId = firstCommander!.ProfileId, Type = "", - Payload = $"{URL}/retirement/resign-detail/{rawData.RetirementResign.Id}", + Payload = $"{URL}/retirement/resign-detail-reject/{rawData.Id}", }; _dbContext.Set().Add(noti1); } From 4bf0593b0e0cb299e0b85151a8ebaa068a932634 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 10 Jun 2025 16:42:37 +0700 Subject: [PATCH 4/4] fix resign detail --- .../Controllers/RetirementResignController.cs | 354 +++++++++--------- .../RetirementResignEmployeeController.cs | 352 ++++++++--------- 2 files changed, 353 insertions(+), 353 deletions(-) diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs index 7621c9a2..5fd88ee9 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs @@ -347,8 +347,8 @@ namespace BMA.EHR.Retirement.Service.Controllers .FirstOrDefaultAsync(); if (dataMain == null) return Error(GlobalMessages.RetirementResignNotFound, 404); - if (dataMain.IsCancel != true) - { + // if (dataMain.IsCancel != true) + // { var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "SYS_RESIGN"); var createdUserId = await _context.RetirementResigns.AsQueryable() .Where(x => x.Id == id) @@ -522,182 +522,182 @@ namespace BMA.EHR.Retirement.Service.Controllers }; return Success(_data); - } - else - { - var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL"); - var createdUserId = await _context.RetirementResignCancels.AsQueryable() - .Where(x => x.CreatedUserId == UserId) - .Where(x => x.RetirementResign.Id == id) - .FirstOrDefaultAsync(); - if (getWorkflow == false && createdUserId == null) - { - var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN"); - var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData["status"]?.ToString() != "200") - { - return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - } - } - var data = await _context.RetirementResignCancels.AsQueryable() - .Where(x => x.RetirementResign.Id == id) - .Select(p => new - { - p.Id, - p.prefix, - p.firstName, - p.lastName, - p.profileId, - p.Location, - p.SendDate, - p.ActiveDate, - p.Reason, - p.Remark, - p.Status, - salary = p.AmountOld, - p.ApproveReason, - p.RejectReason, - p.IsActive, - p.CreatedAt, - p.PositionTypeOld, - p.PositionLevelOld, - p.PositionNumberOld, - p.OrganizationPositionOld, - p.OligarchReject, - p.OligarchApproveReason, - p.OligarchRejectReason, - p.OligarchRejectDate, - p.CommanderReject, - p.CommanderApproveReason, - p.CommanderRejectReason, - p.CommanderRejectDate, - p.OfficerReject, - p.OfficerApproveReason, - p.OfficerRejectReason, - p.OfficerRejectDate, - p.RemarkHorizontal, - p.rootOld, - p.rootOldId, - p.rootShortNameOld, - p.child1Old, - p.child1OldId, - p.child1ShortNameOld, - p.child2Old, - p.child2OldId, - p.child2ShortNameOld, - p.child3Old, - p.child3OldId, - p.child3ShortNameOld, - p.child4Old, - p.child4OldId, - p.child4ShortNameOld, - p.PositionOld, - p.posMasterNoOld, - p.posTypeOldId, - p.posTypeNameOld, - p.posLevelOldId, - p.posLevelNameOld, - p.IsNoDebt, - p.IsNoBurden, - p.IsDiscipline, - p.CancelReason, - p.ApproveStep, - p.Group, - Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"), - Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"), - KeycloakUserId = p.CreatedUserId, - idMain = p.RetirementResign.Id, - statusMain = p.RetirementResign.Status, - RetirementResignDocs = p.RetirementResign.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), - }) - .FirstOrDefaultAsync(); - if (data == null) - return Error(GlobalMessages.RetirementResignNotFound, 404); + // } + // else + // { + // var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL"); + // var createdUserId = await _context.RetirementResignCancels.AsQueryable() + // .Where(x => x.CreatedUserId == UserId) + // .Where(x => x.RetirementResign.Id == id) + // .FirstOrDefaultAsync(); + // if (getWorkflow == false && createdUserId == null) + // { + // var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN"); + // var jsonData = JsonConvert.DeserializeObject(getPermission); + // if (jsonData["status"]?.ToString() != "200") + // { + // return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); + // } + // } + // var data = await _context.RetirementResignCancels.AsQueryable() + // .Where(x => x.RetirementResign.Id == id) + // .Select(p => new + // { + // p.Id, + // p.prefix, + // p.firstName, + // p.lastName, + // p.profileId, + // p.Location, + // p.SendDate, + // p.ActiveDate, + // p.Reason, + // p.Remark, + // p.Status, + // salary = p.AmountOld, + // p.ApproveReason, + // p.RejectReason, + // p.IsActive, + // p.CreatedAt, + // p.PositionTypeOld, + // p.PositionLevelOld, + // p.PositionNumberOld, + // p.OrganizationPositionOld, + // p.OligarchReject, + // p.OligarchApproveReason, + // p.OligarchRejectReason, + // p.OligarchRejectDate, + // p.CommanderReject, + // p.CommanderApproveReason, + // p.CommanderRejectReason, + // p.CommanderRejectDate, + // p.OfficerReject, + // p.OfficerApproveReason, + // p.OfficerRejectReason, + // p.OfficerRejectDate, + // p.RemarkHorizontal, + // p.rootOld, + // p.rootOldId, + // p.rootShortNameOld, + // p.child1Old, + // p.child1OldId, + // p.child1ShortNameOld, + // p.child2Old, + // p.child2OldId, + // p.child2ShortNameOld, + // p.child3Old, + // p.child3OldId, + // p.child3ShortNameOld, + // p.child4Old, + // p.child4OldId, + // p.child4ShortNameOld, + // p.PositionOld, + // p.posMasterNoOld, + // p.posTypeOldId, + // p.posTypeNameOld, + // p.posLevelOldId, + // p.posLevelNameOld, + // p.IsNoDebt, + // p.IsNoBurden, + // p.IsDiscipline, + // p.CancelReason, + // p.ApproveStep, + // p.Group, + // Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"), + // Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"), + // KeycloakUserId = p.CreatedUserId, + // idMain = p.RetirementResign.Id, + // statusMain = p.RetirementResign.Status, + // RetirementResignDocs = p.RetirementResign.RetirementResignDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), + // }) + // .FirstOrDefaultAsync(); + // if (data == null) + // return Error(GlobalMessages.RetirementResignNotFound, 404); - var retirementResignDocs = new List(); - foreach (var doc in data.RetirementResignDocs) - { - var _doc = new - { - FileName = doc.FileName, - PathName = await _documentService.ImagesPath(doc.Id), - doc.Id, - }; - retirementResignDocs.Add(_doc); - } - var _data = new - { - data.Id, - data.profileId, - data.prefix, - // data.PrefixId, - data.firstName, - data.lastName, - data.Location, - data.SendDate, - data.ActiveDate, - data.Reason, - data.Remark, - data.Status, - data.salary, - data.PositionTypeOld, - data.PositionLevelOld, - data.PositionNumberOld, - data.OrganizationPositionOld, - data.ApproveReason, - data.RejectReason, - data.IsActive, - data.CreatedAt, - data.OligarchReject, - data.OligarchApproveReason, - data.OligarchRejectReason, - data.OligarchRejectDate, - data.CommanderReject, - data.CommanderApproveReason, - data.CommanderRejectReason, - data.CommanderRejectDate, - data.OfficerReject, - data.OfficerApproveReason, - data.OfficerRejectReason, - data.OfficerRejectDate, - data.RemarkHorizontal, - data.rootOld, - data.rootOldId, - data.rootShortNameOld, - data.child1Old, - data.child1OldId, - data.child1ShortNameOld, - data.child2Old, - data.child2OldId, - data.child2ShortNameOld, - data.child3Old, - data.child3OldId, - data.child3ShortNameOld, - data.child4Old, - data.child4OldId, - data.child4ShortNameOld, - data.PositionOld, - data.posMasterNoOld, - data.posTypeOldId, - data.posTypeNameOld, - data.posLevelOldId, - data.posLevelNameOld, - data.IsNoDebt, - data.IsNoBurden, - data.IsDiscipline, - data.CancelReason, - data.idMain, - data.statusMain, - data.KeycloakUserId, - data.ApproveStep, - data.Group, - data.Approvers, - data.Commanders, - statusCancel = data.Status, - Docs = retirementResignDocs, - }; - return Success(_data); - } + // var retirementResignDocs = new List(); + // foreach (var doc in data.RetirementResignDocs) + // { + // var _doc = new + // { + // FileName = doc.FileName, + // PathName = await _documentService.ImagesPath(doc.Id), + // doc.Id, + // }; + // retirementResignDocs.Add(_doc); + // } + // var _data = new + // { + // data.Id, + // data.profileId, + // data.prefix, + // // data.PrefixId, + // data.firstName, + // data.lastName, + // data.Location, + // data.SendDate, + // data.ActiveDate, + // data.Reason, + // data.Remark, + // data.Status, + // data.salary, + // data.PositionTypeOld, + // data.PositionLevelOld, + // data.PositionNumberOld, + // data.OrganizationPositionOld, + // data.ApproveReason, + // data.RejectReason, + // data.IsActive, + // data.CreatedAt, + // data.OligarchReject, + // data.OligarchApproveReason, + // data.OligarchRejectReason, + // data.OligarchRejectDate, + // data.CommanderReject, + // data.CommanderApproveReason, + // data.CommanderRejectReason, + // data.CommanderRejectDate, + // data.OfficerReject, + // data.OfficerApproveReason, + // data.OfficerRejectReason, + // data.OfficerRejectDate, + // data.RemarkHorizontal, + // data.rootOld, + // data.rootOldId, + // data.rootShortNameOld, + // data.child1Old, + // data.child1OldId, + // data.child1ShortNameOld, + // data.child2Old, + // data.child2OldId, + // data.child2ShortNameOld, + // data.child3Old, + // data.child3OldId, + // data.child3ShortNameOld, + // data.child4Old, + // data.child4OldId, + // data.child4ShortNameOld, + // data.PositionOld, + // data.posMasterNoOld, + // data.posTypeOldId, + // data.posTypeNameOld, + // data.posLevelOldId, + // data.posLevelNameOld, + // data.IsNoDebt, + // data.IsNoBurden, + // data.IsDiscipline, + // data.CancelReason, + // data.idMain, + // data.statusMain, + // data.KeycloakUserId, + // data.ApproveStep, + // data.Group, + // data.Approvers, + // data.Commanders, + // statusCancel = data.Status, + // Docs = retirementResignDocs, + // }; + // return Success(_data); + // } } /// diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs index d6cde482..d35c0af0 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignEmployeeController.cs @@ -286,8 +286,8 @@ namespace BMA.EHR.Retirement.Service.Controllers if (dataMain == null) return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404); - if (dataMain.IsCancel != true) - { + // if (dataMain.IsCancel != true) + // { var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "SYS_RESIGN_EMP"); var createdUserId = await _context.RetirementResignEmployees.AsQueryable() .Where(x => x.Id == id) @@ -461,181 +461,181 @@ namespace BMA.EHR.Retirement.Service.Controllers }; return Success(_data); - } - else - { - var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL_EMP"); - var createdUserId = await _context.RetirementResignEmployeeCancels.AsQueryable() - .Where(x => x.CreatedUserId == UserId) - .Where(x => x.RetirementResignEmployee.Id == id) - .FirstOrDefaultAsync(); - if (getWorkflow == false && createdUserId == null) - { - var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN_EMP"); - var jsonData = JsonConvert.DeserializeObject(getPermission); - if (jsonData["status"]?.ToString() != "200") - { - return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - } - } - var data = await _context.RetirementResignEmployeeCancels.AsQueryable() - .Where(x => x.RetirementResignEmployee.Id == id) - .Select(p => new - { - p.Id, - p.prefix, - p.firstName, - p.lastName, - p.profileId, - p.Location, - p.SendDate, - p.ActiveDate, - p.Reason, - p.Remark, - p.Status, - salary = p.AmountOld, - p.ApproveReason, - p.RejectReason, - p.IsActive, - p.CreatedAt, - p.PositionTypeOld, - p.PositionLevelOld, - p.PositionNumberOld, - p.OrganizationPositionOld, - p.OligarchReject, - p.OligarchApproveReason, - p.OligarchRejectReason, - p.OligarchRejectDate, - p.CommanderReject, - p.CommanderApproveReason, - p.CommanderRejectReason, - p.CommanderRejectDate, - p.OfficerReject, - p.OfficerApproveReason, - p.OfficerRejectReason, - p.OfficerRejectDate, - p.RemarkHorizontal, - p.rootOld, - p.rootOldId, - p.rootShortNameOld, - p.child1Old, - p.child1OldId, - p.child1ShortNameOld, - p.child2Old, - p.child2OldId, - p.child2ShortNameOld, - p.child3Old, - p.child3OldId, - p.child3ShortNameOld, - p.child4Old, - p.child4OldId, - p.child4ShortNameOld, - p.PositionOld, - p.posMasterNoOld, - p.posTypeOldId, - p.posTypeNameOld, - p.posLevelOldId, - p.posLevelNameOld, - p.IsNoDebt, - p.IsNoBurden, - p.IsDiscipline, - p.ApproveStep, - p.Group, - Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"), - Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"), - KeycloakUserId = p.CreatedUserId, - p.CancelReason, - idMain = p.RetirementResignEmployee.Id, - statusMain = p.RetirementResignEmployee.Status, - RetirementResignEmployeeDocs = p.RetirementResignEmployee.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), - }) - .FirstOrDefaultAsync(); - if (data == null) - return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404); + // } + // else + // { + // var getWorkflow = await _permission.GetPermissionAPIWorkflowAsync(id.ToString(), "RETIREMENT_CANCEL_EMP"); + // var createdUserId = await _context.RetirementResignEmployeeCancels.AsQueryable() + // .Where(x => x.CreatedUserId == UserId) + // .Where(x => x.RetirementResignEmployee.Id == id) + // .FirstOrDefaultAsync(); + // if (getWorkflow == false && createdUserId == null) + // { + // var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_RESIGN_EMP"); + // var jsonData = JsonConvert.DeserializeObject(getPermission); + // if (jsonData["status"]?.ToString() != "200") + // { + // return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); + // } + // } + // var data = await _context.RetirementResignEmployeeCancels.AsQueryable() + // .Where(x => x.RetirementResignEmployee.Id == id) + // .Select(p => new + // { + // p.Id, + // p.prefix, + // p.firstName, + // p.lastName, + // p.profileId, + // p.Location, + // p.SendDate, + // p.ActiveDate, + // p.Reason, + // p.Remark, + // p.Status, + // salary = p.AmountOld, + // p.ApproveReason, + // p.RejectReason, + // p.IsActive, + // p.CreatedAt, + // p.PositionTypeOld, + // p.PositionLevelOld, + // p.PositionNumberOld, + // p.OrganizationPositionOld, + // p.OligarchReject, + // p.OligarchApproveReason, + // p.OligarchRejectReason, + // p.OligarchRejectDate, + // p.CommanderReject, + // p.CommanderApproveReason, + // p.CommanderRejectReason, + // p.CommanderRejectDate, + // p.OfficerReject, + // p.OfficerApproveReason, + // p.OfficerRejectReason, + // p.OfficerRejectDate, + // p.RemarkHorizontal, + // p.rootOld, + // p.rootOldId, + // p.rootShortNameOld, + // p.child1Old, + // p.child1OldId, + // p.child1ShortNameOld, + // p.child2Old, + // p.child2OldId, + // p.child2ShortNameOld, + // p.child3Old, + // p.child3OldId, + // p.child3ShortNameOld, + // p.child4Old, + // p.child4OldId, + // p.child4ShortNameOld, + // p.PositionOld, + // p.posMasterNoOld, + // p.posTypeOldId, + // p.posTypeNameOld, + // p.posLevelOldId, + // p.posLevelNameOld, + // p.IsNoDebt, + // p.IsNoBurden, + // p.IsDiscipline, + // p.ApproveStep, + // p.Group, + // Approvers = p.Approvers.Where(x => x.ApproveType.ToUpper() == "APPROVER"), + // Commanders = p.Approvers.Where(x => x.ApproveType.ToUpper() == "COMMANDER"), + // KeycloakUserId = p.CreatedUserId, + // p.CancelReason, + // idMain = p.RetirementResignEmployee.Id, + // statusMain = p.RetirementResignEmployee.Status, + // RetirementResignEmployeeDocs = p.RetirementResignEmployee.RetirementResignEmployeeDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), + // }) + // .FirstOrDefaultAsync(); + // if (data == null) + // return Error(GlobalMessages.RetirementResignEmployeeNotFound, 404); - var retirementResignEmployeeDocs = new List(); - foreach (var doc in data.RetirementResignEmployeeDocs) - { - var _doc = new - { - FileName = doc.FileName, - PathName = await _documentService.ImagesPath(doc.Id), - doc.Id, - }; - retirementResignEmployeeDocs.Add(_doc); - } - var _data = new - { - data.Id, - data.profileId, - data.prefix, - data.firstName, - data.lastName, - data.Location, - data.SendDate, - data.ActiveDate, - data.Reason, - data.Remark, - data.Status, - data.salary, - data.PositionTypeOld, - data.PositionLevelOld, - data.PositionNumberOld, - data.OrganizationPositionOld, - data.ApproveReason, - data.RejectReason, - data.IsActive, - data.CreatedAt, - data.OligarchReject, - data.OligarchApproveReason, - data.OligarchRejectReason, - data.OligarchRejectDate, - data.CommanderReject, - data.CommanderApproveReason, - data.CommanderRejectReason, - data.CommanderRejectDate, - data.OfficerReject, - data.OfficerApproveReason, - data.OfficerRejectReason, - data.OfficerRejectDate, - data.RemarkHorizontal, - data.rootOld, - data.rootOldId, - data.rootShortNameOld, - data.child1Old, - data.child1OldId, - data.child1ShortNameOld, - data.child2Old, - data.child2OldId, - data.child2ShortNameOld, - data.child3Old, - data.child3OldId, - data.child3ShortNameOld, - data.child4Old, - data.child4OldId, - data.child4ShortNameOld, - data.PositionOld, - data.posMasterNoOld, - data.posTypeOldId, - data.posTypeNameOld, - data.posLevelOldId, - data.posLevelNameOld, - data.IsNoDebt, - data.IsNoBurden, - data.IsDiscipline, - data.CancelReason, - data.idMain, - data.statusMain, - data.ApproveStep, - data.Group, - data.KeycloakUserId, - data.Approvers, - data.Commanders, - statusCancel = data.Status, - Docs = retirementResignEmployeeDocs, - }; - return Success(_data); - } + // var retirementResignEmployeeDocs = new List(); + // foreach (var doc in data.RetirementResignEmployeeDocs) + // { + // var _doc = new + // { + // FileName = doc.FileName, + // PathName = await _documentService.ImagesPath(doc.Id), + // doc.Id, + // }; + // retirementResignEmployeeDocs.Add(_doc); + // } + // var _data = new + // { + // data.Id, + // data.profileId, + // data.prefix, + // data.firstName, + // data.lastName, + // data.Location, + // data.SendDate, + // data.ActiveDate, + // data.Reason, + // data.Remark, + // data.Status, + // data.salary, + // data.PositionTypeOld, + // data.PositionLevelOld, + // data.PositionNumberOld, + // data.OrganizationPositionOld, + // data.ApproveReason, + // data.RejectReason, + // data.IsActive, + // data.CreatedAt, + // data.OligarchReject, + // data.OligarchApproveReason, + // data.OligarchRejectReason, + // data.OligarchRejectDate, + // data.CommanderReject, + // data.CommanderApproveReason, + // data.CommanderRejectReason, + // data.CommanderRejectDate, + // data.OfficerReject, + // data.OfficerApproveReason, + // data.OfficerRejectReason, + // data.OfficerRejectDate, + // data.RemarkHorizontal, + // data.rootOld, + // data.rootOldId, + // data.rootShortNameOld, + // data.child1Old, + // data.child1OldId, + // data.child1ShortNameOld, + // data.child2Old, + // data.child2OldId, + // data.child2ShortNameOld, + // data.child3Old, + // data.child3OldId, + // data.child3ShortNameOld, + // data.child4Old, + // data.child4OldId, + // data.child4ShortNameOld, + // data.PositionOld, + // data.posMasterNoOld, + // data.posTypeOldId, + // data.posTypeNameOld, + // data.posLevelOldId, + // data.posLevelNameOld, + // data.IsNoDebt, + // data.IsNoBurden, + // data.IsDiscipline, + // data.CancelReason, + // data.idMain, + // data.statusMain, + // data.ApproveStep, + // data.Group, + // data.KeycloakUserId, + // data.Approvers, + // data.Commanders, + // statusCancel = data.Status, + // Docs = retirementResignEmployeeDocs, + // }; + // return Success(_data); + // } } ///