ปรับปรุงรายงานประวัติการเลื่อนเงินเดือนรายบุคคล

This commit is contained in:
LAPTOP-KB8JC2K2\acer
2021-04-06 09:03:11 +07:00
parent fb536d2436
commit c8f4d2317c
3 changed files with 143 additions and 28 deletions

View File

@@ -16,6 +16,8 @@ using System.Data;
using Microsoft.Extensions.Configuration;
using System.IO;
using System.Net;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace TodoAPI2.Controllers
{
@@ -96,6 +98,51 @@ namespace TodoAPI2.Controllers
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
var stream = new MemoryStream();
Document document = new Document();
PdfCopy writer = new PdfCopy(document, stream);
document.Open();
var data1 = GetReport01(model);
PdfReader reader1 = new PdfReader(data1);
reader1.ConsolidateNamedDestinations();
for (int i = 1; i <= reader1.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader1, i);
writer.AddPage(page);
}
reader1.Close();
var data2 = GetReport02(model);
PdfReader reader2 = new PdfReader(data2);
reader2.ConsolidateNamedDestinations();
for (int i = 1; i <= reader2.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader2, i);
writer.AddPage(page);
}
reader2.Close();
writer.Close();
document.Close();
var datax = stream.ToArray();
var streamx = new MemoryStream(datax);
return File(streamx, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
private byte[] GetReport01(rep_eva_self_reviewReportRequestModel model)
{
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");
@@ -110,6 +157,21 @@ namespace TodoAPI2.Controllers
{
model.theround = temp.theRound.ToString();
model.theyear = temp.fiscal_year.ToString();
var all_eva = (from x in _repository.GetContext().eva_performance_plan
where x.fiscal_year == temp.fiscal_year
orderby x.theTime
select x).ToList();
foreach (var x2 in all_eva)
{
var start = (from n in _repository.GetContext().eva_performance_plan_detail
where n.performance_plan_id == x2.id
select n.start_date).Min();
var end = (from n in _repository.GetContext().eva_performance_plan_detail
where n.performance_plan_id == x2.id
select n.end_date).Min();
model.thedesc = "ตั้งแต่วันที่ " + MyHelper.GetDateStringForReport(start) + " ถึงวันที่ " + MyHelper.GetDateStringForReport(end);
}
}
var temp2 = (from x in _repository.GetContext().eva_adjust_postponement_detail
@@ -118,10 +180,12 @@ namespace TodoAPI2.Controllers
if (temp2 != null && temp2.promoted_percentage.HasValue)
{
model.x1 = temp2.promoted_percentage.Value > 0 ? "X" : "";
model.x2 = temp2.promoted_percentage.Value <= 0 ? "X" : "";
model.x1 = temp2.promoted_percentage.Value > 0 ? "/" : "";
model.x2 = temp2.promoted_percentage.Value <= 0 ? "/" : "";
}
string url = $"{mainurl}{reportsite}/rep_eva_self_review.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
@@ -130,17 +194,63 @@ namespace TodoAPI2.Controllers
}
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
return data;
}
catch (Exception ex)
private byte[] GetReport02(rep_eva_self_reviewReportRequestModel model)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
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");
var temp = (from x in _repository.GetContext().eva_adjust_postponement_detail
join y in _repository.GetContext().eva_adjust_postponement
on x.adjust_postponement_id equals y.id
where x.id == model.detail_id
select y).FirstOrDefault();
if (temp != null)
{
model.theround = temp.theRound.ToString();
model.theyear = temp.fiscal_year.ToString();
var all_eva = (from x in _repository.GetContext().eva_performance_plan
where x.fiscal_year == temp.fiscal_year
orderby x.theTime
select x).ToList();
foreach (var x2 in all_eva)
{
var start = (from n in _repository.GetContext().eva_performance_plan_detail
where n.performance_plan_id == x2.id
select n.start_date).Min();
var end = (from n in _repository.GetContext().eva_performance_plan_detail
where n.performance_plan_id == x2.id
select n.end_date).Min();
model.thedesc = "ตั้งแต่วันที่ " + MyHelper.GetDateStringForReport(start) + " ถึงวันที่ " + MyHelper.GetDateStringForReport(end);
}
}
var temp2 = (from x in _repository.GetContext().eva_adjust_postponement_detail
where x.id == model.detail_id
select x).FirstOrDefault();
if (temp2 != null && temp2.promoted_percentage.HasValue)
{
model.x1 = temp2.promoted_percentage.Value > 0 ? "/" : "";
model.x2 = temp2.promoted_percentage.Value <= 0 ? "/" : "";
}
string url = $"{mainurl}{reportsite}/rep_eva_self_review_cover.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
{
url += "&ignorePagination=true";
}
var data = httpclient.DownloadData(url);
return data;
}
}
}

View File

@@ -24,6 +24,8 @@ namespace TodoAPI2.Models
public string x1 { get; set; }
public string x2 { get; set; }
public string thedesc { get; set; }
}
}

View File

@@ -85,6 +85,9 @@
<ul>
<li><a href="~/rpt_payroll_summaryView/rpt_payroll_summary_report"><div style="display: flex;align-items: center;"><span class="menu-dot">&middot;</span>รายงานเงินเดือน</div></a>
</ul>
<ul>
<li><a href="~/eva/eva_self_reviewView/eva_self_review"><div style="display: flex;align-items: center;"><span class="menu-dot">&middot;</span>ประวัติการเลื่อนเงินเดือนรายบุคคล</div></a>
</ul>
</nav>
</div>
</div>