From 14c7df9d17656f8aa977861c0cbb2698981bf19c Mon Sep 17 00:00:00 2001 From: "LAPTOP-KB8JC2K2\\acer" Date: Thu, 23 Sep 2021 16:49:08 +0700 Subject: [PATCH] Add new report --- ApiControllers/rep_summary_a01Controllers.cs | 127 ++++++++++ EXCEL/eva_level_score@rep_summary_a01.xlsx | Bin 0 -> 10258 bytes Models/rep_eva01/rep_eva01Service.cs | 5 +- .../Irep_summary_a01Service.cs | 22 ++ .../rep_summary_a01InputModel.cs | 28 +++ .../rep_summary_a01ReportRequestModel.cs | 21 ++ .../rep_summary_a01SearchModel.cs | 27 +++ .../rep_summary_a01/rep_summary_a01Service.cs | 56 +++++ .../rep_summary_a01ViewModel.cs | 28 +++ .../rep_summary_a01WithSelectionViewModel.cs | 15 ++ Startup.cs | 6 + .../rep_summary_a01ViewControllers.cs | 66 +++++ Views/home/index2.cshtml | 3 + .../rep_summary_a01_report.cshtml | 68 ++++++ tb320eva.csproj | 5 + tb320eva.xml | 36 +++ wwwroot/js/rep_summary_a01/rep_summary_a01.js | 228 ++++++++++++++++++ .../js/rep_summary_a01/rep_summary_a01_d.js | 102 ++++++++ .../rep_summary_a01/rep_summary_a01_inline.js | 140 +++++++++++ .../rep_summary_a01/rep_summary_a01_report.js | 62 +++++ 20 files changed, 1042 insertions(+), 3 deletions(-) create mode 100644 ApiControllers/rep_summary_a01Controllers.cs create mode 100644 EXCEL/eva_level_score@rep_summary_a01.xlsx create mode 100644 Models/rep_summary_a01/Irep_summary_a01Service.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01InputModel.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01ReportRequestModel.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01SearchModel.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01Service.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01ViewModel.cs create mode 100644 Models/rep_summary_a01/rep_summary_a01WithSelectionViewModel.cs create mode 100644 ViewControllers/rep_summary_a01ViewControllers.cs create mode 100644 Views/rep_summary_a01View/rep_summary_a01_report.cshtml create mode 100644 wwwroot/js/rep_summary_a01/rep_summary_a01.js create mode 100644 wwwroot/js/rep_summary_a01/rep_summary_a01_d.js create mode 100644 wwwroot/js/rep_summary_a01/rep_summary_a01_inline.js create mode 100644 wwwroot/js/rep_summary_a01/rep_summary_a01_report.js diff --git a/ApiControllers/rep_summary_a01Controllers.cs b/ApiControllers/rep_summary_a01Controllers.cs new file mode 100644 index 0000000..ce802be --- /dev/null +++ b/ApiControllers/rep_summary_a01Controllers.cs @@ -0,0 +1,127 @@ +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_summary_a01")] + public class rep_summary_a01Controller : BaseController + { + #region Private Variables + private ILogger _logger; + private Irep_summary_a01Service _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public rep_summary_a01Controller(ILogger logger, Irep_summary_a01Service 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_summary_a01WithSelectionViewModel), 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_summary_a01_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult rep_summary_a01_report(rep_summary_a01ReportRequestModel 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"); + + string url = $"{mainurl}{reportsite}/rep_summary_a01.{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_summary_a01.xlsx b/EXCEL/eva_level_score@rep_summary_a01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ef6158eaa9d696df3713284929519bb87824dd1c GIT binary patch literal 10258 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 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + private Iexternal_employeeService emp; + + public rep_summary_a01Service(IBaseRepository repository, IMyDatabase mydb, Iexternal_linkageService inext, Iexternal_employeeService inemp) + { + _repository = repository; + db = mydb; + ext = inext; + emp = inemp; + } + + public rep_summary_a01WithSelectionViewModel GetWithSelection(Guid id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + i.item_org_id = (from x in ext.GetSortingDep() select x).ToList(); + i.item_round_id = (from x in ext.GetEvaRound() orderby x.external_code descending select x).ToList(); + i.item_employee_id = (from x in emp.GetListByemployee_type(null, null) orderby x.fullname select x).ToList(); + + return i; + } + public rep_summary_a01WithSelectionViewModel GetBlankItem() + { + var i = new rep_summary_a01WithSelectionViewModel(); + i.item_org_id = (from x in ext.GetSortingDep() select x).ToList(); + i.item_round_id = (from x in ext.GetEvaRound() orderby x.external_code descending select x).ToList(); + i.item_employee_id = (from x in emp.GetListByemployee_type(null, null) orderby x.fullname select x).ToList(); + + return i; + } + } +} + diff --git a/Models/rep_summary_a01/rep_summary_a01ViewModel.cs b/Models/rep_summary_a01/rep_summary_a01ViewModel.cs new file mode 100644 index 0000000..751496b --- /dev/null +++ b/Models/rep_summary_a01/rep_summary_a01ViewModel.cs @@ -0,0 +1,28 @@ +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_summary_a01ViewModel : BaseViewModel2 + { + + public int? org_id { get; set; } + + public int? round_id { get; set; } + + public int? employee_id { get; set; } + + public string org_id_external_linkage_external_name { get; set; } + public string round_id_external_linkage_external_name { get; set; } + public string employee_id_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/rep_summary_a01/rep_summary_a01WithSelectionViewModel.cs b/Models/rep_summary_a01/rep_summary_a01WithSelectionViewModel.cs new file mode 100644 index 0000000..59a4897 --- /dev/null +++ b/Models/rep_summary_a01/rep_summary_a01WithSelectionViewModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class rep_summary_a01WithSelectionViewModel: rep_summary_a01ViewModel + { + public List item_org_id { get; set; } + public List item_round_id { get; set; } + public List item_employee_id { get; set; } + + } +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs index e89fc55..2f9a66b 100644 --- a/Startup.cs +++ b/Startup.cs @@ -335,6 +335,8 @@ namespace Test01 services.AddScoped, BaseRepository2>(); services.AddScoped(); + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -630,6 +632,10 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }); #endregion diff --git a/ViewControllers/rep_summary_a01ViewControllers.cs b/ViewControllers/rep_summary_a01ViewControllers.cs new file mode 100644 index 0000000..cb63f6a --- /dev/null +++ b/ViewControllers/rep_summary_a01ViewControllers.cs @@ -0,0 +1,66 @@ +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_summary_a01ViewController : Controller + { + private ILogger _logger; + private Irep_summary_a01Service _repository; + private IConfiguration Configuration { get; set; } + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public rep_summary_a01ViewController(ILogger logger, Irep_summary_a01Service repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + // public IActionResult rep_summary_a01() + // { + //if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + // return View(); + // } + + // public IActionResult rep_summary_a01_d() + // { + //if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + // return View(); + // } + + public IActionResult rep_summary_a01_report() + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + return View(); + } + + //public IActionResult rep_summary_a01_inline() + //{ + // 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/home/index2.cshtml b/Views/home/index2.cshtml index 7a2fd7e..e3f9190 100644 --- a/Views/home/index2.cshtml +++ b/Views/home/index2.cshtml @@ -82,6 +82,9 @@ + diff --git a/Views/rep_summary_a01View/rep_summary_a01_report.cshtml b/Views/rep_summary_a01View/rep_summary_a01_report.cshtml new file mode 100644 index 0000000..22c75df --- /dev/null +++ b/Views/rep_summary_a01View/rep_summary_a01_report.cshtml @@ -0,0 +1,68 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "rep_summary_a01"; +} + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
สรุปการประเมินผลการปฏิบัติงานของพนักงานเนติบัณฑิตยสภา
+
+
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+
+ + +
+
+
+
+
+ + +@section FooterPlaceHolder{ + + +} + diff --git a/tb320eva.csproj b/tb320eva.csproj index f557aa5..ae7bdae 100644 --- a/tb320eva.csproj +++ b/tb320eva.csproj @@ -78,6 +78,7 @@ + @@ -101,6 +102,10 @@ + + + + diff --git a/tb320eva.xml b/tb320eva.xml index 498212c..6dbd0ec 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -5047,6 +5047,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 @@ -5688,6 +5716,14 @@ + + + Default constructure for dependency injection + + + + + Default constructure for dependency injection diff --git a/wwwroot/js/rep_summary_a01/rep_summary_a01.js b/wwwroot/js/rep_summary_a01/rep_summary_a01.js new file mode 100644 index 0000000..931fc2d --- /dev/null +++ b/wwwroot/js/rep_summary_a01/rep_summary_a01.js @@ -0,0 +1,228 @@ +var rep_summary_a01_editMode = "CREATE"; +var rep_summary_a01_API = "/api/rep_summary_a01/"; + +//================= Search Customizaiton ========================================= + +function rep_summary_a01_GetSearchParameter() { + var rep_summary_a01SearchObject = new Object(); +rep_summary_a01SearchObject.org_id = $("#s_rep_summary_a01_org_id").val(); +rep_summary_a01SearchObject.round_id = $("#s_rep_summary_a01_round_id").val(); +rep_summary_a01SearchObject.employee_id = $("#s_rep_summary_a01_employee_id").val(); + + return rep_summary_a01SearchObject; +} + +function rep_summary_a01_FeedDataToSearchForm(data) { +DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_org_id"), data, "id", "external_name", "item_org_id", data.org_id); +DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_round_id"), data, "id", "external_name", "item_round_id", data.round_id); +DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_employee_id"), data, "id", "external_name", "item_employee_id", data.employee_id); + +} + +//================= Form Data Customizaiton ========================================= + +function rep_summary_a01_FeedDataToForm(data) { +$("#rep_summary_a01_id").val(data.id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_org_id"), data, "id", "external_name", "item_org_id", data.org_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_round_id"), data, "id", "external_name", "item_round_id", data.round_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_employee_id"), data, "id", "external_name", "item_employee_id", data.employee_id); + +} + +function rep_summary_a01_GetFromForm() { + var rep_summary_a01Object = new Object(); +rep_summary_a01Object.id = $("#rep_summary_a01_id").val(); +rep_summary_a01Object.org_id = $("#rep_summary_a01_org_id").val(); +rep_summary_a01Object.round_id = $("#rep_summary_a01_round_id").val(); +rep_summary_a01Object.employee_id = $("#rep_summary_a01_employee_id").val(); + + + return rep_summary_a01Object; +} + +function rep_summary_a01_InitialForm(s) { + var successFunc = function (result) { + rep_summary_a01_FeedDataToForm(result); + rep_summary_a01_FeedDataToSearchForm(result); + if (s) { + // Incase model popup + $("#rep_summary_a01Model").modal("show"); + } + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_summary_a01_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function rep_summary_a01_GoCreate() { + // Incase model popup + rep_summary_a01_SetCreateForm(true); + + // Incase open new page + //window_open(appsite + "/rep_summary_a01View/rep_summary_a01_d"); +} + +function rep_summary_a01_GoEdit(a) { + // Incase model popup + rep_summary_a01_SetEditForm(a); + + // Incase open new page + //window_open(appsite + "/rep_summary_a01View/rep_summary_a01_d?id=" + a); +} + +function rep_summary_a01_SetEditForm(a) { + var successFunc = function (result) { + rep_summary_a01_editMode = "UPDATE"; + rep_summary_a01_FeedDataToForm(result); + $("#rep_summary_a01Model").modal("show"); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_summary_a01_API + a, successFunc, AlertDanger); +} + +function rep_summary_a01_SetCreateForm(s) { + rep_summary_a01_editMode = "CREATE"; + rep_summary_a01_InitialForm(s); +} + +function rep_summary_a01_RefreshTable() { + // Incase model popup + rep_summary_a01_DoSearch(); + + // Incase open new page + //window.parent.rep_summary_a01_DoSearch(); +} + +//================= Update and Delete ========================================= + +var rep_summary_a01_customValidation = function (group) { + return ""; +}; + +function rep_summary_a01_PutUpdate() { + if (!ValidateForm('rep_summary_a01', rep_summary_a01_customValidation)) + { + return; + } + + var data = rep_summary_a01_GetFromForm(); + + //Update Mode + if (rep_summary_a01_editMode === "UPDATE") { + var successFunc1 = function (result) { + $("#rep_summary_a01Model").modal("hide"); + AlertSuccess(result.code+" "+result.message); + rep_summary_a01_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + rep_summary_a01_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + $("#rep_summary_a01Model").modal("hide"); + AlertSuccess(result.code+" "+result.message); + rep_summary_a01_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + rep_summary_a01_API, data, successFunc2, AlertDanger); + } +} + +function rep_summary_a01_GoDelete(a) { + if (confirm('คุณต้องการลบข้อมูล ใช่หรือไม่?')) { + var successFunc = function (result) { + $("#rep_summary_a01Model").modal("hide"); + AlertSuccess(result.code+" "+result.message); + rep_summary_a01_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + rep_summary_a01_API + a, null, successFunc, AlertDanger); + } +} + +//================= Data Table ========================================= + +var rep_summary_a01TableV; + +var rep_summary_a01_setupTable = function (result) { + tmp = '"'; + rep_summary_a01TableV = $('#rep_summary_a01Table').DataTable({ + "processing": true, + "serverSide": false, + "data": result, + //"select": { + // "style": 'multi' + //}, + "columns": [ + //{ "data": "" }, + { "data": "id" }, + { "data": "id" }, + { "data": "org_id_external_linkage_external_name" }, + { "data": "round_id_external_linkage_external_name" }, + { "data": "employee_id_external_linkage_external_name" }, + ], + "columnDefs": [ + { + "targets": 0, //1, + "data": "id", + "render": function (data, type, row, meta) { + return " "; + } + }, + //{ + // targets: 0, + // data: "", + // defaultContent: '', + // orderable: false, + // className: 'select-checkbox' + //} + ], + "language": { + "url": appsite + "/DataTables-1.10.16/thai.json" + }, + "paging": true, + "searching": false + }); + endLoad(); +}; + +function rep_summary_a01_InitiateDataTable() { + startLoad(); + var p = $.param(rep_summary_a01_GetSearchParameter()); + AjaxGetRequest(apisite + "/api/rep_summary_a01/GetListBySearch?"+p, rep_summary_a01_setupTable, AlertDanger); +} + +function rep_summary_a01_DoSearch() { + var p = $.param(rep_summary_a01_GetSearchParameter()); + var rep_summary_a01_reload = function (result) { + rep_summary_a01TableV.destroy(); + rep_summary_a01_setupTable(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/rep_summary_a01/GetListBySearch?"+p, rep_summary_a01_reload, AlertDanger); +} + +function rep_summary_a01_GetSelect(f) { + var rep_summary_a01_selectitem = []; + $.each(rep_summary_a01TableV.rows('.selected').data(), function (key, value) { + rep_summary_a01_selectitem.push(value[f]); + }); + alert(rep_summary_a01_selectitem); +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + + diff --git a/wwwroot/js/rep_summary_a01/rep_summary_a01_d.js b/wwwroot/js/rep_summary_a01/rep_summary_a01_d.js new file mode 100644 index 0000000..284cb34 --- /dev/null +++ b/wwwroot/js/rep_summary_a01/rep_summary_a01_d.js @@ -0,0 +1,102 @@ +var rep_summary_a01_editMode = "CREATE"; +var rep_summary_a01_API = "/api/rep_summary_a01/"; + +//================= Form Data Customizaiton ========================================= + +function rep_summary_a01_FeedDataToForm(data) { +$("#rep_summary_a01_id").val(data.id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_org_id"), data, "id", "external_name", "item_org_id", data.org_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_round_id"), data, "id", "external_name", "item_round_id", data.round_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_employee_id"), data, "id", "external_name", "item_employee_id", data.employee_id); + +} + +function rep_summary_a01_GetFromForm() { + var rep_summary_a01Object = new Object(); +rep_summary_a01Object.id = $("#rep_summary_a01_id").val(); +rep_summary_a01Object.org_id = $("#rep_summary_a01_org_id").val(); +rep_summary_a01Object.round_id = $("#rep_summary_a01_round_id").val(); +rep_summary_a01Object.employee_id = $("#rep_summary_a01_employee_id").val(); + + + return rep_summary_a01Object; +} + +function rep_summary_a01_InitialForm() { + var successFunc = function (result) { + rep_summary_a01_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_summary_a01_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function rep_summary_a01_SetEditForm(a) { + var successFunc = function (result) { + rep_summary_a01_editMode = "UPDATE"; + rep_summary_a01_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_summary_a01_API + a, successFunc, AlertDanger); +} + +function rep_summary_a01_SetCreateForm() { + rep_summary_a01_editMode = "CREATE"; + rep_summary_a01_InitialForm(); +} + +//================= Update and Delete ========================================= + +var rep_summary_a01_customValidation = function (group) { + return ""; +}; + +function rep_summary_a01_PutUpdate() { + if (!ValidateForm('rep_summary_a01', rep_summary_a01_customValidation)) + { + return; + } + var data = rep_summary_a01_GetFromForm(); + + //Update Mode + if (rep_summary_a01_editMode === "UPDATE") { + var successFunc1 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + rep_summary_a01_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + rep_summary_a01_API, data, successFunc2, AlertDanger); + } +} + +function rep_summary_a01_GoDelete(a) { + if (confirm('คุณต้องการลบ ' + a + ' ใช่หรือไม่?')) { + var successFunc = function (result) { + AlertSuccess(result.code+" "+result.message); + rep_summary_a01_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + rep_summary_a01_API + a, null, successFunc, AlertDanger); + } +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + diff --git a/wwwroot/js/rep_summary_a01/rep_summary_a01_inline.js b/wwwroot/js/rep_summary_a01/rep_summary_a01_inline.js new file mode 100644 index 0000000..605b1b8 --- /dev/null +++ b/wwwroot/js/rep_summary_a01/rep_summary_a01_inline.js @@ -0,0 +1,140 @@ +function rep_summary_a01_ClearForm(i, blankItem) { + var data = blankItem; +$("#rep_summary_a01_id_" + i).val(""); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_org_id_" + i), blankItem, "id", "external_name", "item_org_id", data.org_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_round_id_" + i), blankItem, "id", "external_name", "item_round_id", data.round_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_employee_id_" + i), blankItem, "id", "external_name", "item_employee_id", data.employee_id); + +} + +function rep_summary_a01_FeedDataToForm(data, i, blankItem) { +$("#rep_summary_a01_id_" + i).val(data.id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_org_id_" + i), blankItem, "id", "external_name", "item_org_id", data.org_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_round_id_" + i), blankItem, "id", "external_name", "item_round_id", data.round_id); +DropDownClearFormAndFeedWithData($("#rep_summary_a01_employee_id_" + i), blankItem, "id", "external_name", "item_employee_id", data.employee_id); + +} + +function rep_summary_a01_GetFromForm(obj, i) { + var rep_summary_a01Object = new Object(); +rep_summary_a01Object.id = obj.find("#rep_summary_a01_id_" + i).val(); +rep_summary_a01Object.org_id = obj.find("#rep_summary_a01_org_id_" + i).val(); +rep_summary_a01Object.round_id = obj.find("#rep_summary_a01_round_id_" + i).val(); +rep_summary_a01Object.employee_id = obj.find("#rep_summary_a01_employee_id_" + i).val(); + + rep_summary_a01Object.active_mode = obj.find("#isActive_" + i + "_rep_summary_a01").val(); + return rep_summary_a01Object; +} + +function rep_summary_a01_GetAllData() { + //Insert rep_summary_a01 List + var rep_summary_a01 = []; + $('#rep_summary_a01Body tr').each(function () { + var i = $(this).find("#rowCount").text(); + var eachrep_summary_a01 = rep_summary_a01_GetFromForm($(this), i); + rep_summary_a01.push(eachrep_summary_a01); + }); + return rep_summary_a01; +} + +function rep_summary_a01_Save(id) { + //Insert rep_summary_a01 List + var rep_summary_a01 = rep_summary_a01_GetAllData(); + + var successFunc = function (result) { + AlertSuccess("ปรับปรุงข้อมูลเรียบร้อยแล้ว"); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + '/api/rep_summary_a01/UpdateMultiple', rep_summary_a01, successFunc, AlertDanger); +} + +function rep_summary_a01_Get(id, blankItem) { + + $('#rep_summary_a01Body').empty(); + + var successFunc = function (response) { + //console.log(response); + $.each(response, function (i, data) { + var tag = ''; + tag += ''; + tag += ''; + tag += ''; + tag += ''; + + tag += ''; + tag += ''; + $('#rep_summary_a01Body').append($(tag)); + rep_summary_a01_FeedDataToForm(data, (i + 1), blankItem); + }); + rep_summary_a01_Summary(); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/rep_summary_a01", successFunc, AlertDanger); + //AjaxGetRequest(apisite + '/api/rep_summary_a01/GetListByorg_id/' + a, successFunc, AlertDanger); + //AjaxGetRequest(apisite + '/api/rep_summary_a01/GetListByround_id/' + a, successFunc, AlertDanger); + //AjaxGetRequest(apisite + '/api/rep_summary_a01/GetListByemployee_id/' + a, successFunc, AlertDanger); + +} + +function rep_summary_a01_Add() { + var successFunc = function (result) { + var i = $("#rep_summary_a01Body tr").length; + var tag = ''; + tag += ''; + tag += ''; + tag += ''; + tag += ''; + + tag += ''; + tag += ''; + + $('#rep_summary_a01Body').append($(tag)); + rep_summary_a01_ClearForm(i + 1, result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/rep_summary_a01/" + "GetBlankItem", successFunc, AlertDanger); +} + +function rep_summary_a01_Removerep_summary_a01(e) { + if (confirm('กรุณากดตกลง เพื่อยืนยันการลบ?')) { + $(e).closest('tr').find("input,select,textarea").attr('disabled', true); + $(e).closest('tr').find("input,select,textarea").css({ opacity: '0.5' }); + $(e).hide(); + $(e).closest('tr').find("#restoreBtn").show(); + $(e).closest('tr').find("input").first().val("0"); + console.log($(e).closest('tr').find("input").first().val()); + rep_summary_a01_Summary(); + } +} + +function rep_summary_a01_Restorerep_summary_a01(e) { + if (confirm('กรุณากดตกลง เพื่อยืนยันการกู้คืน?')) { + $(e).closest('tr').find("input,select,textarea").attr('disabled', false); + $(e).closest('tr').find("input,select,textarea").css({ opacity: '1' }); + $(e).hide(); + $(e).closest('tr').find("#removeBtn").show(); + $(e).closest('tr').find("input").first().val("1"); + console.log($(e).closest('tr').find("input").first().val()); + rep_summary_a01_Summary(); + } +} + +function rep_summary_a01_Summary() { + var sum = 0; + $(".input_score").each(function () { + sum += +$(this).val(); + }); + $("#score_label").text("ผลรวม: " + sum); +} + +function rep_summary_a01_InitialForm(id) { + var successFunc = function (result) { + rep_summary_a01_Get(id, result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/rep_summary_a01/" + "GetBlankItem", successFunc, AlertDanger); +} diff --git a/wwwroot/js/rep_summary_a01/rep_summary_a01_report.js b/wwwroot/js/rep_summary_a01/rep_summary_a01_report.js new file mode 100644 index 0000000..1db6e5d --- /dev/null +++ b/wwwroot/js/rep_summary_a01/rep_summary_a01_report.js @@ -0,0 +1,62 @@ +var rep_summary_a01_API = "/api/rep_summary_a01/"; + +//================= Search Customizaiton ========================================= + +function rep_summary_a01_GetSearchParameter(fileType) { + var rep_summary_a01SearchObject = new Object(); + rep_summary_a01SearchObject.org_id = $("#s_rep_summary_a01_org_id").val(); + rep_summary_a01SearchObject.round_id = $("#s_rep_summary_a01_round_id").val(); + rep_summary_a01SearchObject.employee_id = $("#s_rep_summary_a01_employee_id").val(); + + + rep_summary_a01SearchObject.fileType = fileType; + + console.log(rep_summary_a01SearchObject); + + return rep_summary_a01SearchObject; +} + +function rep_summary_a01_FeedDataToSearchForm(data) { + DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_org_id"), data, "id", "external_name", "item_org_id", data.org_id); + DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_round_id"), data, "id", "external_name", "item_round_id", data.round_id); + DropDownClearFormAndFeedWithData($("#s_rep_summary_a01_employee_id"), data, "id", "fullname", "item_employee_id", data.employee_id); + +} + +//================= Form Data Customizaiton ========================================= + +function rep_summary_a01_InitialForm(s) { + var successFunc = function (result) { + rep_summary_a01_FeedDataToSearchForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + rep_summary_a01_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Data Table ========================================= + +var s_rep_summary_a01_customValidation = function (group) { + return ""; +}; + + +function rep_summary_a01_DoSearch(fileType) { + if (!ValidateForm('s_rep_summary_a01', s_rep_summary_a01_customValidation)) { + return; + } + + var p = $.param(rep_summary_a01_GetSearchParameter(fileType)); + + var report_url = apisite + "/api/rep_summary_a01/rep_summary_a01_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); + } +} +