From b205e0e30223506542da6a6e6072a354f5e7cffb Mon Sep 17 00:00:00 2001 From: Nakorn Rientrakrunchai Date: Sat, 12 Dec 2020 09:16:48 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=88=E0=B8=B1=E0=B8=94=E0=B8=97=E0=B8=B3?= =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=87=E0=B8=B2=E0=B8=99=20?= =?UTF-8?q?=E0=B9=81=E0=B8=9A=E0=B8=9A=E0=B9=81=E0=B8=88=E0=B9=89=E0=B8=87?= =?UTF-8?q?=E0=B9=80=E0=B8=95=E0=B8=B7=E0=B8=AD=E0=B8=99=E0=B8=9C=E0=B8=A5?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B9=80=E0=B8=A5=E0=B8=B7=E0=B9=88?= =?UTF-8?q?=E0=B8=AD=E0=B8=99=E0=B9=80=E0=B8=87=E0=B8=B4=E0=B8=99=E0=B9=80?= =?UTF-8?q?=E0=B8=94=E0=B8=B7=E0=B8=AD=E0=B8=99=20=E0=B9=80=E0=B8=AA?= =?UTF-8?q?=E0=B8=A3=E0=B9=87=E0=B8=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rep_eva_self_reviewControllers.cs | 146 ++++++++++++++++++ .../eva_level_score@rep_eva_self_review.xlsx | Bin 0 -> 10074 bytes .../Irep_eva_self_reviewService.cs | 24 +++ .../rep_eva_self_reviewInputModel.cs | 24 +++ .../rep_eva_self_reviewReportRequestModel.cs | 29 ++++ .../rep_eva_self_reviewSearchModel.cs | 23 +++ .../rep_eva_self_reviewService.cs | 46 ++++++ .../rep_eva_self_reviewViewModel.cs | 21 +++ ...p_eva_self_reviewWithSelectionViewModel.cs | 12 ++ Properties/launchSettings.json | 6 +- Startup.cs | 7 + .../rep_eva_self_reviewViewControllers.cs | 50 ++++++ .../rep_eva_self_review_report.cshtml | 45 ++++++ appsettings.Development.json | 6 +- tb320eva.csproj | 2 + tb320eva.xml | 36 +++++ wwwroot/js/eva_self_review/eva_self_review.js | 3 +- .../rep_eva_self_review_report.js | 59 +++++++ 18 files changed, 532 insertions(+), 7 deletions(-) create mode 100644 ApiControllers/rep_eva_self_reviewControllers.cs create mode 100644 EXCEL/eva_level_score@rep_eva_self_review.xlsx create mode 100644 Models/rep_eva_self_review/Irep_eva_self_reviewService.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewInputModel.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewReportRequestModel.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewSearchModel.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewService.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewViewModel.cs create mode 100644 Models/rep_eva_self_review/rep_eva_self_reviewWithSelectionViewModel.cs create mode 100644 ViewControllers/rep_eva_self_reviewViewControllers.cs create mode 100644 Views/rep_eva_self_reviewView/rep_eva_self_review_report.cshtml create mode 100644 wwwroot/js/rep_eva_self_review/rep_eva_self_review_report.js diff --git a/ApiControllers/rep_eva_self_reviewControllers.cs b/ApiControllers/rep_eva_self_reviewControllers.cs new file mode 100644 index 0000000..b48698a --- /dev/null +++ b/ApiControllers/rep_eva_self_reviewControllers.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using TTSW.Controllers; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.Data; +using Microsoft.Extensions.Configuration; +using System.IO; +using System.Net; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/rep_eva_self_review")] + public class rep_eva_self_reviewController : BaseController + { + #region Private Variables + private ILogger _logger; + private Irep_eva_self_reviewService _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public rep_eva_self_reviewController(ILogger logger, Irep_eva_self_reviewService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(rep_eva_self_reviewWithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetBlankItem() + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetBlankItem(); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetBlankItem.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("rep_eva_self_review_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult rep_eva_self_review_report(rep_eva_self_reviewReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + 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 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 ? "X" : ""; + model.x2 = temp2.promoted_percentage.Value <= 0 ? "X" : ""; + } + + string url = $"{mainurl}{reportsite}/rep_eva_self_review.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}"; + + if (model.filetype == "xlsx") + { + url += "&ignorePagination=true"; + } + + 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, $"{ex.Message}"); + } + } + + + } +} diff --git a/EXCEL/eva_level_score@rep_eva_self_review.xlsx b/EXCEL/eva_level_score@rep_eva_self_review.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..759e83589c4856d0ef161b3a8c82566058dd7155 GIT binary patch literal 10074 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 we}9Q5N#-Au&Qs98M(SUX0DwNlpWf+Taa%pF literal 0 HcmV?d00001 diff --git a/Models/rep_eva_self_review/Irep_eva_self_reviewService.cs b/Models/rep_eva_self_review/Irep_eva_self_reviewService.cs new file mode 100644 index 0000000..c854d48 --- /dev/null +++ b/Models/rep_eva_self_review/Irep_eva_self_reviewService.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; + +namespace TodoAPI2.Models +{ + public interface Irep_eva_self_reviewService + { + + rep_eva_self_reviewWithSelectionViewModel GetBlankItem(); + + DataContext GetContext(); + + + + } +} + diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewInputModel.cs b/Models/rep_eva_self_review/rep_eva_self_reviewInputModel.cs new file mode 100644 index 0000000..7409c7d --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewInputModel.cs @@ -0,0 +1,24 @@ +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_self_reviewInputModel + { + + public Guid? id { get; set; } + + public int? detail_id { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewReportRequestModel.cs b/Models/rep_eva_self_review/rep_eva_self_reviewReportRequestModel.cs new file mode 100644 index 0000000..44b3da7 --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewReportRequestModel.cs @@ -0,0 +1,29 @@ +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_self_reviewReportRequestModel : rep_eva_self_reviewSearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + + public string theyear { get; set; } + + public string theround { get; set; } + + public string x1 { get; set; } + + public string x2 { get; set; } + } +} + diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewSearchModel.cs b/Models/rep_eva_self_review/rep_eva_self_reviewSearchModel.cs new file mode 100644 index 0000000..29f1f8b --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewSearchModel.cs @@ -0,0 +1,23 @@ +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_self_reviewSearchModel + { + + public Guid id { get; set; } + + public int? detail_id { get; set; } + + } +} + diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewService.cs b/Models/rep_eva_self_review/rep_eva_self_reviewService.cs new file mode 100644 index 0000000..c3f128b --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewService.cs @@ -0,0 +1,46 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.IO; +using System.Web; +using System.Net; +using TTSW.Configure; +using Microsoft.Extensions.Options; +using System.Data; + +namespace TodoAPI2.Models +{ + public class rep_eva_self_reviewService : Irep_eva_self_reviewService + { + private IBaseRepository _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + + public rep_eva_self_reviewService(IBaseRepository repository, IMyDatabase mydb, Iexternal_linkageService inext) + { + _repository = repository; + db = mydb; + ext = inext; + } + + public rep_eva_self_reviewWithSelectionViewModel GetBlankItem() + { + var i = new rep_eva_self_reviewWithSelectionViewModel(); + + + return i; + } + + public DataContext GetContext() + { + return _repository.Context; + } + } +} \ No newline at end of file diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewViewModel.cs b/Models/rep_eva_self_review/rep_eva_self_reviewViewModel.cs new file mode 100644 index 0000000..a4ba022 --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewViewModel.cs @@ -0,0 +1,21 @@ +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_self_reviewViewModel : BaseViewModel2 + { + + public int? detail_id { get; set; } + + + } +} \ No newline at end of file diff --git a/Models/rep_eva_self_review/rep_eva_self_reviewWithSelectionViewModel.cs b/Models/rep_eva_self_review/rep_eva_self_reviewWithSelectionViewModel.cs new file mode 100644 index 0000000..12eaf09 --- /dev/null +++ b/Models/rep_eva_self_review/rep_eva_self_reviewWithSelectionViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class rep_eva_self_reviewWithSelectionViewModel: rep_eva_self_reviewViewModel + { + + } +} \ No newline at end of file diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json index 2596353..214bc28 100644 --- a/Properties/launchSettings.json +++ b/Properties/launchSettings.json @@ -22,14 +22,14 @@ "DB_PASSWORD": "project0*", "JasperReportServer_username": "tb@zd.co.th", "SiteInformation_mainsite": "http://tb320dev.zd.co.th", - "JasperReportServer_password": "Be$m@rt", + "JasperReportServer_password": "project0*", "DB_HOST": "192.168.2.233", "SiteInformation_modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน", "SiteInformation_chatsite": "http://chat.rmutto.ac.th", "ASPNETCORE_ENVIRONMENT": "Development", "MIGRATION": "true", - "JasperReportServer_MainURL": "http://tb-320.zd.co.th/jasperserver/rest_v2/reports", - "JasperReportServer_LoginURL": "http://tb-320.zd.co.th/jasperserver/rest_v2/reports", + "JasperReportServer_MainURL": "https://hrm.thethaibar.or.th/jasperserver/rest_v2/reports", + "JasperReportServer_LoginURL": "https://hrm.thethaibar.or.th/jasperserver/rest_v2/login", "SiteInformation_appsite": "/eva", "SiteInformation_sitename": "เนติบัณฑิตยสภา ในพระบรมราชูปถัมภ์" } diff --git a/Startup.cs b/Startup.cs index 1f18d9b..515a506 100644 --- a/Startup.cs +++ b/Startup.cs @@ -301,6 +301,8 @@ namespace Test01 services.AddScoped(); + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -540,6 +542,11 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + }); #endregion diff --git a/ViewControllers/rep_eva_self_reviewViewControllers.cs b/ViewControllers/rep_eva_self_reviewViewControllers.cs new file mode 100644 index 0000000..21c5baf --- /dev/null +++ b/ViewControllers/rep_eva_self_reviewViewControllers.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using TodoAPI2.Models; +using STAFF_API.Models; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Configuration; +using TodoAPI2.Controllers; + +namespace TodoAPI2.Controllers +{ + public class rep_eva_self_reviewViewController : Controller + { + private ILogger _logger; + private Irep_eva_self_reviewService _repository; + private IConfiguration Configuration { get; set; } + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public rep_eva_self_reviewViewController(ILogger logger, Irep_eva_self_reviewService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + + public IActionResult rep_eva_self_review_report() + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + return View(); + } + + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + } +} + + diff --git a/Views/rep_eva_self_reviewView/rep_eva_self_review_report.cshtml b/Views/rep_eva_self_reviewView/rep_eva_self_review_report.cshtml new file mode 100644 index 0000000..ddbad8e --- /dev/null +++ b/Views/rep_eva_self_reviewView/rep_eva_self_review_report.cshtml @@ -0,0 +1,45 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "rep_eva_self_review"; +} + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
แบบแจ้งเตือนผลการเลื่อนเงินเดือน
+
+
+ +
+ +
+
+
+
+
+ + +@section FooterPlaceHolder{ + + +} + diff --git a/appsettings.Development.json b/appsettings.Development.json index 6c69a43..2b7e1ee 100644 --- a/appsettings.Development.json +++ b/appsettings.Development.json @@ -29,10 +29,10 @@ "From": "" }, "JasperReportServer": { - "MainURL": "http://tb-320.zd.co.th/jasperserver/rest_v2/reports", - "LoginURL": "http://tb-320.zd.co.th/jasperserver/rest_v2/login", + "MainURL": "https://hrm.thethaibar.or.th/jasperserver/rest_v2/reports", + "LoginURL": "https://hrm.thethaibar.or.th/jasperserver/rest_v2/login", "username": "tb@zd.co.th", - "password": "Be$m@rt", + "password": "project0*", "reportsite": "/tb320hr_site2" }, "SiteInformation": { diff --git a/tb320eva.csproj b/tb320eva.csproj index 5d602e9..1485eec 100644 --- a/tb320eva.csproj +++ b/tb320eva.csproj @@ -72,10 +72,12 @@ + + Always diff --git a/tb320eva.xml b/tb320eva.xml index 22de658..a047d37 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -3682,6 +3682,34 @@ Returns the item Error Occurred + + + Default constructure for dependency injection + + + + + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + Default constructure for dependency injection @@ -4258,6 +4286,14 @@ + + + Default constructure for dependency injection + + + + + Default constructure for dependency injection diff --git a/wwwroot/js/eva_self_review/eva_self_review.js b/wwwroot/js/eva_self_review/eva_self_review.js index c70de4d..03690ec 100644 --- a/wwwroot/js/eva_self_review/eva_self_review.js +++ b/wwwroot/js/eva_self_review/eva_self_review.js @@ -79,7 +79,8 @@ function eva_self_review_GoEdit(a) { // Incase open new page //window_open(appsite + "/eva_self_reviewView/eva_self_review_d?id=" + a); - alert(a); + //alert(a); + window_open(appsite + "/rep_eva_self_reviewView/rep_eva_self_review_report?id=" + a); } function eva_self_review_SetEditForm(a) { diff --git a/wwwroot/js/rep_eva_self_review/rep_eva_self_review_report.js b/wwwroot/js/rep_eva_self_review/rep_eva_self_review_report.js new file mode 100644 index 0000000..f233107 --- /dev/null +++ b/wwwroot/js/rep_eva_self_review/rep_eva_self_review_report.js @@ -0,0 +1,59 @@ +var rep_eva_self_review_API = "/api/rep_eva_self_review/"; + +//================= Search Customizaiton ========================================= + +function rep_eva_self_review_GetSearchParameter(fileType) { + var rep_eva_self_reviewSearchObject = new Object(); + rep_eva_self_reviewSearchObject.detail_id = getUrlParameter("id"); + + + rep_eva_self_reviewSearchObject.fileType = fileType; + + console.log(rep_eva_self_reviewSearchObject); + + return rep_eva_self_reviewSearchObject; +} + +function rep_eva_self_review_FeedDataToSearchForm(data) { + $("#s_rep_eva_self_review_detail_id").val(data.detail_id); + +} + +//================= Form Data Customizaiton ========================================= + +function rep_eva_self_review_InitialForm(s) { + var successFunc = function (result) { + rep_eva_self_review_FeedDataToSearchForm(result); + rep_eva_self_review_DoSearch('pdf'); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_eva_self_review_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Data Table ========================================= + +var s_rep_eva_self_review_customValidation = function (group) { + return ""; +}; + + +function rep_eva_self_review_DoSearch(fileType) { + if (!ValidateForm('s_rep_eva_self_review', s_rep_eva_self_review_customValidation)) { + return; + } + + var p = $.param(rep_eva_self_review_GetSearchParameter(fileType)); + + var report_url = apisite + "/api/rep_eva_self_review/rep_eva_self_review_report?" + p; + + if (fileType === "pdf") { + $("#report_result").attr("src", report_url); + $("#report_result").show(); + //window.open(report_url); + } else { + $("#report_result").hide(); + window.open(report_url); + } +} +