using System.Collections.Generic; using System.IO; using System.Linq; using ClosedXML.Excel; using FastReport; using FastReport.Export.Csv; using FastReport.Export.Mht; using FastReport.Export.OoXML; using FastReport.Export.Pdf; using Microsoft.AspNetCore.Mvc; using rmutr_report.Models; using Swashbuckle.AspNetCore.Annotations; namespace rmutr_report.Controllers { [SwaggerTag("สำหรับรายงาน ง.5")] public class ProjectPrincipleRationale : Controller { readonly Setting _setting; public ProjectPrincipleRationale(Setting setting) { _setting = setting; } [HttpPost, Route("reports/project_principle_rationale/{type}")] [ApiExplorerSettings(GroupName = "reports")] public IActionResult GetProjectReport([FromRoute] string type, [FromBody] project_principle_rationale project) { if (project != null) { if (project.activity.Any()) { if (project.activity == null) { foreach (var detail in project.activity) { detail.activity = null; } } } else { project.activity.Add(new activity_data() { activity = "" }); } if (project.ninth != null) { foreach (var vv in project.ninth) { if (vv.ninths.Any()) { if (vv.ninths == null) { foreach (var detail6 in vv.ninths) { detail6.detail = null; } } } else { vv.ninths.Add(new ninth_data_detail() { detail = "" }); } } } if (project.sixteenths != null) { int t = 1; foreach (var sixteenthData in project.sixteenths) { string a = "กิจกรรมที่ " + t + " "; var sum1 = sixteenthData.sixteenths2.Sum(d => d.salaya); var sum2 = sixteenthData.sixteenths2.Sum(d => d.bophitphimuk); var sum3 = sixteenthData.sixteenths2.Sum(d => d.pohchang); var sum4 = sixteenthData.sixteenths2.Sum(d => d.klai_kangwon); sixteenthData.salaya_total = sum1; sixteenthData.bophitphimuk_total = sum2; sixteenthData.pohchang_total = sum3; sixteenthData.klai_kangwon_total = sum4; if (sixteenthData.activity_table != null) { sixteenthData.activity_table = a + sixteenthData.activity_table; } if (sixteenthData.activity_table == null) { sixteenthData.activity_table = null; } if (sixteenthData.total_target != null) { project.text1 = "ผลรวมกลุ่มเป้าหมาย " + sixteenthData.total_target; } if (sixteenthData.total_target == null) { project.text1 = "ผลรวมกลุ่มเป้าหมาย -"; } if (sixteenthData.total_board != null) { project.text2 = "ผลรวมคณะกรรมการ " + sixteenthData.total_board; } if (sixteenthData.total_board == null) { project.text2 = "ผลรวมคณะกรรมการ -"; } t++; } } if (project.seventeenth != null) { int t = 1; //int ti= 1; foreach (var v in project.seventeenth) { string a = "กิจกรรมที่ " + t + " "; if (v.activity != null) { v.activity = a + v.activity; } if (v.activity == null) { v.activity = null; } t++; foreach (var vv in v.seventeenths) { string na = "ครั้งที่ "; vv.the_time = na + "1"; //ti++; foreach (var detail in vv.seventeenths2) { string in1 = "พื้นที่ (ภายในมหาวิทยาลัย) "; string in2 = "ระบุสถานที่ "; string out1 = "จังหวัด (ภายนอกมหาวิทยาลัย) "; if (detail.internal_external1 == "ภายในมหาวิทยาลัย") { detail.text1 = "ภายในมหาวิทยาลัย"; detail.area_province1 = in1 + detail.area_province1; detail.location1 = in2 + detail.location1; } if (detail.internal_external2 == "ภายนอกมหาวิทยาลัย") { detail.text2 = "ภายนอกมหาวิทยาลัย"; detail.area_province2 = out1 + detail.area_province2; detail.location2 = in2 + detail.location2; } } } } } if (project.eighteenth != null) { int t = 1; //int ti = 1; foreach (var v in project.eighteenth) { string a = "กิจกรรมที่ " + t + " "; if (v.activity != null) { v.activity = a + v.activity; } if (v.activity == null) { v.activity = null; } t++; foreach (var vv in v.eighteenths) { string na = "ครั้งที่ "; vv.the_time = na + vv.the_time; //ti++; string na2 = " จำนวน "; vv.count_day = na2 + vv.count_day + " วัน"; if (project.count_day != null) { project.text3 = "จำนวน " + project.count_day + " วัน"; } } } } if (project.nineteenth != null) { int t = 1; foreach (var v in project.nineteenth) { foreach (var vv in v.nineteenth_data_header) { string a = "กิจกรรมที่ " + t + " "; if (vv.activity != null) { vv.activity = a + vv.activity; } if (vv.activity == null) { vv.activity = null; } t++; } } } if (project.twenty_one != null) { foreach (var v in project.twenty_one) { if (v.activity != null || v.activity != "") { v.activity = v.activity; } foreach (var vv in v.twenty_ones) { // if (vv.clause1 != null || vv.clause1 != "") // { // vv.clause1 = vv.clause1; // } // // if (vv.clause2 != null || vv.clause2 != "") // { // vv.clause2 = vv.clause2; // } // // if (vv.clause3 != null || vv.clause3 != "") // { // vv.clause3 = vv.clause3; // } // // if (vv.clause4 != null || vv.clause4 != "") // { // vv.clause4 = vv.clause4; // } if (vv.count_quantitative != null) { string na = " หน่วยนับ"; vv.khrang1 = na; } if (vv.count_unit != null) { string na = "ผู้เข้าร่วมโครงการ "; string na1 = " จำนวน "; string na2 = " คน"; vv.text1 = na; vv.text11 = na1; vv.nuai_nap = na2; } if (vv.count_project != null) { vv.clause1 = "21.1 เชิงปริมาณ"; string na = "จำนวนครั้งที่ดำเนินโครงการ "; string na2 = " ครั้ง"; vv.text2 = na; vv.khrang2 = na2; vv.text12 = "หน่วยนับ"; } if (vv.count_training != null) { string na = "จำนวนการจัดอบรมและสัมมนา "; string na2 = " เรื่อง"; vv.text3 = na; vv.rueang = na2; } if (vv.count_knowledge != null) { string na = "จำนวนเผยแพร่ความรู้บริการวิชาการ "; string na2 = " ครั้ง"; vv.text4 = na; vv.khrang3 = na2; } if (vv.project_start_date != null) { vv.clause2 = "21.2 เชิงเวลา"; string na3 = "วัน/เดือน/ปี ที่จะดำเนินโครงการ "; string na4 = " ถึง "; vv.range = na4; vv.text5 = na3; string na5 = "โครงการแล้วเสร็จตามเวลาที่กำหนด (ร้อยละ) "; vv.text6 = na5; } if (vv.project_start_date == " - " || vv.project_end_date == " - ") { vv.text5 = null; vv.range = null; vv.project_start_date = null; vv.project_end_date = null; } if (vv.day != null) { string na6 = "จำนวนวัน "; vv.day = na6 + vv.day; } if (vv.day == null) { vv.day = null; } if (vv.percentage1 != null || vv.percentage2 != null || vv.percentage3 != null) { vv.clause3 = "21.3 เชิงคุณภาพ"; string na = "ผู้เข้าร่วมโครงการมีความรู้ความเข้าใจเพิ่มขึ้น (ร้อยละ) "; string na1 = "ความพึงพอใจของผู้เข้ารับบริการในกระบวนการให้บริการ (ร้อยละ) "; vv.text7 = na; vv.text8 = na1; vv.text9 = "ผู้เข้าร่วมโครงการสามารถนำความรู้ที่ได้รับไปบูรณาการอย่างไรบ้าง"; vv.text10 = "รายละเอียด"; vv.text13 = "โครงการที่บรรลุผลตามวัตถุประสงค์ของโครงการ (ร้อยละ) "; } if (vv.expenses != null) { vv.clause4 = "21.4 เชิงค่าใช้จ่าย"; vv.bath = " บาท"; } } } } if (project.twenty_four != null) { int no = 1; int t = 1; foreach (var v in project.twenty_four) { string aa = "กิจกรรมที่ " + t + " "; if (v.activity != null) { v.activity = aa + v.activity; } if (v.activity == null) { v.activity = null; } t++; foreach (var dataDetail in v.twenty_fours) { string a = "ชื่อผู้รับผิดชอบ กิจกรรมที่ " + no; no++; if (dataDetail.responsible_person != null) { dataDetail.text1 = a + " " + dataDetail.responsible_person; } string b = "หน่วยงาน / คณะ "; if (dataDetail.agency != null) { dataDetail.text2 = b + dataDetail.agency; } string c = "พื้นที่ "; if (dataDetail.area != null) { dataDetail.text3 = c + dataDetail.area; } string d = "เบอร์โทรศัพท์ภายใน "; if (dataDetail.telephone_number != null) { dataDetail.text4 = d + dataDetail.telephone_number; } string e = "เบอร์มือถือ "; if (dataDetail.mobile_number != null) { dataDetail.text5 = e + dataDetail.mobile_number; } string f = "อีเมล "; if (dataDetail.email != null) { dataDetail.text6 = f + dataDetail.email; } } } } if (project.twenty_fifth != null) { int t = 1; foreach (var fifthData in project.twenty_fifth) { foreach (var acti in fifthData.activity) { fifthData.activitys = acti; } foreach (var locat in fifthData.location) { fifthData.locations = locat; } string a = "กิจกรรมที่ " + t + " "; if (fifthData.activity_display_name != null) { fifthData.activity_display_name = a + fifthData.activity_display_name; } if (fifthData.activity_display_name == null) { fifthData.activity_display_name = null; } t++; } } } var _project = new List() { project }; Report report = new Report(); report.Load(_setting.report_path + "project_principle_rationale_1.frx"); report.RegisterData(_project, "project_principle_rationale"); 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); 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; case "doc": case "docx": Word2007Export word = new Word2007Export(); report.Export(word, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "appllication/vnd.ms-word"); break; } return Ok(); } // [HttpPost, Route("reports/project_principle_rationale_no_activity/{type}")] // [ApiExplorerSettings(GroupName = "reports")] // public IActionResult GetProject2Report([FromRoute] string type, // [FromBody] project_principle_rationale project) // { // var total = project.activity.Count; // if (project.activity != null) // { // foreach (var v in project.activity) // { // if (v.activity != null) // { // //var total = project.activity.Select(r => r.count).Sum(t => t.Value); // project.together_with = "ประกอบด้วยกิจกรรมหรือโครงการย่อย " + total + " โครงการดังนี้คือ"; // } // else // { // project.together_with = null; // } // } // } // // if (project.eighth != null) // { // foreach (var v in project.eighth) // { // string na = "ประเด็นยุทธศาสตร์ที่ "; // v.strategic_issues = na + v.strategic_issues; // string na2 = "กลยุทธ์ที่ "; // v.measure = na2 + v.measure; // } // } // // if (project.fourteenth != null) // { // foreach (var vv in project.fourteenth) // { // // string na = "องค์ประกอบที่ " ; // // vv.component = na + vv.component; // string na2 = "ตัวบ่งชี้ที่ "; // vv.indicator = na2 + vv.indicator; // } // } // // if (project.sixteenths != null) // { // foreach (var sixteenthData in project.sixteenths) // { // var sum1 = sixteenthData.sixteenths2.Sum(d => d.salaya); // var sum2 = sixteenthData.sixteenths2.Sum(d => d.bophitphimuk); // var sum3 = sixteenthData.sixteenths2.Sum(d => d.pohchang); // var sum4 = sixteenthData.sixteenths2.Sum(d => d.klai_kangwon); // sixteenthData.salaya_total = sum1; // sixteenthData.bophitphimuk_total = sum2; // sixteenthData.pohchang_total = sum3; // sixteenthData.klai_kangwon_total = sum4; // } // } // // if (project.eighteenth != null) // { // foreach (var v in project.eighteenth) // { // foreach (var vv in v.eighteenths) // { // string na = "ครั้งที่ "; // vv.the_time = na + vv.the_time; // string na2 = " จำนวน "; // vv.count_day = na2 + vv.count_day + " วัน"; // if (project.count_day != null) // { // project.text3 = "จำนวน " + project.count_day + " วัน"; // } // } // } // } // // if (project.total_target != null) // { // project.text1 = "ผลรวมกลุ่มเป้าหมาย " + project.total_target; // } // // if (project.total_board != null) // { // project.text2 = "ผลรวมคณะกรรมการ " + project.total_board; // } // // if (project.twenty_one != null) // { // // foreach (var vv in project.twenty_one) // // { // // if (vv.activity != null || vv.activity!= "") // // { // // vv.activity = vv.activity; // // } // // if (vv.clause1 != null || vv.clause1!= "") // // { // // vv.clause1 = vv.clause1; // // } // // if (vv.clause2 != null || vv.clause2!= "") // // { // // vv.clause2 = vv.clause2; // // } // // if (vv.clause3 != null || vv.clause3!= "") // // { // // vv.clause3 = vv.clause3; // // } // // if (vv.clause4 != null || vv.clause4!= "") // // { // // vv.clause4 = vv.clause4; // // } // // if (vv.count_unit != null || vv.count_unit != "") // // { // // string na = "ผู้เข้าร่วมโครงการ จำนวน "; // // string na2 = " หน่วยนับ"; // // project.text1 = na + vv.count_unit + na2; // // } // // // // if (vv.count_project != null || vv.count_project != "") // // { // // string na = "จำนวนครั้งที่ดำเนินโครงการ "; // // string na2 = " ครั้ง"; // // project.text2 = na + vv.count_project + na2; // // } // // // // if (vv.count_training != null || vv.count_training != "") // // { // // string na = "จำนวนการจัดอบรมและสัมมนา "; // // string na2 = " เรื่อง"; // // project.text3 = na + vv.count_training + na2; // // } // // // // if (vv.count_knowledge != null || vv.count_knowledge != "") // // { // // string na = "จำนวนเผยแพร่ความรู้บริการวิชาการ "; // // string na2 = " ครั้ง"; // // project.text4 = na + vv.count_knowledge + na2; // // } // // string na3 = "วัน/เดือน/ปี ที่จะดำเนินโครงการ "; // // string na4 = " ถึง "; // // project.text5 = na3 + vv.project_start_date + na4 + vv.project_end_date; // // string na5 = "โครงการแล้วเสร็จตามเวลาที่กำหนด (ร้อยละ) "; // // project.text6 = na5 + vv.percentage_finish; // // // // } // // if (project.twenty_one == null) // { // project.twenty_one = null; // } // } // // // if (project.twenty_fifth != null) // { // foreach (var fifthData in project.twenty_fifth) // { // foreach (var acti in fifthData.activity) // { // fifthData.activitys = acti; // } // // foreach (var locat in fifthData.location) // { // fifthData.locations = locat; // } // } // } // // var _project = new List() { project }; // // Report report = new Report(); // report.Load(_setting.report_path + "project_principle_rationale_no_activity.frx"); // report.RegisterData(_project, "project_principle_rationale"); // 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); // 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; // case "doc": // case "docx": // Word2007Export word = new Word2007Export(); // report.Export(word, stream); // stream.Seek(0, SeekOrigin.Begin); // return File(stream, "appllication/vnd.ms-word"); // break; // } // // return Ok(); // } } }