From c8b82d1508f6e5b62950c9797877cddadb1c3d15 Mon Sep 17 00:00:00 2001 From: kamonwan taengsuk Date: Wed, 9 Nov 2022 14:30:14 +0700 Subject: [PATCH] add reports --- Controllers/HrRegister.Controller.cs | 291 +++++++++++++++++++ Models/Hrregister/hr_askfor_insignia.cs | 33 +++ Models/Hrregister/hr_insignia.cs | 1 + Models/Hrregister/hr_summary_leave.cs | 20 ++ Models/Hrregister/hr_summary_leave_agency.cs | 30 ++ Models/Hrregister/hr_summary_study_leave.cs | 17 ++ wwwroot/reports/hr_askfor_insignia.frx | 125 ++++++++ wwwroot/reports/hr_leave_statistics.frx | 115 ++++++++ wwwroot/reports/hr_summary_leave.frx | 105 +++++++ wwwroot/reports/hr_summary_leave_agency.frx | 116 ++++++++ wwwroot/reports/hr_summary_study_leave.frx | 83 ++++++ 11 files changed, 936 insertions(+) create mode 100644 Models/Hrregister/hr_askfor_insignia.cs create mode 100644 Models/Hrregister/hr_summary_leave.cs create mode 100644 Models/Hrregister/hr_summary_leave_agency.cs create mode 100644 Models/Hrregister/hr_summary_study_leave.cs create mode 100644 wwwroot/reports/hr_askfor_insignia.frx create mode 100644 wwwroot/reports/hr_leave_statistics.frx create mode 100644 wwwroot/reports/hr_summary_leave.frx create mode 100644 wwwroot/reports/hr_summary_leave_agency.frx create mode 100644 wwwroot/reports/hr_summary_study_leave.frx diff --git a/Controllers/HrRegister.Controller.cs b/Controllers/HrRegister.Controller.cs index 2ade78c..5819759 100644 --- a/Controllers/HrRegister.Controller.cs +++ b/Controllers/HrRegister.Controller.cs @@ -724,6 +724,297 @@ namespace rmutr_report.Controllers break; } + return Ok(); + } + [HttpPost, Route("reports/hr_askfor_insignia/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHr9Report([FromRoute] string type, [FromBody] hr_askfor_insignia _hr) + { + + var text1 = + _hr.insignia_date.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + _hr.insignia_date = text1; + var text2 = + _hr.note_insignia_date.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + _hr.note_insignia_date = text2; + var text7 = + _hr.year.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + _hr.year = text7; + foreach (var hr in _hr.data) + { + foreach (var detail in hr.data_detail) + { + var text = + detail.id_card.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + detail.id_card = text; + var text3 = + detail.insignia_start_date.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + detail.insignia_start_date = text3; + var text4 = + detail.insignia_receive_date.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + detail.insignia_receive_date = text4; + var text5 = + detail.note.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + detail.note = text5; + var text6 = + detail.position_current_past.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + detail.position_current_past = text6; + if (detail.salary != null) + { + string NumberText = detail.salary.ToString(); + var str = + NumberText.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + if (str.Length == 4) + { + for (int i = 1; i <= str.Length - 1; i += 4) + { + detail.money = str.Insert(i, ","); + } + } + else if (str.Length == 5) + { + for (int i = 2; i <= str.Length - 1; i += 5) + { + detail.money = str.Insert(i, ","); + } + } + else if (str.Length == 6) + { + for (int i = 3; i <= str.Length - 1; i += 6) + { + detail.money = str.Insert(i, ","); + } + } + else + { + detail.money = str; + } + } + } + + } + + var hr1 = new List() {_hr}; + Report report = new Report(); + report.Load(_setting.report_path + "hr_askfor_insignia.frx"); + report.RegisterData(hr1, "hr_askfor_insignia"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "pdf": + PDFExport pdf = new PDFExport(); + report.Export(pdf, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/pdf"); + break; + case "xls": + case "xlsx": + Excel2007Export excel = new Excel2007Export(); + report.Export(excel, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/vnd.ms-excel"); + break; + case "mht": + MHTExport mht = new MHTExport(); + report.Export(mht, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "multipart/related"); + break; + case "csv": + CSVExport csv = new CSVExport(); + report.Export(csv, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "text/csv"); + break; + } + + return Ok(); + } + [HttpPost, Route("reports/hr_summary_leave/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHr9Report([FromRoute] string type, [FromBody] List _hr) + { + + Report report = new Report(); + report.Load(_setting.report_path + "hr_summary_leave.frx"); + report.RegisterData(_hr, "hr_summary_leave"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "pdf": + PDFExport pdf = new PDFExport(); + report.Export(pdf, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/pdf"); + break; + case "xls": + case "xlsx": + Excel2007Export excel = new Excel2007Export(); + report.Export(excel, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/vnd.ms-excel"); + break; + case "mht": + MHTExport mht = new MHTExport(); + report.Export(mht, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "multipart/related"); + break; + case "csv": + CSVExport csv = new CSVExport(); + report.Export(csv, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "text/csv"); + break; + } + + return Ok(); + } + [HttpPost, Route("reports/hr_leave_statistics/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHr10Report([FromRoute] string type, [FromBody] List _hr) + { + + Report report = new Report(); + report.Load(_setting.report_path + "hr_leave_statistics.frx"); + report.RegisterData(_hr, "hr_summary_leave"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "pdf": + PDFExport pdf = new PDFExport(); + report.Export(pdf, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/pdf"); + break; + case "xls": + case "xlsx": + Excel2007Export excel = new Excel2007Export(); + report.Export(excel, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/vnd.ms-excel"); + break; + case "mht": + MHTExport mht = new MHTExport(); + report.Export(mht, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "multipart/related"); + break; + case "csv": + CSVExport csv = new CSVExport(); + report.Export(csv, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "text/csv"); + break; + } + + return Ok(); + } + [HttpPost, Route("reports/hr_summary_leave_agency/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHr11Report([FromRoute] string type, [FromBody]hr_summary_leave_agency _hr) + { + var hr1 = new List() {_hr}; + Report report = new Report(); + report.Load(_setting.report_path + "hr_summary_leave_agency.frx"); + report.RegisterData(hr1, "hr_summary_leave_agency"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "pdf": + PDFExport pdf = new PDFExport(); + report.Export(pdf, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/pdf"); + break; + case "xls": + case "xlsx": + Excel2007Export excel = new Excel2007Export(); + report.Export(excel, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/vnd.ms-excel"); + break; + case "mht": + MHTExport mht = new MHTExport(); + report.Export(mht, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "multipart/related"); + break; + case "csv": + CSVExport csv = new CSVExport(); + report.Export(csv, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "text/csv"); + break; + } + + return Ok(); + } + [HttpPost, Route("reports/hr_summary_study_leave/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHr12Report([FromRoute] string type, [FromBody]List _hr) + { + Report report = new Report(); + report.Load(_setting.report_path + "hr_summary_study_leave.frx"); + report.RegisterData(_hr, "hr_summary_study_leave"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "pdf": + PDFExport pdf = new PDFExport(); + report.Export(pdf, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/pdf"); + break; + case "xls": + case "xlsx": + Excel2007Export excel = new Excel2007Export(); + report.Export(excel, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "application/vnd.ms-excel"); + break; + case "mht": + MHTExport mht = new MHTExport(); + report.Export(mht, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "multipart/related"); + break; + case "csv": + CSVExport csv = new CSVExport(); + report.Export(csv, stream); + stream.Seek(0, SeekOrigin.Begin); + return File(stream, "text/csv"); + break; + } + return Ok(); } } diff --git a/Models/Hrregister/hr_askfor_insignia.cs b/Models/Hrregister/hr_askfor_insignia.cs new file mode 100644 index 0000000..6f84c51 --- /dev/null +++ b/Models/Hrregister/hr_askfor_insignia.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; + +namespace rmutr_report.Models.Hrregister +{ + public class hr_askfor_insignia + { + public string year { get; set; } + public string insignia_date { get; set; } + public string note_insignia_date { get; set; } + public List data { get; set; } + } + + public class hr_askfor_insignia_detail + { + public string insignia_class { get; set; } + public List data_detail { get; set; } + } + + public class hr_askfor_insignia_data_detail + { + public string display_name_th { get; set; } + public string id_card { get; set; } + public string position_level { get; set; } + public string insignia_start_date { get; set; } + public decimal? salary { get; set; } + public string position_current_past { get; set; } + public string insignia_receive { get; set; } + public string insignia_receive_date { get; set; } + public string insignia_class_short_name { get; set; } + public string note { get; set; } + public string money { get; set; } + } +} \ No newline at end of file diff --git a/Models/Hrregister/hr_insignia.cs b/Models/Hrregister/hr_insignia.cs index 8499ce5..0392103 100644 --- a/Models/Hrregister/hr_insignia.cs +++ b/Models/Hrregister/hr_insignia.cs @@ -14,6 +14,7 @@ namespace rmutr_report.Models.Hrregister public string insignia_return { get; set; } public string insignia_return_date { get; set; } public string note { get; set; } + public string academic_knowledge { get; set; } } } \ No newline at end of file diff --git a/Models/Hrregister/hr_summary_leave.cs b/Models/Hrregister/hr_summary_leave.cs new file mode 100644 index 0000000..641eaea --- /dev/null +++ b/Models/Hrregister/hr_summary_leave.cs @@ -0,0 +1,20 @@ +namespace rmutr_report.Models.Hrregister +{ + public class hr_summary_leave + { + public string display_name_th { get; set; } + public int? sick_leave_day { get; set; } + public int? sick_leave_time { get; set; } + public int? leave_day { get; set; } + public int? leave_time { get; set; } + public int? leave_rest { get; set; } + public int? maternity_leave { get; set; } + public int? help_maternity_leave { get; set; } + public int? ordination_leave { get; set; } + public int? military_recruiting_leave { get; set; } + public int? government_service_leave { get; set; } + public int? late { get; set; } + public string study_leave { get; set; } + public string academic_knowledge { get; set; } + } +} \ No newline at end of file diff --git a/Models/Hrregister/hr_summary_leave_agency.cs b/Models/Hrregister/hr_summary_leave_agency.cs new file mode 100644 index 0000000..c77ddb3 --- /dev/null +++ b/Models/Hrregister/hr_summary_leave_agency.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; + +namespace rmutr_report.Models.Hrregister +{ + public class hr_summary_leave_agency + { + public string agency_name_th { get; set; } + + public List data { get; set; } + + } + + public class hr_summary_leave_agency_detail + { + public string display_name_th { get; set; } + public int? sick_leave_day { get; set; } + public int? sick_leave_time { get; set; } + public int? leave_day { get; set; } + public int? leave_time { get; set; } + public int? leave_rest { get; set; } + public int? maternity_leave { get; set; } + public int? help_maternity_leave { get; set; } + public int? ordination_leave { get; set; } + public int? military_recruiting_leave { get; set; } + public int? government_service_leave { get; set; } + public int? late { get; set; } + public string study_leave { get; set; } + public string note { get; set; } + } +} \ No newline at end of file diff --git a/Models/Hrregister/hr_summary_study_leave.cs b/Models/Hrregister/hr_summary_study_leave.cs new file mode 100644 index 0000000..26ae50a --- /dev/null +++ b/Models/Hrregister/hr_summary_study_leave.cs @@ -0,0 +1,17 @@ +namespace rmutr_report.Models.Hrregister +{ + public class hr_summary_study_leave + { + public string display_name_th { get; set; } + public string study_leave_date { get; set; } + public string study_leave_command{ get; set; } + public string expand_study_leave_date { get; set; } + public string expand_study_leave_command { get; set; } + public string back_study_leave { get; set; } + public string back_study_leave_command { get; set; } + public string academic_knowledge { get; set; } + public string academic_knowledge_command { get; set; } + public string back_academic_knowledge { get; set; } + public string back_academic_knowledge_command { get; set; } + } +} \ No newline at end of file diff --git a/wwwroot/reports/hr_askfor_insignia.frx b/wwwroot/reports/hr_askfor_insignia.frx new file mode 100644 index 0000000..57224c9 --- /dev/null +++ b/wwwroot/reports/hr_askfor_insignia.frx @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/reports/hr_leave_statistics.frx b/wwwroot/reports/hr_leave_statistics.frx new file mode 100644 index 0000000..5b18259 --- /dev/null +++ b/wwwroot/reports/hr_leave_statistics.frx @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/reports/hr_summary_leave.frx b/wwwroot/reports/hr_summary_leave.frx new file mode 100644 index 0000000..3bc5f7c --- /dev/null +++ b/wwwroot/reports/hr_summary_leave.frx @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/reports/hr_summary_leave_agency.frx b/wwwroot/reports/hr_summary_leave_agency.frx new file mode 100644 index 0000000..9b93e7c --- /dev/null +++ b/wwwroot/reports/hr_summary_leave_agency.frx @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/reports/hr_summary_study_leave.frx b/wwwroot/reports/hr_summary_study_leave.frx new file mode 100644 index 0000000..7ca07a4 --- /dev/null +++ b/wwwroot/reports/hr_summary_study_leave.frx @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +