Files
rmutr_report/Controllers/PlantGeneticConservationProject.Controller.cs
kamonwan taengsuk dc23d87855
All checks were successful
continuous-integration/drone/push Build is passing
bug fixed
2023-10-06 11:23:18 +07:00

264 lines
12 KiB
C#

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-2.1")]
public class plant_genetic_conservation_project: Controller
{
readonly Setting _setting;
public plant_genetic_conservation_project(Setting setting)
{
this._setting = setting;
}
[HttpPost, Route("reports/plant_genetic_conservation_project/{type}")]
[ApiExplorerSettings(GroupName = "reports")]
public IActionResult GetConservationProjectReport([FromRoute] string type, [FromBody] project_principle_rationale project)
{
if (project != null)
{
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 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 = "16.1 เชิงปริมาณ";
string na = "จำนวนครั้งที่ดำเนินโครงการ ";
string na2 = " ครั้ง";
vv.text2 = na;
vv.khrang2 = na2;
}
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 = "16.2 เชิงเวลา";
string na3 = "วัน/เดือน/ปี ที่จะดำเนินโครงการ ";
string na4 = " ถึง ";
vv.range = na4;
vv.text5 = na3;
string na5 = "โครงการแล้วเสร็จตามเวลาที่กำหนด (ร้อยละ) ";
vv.text6 = na5;
}
if (vv.percentage1 != null || vv.percentage2 != null)
{
vv.clause3 = "16.3 เชิงคุณภาพ";
string na = "ผู้เข้าร่วมโครงการมีความรู้ความเข้าใจเพิ่มขึ้น (ร้อยละ) ";
string na1 = "ความพึงพอใจของผู้เข้ารับบริการในกระบวนการให้บริการ (ร้อยละ) ";
vv.text7 = na;
vv.text8 = na1;
vv.text9 = "ผู้เข้าร่วมโครงการสามารถนำความรู้ที่ได้รับไปบูรณาการอย่างไรบ้าง";
vv.text10 = "รายละเอียด";
}
if (vv.expenses != null)
{
vv.clause4 = "16.4 เชิงค่าใช้จ่าย";
vv.bath = " บาท";
}
}
}
}
}
var _project = new List<project_principle_rationale>() {project};
Report report = new Report();
report.Load(_setting.report_path + "plant_genetic_conservation_project.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();
}
}
}