diff --git a/Controllers/Personnel.Controller.cs b/Controllers/Personnel.Controller.cs index bae84b2..48d526c 100644 --- a/Controllers/Personnel.Controller.cs +++ b/Controllers/Personnel.Controller.cs @@ -28,11 +28,11 @@ namespace rmutr_report.Controllers [ApiExplorerSettings(GroupName = "reports")] public IActionResult GetHrReport([FromRoute] string type, [FromBody] personnel_summary personnel_summarys) { - foreach (var v in personnel_summarys.personnel_types) + foreach (var v in personnel_summarys.personnel_types) { if (v.count != null) { - var total = personnel_summarys.personnel_types.Select(r => r.count).Sum(t=>t.Value); + var total = personnel_summarys.personnel_types.Select(r => r.count).Sum(t => t.Value); personnel_summarys.total_pertype = total; } else @@ -40,7 +40,8 @@ namespace rmutr_report.Controllers return null; } } - var personnel_summaryss = new List() { personnel_summarys }; + + var personnel_summaryss = new List() {personnel_summarys}; Report report = new Report(); report.Load(_setting.report_path + "personnel_summary.frx"); @@ -57,6 +58,7 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); @@ -78,12 +80,12 @@ namespace rmutr_report.Controllers return Ok(); } -[HttpPost, Route("reports/man_power/{type}")] + + [HttpPost, Route("reports/man_power/{type}")] [ApiExplorerSettings(GroupName = "reports")] public IActionResult GetManReport([FromRoute] string type, [FromBody] List man_powers) { - - //var personnel_summaryss = new List() { personnel_summarys }; + //var personnel_summaryss = new List() { personnel_summarys }; Report report = new Report(); report.Load(_setting.report_path + "man_power.frx"); @@ -100,6 +102,7 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); @@ -121,12 +124,12 @@ namespace rmutr_report.Controllers return Ok(); } + [HttpPost, Route("reports/data_line_support/{type}")] [ApiExplorerSettings(GroupName = "reports")] public IActionResult GetDataLineReport([FromRoute] string type, [FromBody] data_line_support data_line_supports) { - - var data_line_supportss = new List() { data_line_supports }; + var data_line_supportss = new List() {data_line_supports}; Report report = new Report(); report.Load(_setting.report_path + "data_line_support.frx"); @@ -143,6 +146,7 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); @@ -164,12 +168,13 @@ namespace rmutr_report.Controllers return Ok(); } + [HttpPost, Route("reports/data_line_academic/{type}")] [ApiExplorerSettings(GroupName = "reports")] - public IActionResult GetDataLineAcaReport([FromRoute] string type, [FromBody] data_line_academic data_line_academicss) + public IActionResult GetDataLineAcaReport([FromRoute] string type, + [FromBody] data_line_academic data_line_academicss) { - - var _data_line_academics = new List() { data_line_academicss }; + var _data_line_academics = new List() {data_line_academicss}; Report report = new Report(); report.Load(_setting.report_path + "data_line_academic.frx"); @@ -186,6 +191,7 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); @@ -207,12 +213,13 @@ namespace rmutr_report.Controllers return Ok(); } + [HttpPost, Route("reports/qualifications_teacher/{type}")] [ApiExplorerSettings(GroupName = "reports")] - public IActionResult GetQualificationsTeacherReport([FromRoute] string type, [FromBody] qualifications_teacher qualifications_teachers) + public IActionResult GetQualificationsTeacherReport([FromRoute] string type, + [FromBody] qualifications_teacher qualifications_teachers) { - - var qualifications_teacherss = new List() { qualifications_teachers }; + var qualifications_teacherss = new List() {qualifications_teachers}; Report report = new Report(); report.Load(_setting.report_path + "qualifications_teacher.frx"); @@ -229,6 +236,7 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); @@ -250,12 +258,13 @@ namespace rmutr_report.Controllers return Ok(); } + [HttpPost, Route("reports/academic_position/{type}")] [ApiExplorerSettings(GroupName = "reports")] - public IActionResult GetAcademicPositionReport([FromRoute] string type, [FromBody] academic_position _academic_position) + public IActionResult GetAcademicPositionReport([FromRoute] string type, + [FromBody] academic_position _academic_position) { - - var academic_positions = new List() { _academic_position }; + var academic_positions = new List() {_academic_position}; Report report = new Report(); report.Load(_setting.report_path + "academic_position.frx"); @@ -272,6 +281,170 @@ namespace rmutr_report.Controllers return File(stream, "application/pdf"); 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/postponement_compensation/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetPostponementCompensationReport([FromRoute] string type, + [FromBody] postponement_compensation postponement_compensations) + { + + string NumberText1 = postponement_compensations.data_date; + var str1 = + NumberText1.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.data_date = str1; + string NumberText2 = postponement_compensations.start_date; + var str2 = + NumberText2.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.start_date = str2; + string NumberText3 = postponement_compensations.end_date; + var str3 = + NumberText3.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.end_date = str3; + string NumberText4 = postponement_compensations.base_calculation_date; + var str4 = + NumberText4.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.base_calculation_date = str4; + string NumberText5 = postponement_compensations.director_date; + var str5 = + NumberText5.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.director_date = str5; + foreach (var data in postponement_compensations.data) + { + if (data.base_calculation != null) + { + string NumberText = data.base_calculation.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) + { + postponement_compensations.money1 = str.Insert(i, ","); + } + } + else if (str.Length == 5) + { + for (int i = 2; i <= str.Length - 1; i += 5) + { + postponement_compensations.money1 = str.Insert(i, ","); + } + } + else + { + postponement_compensations.money1 = str; + } + } + if (data.compensation_slide != null) + { + string NumberText = data.compensation_slide.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) + { + postponement_compensations.money2 = str.Insert(i, ","); + } + } + else if (str.Length == 5) + { + for (int i = 2; i <= str.Length - 1; i += 5) + { + postponement_compensations.money2 = str.Insert(i, ","); + } + } + else + { + postponement_compensations.money2 = str; + } + } + if (data.compensation_receive != null) + { + string NumberText = data.compensation_receive.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) + { + postponement_compensations.money3 = str.Insert(i, ","); + } + } + else if (str.Length == 5) + { + for (int i = 2; i <= str.Length - 1; i += 5) + { + postponement_compensations.money3 = str.Insert(i, ","); + } + } + else + { + postponement_compensations.money3 = str; + } + } + string NumberText6 = data.percentage.ToString(); + var str6 = + NumberText6.Replace('0', '๐').Replace('1', '๑').Replace('2', '๒').Replace('3', '๓') + .Replace('4', '๔').Replace('5', '๕').Replace('6', '๖').Replace('7', '๗').Replace('8', '๘') + .Replace('9', '๙'); + postponement_compensations.percentage = str6; + } + var _postponement_compensations = new List() {postponement_compensations}; + + Report report = new Report(); + report.Load(_setting.report_path + "postponement_compensation.frx"); + report.RegisterData(_postponement_compensations, "postponement_compensation"); + 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"); + + case "xls": + case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); diff --git a/Controllers/TeachingFeeExtra.Controller.cs b/Controllers/TeachingFeeExtra.Controller.cs index 27879d3..9f262b2 100644 --- a/Controllers/TeachingFeeExtra.Controller.cs +++ b/Controllers/TeachingFeeExtra.Controller.cs @@ -199,8 +199,8 @@ namespace rmutr_report.Controllers ws.Cell(row, 8).Value = teaching.number_of_weeks2; ws.Cell(row, 9).Value = teaching.amount2; ws.Cell(row, 10).Value = teaching.total_amount; - ws.Cell(row, 11).Value = teaching.major; - + //ws.Cell(row, 11).Value = teaching.major; + ws.Range(ws.Cell(row, 11), ws.Cell(row2, 11)).Merge().Value = teaching.major; ws.Range(ws.Cell(row, 2), ws.Cell(row, 11)).Style.Font.FontName = "TH SarabunPSK"; ws.Range(ws.Cell(row, 2), ws.Cell(row, 11)).Style.Font.FontSize = 16; @@ -273,8 +273,10 @@ namespace rmutr_report.Controllers //row++; if (datadetail.teacher == "รวมทั้งสิ้น") { - ws.Cell(row2, 2).Value = datadetail.teacher; - ws.Cell(row2, 3).Value = datadetail.teaching_rate; + //ws.Cell(row2, 2).Value = datadetail.teacher; + ws.Range(ws.Cell(row2, 2), ws.Cell(row2, 3)).Merge().Value = datadetail.teacher; + ws.Range(ws.Cell(row2, 2), ws.Cell(row2, 3)).Merge(); + //ws.Cell(row2, 3).Value = datadetail.teaching_rate; ws.Cell(row2, 4).Value = datadetail.number_of_hours1; ws.Cell(row2, 5).Value = datadetail.number_of_weeks1; ws.Cell(row2, 6).Value = datadetail.amount1; @@ -294,7 +296,7 @@ namespace rmutr_report.Controllers ws.Range(ws.Cell(row2, 2), ws.Cell(row2, 11)).Style.Border.RightBorder = XLBorderStyleValues.Thin; ws.Cell(row2, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; - ws.Cell(row2, 3).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + //ws.Cell(row2, 3).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; ws.Cell(row2, 4).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; ws.Cell(row2, 5).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; ws.Cell(row2, 6).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; diff --git a/Models/Hr/postponement_compensation.cs b/Models/Hr/postponement_compensation.cs new file mode 100644 index 0000000..3108ec1 --- /dev/null +++ b/Models/Hr/postponement_compensation.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; + +namespace rmutr_report.Models.Hr +{ + public class postponement_compensation + { + public string data_date { get; set; } + public string start_date { get; set; } + public string end_date { get; set; } + public string display_name { get; set; } + public string position_name { get; set; } + public string work_group { get; set; } + public string agency_name { get; set; } + // public bool? get_promoted { get; set; } + // public bool? not_get_promoted { get; set; } + public string director_display_name { get; set; } + public string director_position_name { get; set; } + public string director_position_level_name { get; set; } + public string director_date { get; set; } + public string base_calculation_date { get; set; } + public List data { get; set; } + /*public string check_get_promoted { get; set; } + public string check_not_get_promoted { get; set; }*/ + public string money1 { get; set; } + public string money2 { get; set; } + public string money3 { get; set; } + public string percentage { get; set; } + } + + public class postponement_compensation_detail + { + public decimal? base_calculation { get; set; } + public decimal? percentage { get; set; } + public decimal? compensation_slide { get; set; } + public decimal? compensation_receive { get; set; } + public string assessment_level { get; set; } + } + +} \ No newline at end of file diff --git a/wwwroot/reports/postponement_compensation.frx b/wwwroot/reports/postponement_compensation.frx new file mode 100644 index 0000000..16464f6 --- /dev/null +++ b/wwwroot/reports/postponement_compensation.frx @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +