diff --git a/ApiControllers/eva_adjust_postponement_quotaControllers.cs b/ApiControllers/eva_adjust_postponement_quotaControllers.cs index 0d161fd..ea4f998 100644 --- a/ApiControllers/eva_adjust_postponement_quotaControllers.cs +++ b/ApiControllers/eva_adjust_postponement_quotaControllers.cs @@ -15,6 +15,7 @@ using TodoAPI2.Models; using System.Data; using Microsoft.Extensions.Configuration; using System.IO; +using System.Net; namespace TodoAPI2.Controllers { @@ -315,6 +316,47 @@ namespace TodoAPI2.Controllers return BadRequest(ModelState); } + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("rep_eva_savemessage")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult rep_eva_savemessage(rep_eva_savemessageReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + //var httpclient = MyHelper.getHttpClient(Configuration); + var httpclient = new WebClient(); + string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL"); + string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite"); + string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username"); + string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password"); + + _repository.setModelFor_rep_eva_savemessageReport(model); + + string url = $"{mainurl}{reportsite}/rep_eva_savemessage.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}"; + + var data = httpclient.DownloadData(url); + var stream = new MemoryStream(data); + + return File(stream, model.contentType); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while GetReport.", ex); + return StatusCode(500, $"Exception while GetReport. {ex.Message}"); + } + } + } } diff --git a/Models/eva_adjust_postponement_quota/Ieva_adjust_postponement_quotaService.cs b/Models/eva_adjust_postponement_quota/Ieva_adjust_postponement_quotaService.cs index f6738e1..8798aa7 100644 --- a/Models/eva_adjust_postponement_quota/Ieva_adjust_postponement_quotaService.cs +++ b/Models/eva_adjust_postponement_quota/Ieva_adjust_postponement_quotaService.cs @@ -20,8 +20,8 @@ namespace TodoAPI2.Models string UpdateMultiple(List model); eva_adjust_postponement_quotaWithSelectionViewModel GetWithSelection(int id); eva_adjust_postponement_quotaWithSelectionViewModel GetBlankItem(); - - + rep_eva_savemessageReportRequestModel setModelFor_rep_eva_savemessageReport(rep_eva_savemessageReportRequestModel model); + DataContext GetContext(); } } diff --git a/Models/eva_adjust_postponement_quota/eva_adjust_postponement_quotaService.cs b/Models/eva_adjust_postponement_quota/eva_adjust_postponement_quotaService.cs index 2486f10..86e7121 100644 --- a/Models/eva_adjust_postponement_quota/eva_adjust_postponement_quotaService.cs +++ b/Models/eva_adjust_postponement_quota/eva_adjust_postponement_quotaService.cs @@ -59,6 +59,11 @@ namespace TodoAPI2.Models #region Public Functions #region Query Functions + public DataContext GetContext() + { + return _repository.Context; + } + public eva_adjust_postponement_quotaViewModel Get(int id) { var entity = _repository.Get(id); @@ -506,6 +511,59 @@ namespace TodoAPI2.Models return; } + + public rep_eva_savemessageReportRequestModel setModelFor_rep_eva_savemessageReport(rep_eva_savemessageReportRequestModel model) + { + model.theDate = MyHelper.GetDateFromString(model.theDate_text); + model.theDate_text = MyHelper.GetDateStringForReport(model.theDate); + model.decimal_limit_quota = Convert.ToDecimal(model.limit_quota); + + var postponement_data = (from postponement in _repository.Context.eva_adjust_postponement + join create_evaluation in _repository.Context.eva_create_evaluation on postponement.create_evaluation_id equals create_evaluation.id + where postponement.id == model.quota_id + select new + { + create_evaluation.performance_plan_id, + postponement.fiscal_year, + postponement.theDate, + postponement.limit_frame, + postponement.limit_frame_quota + }).FirstOrDefault(); + + if(postponement_data != null) + { + var plan_id = postponement_data.performance_plan_id; + + if(plan_id == null) + { + plan_id = (from plan_in_db in _repository.Context.eva_performance_plan + where plan_in_db.fiscal_year == postponement_data.fiscal_year + && plan_in_db.theTime == plan_in_db.theTime + select plan_in_db.id).FirstOrDefault(); + } + + if (plan_id.HasValue) + { + var plan = (from eva_p_p in _repository.Context.eva_performance_plan + where eva_p_p.id == plan_id + select eva_p_p).FirstOrDefault(); + + var start_plan = (from s in _repository.Context.eva_performance_plan_detail + where s.performance_plan_id == postponement_data.performance_plan_id + select s.start_date).Min(); + + var end_plan = (from s in _repository.Context.eva_performance_plan_detail + where s.performance_plan_id == postponement_data.performance_plan_id + select s.end_date).Max(); + + model.theTime = plan.theTime; + model.min_plan_start_date = MyHelper.GetDateStringForReport(start_plan); + model.max_plan_end_date = MyHelper.GetDateStringForReport(end_plan); + } + } + + return model; + } #endregion #region Match Item diff --git a/Models/rep_eva_savemessage/rep_eva_savemessageReportRequestModel.cs b/Models/rep_eva_savemessage/rep_eva_savemessageReportRequestModel.cs new file mode 100644 index 0000000..7f424af --- /dev/null +++ b/Models/rep_eva_savemessage/rep_eva_savemessageReportRequestModel.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class rep_eva_savemessageReportRequestModel + { + public int? quota_id { get; set; } + public int? fiscal_year { get; set; } + public int? theRound { get; set; } + public decimal? limit_frame_quota { get; set; } + public string limit_quota { get; set; } + public decimal? decimal_limit_quota { get; set; } + public string command_no { get; set; } + public string theDate_text { get; set; } + public DateTime? theDate { get; set; } + public int? theTime { get; set; } + public string min_plan_start_date { get; set; } + public string max_plan_end_date { get; set; } + public string filetype { get; set; } + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Views/eva_adjust_postponement_quotaView/eva_adjust_postponement_quota_d.cshtml b/Views/eva_adjust_postponement_quotaView/eva_adjust_postponement_quota_d.cshtml index d449432..7b64946 100644 --- a/Views/eva_adjust_postponement_quotaView/eva_adjust_postponement_quota_d.cshtml +++ b/Views/eva_adjust_postponement_quotaView/eva_adjust_postponement_quota_d.cshtml @@ -5,6 +5,29 @@ Layout = "_LayoutDirect"; } + +
@@ -103,6 +126,7 @@
+
diff --git a/tb320eva.xml b/tb320eva.xml index d6cf165..498212c 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -886,6 +886,16 @@ If the model is invalid Error Occurred + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + Default constructure for dependency injection diff --git a/wwwroot/js/eva_adjust_postponement_quota/eva_adjust_postponement_quota_d.js b/wwwroot/js/eva_adjust_postponement_quota/eva_adjust_postponement_quota_d.js index f2b94e3..8889e83 100644 --- a/wwwroot/js/eva_adjust_postponement_quota/eva_adjust_postponement_quota_d.js +++ b/wwwroot/js/eva_adjust_postponement_quota/eva_adjust_postponement_quota_d.js @@ -10,7 +10,7 @@ function eva_adjust_postponement_quota_FeedDataToForm(data) { $("#eva_adjust_postponement_quota_theRound").val(data.theRound); $("#eva_adjust_postponement_quota_limit_quota").val(data.limit_quota); //$("#eva_adjust_postponement_quota_limit_quota").maskMoney('mask', data.limit_quota); - + // $("#eva_adjust_postponement_quota_limit_frame_quota").val(data.limit_frame_quota); $("#eva_adjust_postponement_quota_limit_frame_quota").maskMoney('mask', data.limit_frame_quota); $("#eva_adjust_postponement_quota_command_no").val(data.command_no); @@ -25,11 +25,11 @@ function eva_adjust_postponement_quota_GetFromForm() { eva_adjust_postponement_quotaObject.fiscal_year = $("#eva_adjust_postponement_quota_fiscal_year").val(); eva_adjust_postponement_quotaObject.theDate = getDate($("#eva_adjust_postponement_quota_theDate").val()); eva_adjust_postponement_quotaObject.theRound = $("#eva_adjust_postponement_quota_theRound").val(); - eva_adjust_postponement_quotaObject.limit_quota = $("#eva_adjust_postponement_quota_limit_quota").val().replace(/[,-]/g,''); - eva_adjust_postponement_quotaObject.limit_frame_quota = $("#eva_adjust_postponement_quota_limit_frame_quota").val().replace(/[,-]/g,''); + eva_adjust_postponement_quotaObject.limit_quota = $("#eva_adjust_postponement_quota_limit_quota").val().replace(/[,-]/g, ''); + eva_adjust_postponement_quotaObject.limit_frame_quota = $("#eva_adjust_postponement_quota_limit_frame_quota").val().replace(/[,-]/g, ''); eva_adjust_postponement_quotaObject.command_no = $("#eva_adjust_postponement_quota_command_no").val(); eva_adjust_postponement_quotaObject.managed_by = $("#eva_adjust_postponement_quota_managed_by").val(); - eva_adjust_postponement_quotaObject.limit = $("#eva_adjust_postponement_quota_limit").val().replace(/[,-]/g,''); + eva_adjust_postponement_quotaObject.limit = $("#eva_adjust_postponement_quota_limit").val().replace(/[,-]/g, ''); var eva_adjust_postponement_detail_quota_02 = []; $('#eva_adjust_postponement_detail_quota_02Body tr').each(function () { @@ -136,20 +136,20 @@ function Oneva_adjust_postponement_quota_limit_frame_quotaChange() { //$("#eva_adjust_postponement_quota_limit_quota").val(Math.ceil(limit_quota/10)*10); //console.log(limit); - $("#eva_adjust_postponement_quota_limit_quota").maskMoney('mask', Math.ceil(limit_quota/10)*10); + $("#eva_adjust_postponement_quota_limit_quota").maskMoney('mask', Math.ceil(limit_quota / 10) * 10); CalculateRemainQuota(false); } function CalculateRemainQuota(m) { -//console.log("xx"); + //console.log("xx"); var sum_receive_quota = 0; - var limit_quota = parseFloat($("#eva_adjust_postponement_quota_limit_quota").val().replace(/[,-]/g,'')); + var limit_quota = parseFloat($("#eva_adjust_postponement_quota_limit_quota").val().replace(/[,-]/g, '')); var eva_adjust_postponement_detail_quota_02 = []; $('#eva_adjust_postponement_detail_quota_02Body tr').each(function () { var i = $(this).find("#rowCount").text(); if (i) { - var current_salary = parseFloat($("#eva_adjust_postponement_detail_quota_02_sarary_" + i).text().replace(/[,-]/g,'')); + var current_salary = parseFloat($("#eva_adjust_postponement_detail_quota_02_sarary_" + i).text().replace(/[,-]/g, '')); var new_sarary = parseFloat($("#eva_adjust_postponement_detail_quota_02_new_sarary_" + i).text()); var receive_quota = parseFloat($("#eva_adjust_postponement_detail_quota_02_receive_quota_" + i).val()); @@ -167,7 +167,7 @@ function CalculateRemainQuota(m) { $("#eva_adjust_postponement_detail_quota_02_new_cost_living_" + i).val(0); } } - + sum_receive_quota += receive_quota; } @@ -180,3 +180,39 @@ function CalculateRemainQuota(m) { } +// ================================================= report rep_eva_savemessage ================================================== + +function rep_eva_savemessage_GetSearchParameter(fileType) { + var eva_adjust_postponement_quotaObject = new Object(); + eva_adjust_postponement_quotaObject.quota_id = $("#eva_adjust_postponement_quota_id").val(); + eva_adjust_postponement_quotaObject.fiscal_year = $("#eva_adjust_postponement_quota_fiscal_year").val(); + eva_adjust_postponement_quotaObject.theRound = $("#eva_adjust_postponement_quota_theRound").val(); + eva_adjust_postponement_quotaObject.limit_frame_quota = $("#eva_adjust_postponement_quota_limit_frame_quota").val(); + eva_adjust_postponement_quotaObject.limit_quota = $("#eva_adjust_postponement_quota_limit_quota").val(); + eva_adjust_postponement_quotaObject.command_no = $("#eva_adjust_postponement_quota_command_no").val(); + eva_adjust_postponement_quotaObject.theDate_text = $("#eva_adjust_postponement_quota_theDate").val(); + + eva_adjust_postponement_quotaObject.fileType = fileType; + + return eva_adjust_postponement_quotaObject; +} + +function rep_eva_savemessage_DoSearch(fileType) { + if (!ValidateForm('eva_adjust_postponement_quota', eva_adjust_postponement_quota_customValidation)) { + return; + } + + var p = $.param(rep_eva_savemessage_GetSearchParameter(fileType)); + + var report_url = apisite + eva_adjust_postponement_quota_API + "rep_eva_savemessage?" + p; + + if (fileType === "pdf") { + $("#report_result").attr("src", report_url); + $("#report_result").show(); + $("#report_xModel").modal("show"); + } else { + $("#report_result").hide(); + window.open(report_url); + } + +}