diff --git a/Controllers/CandidateController.cs b/Controllers/CandidateController.cs
index 54755f3..fff1227 100644
--- a/Controllers/CandidateController.cs
+++ b/Controllers/CandidateController.cs
@@ -803,6 +803,32 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
}
+ ///
+ /// เจ้าหน้าที่ย้อนสถานะเป็นตรวจสอบข้อมูล
+ ///
+ /// รหัสใบสมัคร
+ ///
+ /// เมื่อเจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครสำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("reject/check-register/{candidateId:length(36)}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> AdminRejectToCheckCandidateService(Guid candidateId, RequestReject item)
+ {
+ try
+ {
+ await _candidateService.AdminRejectToCheckCandidateService(candidateId, item.Reason);
+
+ return Success();
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
+
///
/// เจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครไม่ผ่านและให้สมัครใหม่
///
diff --git a/Request/RequestReject.cs b/Request/RequestReject.cs
new file mode 100644
index 0000000..40eb40a
--- /dev/null
+++ b/Request/RequestReject.cs
@@ -0,0 +1,9 @@
+using System.Net;
+
+namespace BMA.EHR.Recurit.Exam.Service.Request
+{
+ public class RequestReject
+ {
+ public string? Reason { get; set; }
+ }
+}
diff --git a/Services/CandidateService.cs b/Services/CandidateService.cs
index cbe675a..8ce9b3e 100644
--- a/Services/CandidateService.cs
+++ b/Services/CandidateService.cs
@@ -2004,6 +2004,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate.Email != null && candidate.Email != "") _mailService.SendMailToUser(subject, body, candidate.Email);
}
candidate.Status = status;
+ candidate.RejectDetail = null;
await _context.SaveChangesAsync();
}
@@ -2039,7 +2040,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate.Email != null && candidate.Email != "") _mailService.SendMailToUser(subject, body, candidate.Email);
candidate.RejectDetail = item.Reason;
}
- if (status == "rejectPayment")
+ else if (status == "rejectPayment")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " มีหลักฐานชำระเงินไม่ถูกต้องกรุณาตรวจสอบข้อมูล เนื่องจาก: " + item.Reason;
@@ -2052,6 +2053,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: ได้รับใบสมัครแล้ว";
if (candidate.Email != null && candidate.Email != "") _mailService.SendMailToUser(subject, body, candidate.Email);
candidate.Status = "checkSeat";
+ candidate.RejectDetail = null;
// var num = periodExam.Count() + 1;
// candidate.ExamIdenNumber = candidate.PositionExam == null ? num.ToString() : candidate.PositionExam.Code + num;
}
@@ -2060,8 +2062,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอชำระค่าสมัครสอบ";
if (candidate.Email != null && candidate.Email != "") _mailService.SendMailToUser(subject, body, candidate.Email);
+ candidate.RejectDetail = null;
}
- else if (candidate.Status == "checkSeat")
+ else if (status == "checkSeat")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: ได้ชำระค่าสมัครสอบแล้ว";
@@ -2069,6 +2072,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
// var num = periodExam.Count() + 1;
// candidate.ExamIdenNumber = candidate.PositionExam == null ? num.ToString() : candidate.PositionExam.Code + num;
candidate.PaymentDate = DateTime.Now;
+ candidate.RejectDetail = null;
}
}
else
@@ -2111,6 +2115,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
throw new Exception(GlobalMessages.ExamNotFound);
candidate.Status = "payment";
+ candidate.RejectDetail = null;
if (candidate.PeriodExam.Fee == 0)
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
@@ -2134,6 +2139,24 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
await _context.SaveChangesAsync();
}
+ public async Task AdminRejectToCheckCandidateService(Guid candidateId, string? reason)
+ {
+ var candidate = await _context.Candidates.AsQueryable()
+ .Include(x => x.PeriodExam)
+ .Include(x => x.PositionExam)
+ .FirstOrDefaultAsync(x => x.Id == candidateId);
+
+ if (candidate == null)
+ throw new Exception(GlobalMessages.CandidateNotFound);
+
+ if (candidate.Status.Trim().ToUpper() != "PAYMENT" && candidate.Status.Trim().ToUpper() != "CHECKSEAT")
+ return;
+
+ candidate.RejectDetail = reason;
+ candidate.Status = "checkRegister";
+
+ await _context.SaveChangesAsync();
+ }
public async Task AdminPassCandidateService(string candidateId, string status)
{
@@ -2160,6 +2183,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate.Email != null && candidate.Email != "") _mailService.SendMailToUser(subject, body, candidate.Email);
}
candidate.Status = status;
+ candidate.RejectDetail = null;
await _context.SaveChangesAsync();
}