diff --git a/Controllers/GovernmentBudget.Controller.cs b/Controllers/GovernmentBudget.Controller.cs index b1b0469..8a62286 100644 --- a/Controllers/GovernmentBudget.Controller.cs +++ b/Controllers/GovernmentBudget.Controller.cs @@ -1172,6 +1172,68 @@ namespace rmutr_report.Controllers "ค่าอาหารทำการนอกเวลา" + ".xlsx"); } + return Ok(); + } + [SwaggerOperation("ค่าเบี้ยเลี้ยง ที่พัก พาหนะ")] + [HttpPost, Route("reports/expense/{type}")] + [ApiExplorerSettings(GroupName = "reports")] + public IActionResult GetExpenseReport([FromRoute] string type, + [FromBody] expense _expense) + { + var meals = _expense.data.ToList(); + if (_expense.topic_type==1) + { + _expense.topic = "ค่าเบี้ยเลี้ยง"; + _expense.text_1 = "จำนวนเงิน/วัน"; + _expense.text_2 = "จำนวน (วัน)"; + } + if (_expense.topic_type==2) + { + _expense.topic = "ค่าเช่าที่พัก"; + _expense.text_1 = "จำนวนเงิน/คน/คืน"; + _expense.text_2 = "จำนวนวัน"; + } + if (_expense.topic_type==3) + { + _expense.topic = "ค่าพาหนะ"; + _expense.text_1 = "จำนวนเงิน"; + _expense.text_2 = "จำนวนครั้ง"; + } + foreach (var detail in _expense.data) + { + detail.total_amount = (detail.quantity_1*detail.quantity_2*detail.quantity_3); + } + _expense.quantity_1 = _expense.data.Sum(d => d.quantity_1); + _expense.quantity_2 = _expense.data.Sum(d => d.quantity_2); + _expense.quantity_3 = _expense.data.Sum(d => d.quantity_3); + _expense.total_amount = meals.Sum(f => f.total_amount); + + var expenses = new List() { _expense }; + Report report = new Report(); + report.Load(_setting.report_path + "expense.frx"); + report.RegisterData(expenses, "expense"); + 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.openxmlformats-officedocument.spreadsheetml.sheet", + "ค่าใช้สอย" + ".xlsx"); + } + return Ok(); } } diff --git a/Models/budget/expense.cs b/Models/budget/expense.cs new file mode 100644 index 0000000..e09d2a6 --- /dev/null +++ b/Models/budget/expense.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; + +namespace rmutr_report.Models +{ + public class expense + { + public int? topic_type { get; set; } + public string topic { get; set; } + public string text_1 { get; set; } + public string text_2 { get; set; } + public decimal? quantity_1 { get; set; } + public decimal? quantity_2 { get; set; } + public decimal? quantity_3 { get; set; } + public decimal? total_amount { get; set; } + public List data { get; set; } + } + + public class expense_detail + { + public string topic { get; set; } + public decimal? quantity_1 { get; set; } + public decimal? quantity_2 { get; set; } + public decimal? quantity_3 { get; set; } + public decimal? total_amount { get; set; } + } +} \ No newline at end of file diff --git a/bin/Debug/net5.0/rmutr_report.dll b/bin/Debug/net5.0/rmutr_report.dll index 2d37eba..2101f36 100644 Binary files a/bin/Debug/net5.0/rmutr_report.dll and b/bin/Debug/net5.0/rmutr_report.dll differ diff --git a/bin/Debug/net5.0/rmutr_report.pdb b/bin/Debug/net5.0/rmutr_report.pdb index 01da731..1a35eba 100644 Binary files a/bin/Debug/net5.0/rmutr_report.pdb and b/bin/Debug/net5.0/rmutr_report.pdb differ diff --git a/bin/Debug/netcoreapp3.1/rmutr_report.dll b/bin/Debug/netcoreapp3.1/rmutr_report.dll index 64df514..092151e 100644 Binary files a/bin/Debug/netcoreapp3.1/rmutr_report.dll and b/bin/Debug/netcoreapp3.1/rmutr_report.dll differ diff --git a/bin/Debug/netcoreapp3.1/rmutr_report.pdb b/bin/Debug/netcoreapp3.1/rmutr_report.pdb index 0b5d828..058c567 100644 Binary files a/bin/Debug/netcoreapp3.1/rmutr_report.pdb and b/bin/Debug/netcoreapp3.1/rmutr_report.pdb differ diff --git a/obj/Debug/net5.0/ref/rmutr_report.dll b/obj/Debug/net5.0/ref/rmutr_report.dll index 3a5a213..2233781 100644 Binary files a/obj/Debug/net5.0/ref/rmutr_report.dll and b/obj/Debug/net5.0/ref/rmutr_report.dll differ diff --git a/obj/Debug/net5.0/refint/rmutr_report.dll b/obj/Debug/net5.0/refint/rmutr_report.dll index 3a5a213..2233781 100644 Binary files a/obj/Debug/net5.0/refint/rmutr_report.dll and b/obj/Debug/net5.0/refint/rmutr_report.dll differ diff --git a/obj/Debug/net5.0/rmutr_report.csproj.CoreCompileInputs.cache b/obj/Debug/net5.0/rmutr_report.csproj.CoreCompileInputs.cache index 014f47f..0bf1573 100644 --- a/obj/Debug/net5.0/rmutr_report.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net5.0/rmutr_report.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -4fe8cf0520c1058922f88691f3962ea94be0b3dc +e9a9c6e955618e76948e873e71c05dce5d7a9f21 diff --git a/obj/Debug/net5.0/rmutr_report.dll b/obj/Debug/net5.0/rmutr_report.dll index 2d37eba..2101f36 100644 Binary files a/obj/Debug/net5.0/rmutr_report.dll and b/obj/Debug/net5.0/rmutr_report.dll differ diff --git a/obj/Debug/net5.0/rmutr_report.pdb b/obj/Debug/net5.0/rmutr_report.pdb index 01da731..1a35eba 100644 Binary files a/obj/Debug/net5.0/rmutr_report.pdb and b/obj/Debug/net5.0/rmutr_report.pdb differ diff --git a/obj/Debug/net5.0/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props b/obj/Debug/net5.0/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props index 38c965f..665663c 100644 --- a/obj/Debug/net5.0/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props +++ b/obj/Debug/net5.0/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props @@ -416,6 +416,22 @@ PreserveNewest $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\reports\expenditure_budget_proposal.frx)) + + Package + rmutr_report + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/rmutr_report + reports\expense.frx + + + + + + + + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\reports\expense.frx)) + Package rmutr_report diff --git a/obj/Debug/net5.0/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache b/obj/Debug/net5.0/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache index df46552..0c60265 100644 --- a/obj/Debug/net5.0/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache +++ b/obj/Debug/net5.0/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache @@ -1 +1 @@ -5f92d7595eb0985f81447ccd37a39776df99a9b9 +1bc0222191ea46a217e835e2056c22982a61bd8d diff --git a/obj/Debug/netcoreapp3.1/rmutr_report.csproj.CoreCompileInputs.cache b/obj/Debug/netcoreapp3.1/rmutr_report.csproj.CoreCompileInputs.cache index 853563f..bc84e0c 100644 --- a/obj/Debug/netcoreapp3.1/rmutr_report.csproj.CoreCompileInputs.cache +++ b/obj/Debug/netcoreapp3.1/rmutr_report.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -bde60c3a1e262956ffbc03163cd461622f8b5747 +0389217213dc28262c345e10fcde26c9d129a140 diff --git a/obj/Debug/netcoreapp3.1/rmutr_report.dll b/obj/Debug/netcoreapp3.1/rmutr_report.dll index 64df514..092151e 100644 Binary files a/obj/Debug/netcoreapp3.1/rmutr_report.dll and b/obj/Debug/netcoreapp3.1/rmutr_report.dll differ diff --git a/obj/Debug/netcoreapp3.1/rmutr_report.pdb b/obj/Debug/netcoreapp3.1/rmutr_report.pdb index 0b5d828..058c567 100644 Binary files a/obj/Debug/netcoreapp3.1/rmutr_report.pdb and b/obj/Debug/netcoreapp3.1/rmutr_report.pdb differ diff --git a/obj/Debug/netcoreapp3.1/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props b/obj/Debug/netcoreapp3.1/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props index 38c965f..665663c 100644 --- a/obj/Debug/netcoreapp3.1/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props +++ b/obj/Debug/netcoreapp3.1/staticwebassets/msbuild.rmutr_report.Microsoft.AspNetCore.StaticWebAssets.props @@ -416,6 +416,22 @@ PreserveNewest $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\reports\expenditure_budget_proposal.frx)) + + Package + rmutr_report + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/rmutr_report + reports\expense.frx + + + + + + + + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\reports\expense.frx)) + Package rmutr_report diff --git a/obj/Debug/netcoreapp3.1/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache b/obj/Debug/netcoreapp3.1/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache index df46552..0c60265 100644 --- a/obj/Debug/netcoreapp3.1/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache +++ b/obj/Debug/netcoreapp3.1/staticwebassets/rmutr_report.StaticWebAssets.Pack.cache @@ -1 +1 @@ -5f92d7595eb0985f81447ccd37a39776df99a9b9 +1bc0222191ea46a217e835e2056c22982a61bd8d diff --git a/obj/rider.project.model.nuget.info b/obj/rider.project.model.nuget.info index 01d5c0e..aec0e52 100644 --- a/obj/rider.project.model.nuget.info +++ b/obj/rider.project.model.nuget.info @@ -1 +1 @@ -16978702836935477 \ No newline at end of file +16978837858099535 \ No newline at end of file diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info index aec0e52..bdba79d 100644 --- a/obj/rider.project.restore.info +++ b/obj/rider.project.restore.info @@ -1 +1 @@ -16978837858099535 \ No newline at end of file +16978973146201897 \ No newline at end of file diff --git a/wwwroot/reports/expense.frx b/wwwroot/reports/expense.frx new file mode 100644 index 0000000..c956201 --- /dev/null +++ b/wwwroot/reports/expense.frx @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +