diff --git a/Controllers/building_four.Controller.cs b/Controllers/building_four.Controller.cs new file mode 100644 index 0000000..8252aa8 --- /dev/null +++ b/Controllers/building_four.Controller.cs @@ -0,0 +1,161 @@ +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +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("สำหรับรายงาน ง.4")] + public class BuildingFour : Controller + { + readonly Setting _setting; + + public BuildingFour(Setting setting) + { + this._setting = setting; + } + + [HttpPost, Route("reports/building_four/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetHrReport([FromRoute] string type, + [FromBody] building_four building_fours) + { + foreach (var a in building_fours.building_type) + { + if (a.usage_per_target != null) + { + var a1 = a.usage_per_target.Where(d => d.used_year == d.used_year) + .Sum(o => o.used_year); + building_fours.sum_year1 = a1; + var a2 = a.usage_per_target.Where(d => d.year1 == d.year1) + .Sum(o => o.year1); + building_fours.sum_year2 = a2; + var a3 = a.usage_per_target.Where(d => d.year2 == d.year2) + .Sum(o => o.year2); + building_fours.sum_year3 = a3; + var a4 = a.usage_per_target.Where(d => d.year3 == d.year3) + .Sum(o => o.year3); + building_fours.sum_year4 = a4; + var a5 = a.usage_per_target.Where(d => d.year4 == d.year4) + .Sum(o => o.year4); + building_fours.sum_year5 = a5; + var a6 = a.usage_per_target.Where(d => d.year5 == d.year5) + .Sum(o => o.year5); + building_fours.sum_year6 = a6; + } + + } + + foreach (var bb in building_fours.material_construction_labor) + { + if (bb != null) + { + // var a = building_fours.material_construction_labor.Where(d => d.amount == d.amount) + // .Sum(o => o.amount); + // building_fours.material_amount = a; + // var b = building_fours.material_construction_labor.Where(d => d.material_unit == d.material_unit) + // .Sum(o => o.material_unit); + // building_fours.material_unit = b; + // var c = building_fours.material_construction_labor.Where(d => d.material_cost == d.material_cost) + // .Sum(o => o.material_cost); + // building_fours.material_cost = c; + // var d = building_fours.material_construction_labor.Where(d => d.labor_unit == d.labor_unit) + // .Sum(o => o.labor_unit); + // building_fours.labor_unit = d; + // var e = building_fours.material_construction_labor.Where(d => d.labor_cost == d.labor_cost) + // .Sum(o => o.labor_cost); + // building_fours.labor_cost = e; + bb.total_amount = bb.material_cost + bb.labor_unit; + var f = building_fours.material_construction_labor.Where(d => d.total_amount == d.total_amount) + .Sum(o => o.total_amount); + building_fours.material_total_amount = f; + } + + foreach (var cc in building_fours.budget_limit) + { + if (cc != null) + { + var a = building_fours.budget_limit.Where(d => d.amount == d.amount) + .Sum(o => o.amount); + building_fours.amount = a; + if (cc.outside_amount != null) + { + var b = building_fours.budget_limit.Where(d => d.outside_amount == d.outside_amount) + .Sum(o => o.outside_amount); + building_fours.outside_amount = b; + } + if (cc.outside_amount == null) + { + + building_fours.outside_amount = null; + } + + var c = building_fours.budget_limit.Where(d => d.total_amount == d.total_amount) + .Sum(o => o.total_amount); + building_fours.total_amount = c; + } + } + + + } + + + + var _building_fours = new List() {building_fours}; + + Report report = new Report(); + report.Load(_setting.report_path + "building_fours.frx"); + report.RegisterData(_building_fours, "building_four"); + report.Prepare(); + + MemoryStream stream = new MemoryStream(); + switch (type) + { + case "view": + return File(stream, "application/pdf"); + 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(); + } + + } +} \ No newline at end of file diff --git a/Controllers/durable_articles_three.Controller.cs b/Controllers/durable_articles_three.Controller.cs index cdbb58b..18beadf 100644 --- a/Controllers/durable_articles_three.Controller.cs +++ b/Controllers/durable_articles_three.Controller.cs @@ -13,7 +13,7 @@ using Swashbuckle.AspNetCore.Annotations; namespace rmutr_report.Controllers { - [SwaggerTag("สำหรับรายงาน ง3")] + [SwaggerTag("สำหรับรายงาน ง.3")] public class DurableArticlesThree : Controller { readonly Setting _setting; diff --git a/Models/budget/building_four.cs b/Models/budget/building_four.cs new file mode 100644 index 0000000..eea78f9 --- /dev/null +++ b/Models/budget/building_four.cs @@ -0,0 +1,190 @@ +using System.Collections.Generic; + +namespace rmutr_report.Models +{ + public class building_four + { + public string agency_faculty { get; set; } + public string major { get; set; } + public string area { get; set; } + public string responsible_person { get; set; } + public string phone_no { get; set; } + public string email { get; set; } + public string product { get; set; } + public string budget_year { get; set; } + public List data { get; set; } + public string year_range { get; set; } + public List building_type { get; set; } + public string year1 { get; set; } + public string year2 { get; set; } + public string year3 { get; set; } + public string year4 { get; set; } + public string year5 { get; set; } + public string year6 { get; set; } + public List readiness_action { get; set; } + public string necessity_reason { get; set; } + public List objective { get; set; } + //public string objective { get; set; } + public string utility { get; set; } + public string processing_time { get; set; } + public string start_date { get; set; } + public string end_date { get; set; } + public string total_day { get; set; } + public List basic_information { get; set; } + public List budget_limit { get; set; } + public decimal? amount { get; set; } + public decimal? outside_amount { get; set; } + public decimal? total_amount { get; set; } + public List list_format { get; set; } + public List boq { get; set; } + public List spending_plan { get; set; } + public string budget_spending_plan_year { get; set; } + //public decimal? spending_plan_amount { get; set; } + public List material_construction_labor{ get; set; } + // public decimal? material_amount { get; set; } + // public decimal? material_unit { get; set; } + // public decimal? material_cost { get; set; } + // public decimal? labor_unit{ get; set; } + // public decimal? labor_cost { get; set; } + public decimal? material_total_amount { get; set; } + public decimal? full_limit { get; set; } + public decimal? national_budget { get; set; } + public decimal? income_budget { get; set; } + public List detail_division_work { get; set; } + public List detail_division_work_table { get; set; } + public string result { get; set; } + public string cause_damage { get; set; } + public string other_clarifications_consideration { get; set; } + public decimal? sum_year1 { get; set; } + public decimal? sum_year2 { get; set; } + public decimal? sum_year3 { get; set; } + public decimal? sum_year4 { get; set; } + public decimal? sum_year5 { get; set; } + public decimal? sum_year6 { get; set; } + public string bath { get; set; } + + } + + public class building_four_detail + { + public string list { get; set; } + public decimal? amount { get; set; } + } + + public class building_type + { + public string type_name { get; set; } + public string text { get; set; } + + public List building_style{ get; set; } + public List usage_per_target{ get; set; } + public string text_footer { get; set; } + + } + public class building_styles + { + public string list { get; set; } + public string location { get; set; } + public string build_year { get; set; } + public string used_year { get; set; } + public string quantity_floors { get; set; } + public string note { get; set; } + } + + public class usage_per_target + { + public string list { get; set; } + public decimal? used_year { get; set; } + public decimal? year1 { get; set; } + public decimal? year2 { get; set; } + public decimal? year3 { get; set; } + public decimal? year4 { get; set; } + public decimal? year5 { get; set; } + } + + public class readiness_action + { + public string list { get; set; } + } + + public class budget_limit + { + public string budget_year { get; set; } + public decimal? amount { get; set; } + public decimal? outside_amount { get; set; } + public decimal? total_amount { get; set; } + } + + public class list_format + { + public string pending { get; set; } + public string done { get; set; } + public string pending_design_month { get; set; } + public string done_design_month { get; set; } + public string approval_month { get; set; } + public string construction_contract_month { get; set; } + + } + + public class boq_price + { + public string have { get; set; } + public string pending_boq_month { get; set; } + public string done_boq_month { get; set; } + public string approval_month { get; set; } + public string construction_contract_month { get; set; } + public string no_have { get; set; } + public string months { get; set; } + public string years { get; set; } + public string step { get; set; } + + } + + public class spending_plan + { + public string list { get; set; } + public string month_1 { get; set; } + public string month_2 { get; set; } + public string month_3 { get; set; } + public string month_4 { get; set; } + public string month_5 { get; set; } + public string month_6 { get; set; } + public string month_7 { get; set; } + public string month_8 { get; set; } + public string month_9 { get; set; } + public string month_10 { get; set; } + public string month_11 { get; set; } + public string month_12 { get; set; } + } + + public class materials_construction_labor + { + public string operational_activities { get; set; } + public decimal? amount { get; set; } + public string unit { get; set; } + public decimal? material_unit { get; set; } + public decimal? material_cost { get; set; } + public decimal? labor_unit{ get; set; } + public decimal? labor_cost { get; set; } + public decimal? total_amount { get; set; } + public string note { get; set; } + } + + public class details_division_work + { + public string budget_year { get; set; } + public decimal? amount { get; set; } + } + + public class details_division_work_table + { + public string installment { get; set; } + public string percentage { get; set; } + public string contracted_date { get; set; } + public string inspection_date { get; set; } + public decimal? amount { get; set; } + public decimal? cumulative_payment { get; set; } + + } + + } \ No newline at end of file diff --git a/wwwroot/reports/building_fours.frx b/wwwroot/reports/building_fours.frx new file mode 100644 index 0000000..fb207da --- /dev/null +++ b/wwwroot/reports/building_fours.frx @@ -0,0 +1,639 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +