Merge branch 'feature/pond_20210714_001_savemessage_report' into develop
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Download Report
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// </remarks>
|
||||
/// <returns>Return list of items by specifced keyword</returns>
|
||||
/// <response code="200">Returns the item</response>
|
||||
/// <response code="500">Error Occurred</response>
|
||||
[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}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,8 @@ namespace TodoAPI2.Models
|
||||
string UpdateMultiple(List<eva_adjust_postponement_quotaInputModel> 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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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); } }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,29 @@
|
||||
Layout = "_LayoutDirect";
|
||||
}
|
||||
|
||||
<div class="modal fade" id="report_xModel" style="z-index:1500" tabindex="-1" role="dialog" aria-labelledby="report_xModelLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="report_xModelLabel">พิมพ์ บันทึกข้อความ</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<iframe id="report_result" style="display:none; height:500px; width:100%;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">ปิด</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row page-title">
|
||||
<div class="col-md-5">
|
||||
@@ -103,6 +126,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button class="btn btn-info" type="button" onclick="javascript:CalculateRemainQuota(true)">คำนวณค่าครองชีพใหม่ ตามเกณฑ์เงินเดือน 13,285</button>
|
||||
<button type="button" class="btn btn-submit" onclick="javascript:rep_eva_savemessage_DoSearch('pdf')">พิมพ์ บันทึกข้อความ</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
10
tb320eva.xml
10
tb320eva.xml
@@ -886,6 +886,16 @@
|
||||
<response code="400">If the model is invalid</response>
|
||||
<response code="500">Error Occurred</response>
|
||||
</member>
|
||||
<member name="M:TodoAPI2.Controllers.eva_adjust_postponement_quotaController.rep_eva_savemessage(TodoAPI2.Models.rep_eva_savemessageReportRequestModel)">
|
||||
<summary>
|
||||
Download Report
|
||||
</summary>
|
||||
<remarks>
|
||||
</remarks>
|
||||
<returns>Return list of items by specifced keyword</returns>
|
||||
<response code="200">Returns the item</response>
|
||||
<response code="500">Error Occurred</response>
|
||||
</member>
|
||||
<member name="M:TodoAPI2.Controllers.eva_create_evaluationController.#ctor(Microsoft.Extensions.Logging.ILogger{TodoAPI2.Controllers.eva_create_evaluationController},TodoAPI2.Models.Ieva_create_evaluationService,Microsoft.Extensions.Configuration.IConfiguration)">
|
||||
<summary>
|
||||
Default constructure for dependency injection
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user