แก้รายงานทดลองงาน, เครื่องราช

This commit is contained in:
Harid Promsri (Bright) 2023-10-20 16:19:28 +07:00
parent 443c42252c
commit 929d9d5c96
5 changed files with 48 additions and 18 deletions

View file

@ -17,7 +17,7 @@ namespace BMA.EHR.Report.Service.Controllers
[ApiVersion("2.0")]
[ApiController]
[Produces("application/json")]
//[Authorize]
[Authorize]
[SwaggerTag("API รายงานระบบเครื่องราชอิสริยาภรณ์")]
public class InsigniaReportController : BaseController
{
@ -496,7 +496,6 @@ namespace BMA.EHR.Report.Service.Controllers
{
try
{
var data = await _repository.GetCoinReport(id);
var YearInsignalPeriod = await _repository.GetYearInsigniaPeriod(id);
var mimeType = "";
@ -519,33 +518,64 @@ namespace BMA.EHR.Report.Service.Controllers
report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream);
report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2);
}
string OCName = string.Empty;
//foreach (var info in data)
//{
// OCName = info.GetType().GetProperty("OCName").GetValue(info);
// break;
//}
var OCName = string.Empty;
report.ReportParameters["YearInsignalPeriod"].Value = YearInsignalPeriod;
report.ReportParameters["OCName"].Value = OCName;
var dataList = new List<dynamic>(data);
var detailList = new List<dynamic>();
var ChkInsigniaName = string.IsNullOrEmpty(dataList[0].GetType().GetProperty("InsigniaName").GetValue(dataList[0]))? string.Empty: dataList[0].GetType().GetProperty("InsigniaName").GetValue(dataList[0]);
var check = 0;
var status = false;
for (int i = 0; i < dataList.Count; i++)
{
check++;
var gender = dataList[i].GetType().GetProperty("Gender").GetValue(dataList[i]);
detailList.Add(new
{
row = detailList.Count+1,
Number = (detailList.Count+1).ToString().ToThaiNumber(),
status = status,
row = detailList.Count + 1,
Number = (detailList.Count + 1).ToString().ToThaiNumber(),
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]),
Male = dataList[i].GetType().GetProperty("Male").GetValue(dataList[i]),
Female = dataList[i].GetType().GetProperty("Female").GetValue(dataList[i]),
}); ;
Male = gender == "ชาย" ? 1 : 0,
Female = gender == "หญิง" ? 1 : 0,
});
if (check == 25)
{
status = true;
}
else if(check == 50)
{
status = false;
check = 0;
}
}
if (detailList.Count > 0)
{
var left = detailList.Where(x => x.status == false);
var right = detailList.Where(x => x.status == true);
var mergeList = new List<object>();
for (int i = 0; i < detailList.Count / 2; i++)
{
mergeList.Add(new
{
row = mergeList.Count + 1,
RowLeft = left.ElementAt(i).GetType().GetProperty("Number").GetValue(left.ElementAt(i)),
NameLeft = left.ElementAt(i).GetType().GetProperty("FullName").GetValue(left.ElementAt(i)),
RowRight = right.ElementAt(i).GetType().GetProperty("Number").GetValue(right.ElementAt(i)),
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)),
Male = left.ElementAt(i).GetType().GetProperty("Male").GetValue(left.ElementAt(i)) + right.ElementAt(i).GetType().GetProperty("Male").GetValue(right.ElementAt(i)),
Female = left.ElementAt(i).GetType().GetProperty("Female").GetValue(left.ElementAt(i)) + right.ElementAt(i).GetType().GetProperty("Female").GetValue(right.ElementAt(i)),
});
}
report.DataSource = mergeList;
}
report.DataSource = detailList;
var reportBook = new ReportBook();
reportBook.Reports.Add(report);