diff --git a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
index 8a71e214..98c0f652 100644
--- a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
+++ b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
@@ -281,6 +281,126 @@ namespace BMA.EHR.Insignia.Service.Controllers
#region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ "
+ ///
+ /// list รายการคำขอเครื่องราช ผู้ได้รับ,คนไม่ยื่น,คนที่ถูกลบ
+ ///
+ /// Id รอบเครื่องราช
+ /// Id สังกัด
+ /// ชื่อตำแหน่งระหว่างสกจ กับ เขต (ตอนนี้ให้ส่ง officer ก่อน)
+ /// pending=ผู้ได้รับ, reject=คนไม่ยื่น, delete=คนที่ถูกลบ
+ /// officer or employee
+ ///
+ ///
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("{insigniaPeriodId:length(36)}/{ocId:length(36)}/{role}/{status}/{isDeputy}/{type}")]
+ public async Task> GetInsignaiRequestBkkByTypeAsync(Guid insigniaPeriodId, Guid ocId, string role, string status, bool isDeputy, string type = "officer")
+ {
+ var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId);
+ if (result != null)
+ {
+ Guid period = result.PeriodId;
+ var periodName = result.Name;
+ string requestStatus = result.RequestStatus;
+ string requestNote = result.RequestNote;
+
+ var resend = new InsigniaResults
+ {
+ PeriodId = result.PeriodId,
+ Year = result.Year,
+ Round = result.Round,
+ Name = result.Name,
+ RequestId = result.RequestId,
+ RequestStatus = result.RequestStatus,
+ RequestNote = result.RequestNote,
+ IsLock = result.IsLock,
+ OrganizationName = result.OrganizationName,
+ Document = result.Document,
+ Items = new List()
+ };
+ GetIsOfficerDto RoleInsignia = await _userProfileRepository.GetIsOfficerRootAsync(AccessToken, "SYS_INSIGNIA_MANAGE");
+ if (RoleInsignia.isOfficer == true && isDeputy == false && result.RequestStatus != "st6")
+ return Success(resend);
+ if (RoleInsignia.isDirector == true && (result.RequestStatus == "st1" || result.RequestStatus == "st2"))
+ return Success(resend);
+
+ // Jack Remark Remove เพื่อให้เรียกขข้อมูลออกมาเร็สวขึ้น
+ //var candidate = await _repository.GetInsigniaCandidateBKK(period, ocId);
+
+ //// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new
+ //if (requestStatus == null)
+ //{
+ // // บันทึกรายชื่อ
+ // await _repository.InsertCandidate(period, ocId, candidate);
+ //}
+ if (role.Trim().ToUpper() == "OFFICER")
+ {
+ resend.Items = (await _repository.InsigniaHasProfile(result.PeriodId, ocId, status))
+ .Where(x => x.ProfileType!.ToLower() == type.ToLower()).ToList();
+ return Success(resend);
+ }
+ else
+ {
+ var passData = _context.InsigniaRequests.AsQueryable()
+ .Include(x => x.RequestProfiles)
+ .Where(x => x.OrganizationId == ocId)
+ .Where(x => x.Period.Id == period)
+ .Select(ir => new
+ {
+ requstID = ir.Id,
+ requstStatus = ir.RequestStatus,
+ requstStatusName = GetRequestlStatusText(ir.RequestStatus),
+ fkInstituteId = -1,
+ fkInstitute = "",
+ fkPeriodId = ir.Period.Id,
+ insigniaRequestHasProfile = FormatRequestProfiles(ir.RequestProfiles.AsQueryable()
+ .Include(x => x.RequestInsignia)
+ .ThenInclude(x => x.InsigniaType)
+ .Where(x => x.IsApprove)
+ .Where(x => x.ProfileType!.ToLower() == type.ToLower())
+ .ToList())
+ })
+ .ToList()
+ .FirstOrDefault();
+
+ var failData = _context.InsigniaRequests.AsQueryable()
+ .Include(x => x.RequestProfiles)
+ .Where(x => x.OrganizationId == ocId)
+ .Where(x => x.Period.Id == period)
+ .Select(ir => new
+ {
+ requstID = ir.Id,
+ requstStatus = ir.RequestStatus,
+ requstStatusName = GetRequestlStatusText(ir.RequestStatus),
+ fkInstituteId = -1,
+ fkInstitute = "",
+ fkPeriodId = ir.Period.Id,
+ insigniaRequestHasProfile = FormatRequestProfiles(ir.RequestProfiles.AsQueryable()
+ .Include(x => x.RequestInsignia)
+ .ThenInclude(x => x.InsigniaType)
+ .Where(x => !x.IsApprove)
+ .Where(x => x.ProfileType!.ToLower() == type.ToLower())
+ .ToList())
+ })
+ .ToList()
+ .FirstOrDefault();
+
+ var period_data = (from p in _context.InsigniaPeriods.AsQueryable()
+ where p.Id == period
+ select new
+ {
+ periodName = p.Name,
+ periodYear = p.Year,
+ }).FirstOrDefault();
+
+ return Success(new { passData = passData, failData = failData, period = period_data });
+ }
+ }
+
+ return Success();
+ }
+
///
/// list รายการคำขอเครื่องราช ผู้ได้รับ,คนไม่ยื่น,คนที่ถูกลบ
///