Merge branch 'develop' into dev
All checks were successful
Build & Deploy on Dev / build (push) Successful in 44s

This commit is contained in:
harid 2026-06-30 17:36:17 +07:00
commit 821fc62daa
2 changed files with 50 additions and 55 deletions

View file

@ -692,7 +692,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
FullName = $"{p.Prefix ?? ""}{p.FirstName ?? ""} {p.LastName ?? ""}",
PositionName = p.PositionName,
Remark = !string.IsNullOrEmpty(p.Remark) ? p.Remark.ToThaiNumber() : "",
// Remark = !string.IsNullOrEmpty(p.Remark) ? p.Remark.ToThaiNumber() : "",
ExamId = !string.IsNullOrEmpty(p.ExamId) ? p.ExamId.ToThaiNumber() : "",
ExamName =
($"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round}/{p.PeriodExam.Year.Value.ToThaiYear()}").ToThaiNumber(),
@ -714,7 +714,7 @@ namespace BMA.EHR.Report.Service.Controllers
No = (index + 1).ToString().ToThaiNumber(),
ExamId = x.ExamId,
FullName = x.FullName,
Remark = x.Remark
// Remark = x.Remark
}).ToList()
})
.ToList();
@ -758,7 +758,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
// Table Header
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ-สกุล", "หมายเหตุ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell()
@ -779,8 +779,7 @@ namespace BMA.EHR.Report.Service.Controllers
table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
}
document.Add(table);
document.Add(new Paragraph("").SetMarginBottom(15));
@ -820,7 +819,7 @@ namespace BMA.EHR.Report.Service.Controllers
.Join(_context.DisableScores.AsQueryable()
.Include(x => x.ScoreImport)
.Where(x => x.ScoreImport.PeriodExamId == id)
.Where(x => x.ExamStatus == "ผ่าน"),
.Where(x => x.ExamStatus == "ผ่าน" && !string.IsNullOrEmpty(x.Number)),
rc => new { id = rc.PeriodExam.Id, examId = rc.ExamId },
sc => new { id = sc.ScoreImport.PeriodExamId, examId = sc.ExamId },
(p, sr) => new
@ -830,12 +829,9 @@ namespace BMA.EHR.Report.Service.Controllers
ExamResult = sr == null ? "" : sr.ExamStatus,
ExamName = $"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round.ToString().ToThaiNumber()}/{p.PeriodExam.Year.Value.ToThaiYear().ToString().ToThaiNumber()}",
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
SumScore = sr == null
? ""
: (((double)(sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString("0.00")).ToThaiNumber(),
ExamId = string.IsNullOrEmpty(p.ExamId) ? "-" : p.ExamId.ToThaiNumber(),
})
.OrderBy(x => x.Number)
.Where(x => x.ExamResult == "ผ่าน")
.ToListAsync();
if (data.Count == 0)
@ -854,7 +850,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
Number = x.Number > 0 ? x.Number.ToString().ToThaiNumber() : "",
FullName = x.FullName,
SumScore = x.SumScore
ExamId = x.ExamId
}).ToList()
})
.ToList();
@ -871,7 +867,7 @@ namespace BMA.EHR.Report.Service.Controllers
document.SetFont(font).SetFontSize(16);
document.SetMargins(30, 15, 20, 15);
var title = new Paragraph($"รายชื่อผู้สอบคัดเลือกได้\n{examName}")
var title = new Paragraph($"บัญชีรายชื่อผู้ผ่านการคัดเลือก\nใน{examName}")
.SetBold()
.SetMultipliedLeading(1.0f)
.SetTextAlignment(TextAlignment.CENTER);
@ -892,7 +888,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
string[] headers = { "ลำดับที่", "สนามสอบ", "ชื่อ - นามสกุล", "คะแนนสอบ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(1.0f))
@ -904,11 +900,11 @@ namespace BMA.EHR.Report.Service.Controllers
{
table.AddCell(new Cell().Add(new Paragraph(p.Number ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
table.AddCell(new Cell().Add(new Paragraph(p.ExamId).SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(p.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(p.SumScore ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
}
document.Add(table);
@ -953,15 +949,16 @@ namespace BMA.EHR.Report.Service.Controllers
var data = await _context.Candidates.AsQueryable()
.Include(x => x.PeriodExam)
.ThenInclude(x => x.PositionExam)
.Where(x => x.PeriodExam!.Id == periodExam.Id)
.Where(x => x.PeriodExam!.Id == periodExam.Id && x.Status!="register" && x.ExamIdenNumber != null)
.OrderBy(x => x.ExamIdenNumber)
.ThenBy(x => x.PositionExam!.CreatedAt)
.Select(p => new
{
FullName = $"{p.PrefixName ?? ""}{p.FirstName ?? ""} {p.LastName ?? ""}",
PositionName = p.PositionExam!.PositionName,
Remark = !string.IsNullOrEmpty(p.ExamReason) ? p.ExamReason.ToThaiNumber() : "",
// Remark = !string.IsNullOrEmpty(p.ExamReason) ? p.ExamReason.ToThaiNumber() : "",
ExamId = !string.IsNullOrEmpty(p.ExamIdenNumber) ? p.ExamIdenNumber.ToThaiNumber() : "",
SeatNumber = !string.IsNullOrEmpty(p.SeatNumber) ? p.SeatNumber.ToThaiNumber() : "",
ExamName =
($"{p.PeriodExam!.Name} ครั้งที่ {p.PeriodExam.Round}/{p.PeriodExam.Year.Value.ToThaiYear()}").ToThaiNumber(),
}).ToListAsync();
@ -981,8 +978,9 @@ namespace BMA.EHR.Report.Service.Controllers
{
No = (index + 1).ToString().ToThaiNumber(),
ExamId = x.ExamId,
SeatNumber = x.SeatNumber,
FullName = x.FullName,
Remark = x.Remark
// Remark = x.Remark
}).ToList()
})
.ToList();
@ -1010,7 +1008,7 @@ namespace BMA.EHR.Report.Service.Controllers
.SetTextAlignment(TextAlignment.CENTER);
document.Add(title);
float[] columnWidths = { 10f, 20f, 45f, 25f };
float[] columnWidths = { 10f, 15f, 15f, 30f, 15f };
// Loop Groups
foreach (var group in groupData)
{
@ -1026,7 +1024,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
// Table Header
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ-สกุล", "หมายเหตุ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "สนามสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell()
@ -1044,11 +1042,13 @@ namespace BMA.EHR.Report.Service.Controllers
table.AddCell(new Cell().Add(new Paragraph(x.ExamId ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f))
table.AddCell(new Cell().Add(new Paragraph(x.SeatNumber ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell());
}
document.Add(table);
document.Add(new Paragraph("").SetMarginBottom(15));
@ -1093,7 +1093,7 @@ namespace BMA.EHR.Report.Service.Controllers
.Include(x => x.PeriodExam)
.ThenInclude(x => x.PositionExam)
.Where(x => x.PeriodExam!.Id == periodExam.Id)
.Where(x => x.Status != "register")
.Where(x => x.Status != "register" && x.Pass == "ได้" && !string.IsNullOrEmpty(x.Number))
.OrderBy(x => x.PositionExam!.CreatedAt)
.ToListAsync();
@ -1104,11 +1104,9 @@ namespace BMA.EHR.Report.Service.Controllers
ExamResult = p.Pass,
ExamName = $"{p.PeriodExam!.Name} ครั้งที่ {p.PeriodExam.Round}/{p.PeriodExam!.Year.Value.ToThaiYear()}".ToThaiNumber(),
Number = string.IsNullOrEmpty(p.Number) ? (idx + 1) : Convert.ToInt32(p.Number),
SumScore = (Convert.ToInt32(p.PointB ?? "0") + Convert.ToInt32(p.PointC ?? "0")) .ToString().ToThaiNumber(),
SeatNumber = string.IsNullOrEmpty(p.SeatNumber) ? "" : p.SeatNumber.ToThaiNumber(),
ExamIdenNumber = string.IsNullOrEmpty(p.ExamIdenNumber) ? "-" : p.ExamIdenNumber.ToThaiNumber(),
})
.OrderBy(x => x.Number)
.Where(x => x.ExamResult?.Trim() == "ได้")
.ToList();
if (data.Count == 0)
@ -1127,8 +1125,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
Number = x.Number > 0 ? x.Number.ToString().ToThaiNumber() : "",
FullName = x.FullName,
SumScore = x.SumScore,
SeatNumber = x.SeatNumber
ExamIdenNumber = x.ExamIdenNumber
}).ToList()
})
.ToList();
@ -1145,13 +1142,12 @@ namespace BMA.EHR.Report.Service.Controllers
document.SetFont(font).SetFontSize(16);
document.SetMargins(30, 15, 20, 15);
var title = new Paragraph($"รายชื่อผู้สอบคัดเลือกได้\n{examName}")
var title = new Paragraph($"บัญชีรายชื่อผู้ผ่านการคัดเลือก\nใน{examName}")
.SetBold()
.SetMultipliedLeading(1.0f)
.SetTextAlignment(TextAlignment.CENTER);
document.Add(title);
// float[] columnWidths = { 10f, 20f, 45f, 25f };
float[] columnWidths = { 10f, 25f, 25f, 25f };
foreach (var g in groupData)
{
@ -1167,7 +1163,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
string[] headers = { "ลำดับที่", "สนามสอบ", "ชื่อ - นามสกุล", "คะแนนสอบ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell().Add(new Paragraph(h).SetMultipliedLeading(1.0f))
@ -1175,16 +1171,15 @@ namespace BMA.EHR.Report.Service.Controllers
.SetBold());
}
foreach (var p in g.Persons) //SeatNumber
foreach (var p in g.Persons)
{
table.AddCell(new Cell().Add(new Paragraph(p.Number ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(p.SeatNumber).SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(p.ExamIdenNumber ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(p.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(p.SumScore ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
}
document.Add(table);

View file

@ -358,7 +358,7 @@ namespace BMA.EHR.Report.Service.Controllers
{
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
PositionName = p.PositionName,
Remark = !string.IsNullOrEmpty(p.Remark) ? p.Remark.ToThaiNumber() : "",
// Remark = !string.IsNullOrEmpty(p.Remark) ? p.Remark.ToThaiNumber() : "",
ExamId = !string.IsNullOrEmpty(p.ExamId) ? p.ExamId.ToThaiNumber() : "",
ExamName =
$"ครั้งที่ {(p.RecruitImport != null ? p.RecruitImport.Order.ToString().ToThaiNumber() : "")}/{(p.RecruitImport != null ? p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber() : "")}",
@ -380,7 +380,7 @@ namespace BMA.EHR.Report.Service.Controllers
No = (index + 1).ToString().ToThaiNumber(),
ExamId = x.ExamId,
FullName = x.FullName,
Remark = x.Remark
// Remark = x.Remark
}).ToList()
})
.ToList();
@ -426,7 +426,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
// Table Header
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ-สกุล", "หมายเหตุ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell()
@ -444,8 +444,7 @@ namespace BMA.EHR.Report.Service.Controllers
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(x.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(x.Remark ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
}
document.Add(table);
// เว้นระหว่าง groups
@ -558,7 +557,7 @@ namespace BMA.EHR.Report.Service.Controllers
.Join(_context.RecruitScores.AsQueryable()
.Include(x => x.ScoreImport)
.Where(x => x.ScoreImport.RecruitImportId == id)
.Where(x => x.ExamStatus == "ผ่าน"),
.Where(x => x.ExamStatus == "ผ่าน" && !string.IsNullOrEmpty(x.Number)),
rc => new { id = rc.RecruitImport.Id, examId = rc.ExamId },
sc => new { id = sc.ScoreImport.RecruitImportId, examId = sc.ExamId },
(p, sr) => new
@ -570,12 +569,12 @@ namespace BMA.EHR.Report.Service.Controllers
? ""
: $"{p.RecruitImport.Name} ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}",
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
SumScore = sr == null
? ""
: (((decimal)(sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString("0.00")).ToThaiNumber(),
ExamId = string.IsNullOrEmpty(p.ExamId) ? "-" : p.ExamId.ToThaiNumber(),
// SumScore = sr == null
// ? ""
// : (((decimal)(sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString("0.00")).ToThaiNumber(),
})
.OrderBy(x => x.Number)
.Where(x => x.ExamResult == "ผ่าน")
.ToListAsync();
if (data.Count == 0)
@ -594,7 +593,8 @@ namespace BMA.EHR.Report.Service.Controllers
{
Number = x.Number > 0 ? x.Number.ToString().ToThaiNumber() : "",
FullName = x.FullName,
SumScore = x.SumScore
// SumScore = x.SumScore
ExamId = x.ExamId,
}).ToList()
})
.ToList();
@ -611,13 +611,13 @@ namespace BMA.EHR.Report.Service.Controllers
document.SetFont(font).SetFontSize(16);
document.SetMargins(30, 15, 20, 15);
var title = new Paragraph($"รายชื่อผู้สอบแข่งขันได้\n{examName}")
var title = new Paragraph($"รายชื่อผู้สอบแข่งขันได้\nใน{examName}")
.SetMultipliedLeading(1.0f)
.SetBold()
.SetTextAlignment(TextAlignment.CENTER);
document.Add(title);
float[] columnWidths = { 10f, 20f, 45f, 25f };
float[] columnWidths = { 10f, 25f, 25f, 25f };
foreach (var g in groupData)
{
// Header per group
@ -631,7 +631,7 @@ namespace BMA.EHR.Report.Service.Controllers
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(columnWidths)).UseAllAvailableWidth();
string[] headers = { "ลำดับที่", "สนามสอบ", "ชื่อ - นามสกุล", "คะแนนสอบ" };
string[] headers = { "ลำดับที่", "เลขประจำตัวสอบ", "ชื่อ - สกุล", "หมายเหตุ" };
foreach (var h in headers)
{
table.AddHeaderCell(new Cell()
@ -644,11 +644,11 @@ namespace BMA.EHR.Report.Service.Controllers
{
table.AddCell(new Cell().Add(new Paragraph(p.Number ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
table.AddCell(new Cell().Add(new Paragraph(p.ExamId ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell().Add(new Paragraph(p.FullName ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.LEFT));
table.AddCell(new Cell().Add(new Paragraph(p.SumScore ?? "").SetMultipliedLeading(1.0f))
.SetTextAlignment(TextAlignment.CENTER));
table.AddCell(new Cell());
}
document.Add(table);