From 9fe55ebeea9f3c9a306628eaa436b59f4d741c54 Mon Sep 17 00:00:00 2001 From: Nakorn Rientrakrunchai Date: Sat, 29 Feb 2020 17:51:41 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=A3=E0=B8=A7=E0=B8=A1=20code=20=E0=B8=AA?= =?UTF-8?q?=E0=B9=88=E0=B8=87=E0=B9=80=E0=B8=82=E0=B9=89=E0=B8=B2=20ZD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e_evaluation_detail_review03Controllers.cs | 355 +++++++++++ ...e_evaluation_detail_review04Controllers.cs | 355 +++++++++++ .../eva_level_score_basicControllers.cs | 355 +++++++++++ EXCEL/eva_create_evaluation.xlsx | Bin 10659 -> 10610 bytes EXCEL/eva_create_evaluation_detail.xlsx | Bin 11840 -> 12531 bytes ...eva_create_evaluation_detail_review03.xlsx | Bin 0 -> 10665 bytes ...eva_create_evaluation_detail_review04.xlsx | Bin 0 -> 10697 bytes EXCEL/eva_evaluation_achievement.xlsx | Bin 11017 -> 11267 bytes ...eva_level_score@eva_level_score_basic.xlsx | Bin 0 -> 10461 bytes .../25630229053829_NewSuperVisor.Designer.cs | 574 +++++++++++++++++ Migrations/25630229053829_NewSuperVisor.cs | 31 + ...25630229074424_AddSuperVisorAB.Designer.cs | 594 ++++++++++++++++++ Migrations/25630229074424_AddSuperVisorAB.cs | 90 +++ Migrations/DataContextModelSnapshot.cs | 24 + .../eva_create_evaluationEntity.cs | 10 +- .../eva_create_evaluationInputModel.cs | 4 + .../eva_create_evaluationService.cs | 47 +- .../eva_create_evaluationViewModel.cs | 6 + ...create_evaluationWithSelectionViewModel.cs | 2 + .../eva_create_evaluation_detailEntity.cs | 18 + ...reate_evaluation_detail_review03Service.cs | 28 + ...te_evaluation_detail_review03InputModel.cs | 32 + ...ation_detail_review03ReportRequestModel.cs | 21 + ...e_evaluation_detail_review03SearchModel.cs | 23 + ...reate_evaluation_detail_review03Service.cs | 239 +++++++ ...ate_evaluation_detail_review03ViewModel.cs | 32 + ...n_detail_review03WithSelectionViewModel.cs | 13 + ...reate_evaluation_detail_review04Service.cs | 28 + ...te_evaluation_detail_review04InputModel.cs | 32 + ...ation_detail_review04ReportRequestModel.cs | 21 + ...e_evaluation_detail_review04SearchModel.cs | 23 + ...reate_evaluation_detail_review04Service.cs | 239 +++++++ ...ate_evaluation_detail_review04ViewModel.cs | 32 + ...n_detail_review04WithSelectionViewModel.cs | 13 + .../eva_evaluation_achievementInputModel.cs | 10 + .../eva_evaluation_achievementService.cs | 132 ++-- .../eva_evaluation_achievementViewModel.cs | 14 +- .../eva_evaluation_behaviorService.cs | 2 + .../Ieva_level_score_basicService.cs | 28 + .../eva_level_score_basicInputModel.cs | 30 + ...eva_level_score_basicReportRequestModel.cs | 21 + .../eva_level_score_basicSearchModel.cs | 23 + .../eva_level_score_basicService.cs | 213 +++++++ .../eva_level_score_basicViewModel.cs | 27 + ...level_score_basicWithSelectionViewModel.cs | 12 + Startup.cs | 17 + .../eva_level_score_basicViewControllers.cs | 49 ++ .../eva_create_evaluation.cshtml | 17 +- .../eva_create_evaluation_d.cshtml | 20 +- ...reate_evaluation_detail_agreement_d.cshtml | 41 +- ...create_evaluation_detail_process_d2.cshtml | 102 ++- ...create_evaluation_detail_review03_d.cshtml | 99 +++ ...create_evaluation_detail_review04_d.cshtml | 99 +++ .../eva_level_score.cshtml | 20 +- .../eva_level_score_d.cshtml | 29 +- .../eva_level_score_basic.cshtml | 113 ++++ Views/home/index.cshtml | 5 +- tb320eva.xml | 329 ++++++++++ .../eva_create_evaluation.js | 20 +- .../eva_create_evaluation_d.js | 20 +- ...eva_create_evaluation_detail_review03_d.js | 106 ++++ ...eva_create_evaluation_detail_review04_d.js | 106 ++++ .../eva_evaluation_achievement.js | 17 +- wwwroot/js/eva_level_score/eva_level_score.js | 3 +- .../eva_level_score_basic.js | 216 +++++++ 65 files changed, 5045 insertions(+), 136 deletions(-) create mode 100644 ApiControllers/eva_create_evaluation_detail_review03Controllers.cs create mode 100644 ApiControllers/eva_create_evaluation_detail_review04Controllers.cs create mode 100644 ApiControllers/eva_level_score_basicControllers.cs create mode 100644 EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review03.xlsx create mode 100644 EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review04.xlsx create mode 100644 EXCEL/eva_level_score@eva_level_score_basic.xlsx create mode 100644 Migrations/25630229053829_NewSuperVisor.Designer.cs create mode 100644 Migrations/25630229053829_NewSuperVisor.cs create mode 100644 Migrations/25630229074424_AddSuperVisorAB.Designer.cs create mode 100644 Migrations/25630229074424_AddSuperVisorAB.cs create mode 100644 Models/eva_create_evaluation_detail_review03/Ieva_create_evaluation_detail_review03Service.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03InputModel.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ReportRequestModel.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03SearchModel.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03Service.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ViewModel.cs create mode 100644 Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03WithSelectionViewModel.cs create mode 100644 Models/eva_create_evaluation_detail_review04/Ieva_create_evaluation_detail_review04Service.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04InputModel.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ReportRequestModel.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04SearchModel.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04Service.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ViewModel.cs create mode 100644 Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04WithSelectionViewModel.cs create mode 100644 Models/eva_level_score_basic/Ieva_level_score_basicService.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicInputModel.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicReportRequestModel.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicSearchModel.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicService.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicViewModel.cs create mode 100644 Models/eva_level_score_basic/eva_level_score_basicWithSelectionViewModel.cs create mode 100644 ViewControllers/eva_level_score_basicViewControllers.cs create mode 100644 Views/eva_create_evaluation_detail_review03View/eva_create_evaluation_detail_review03_d.cshtml create mode 100644 Views/eva_create_evaluation_detail_review04View/eva_create_evaluation_detail_review04_d.cshtml create mode 100644 Views/eva_level_score_basicView/eva_level_score_basic.cshtml create mode 100644 wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js create mode 100644 wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js create mode 100644 wwwroot/js/eva_level_score_basic/eva_level_score_basic.js diff --git a/ApiControllers/eva_create_evaluation_detail_review03Controllers.cs b/ApiControllers/eva_create_evaluation_detail_review03Controllers.cs new file mode 100644 index 0000000..6e86f8e --- /dev/null +++ b/ApiControllers/eva_create_evaluation_detail_review03Controllers.cs @@ -0,0 +1,355 @@ +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; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/eva_create_evaluation_detail_review03")] + public class eva_create_evaluation_detail_review03Controller : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_create_evaluation_detail_review03Service _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_create_evaluation_detail_review03Controller(ILogger logger, Ieva_create_evaluation_detail_review03Service repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + /// + /// Get specific item by id + /// + /// + /// + /// Return Get specific item by id + /// Returns the item + /// Error Occurred + [HttpGet("{id}")] + [ProducesResponseType(typeof(eva_create_evaluation_detail_review03WithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Get(int id) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetWithSelection(id); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult Get.", ex); + return StatusCode(500, $"Exception in IActionResult Get. {ex.Message}"); + } + } + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(eva_create_evaluation_detail_review03WithSelectionViewModel), 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, $"Exception in IActionResult GetBlankItem. {ex.Message}"); + } + } + + /// + /// Get list items by create_evaluation_id + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetList(int? create_evaluation_id) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBycreate_evaluation_id(create_evaluation_id)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetList.", ex); + return StatusCode(500, $"Exception in IActionResult GetList. {ex.Message}"); + } + } + + /// + /// Get list items by search + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("GetListBySearch")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetListBySearch(eva_create_evaluation_detail_review03SearchModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBySearch(model)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex); + return StatusCode(500, $"Exception in IActionResult GetListBySearch. {ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("eva_create_evaluation_detail_review03_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult eva_create_evaluation_detail_review03_report(eva_create_evaluation_detail_review03ReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var httpclient = MyHelper.getHttpClient(Configuration); + string mainurl = Configuration["JasperReportServer:MainURL"]; + + string url = $"{mainurl}/ro519eva/eva_create_evaluation_detail_review03_report.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}"; + + 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}"); + } + } + + /// + /// Create new item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPost("")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Insert([FromBody] eva_create_evaluation_detail_review03InputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Insert(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"เพิ่มข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while insert.", ex); + return StatusCode(500, $"Exception while insert. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update item + /// + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Update(int id, [FromBody] eva_create_evaluation_detail_review03InputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Update(id, model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"แก้ไขข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while update {id.ToString()}.", ex); + return StatusCode(500, $"Exception while update {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Delete item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpDelete("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Delete(int id) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + _repository.Delete(id); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"ลบข้อมูล เรียบร้อย"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while delete {id.ToString()}.", ex); + return StatusCode(500, $"Exception while delete {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update multiple item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("UpdateMultiple")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult UpdateMultiple([FromBody] List model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + string rowCount = _repository.UpdateMultiple(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while UpdateMultiple.", ex); + return StatusCode(500, $"Exception while UpdateMultiple. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + + } +} diff --git a/ApiControllers/eva_create_evaluation_detail_review04Controllers.cs b/ApiControllers/eva_create_evaluation_detail_review04Controllers.cs new file mode 100644 index 0000000..b712a7f --- /dev/null +++ b/ApiControllers/eva_create_evaluation_detail_review04Controllers.cs @@ -0,0 +1,355 @@ +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; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/eva_create_evaluation_detail_review04")] + public class eva_create_evaluation_detail_review04Controller : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_create_evaluation_detail_review04Service _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_create_evaluation_detail_review04Controller(ILogger logger, Ieva_create_evaluation_detail_review04Service repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + /// + /// Get specific item by id + /// + /// + /// + /// Return Get specific item by id + /// Returns the item + /// Error Occurred + [HttpGet("{id}")] + [ProducesResponseType(typeof(eva_create_evaluation_detail_review04WithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Get(int id) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetWithSelection(id); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult Get.", ex); + return StatusCode(500, $"Exception in IActionResult Get. {ex.Message}"); + } + } + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(eva_create_evaluation_detail_review04WithSelectionViewModel), 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, $"Exception in IActionResult GetBlankItem. {ex.Message}"); + } + } + + /// + /// Get list items by create_evaluation_id + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetList(int? create_evaluation_id) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBycreate_evaluation_id(create_evaluation_id)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetList.", ex); + return StatusCode(500, $"Exception in IActionResult GetList. {ex.Message}"); + } + } + + /// + /// Get list items by search + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("GetListBySearch")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetListBySearch(eva_create_evaluation_detail_review04SearchModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBySearch(model)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex); + return StatusCode(500, $"Exception in IActionResult GetListBySearch. {ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("eva_create_evaluation_detail_review04_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult eva_create_evaluation_detail_review04_report(eva_create_evaluation_detail_review04ReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var httpclient = MyHelper.getHttpClient(Configuration); + string mainurl = Configuration["JasperReportServer:MainURL"]; + + string url = $"{mainurl}/ro519eva/eva_create_evaluation_detail_review04_report.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}"; + + 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}"); + } + } + + /// + /// Create new item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPost("")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Insert([FromBody] eva_create_evaluation_detail_review04InputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Insert(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"เพิ่มข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while insert.", ex); + return StatusCode(500, $"Exception while insert. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update item + /// + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Update(int id, [FromBody] eva_create_evaluation_detail_review04InputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Update(id, model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"แก้ไขข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while update {id.ToString()}.", ex); + return StatusCode(500, $"Exception while update {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Delete item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpDelete("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Delete(int id) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + _repository.Delete(id); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"ลบข้อมูล เรียบร้อย"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while delete {id.ToString()}.", ex); + return StatusCode(500, $"Exception while delete {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update multiple item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("UpdateMultiple")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult UpdateMultiple([FromBody] List model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + string rowCount = _repository.UpdateMultiple(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while UpdateMultiple.", ex); + return StatusCode(500, $"Exception while UpdateMultiple. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + + } +} diff --git a/ApiControllers/eva_level_score_basicControllers.cs b/ApiControllers/eva_level_score_basicControllers.cs new file mode 100644 index 0000000..133cada --- /dev/null +++ b/ApiControllers/eva_level_score_basicControllers.cs @@ -0,0 +1,355 @@ +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; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/eva_level_score_basic")] + public class eva_level_score_basicController : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_level_score_basicService _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_level_score_basicController(ILogger logger, Ieva_level_score_basicService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + /// + /// Get specific item by id + /// + /// + /// + /// Return Get specific item by id + /// Returns the item + /// Error Occurred + [HttpGet("{id}")] + [ProducesResponseType(typeof(eva_level_score_basicWithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Get(Guid id) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetWithSelection(id); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult Get.", ex); + return StatusCode(500, $"Exception in IActionResult Get. {ex.Message}"); + } + } + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(eva_level_score_basicWithSelectionViewModel), 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, $"Exception in IActionResult GetBlankItem. {ex.Message}"); + } + } + + /// + /// Get list items by code + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetList(string code) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBycode(code)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetList.", ex); + return StatusCode(500, $"Exception in IActionResult GetList. {ex.Message}"); + } + } + + /// + /// Get list items by search + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("GetListBySearch")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetListBySearch(eva_level_score_basicSearchModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBySearch(model)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex); + return StatusCode(500, $"Exception in IActionResult GetListBySearch. {ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("eva_level_score_basic_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult eva_level_score_basic_report(eva_level_score_basicReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var httpclient = MyHelper.getHttpClient(Configuration); + string mainurl = Configuration["JasperReportServer:MainURL"]; + + string url = $"{mainurl}/ro519eva/eva_level_score_basic_report.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}"; + + 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}"); + } + } + + /// + /// Create new item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPost("")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Insert([FromBody] eva_level_score_basicInputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Insert(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"เพิ่มข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while insert.", ex); + return StatusCode(500, $"Exception while insert. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update item + /// + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Update(Guid id, [FromBody] eva_level_score_basicInputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Update(id, model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"แก้ไขข้อมูล เรียบร้อย"; + message.data = result; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while update {id.ToString()}.", ex); + return StatusCode(500, $"Exception while update {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Delete item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpDelete("{id}")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult Delete(Guid id) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + _repository.Delete(id); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"ลบข้อมูล เรียบร้อย"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while delete {id.ToString()}.", ex); + return StatusCode(500, $"Exception while delete {id.ToString()}. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Update multiple item + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("UpdateMultiple")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult UpdateMultiple([FromBody] List model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + string rowCount = _repository.UpdateMultiple(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while UpdateMultiple.", ex); + return StatusCode(500, $"Exception while UpdateMultiple. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + + } +} diff --git a/EXCEL/eva_create_evaluation.xlsx b/EXCEL/eva_create_evaluation.xlsx index 94ee8d437048ca3d8001c8fefc343c8cdb037caf..743267e56b5c3836af2be25525eeb2a97082997c 100644 GIT binary patch delta 3481 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 delta 3553 zcmZ8kc{tP!+Z}_l4I^d@S;sKbSdv{P`k3 zU0I%F$sWm)$=CCKe?0H^-G86^I@fjX>pJJ$`=2~gr!P$HggY|<*^1zmrDw9te+EY&RaqOG0K z1DSmf8rhuJ7wOkfW0<9r()V>p)2ecVY}taR8wj{@(P8~I!3Spak_9lAl0I^6%vC#Q zPt1#o&ED!BlJ<I)NP z`HQ+xaP;?FUtFp|s|O{j6d9&PqTazDCdF`_F&6mhb@c=8MaRHLfST}{nw=1jh7$6a z_i5Cc>>J3LEFx5_)RZ-jt9GJ!75WMNkQ%(LE@1*{NQEa0vbs=H5eNzF24FOTFwHIx z-aI3-!g#^JX`n{?TN)6EkqrcbfIy&7@2i1954`UNiii4mPgo85F3UpOIMx;EniNmT z<^xqN32Agz4h@(k(W+aw^StwjE;>P;4eO44c|~nnEDy4AH{CF^rcRRIT}?!>e4<15 zT-#0r6uxZDw=I3RQE}Na?fEy`*+SKU+J39Xl#fP0NT0hC*AxD`TA>zWy||GN5pw6> z;w;zVYx?vMy7u_}()2A%V zR=zL*6V?_aGLe+eR51cJIIzBxmUnH;^HyRncS!6>`N{k{Gw7@Y#*En*Yz0w-o2B_`%~|RnB8>p zUeb241@q^U>9St^OEyXwx0~qJdkU&icb!E6kHP)uaMO2Ga-3^Lnc;{){*P|Y!c{jV zqoYS#7kTQT-!JvoS_rPSN`~7JVwO)c7^PuuoOxC~lEdX6*GaC=JXq4oNrcwwi5pQ# z^u&>`e4+13H<;i{)s-VX>C&(KvlvHilMgSPYu0IAPJt$syNcO%OZ?9Kexj-y@1eE05PM=&oY_GZU zqu6$Q-Hz(iWRCxnm@;ZfaVKt`4);wPV6>)CjA6%1J&aAf)9OXE%!!__z764FIig*xl zy!riazGZg0S;UV|%$dVKDLZII*616VpE-=8_`h)u_N62>vq?$*I(jPY+zd_*B0qFI zN_&Pyl7aImx7Tdh*Tp0jcs%x1@B%-u+q0rC)9de63l*9G)oSTRu9#w`E2(5 zwmji4fY0I&8T@?NLZquX2%|IkzcD{JReBf;Cp!=11Xa<&e=N$~Z|obR=N z-y1Xui4P2!5f8uZ!hFGK+h1fJJfpt#`tr@*EDy!SNM{JvN zsF>of^WjR6y~GQJK<`(aPq#*oj->q;iZO^`Uhnh`6 z;qssVQe`~)bv$jag%-b)C|EE?g)dL|oKHL%IY>O#F*5~%LJg(%wiq5>NpgN*zhSfbIm4`Mzwm_+0Klte;2`&*qsYOl$n^G}7y5)~07Wx*n+sJ)jxc z+kB&+1}WBDIBc3RXtccTn7Yhx*7UnuIhFFLY-pEziylD+lZ;kfHp|z|r z!cHZu#$l7byIBcogZ_&eId#AHQ+>>NQHP)Gr+YrAs`a9=VDWIJ>#r&ja5E4O$~F*#o9W&Lp2 z$~bJXaHm;k>=_TyhhX>OWlg-!tH*e07j2uDTslI{Jj?m!gEsCaCSu+?32f1BcRbZ^ zunOea&Ev}<6*pZjb>}7`U!lOvUN%S~Czo|=)QAbmolbgJkCG40;sVmKtTPe~ zYxKtIRx?n&VEyI^eA5=y2D0qav%1$lgw`E(i>i`eO3!)Hr-Yj&1!tdgvq3z1QzWHi zMANorBzo|1H~bS4zp?g+*1Z;xOtk(F^(9XF6Z50L=PG|Gv2s>|e2^kimpEZP8tRpa z-d5P>)s86;#&9P+7j7~zfyeh2QPK4#KN<#Jlo-HRjPWY{y#AlgwF0fq3z$FuEn?J0B;&WNuFh1O)S`{p_UKyYG zDd`1)n(`!pdVm4_I^4>ufx23)-Ms%ib*%ta>M|gNQ~Nm0YP#^6eTQdn=3dT?wXq15 zQS5>n);4BNnZyw-@&oa%Usr8)R5N44#b$tjdnj^t=My-ot}@J64=$(g z)VuUT*iw-KE+Y*upM(B!8rsjEEycRzpL{4PAUSowuuB4}d8Biu{x$N;I}?w)LM5Ta zB3J=d8Yj2eaarWU-eBEdNAkM#B@UfqfxFp_QUPt(`-M+wHa#mCG*a0$bKk-1=3wgu zw|n&16^4lpPb`gd+2m`nZ{G&^Vy5Awa#@E+h&Tgk1tUj07w(7okg}^PnL!iJ@Ws*w z=!*!Q%Z z-|A=A{6w<_U+>AOq2=oyjSM<;_x>d7K~~c0HQM{M`n}O!rqUurgt_=5ZP91&!CZQS z+7z~ja5JP8uh32(zc9tWV_2Yw$gddI{O)(9>U5nNs=@w#MBubxKWkpu+{=7u%$lnR zWyk>&kbXIS@}>1<#OPw&Wrls+IiE&NxsKMjimhS7VpPp=FW|M$p*R~Q%=#!sln+yJK`2~o%^1l}uHsv?5!6~PN`!vC!O E4-K(z=14Fa(cfj~4Mlo0{CXd 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 DAwNwa delta 4727 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 diff --git a/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review03.xlsx b/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review03.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ba9187feba0b6510325f813645975f4887626919 GIT binary patch literal 10665 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 G>i+;;1a*`E literal 0 HcmV?d00001 diff --git a/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review04.xlsx b/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review04.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2524a0813f8b9074660edafe08359e60926ff1e4 GIT binary patch literal 10697 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 C5rLxs literal 0 HcmV?d00001 diff --git a/EXCEL/eva_evaluation_achievement.xlsx b/EXCEL/eva_evaluation_achievement.xlsx index b0604bf589f1993bbfbc2139357df5790954fb49..6cd95ef979d751219fe3092fb0a07d45f5e6ce8f 100644 GIT binary patch delta 3402 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 delta 3154 zcmV-Y46XBnScz7!a1R9K+evn_bPp>55heZS7cX5bqODAb$_=uH+(47C5KaN2v;Poe z0|A99s+;L=RA0}0{{TT3;+NP0001ZY%g<2Df82gn@=?$!F(a%@A=pxtf(1Iz>g+ySzsCCVm3kpe|`>;zfl5Lx9KS@d!G zC@E5srT!~D3C0_-O7(g5VW}K_IF=mUQdKi4V(edd7*UbQoQYkGf4oVZIYxiACL$+X z3L4`Rt?`HC+i#*;pE%v@Db)x}h&sl5t*fQ$*4dtxq`r_974W8zsw5gnwR7uAQIgk2 zspM|pc{8^pOyI`CvdqR9DT(^|P&t__E27z!ai&k!7Di>Z{J0ZRku3+PM}JDP&bB3< zm@iqTWGxGQ0p?s;6fC1pQ7(Vng$tIFsE|U}D3b@FV;r`OB&vT!w}eCXeC#GsCb?8d zLlOXkiJ-|eRU!ofwdb2t1*H{m9~!(??hWakA}2ox$1Bv5v)rKAUD<|WBBw{1LrYDJ zk?mvlWNK{>;F?ac(Ch;u+)9Sco;Apfi`K&^d5gtD86^&oJH(^po8Z2BY;UEx%{Npp zqnvL{o_{LNB@7_j#{!8%nU?w^GzW}tGab4kl)pVTg=yot*1Q3V+Fp#Zn^X`_%tFqsG)&u@00ulS?~Ro>_c$RX8(;iN7?@WbNEVNrY)aqt5?$0l<+~3-r)coKkSe% zHTbj?FErUZz(V;Swewf7{e0f-)rZSI7()++(0MW-vx3CXNf8KxJ{f*9vup3A}cEEjp?5Ceyd9+#f>|8tpf}-cNAP25*&M#x!pFh)_ z9ZGQ0O8vlYrM4zw+@C+0Z=pXkUsV_epKADc!4n-6i}7#QtM3-;>ojoY-fHelCp2^x z;cD%K)2r2boi4nl=DbJ$N+8*Eeye$(?}JRlnQb|(PXL+p!S z=3R!q=cE(QccwEkcjmK6=%k?^tY_2Jb(n?&?BV;c`=0Cj&3bRZhfB>$%9-eD)m3Q7 zg(3m@N)T>W3Ag|Ik^BRbp#u~Sxxgy|W(EKNKN|o57yy$2D;j^4Sy^-9I1ql{s{Icx zzYoR+a#hIGkl=t}tG0Ibcy^2kt^wO?E7$z`ZCRF(x`oNU#Gz01*R8hNy8Zfo*n6+6 zZt}92`r%;cd#uRHO6MBxCa)B zX6o-auWo{%$##G2kT!#|Vg+!vWqn9F{H&jYrm9)GX_XH9AQ}!YfAPH4zTtnnsUKYq#*M0j?Z(PW@k`otO@=K`SKcrQ95@Ko+$fAs(anQOhmQz?Xl=;Hc3 zv|zW@glDHYx*S{&FGNNf{vm1_R?*}7x-$Sz74U!f7%)`~WKFb{^^o%P?zS%9JlNC# zNmHewMT9pYWLnfwbOGg>3GO$+ZiRr{0QL25cpJPzU1pucj7o&I#66XWY>5XdF|sA* zRAOvP#8hHpOFUAE3tM6#C7}Ftw3oKTlG?bkB@!xeZA+{ih#^qd4v{0O0i;gn4^n34 zPvw72kf%QEKOISgLYYYs_9xr_kqFqVu0#kjG%^!q+_!Sw2DWpvycP}ag?Ry`QQ?3<*5IdJhUy=7Vnr2 ztMntR}LK*F-<@tCLB_e<7 z10`u?@-WIK@95S78D9S`kb$iG#t6eJbf!L>DUMwe!z<-&!Q$-`a13oQlz&el@(o*m@vnLm^vmUiFFo| zV3y>wP#YK7i48cgNzAtOo*vt z0y5TFNP<<#_#AycozM+1LND04!I z9o`AnL~GGetdhoU*%cRR4vCg=;oZkvpJ3XEqd8O0mvYiE4{9Uy@}7lK#zdT))H<1{ zeZA46nr7>>8ll9Ra(usy@i~HMEjo%-?5O=M9hPyBi4_3q`zwoyJGaF=@qQGOy|duy za5g3bzLe>Q-yE47@Z$k*-Y$Pg>@<~-SX27oCxc?AWx_v304-gXQILt25!H`6>&jvh z_|4Ey!GB_04CzQVCjEvEjI{c#A&Lwt+Rd^0@t_yGmO`qZjE9|;1wUy%=YveNcL6_o zSF9{1f!_@M6#OTK#E=eBV|+gBWcsVWe@@hHj_{L7(X|u;KbaLfEen5sd}jPakcpNN z@FTY?i%H-&Lq7$-7_XK-(@EekI0Bp`GAqk=EZMR{Kq-7S;o z$5r~weoO1;ylA{V+rn(LHyl6$YI(`f{?E&*rGopXlEVdp`n7{QBnDp!;iA9?PbF7B zI=kN)f2q7Gtyuj%{|V0Fv{u$R+!nQ$L{q;iYhI^0hcD4U{|ReN_YYML-=N`2$`_Ym z5QRmmZ*qvHUT)gki$Gs}-TeoXp#u~Jq1fl6O0$L{GXa03qnm`b!$0iFf#5{(EhKka zu}MRc+3nk#wzGC9_?Uan{oQjf$(Kh}N1tF_)#w7zgrEqtXk?{#1$x=6;u{n>&$Z-r zqoF`2aA;XxU**Cu(O7u0jRET`a8V#>$Al@+-h0C^c47~TyCgVt5Vwt0+=r*#VZ+4- z-vLeunPYzio=fgI?trlwiRg@!VnmvQt$TnJ7-~?Uy~8x2_{ZzPD)(nYuS}e(@+T8^ zI>()|r5MD~eRS1mY}+q$DOZCW{TFY?iTX z@!n0o=;uPZ774JDJ?Dx|x_0C41PKtJ@!;+b!6is=r*U_JySuv+Jh)3BxCaUD5C{_73Ea-iIX5$$ z`My7JPxV?=tJbdf>Ds$qf3~6w6f`yf761feMu&n;s_g4z+zjvCem4c_C$G@Pw^| zTI73hsc!M=dcU2yIz0+-WF~>mz-Ls&qKz z|0$Ux?q68(E~+jzf;|@x<@gwOx&cnMdC`!;0{8@^z+taPWZmsPlm9MK9x5nG(ee6Q z8RYH!0sl~s2BZv)GoB%rTYwV%OX*d$_V%|dtnbJ_W;hb5G9+F{(O}mow$$GdOYIL& zVdv`9nBnt?5(}AEK$KXs5F@h&BcRtXW1o?j`oc1jt+Wm|vmkz6bo10dkicur+Nx@F z)_dUf{}LOinyWBd>)K+m9fNe9=6HU{Hds^{Mn9|xI+VXgcyz-9d0yJm6`tezP3)0m zGsm8~cLc&a2BVv=09IR%FfIrkDI3@^aKS^{F|9Js4|gVfOSt6Jc(h>8zytyP#W@wG<&Ge~Q4f+Iw+DiniBEn!C{xm<$emRX*!<#CISrO%< z%HZlI&fNWki432)UFv@lQK(wRNyGw6(ST70v!_GZ5gA21fb6eN-sP$@GFJJ?jMvNA)%%_Vzmgw57K30bA7v^roay=C^>t1@*JrbUlc=N{wM(K7edu;wWC2P}p#hF~29l)S>*SCwHxFHJ52i571|M z)1aiY%~e|>6|n}+A zBa^x>3~gQwc~@JU#h2I6C$p|e*Vs1B;I;(Oo6e!akEdwdAnw#)puO%41tM-g2}B+- zousFSPH9)d1?*gq=gc0oMDJcwP)&z(Y&WK?^ypl_YPw5?)j&ypOIOdE3`WuLwWYWZbr#|VDHmo*fhl8qsxveem_dV83 zGe#t10JbM{s?UCvXJbwmFK+IierSIWP-eBWwmR%sH4|$73O2X z^uZjRCEbkDx*^h2BuuFiU0%|?zwa*h0vq9n9{_6DmXswwPWvM^B3Ku$3Al~HjEPz% zA7J^&$H%kMC?dyn{e}RBSrm&+$(UQ_`_ziN-Y*}B(-|~J8(0UXyY88~*l`}uUJdN! zN^E62Dly)o{*%haM4dv6fISx(Gys78r^-5-890E9m7N^SZA=}1IXTY+xd?1#^x$Lv zC(`X7R~7yxPS?KW1+`r8ydJuSuH0CI1F3~`_zH;r<)-|HRk#=!*aknj3ZLY>!`T;L zn9TzP3Uj18RNZN5254ypN%2M+%J#0lhGHs4*|emqIr(t3I0RrGq*|m+BED{gl^M9) zktu43)~~94p~KbGu8Q5L;cM(7!zgU99mWyQ{lI?S!+=u#l>v~6-8cJX?>#BLS|VGk za#jAEjnWj&V|_ptQnlQ{)LE<3Wi(Efit#XcVo>>rVZel_YpRiPqppb`|0ADK406h7 z#SlYE$6TtwV4vqV@X35J+RyT#SWHe#I z`8NbygG;?_N%(XAM%slu@s;DMwE(rxe)tv3)*b0Cn8*`v>@nnKANkpN>~J31%zC6w zi2a`kiG+xw;aJaC7z-?^on97Ah&%yrV!m`kgf-;}B0kE{omnWi4?Jw$Y@pu_+Hcg9 zwmgJK~H3(T$nG@Kox(j7^w+OqG5_^sP)1!_M^l4|u zZeoWcA}@A$~PR-ZF{K&@bD{XJRU}S z5%bv;bd5`%O$17D$Lb5@OL7m2AD#Ic3Lm&$Wm|foLKj<)j+|d1{L>1EwCXikzySc$ zB)n#?;W)xGOoFT(mMBf(NN9MD; zH_a^}VH(Y#+exf^jP59`K6N&NE8Q8AfI*O8ym)4d1{V~3j1U&joKM$H@8cKbb34^` ztSzR+(!+cuB!Hn+vLm51-WV><>~BEMP>nCY-h{Bl9Dg$Sp^sTYBA2tcPr6ivwm+1- zGbI;qCYw-@hx_q#`z9k{D}-twMj=}8%0`ybIPj;;NZK8Cu}q;N6xs0g3?CO3XZ2P< ztw?Clp3)B@;NqFV6f^J3&HJfqYD`RTvs@U59aP0yse8ApeD_rY2{kxc@C0nVhvCf?`HGb)Q(k0a8@Vv zbhegJX9s#L70U$GKcm6wR0jvmn?>t2>mqOC1`l>QqWYNf(!4NdM*U zBA$5YxOo(74(-P&ih#wWU6u%2^!h<9N62UTmADoj{!}%u(Z!E<{Z) zsI!Ngn}yFGCSE;W92Uf6^FIh=XqDG)H@;FBsuS$Io4h{?`RMcX5aF~x?Pjp4 z$M?A1H_`Qw^j_WGCVW>w+VVL?jj8T>%U>Sd1(e1SQ+c@ftrwpt>vjh5h$xbVN5m+yW9gV1 z&uMYbUex0+xs<_0s{gg>WeDhqpHHlLpYPJ_%nlFlxscF6ov}Ti27HbU`uQo$c4H z_n5{fmLo!jKAaOajJA3nVUuH6` zEASCCZkcwj*?)O;`OYG(-P3QF^7w2oTcN#Xhm|z(#}G^(uZXJ`bo-Y`IHr=Nx2;qy z77*jWn{@V6y5&SN`Yn6PH7b_Hh)HBkQP9d^X1MI7iW@6su2Er#v)+rGsmgo#bGMYJ zX?fF@iq?cu1eo|+HyZ6I(G=<8Jx%`O)ykOz?>!Y)jTGp_!-H5R$~q|(BJ%wa;gcS{ zxJg=GEF3wwh+w5Ir`f3pT4g{(lG=LGQULB{GBK<<6<)f%Vs=bY&Xmd7RNFAO>Hc@Q z{z4OIp|Flf-{on!KIg5onf)n64;Te4@<_WnDLezb?g%@aER%x=I5-&uQunrXv}uR!TW zF4sgrHazv6%=m^)jmu|t(-!qzycOz?)rfwHRe`K?EqD>Sij*XX0kKbg!rTqtQa{Pf zzmD5Eb=}t=o~m+xQDj6-B;kaUcPPf3;Ep&ad4SZSrt2eO0>sLHVODMOv_^4jlw zD0!F68gJrlqNyRCmHxx{?h4gCK-D``vtnwda;;Q6`yhQp8_sW^k3!dBzq7|rUvY%0 zu7sxlz+8Rj&}ydGB^bufAZ!t~t#Tax1I6maHeAc}+j7)UkWML--davZ)1uYWEAp6E z%f#cQ*o#Sarehe`Uf)rS(>e4bmQysM;Mdx@spy{ql;%-eld83-*?YW6OJIvc$gI?m zj+iQv?+sdJ4pd%!>IN1x6BfH(LpAs0MjXQG#e7`Z92n6`MC&#T zIi0q2vn{dt<`p9}b({MRpRIgMzH+jn5iTfq&Kx^^Mf1aCx${AX@J9lU^Z>X{*OG4G zwnY?+pKtQs{cu4Nt}NW+Ob>dmSXv+OzU>RzB3dmA?7QsZm{A;k-LZqI9B|cSXcr7+gLq}KiC&HLkTm3$7Zi%PHQ6-gI+SEXCp zTrxS+nHGY#9F$LWKK$+hvelXtpVDguCu}YYjOx1QT^Q$%`YC!oWJ`&vu$pulr+& z7StTHrs~nV-W>@@xxzmiDOr9HOJe)UHVc^*fMSPH7pBM^`4=@ z31f1C)>2%|veNAHaGZy9GYlvG?rtg^o+Am}w^$D;g1GKa`(4K|yrIp$EJrgX?zW?= zY}F@nQ4q9pSA+q;};f{#R znRn|Ga~ljY=sQ6jq67_zij@)W-GjwAfktwfLCblnZkE=PuNagz8TG4 zSGf&FjBR;=EE=WVB~kL!!e7) zH}f);5mj`koL|qdNjYKz8UA%wF2#bQyN?Ow)ydB^94kG)IPb3thcfg@;k~aq1vjd; z#CNk{`|rm@t-Y86t0s^9%lMtfx>a+t9a%1O%Tfpvr|q?I38J$D_&PWekf$zLBsuM6 z=O1$(N5_xuLEmCc!!Kn=(po6-3lBiCRl9`@k52H4B8*s{3nsJ);e-pN)zrew%jyz} zi+MtUTxBoo)2j0Vhfp=&>s5@+Mx>4%NZ1Z!=FHLdCMur~v$$JCvpZbaiz;lX<2G?| zEC?eg?a(WDSYAGiy5 zT_KqygJ1vRXvdz;{hqgEED>hA)abI#d%L6!myMFE*3)7`9m&>mt-AMd%jQbTe^njzw8qpYN=-cJ6kc#b{<2{g^Q+qqB$t7#Ym ztJ9`x198ZFH6OE_G3iL9vHm{6T+Adv13NH*?&4v|thF7f&MuJuf#Wdyz)jbcSmI=( z!T80FZ00!52dutS#1KTh&dor_;Xu|0z3Lm>fAUnv5p*e-OY%5Aq_NENQ zDwn!(o~ro~2@|&Fo9!$bc5&k5c3zv+bU1L?S-`WooDl`lP3&+Jxb)CS@oiq(!QJo2 zU2+T}0=TCAiBK4|K%i;SS16Bqz?YnlF0muRH9=S3vKz;FMl$8(uwD&C-$u5;4Ak>K ztx{W4GJrVgQdehknrVp+e^>otvI+M17h-bKg202`(GI?TmG0f0v>7;>bkdbO4>up)yRD`ew#|(9jpdL5S z)ru}B;blm`y%>6)Hd*A8qjabii$OaJoDI{B+nd5+0)Og0 zLA_lspbulxG~7cC@Sb}LR_ET@u)SG~ z7&)=7Xmxgs03O2?G30|#IV|QfvPSxF(zmYkv97B8k}LE+v9%VDR;%^gz>^wb9=TPK z`ban^zcm7KA@?+mPyucy?oll+F6GoZtBu@ce#7yypa6#k4s@;;t0^(c1_gVy;^HkG zTT8Q^$LTXpaOO)+bKhEjKzv;hvS=-MouLt`>ozay%x8<>OM-+{6Q;$%O)3xhtwNK_ zEW5#PCf>KPt@H@S3qh4wda`QYW5SCb?(V6^!DV4_&P3(@W|Aegjk`Lw*3FYxJXNbn z)y)rOU--iuOy48nOj7b_N zuE0UH(AEYmi}eS?aL{GEB>)=zntAjt_@%|(+%L>iTLaa+Lg9$OeLFe=9J*Tbd^xPd zX{`HzVXO&6Dn9|DJA2$#F7wuJXZSofQ;6Lax!)o0(IBFYvmMQv*2l#!tQAh1P2!DE z)nHo$5_MW!+m__O4BbCuKw6!xFw)@Gj1IV^i~(jKjBSk+9c=9!8I5cmK)*UNV6yJN z!~@vjM#hiHe`Z1tJeF)1-S#kSE5fcIe<8RZCM^l=*Q{~X7!^u1;v#i_#U(|c)a_T` zYSNXZ!>x0u`ohc48C1zChUE{O%ug;_HQsAb@8_g;$hI6R*Axv#U7rMYwMzyWkf`k=!D=S-F``XqU|tYj}$p3 zBqmXa4K;OWH49PrNzo7Th^QE$Pf!=_U5g+A4`^GZNHDc}n)yd6y*MN4j}BTmqiHrN z)+58f2kfqo*}AQ&TS`q$n7(H!h?I18dP@)TWlA61RLnoB+3%`tOdeov|0H$gHL^HR ze$Ya!V0e!PjUU8R5#z12T8tLchq;5rLdu-SoQ9iN`#o~(8}ZS0-6My#p5nmm6N!?N zVo#OLLS$qpmC)*rz!Ul{=Rc<4DG-+BW8jf$SO9?P&%kB}?g~4B9F##$PQTj2jL+_w z84S&B9E>Fm22CXmB|(b%@cMQJc19#9OtnmPD+bLyFCRMn;^O=g3~-tdBoLvJBW&#;8#@GnLx@q0N&i+;Dy%VReBFQNlQfp2Y3NdWN{xAD zP=;9!4?H>J$XP@nlyFI2r{o7AW{Rr!cWaY8i+*UtE(5)vG`(bocr8P1OOG?hFpNa| zt^;5`ZfmQ^Ho@E{5)nCA+@ZZ$k)4iHo~BE=%$!;*K;fBwoq;1V4eainl7^}hkbPV?G4*Ty|z0gd$FYasv3M0Qip$qm{x+T2LF_-*O7Yt~qz=k3THG5AaT zSyV$n(u1j;f8L_?@9*{R>pyJRQk3~Sz~48I{9EwX^#j-_{<4+ix!~Uk^}h;^g8j?? zn_hp8^PFY@*Gg) z83*wjum)UEfB~N~63+picS?Q($m0Atr~mDnJQsaly8ITsdii`ZzYCe?D1T2>eq#Ut z@?bUmkF@2v`13IH8(@O;kC%8BWd1SeJO}-|r~VBI0BivN@=pKq+ln$UU>yVikikDn Luo~x4{JQ%eHd`l= literal 0 HcmV?d00001 diff --git a/Migrations/25630229053829_NewSuperVisor.Designer.cs b/Migrations/25630229053829_NewSuperVisor.Designer.cs new file mode 100644 index 0000000..01c33df --- /dev/null +++ b/Migrations/25630229053829_NewSuperVisor.Designer.cs @@ -0,0 +1,574 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using TTSW.EF; + +namespace tb320eva.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("25630229053829_NewSuperVisor")] + partial class NewSuperVisor + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn) + .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponementEntity", b => + { + b.Property("id"); + + b.Property("command_no") + .HasMaxLength(100); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("fiscal_year"); + + b.Property("isActive"); + + b.Property("limit"); + + b.Property("limit_frame"); + + b.Property("limit_frame_quota"); + + b.Property("limit_quota"); + + b.Property("managed_by"); + + b.Property("percentage"); + + b.Property("theDate"); + + b.Property("theRound"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_id"); + + b.ToTable("eva_adjust_postponement"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponement_detailEntity", b => + { + b.Property("id"); + + b.Property("adjust_postponement_id"); + + b.Property("adjust_postponement_quota_id"); + + b.Property("cost_living"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("isActive"); + + b.Property("middle"); + + b.Property("new_cost_living"); + + b.Property("new_sarary"); + + b.Property("new_sarary_with_quota"); + + b.Property("promoted_percentage"); + + b.Property("receive_quota"); + + b.Property("remark") + .HasMaxLength(1000); + + b.Property("sarary"); + + b.Property("total_promote"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("adjust_postponement_id"); + + b.HasIndex("adjust_postponement_quota_id"); + + b.ToTable("eva_adjust_postponement_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluationEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("evaluation_group_id"); + + b.Property("isActive"); + + b.Property("performance_plan_id"); + + b.Property("score1"); + + b.Property("score2"); + + b.Property("supervisor1_id"); + + b.Property("supervisor2_id"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("evaluation_group_id"); + + b.HasIndex("performance_plan_id"); + + b.ToTable("eva_create_evaluation"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluation_detailEntity", b => + { + b.Property("id"); + + b.Property("Final_summary_chief"); + + b.Property("Final_summary_competency_chief"); + + b.Property("Final_summary_competency_supervisor"); + + b.Property("Final_summary_supervisor"); + + b.Property("achievement_chief"); + + b.Property("achievement_supervisor"); + + b.Property("chief"); + + b.Property("competency_chief"); + + b.Property("competency_supervisor"); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("isActive"); + + b.Property("level_score_chief") + .HasMaxLength(255); + + b.Property("level_score_supervisor") + .HasMaxLength(255); + + b.Property("score_chief"); + + b.Property("score_supervisor"); + + b.Property("status_chief") + .HasMaxLength(1); + + b.Property("status_self") + .HasMaxLength(1); + + b.Property("status_supervisor") + .HasMaxLength(1); + + b.Property("supervisor1"); + + b.Property("supervisor1_date"); + + b.Property("supervisor1_remark") + .HasMaxLength(1000); + + b.Property("supervisor1_result") + .HasMaxLength(1); + + b.Property("supervisor2"); + + b.Property("supervisor2_date"); + + b.Property("supervisor2_remark") + .HasMaxLength(1000); + + b.Property("supervisor2_result") + .HasMaxLength(1); + + b.Property("total_summary_chief"); + + b.Property("total_summary_competency_chief"); + + b.Property("total_summary_competency_supervisor"); + + b.Property("total_summary_supervisor"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_create_evaluation_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievementEntity", b => + { + b.Property("id"); + + b.Property("achievement") + .HasMaxLength(1000); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("score"); + + b.Property("score2"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("target_score1") + .HasMaxLength(255); + + b.Property("target_score2") + .HasMaxLength(255); + + b.Property("target_score3") + .HasMaxLength(255); + + b.Property("target_score4") + .HasMaxLength(255); + + b.Property("target_score5") + .HasMaxLength(255); + + b.Property("thefile") + .HasMaxLength(1000); + + b.Property("updated"); + + b.Property("weight"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_detail_id"); + + b.ToTable("eva_evaluation_achievement"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b => + { + b.Property("id"); + + b.Property("behavior") + .HasMaxLength(1000); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("score"); + + b.Property("score2"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("target_score1") + .HasMaxLength(255); + + b.Property("target_score2") + .HasMaxLength(255); + + b.Property("target_score3") + .HasMaxLength(255); + + b.Property("target_score4") + .HasMaxLength(255); + + b.Property("target_score5") + .HasMaxLength(255); + + b.Property("updated"); + + b.Property("weight"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_detail_id"); + + b.ToTable("eva_evaluation_behavior"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_groupEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("thegroup") + .HasMaxLength(255); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_evaluation_group"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_group_detailEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("evaluation_group_id"); + + b.Property("isActive"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("evaluation_group_id"); + + b.ToTable("eva_evaluation_group_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_level_scoreEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("detail") + .HasMaxLength(1000); + + b.Property("isActive"); + + b.Property("max_score"); + + b.Property("min_score"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_level_score"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_planEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("fiscal_year"); + + b.Property("isActive"); + + b.Property("theTime"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_performance_plan"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_plan_detailEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("end_date"); + + b.Property("isActive"); + + b.Property("list_no"); + + b.Property("performance_plan_id"); + + b.Property("remark") + .HasMaxLength(1000); + + b.Property("start_date"); + + b.Property("step") + .HasMaxLength(1000); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("performance_plan_id"); + + b.ToTable("eva_performance_plan_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_promoted_percentageEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("detail") + .HasMaxLength(1000); + + b.Property("isActive"); + + b.Property("level_score_id"); + + b.Property("max_score"); + + b.Property("min_score"); + + b.Property("promoted_percentage"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("level_score_id"); + + b.ToTable("eva_promoted_percentage"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_salary_cylinderEntity", b => + { + b.Property("id"); + + b.Property("cost_living"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("middle"); + + b.Property("position_level"); + + b.Property("position_type"); + + b.Property("temporary_min"); + + b.Property("themax"); + + b.Property("themin"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_salary_cylinder"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponementEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluationEntity", "eva_create_evaluation") + .WithMany() + .HasForeignKey("create_evaluation_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponement_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_adjust_postponementEntity", "eva_adjust_postponement") + .WithMany() + .HasForeignKey("adjust_postponement_id"); + + b.HasOne("TodoAPI2.Models.eva_adjust_postponementEntity", "eva_adjust_postponement_quota") + .WithMany() + .HasForeignKey("adjust_postponement_quota_id") + .HasConstraintName("FK_eva_adjust_postponement_detail_eva_adjust_postponement_adj~1"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluationEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group") + .WithMany() + .HasForeignKey("evaluation_group_id"); + + b.HasOne("TodoAPI2.Models.eva_performance_planEntity", "eva_performance_plan") + .WithMany() + .HasForeignKey("performance_plan_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievementEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail") + .WithMany() + .HasForeignKey("create_evaluation_detail_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail") + .WithMany() + .HasForeignKey("create_evaluation_detail_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_group_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group") + .WithMany() + .HasForeignKey("evaluation_group_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_plan_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_performance_planEntity", "eva_performance_plan") + .WithMany() + .HasForeignKey("performance_plan_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_promoted_percentageEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_level_scoreEntity", "eva_level_score") + .WithMany() + .HasForeignKey("level_score_id"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/25630229053829_NewSuperVisor.cs b/Migrations/25630229053829_NewSuperVisor.cs new file mode 100644 index 0000000..1983893 --- /dev/null +++ b/Migrations/25630229053829_NewSuperVisor.cs @@ -0,0 +1,31 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace tb320eva.Migrations +{ + public partial class NewSuperVisor : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "supervisor1_id", + table: "eva_create_evaluation", + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor2_id", + table: "eva_create_evaluation", + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "supervisor1_id", + table: "eva_create_evaluation"); + + migrationBuilder.DropColumn( + name: "supervisor2_id", + table: "eva_create_evaluation"); + } + } +} diff --git a/Migrations/25630229074424_AddSuperVisorAB.Designer.cs b/Migrations/25630229074424_AddSuperVisorAB.Designer.cs new file mode 100644 index 0000000..d67b56b --- /dev/null +++ b/Migrations/25630229074424_AddSuperVisorAB.Designer.cs @@ -0,0 +1,594 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using TTSW.EF; + +namespace tb320eva.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("25630229074424_AddSuperVisorAB")] + partial class AddSuperVisorAB + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn) + .HasAnnotation("ProductVersion", "2.2.4-servicing-10062") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponementEntity", b => + { + b.Property("id"); + + b.Property("command_no") + .HasMaxLength(100); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("fiscal_year"); + + b.Property("isActive"); + + b.Property("limit"); + + b.Property("limit_frame"); + + b.Property("limit_frame_quota"); + + b.Property("limit_quota"); + + b.Property("managed_by"); + + b.Property("percentage"); + + b.Property("theDate"); + + b.Property("theRound"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_id"); + + b.ToTable("eva_adjust_postponement"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponement_detailEntity", b => + { + b.Property("id"); + + b.Property("adjust_postponement_id"); + + b.Property("adjust_postponement_quota_id"); + + b.Property("cost_living"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("isActive"); + + b.Property("middle"); + + b.Property("new_cost_living"); + + b.Property("new_sarary"); + + b.Property("new_sarary_with_quota"); + + b.Property("promoted_percentage"); + + b.Property("receive_quota"); + + b.Property("remark") + .HasMaxLength(1000); + + b.Property("sarary"); + + b.Property("total_promote"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("adjust_postponement_id"); + + b.HasIndex("adjust_postponement_quota_id"); + + b.ToTable("eva_adjust_postponement_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluationEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("evaluation_group_id"); + + b.Property("isActive"); + + b.Property("performance_plan_id"); + + b.Property("score1"); + + b.Property("score2"); + + b.Property("supervisor1_id"); + + b.Property("supervisor2_id"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("evaluation_group_id"); + + b.HasIndex("performance_plan_id"); + + b.ToTable("eva_create_evaluation"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluation_detailEntity", b => + { + b.Property("id"); + + b.Property("Final_summary_chief"); + + b.Property("Final_summary_competency_chief"); + + b.Property("Final_summary_competency_supervisor"); + + b.Property("Final_summary_supervisor"); + + b.Property("achievement_chief"); + + b.Property("achievement_supervisor"); + + b.Property("chief"); + + b.Property("competency_chief"); + + b.Property("competency_supervisor"); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("isActive"); + + b.Property("level_score_chief") + .HasMaxLength(255); + + b.Property("level_score_supervisor") + .HasMaxLength(255); + + b.Property("score_chief"); + + b.Property("score_supervisor"); + + b.Property("status_chief") + .HasMaxLength(1); + + b.Property("status_self") + .HasMaxLength(1); + + b.Property("status_supervisor") + .HasMaxLength(1); + + b.Property("supervisor1"); + + b.Property("supervisor1A"); + + b.Property("supervisor1A_date"); + + b.Property("supervisor1A_remark") + .HasMaxLength(1000); + + b.Property("supervisor1A_result") + .HasMaxLength(1); + + b.Property("supervisor1_date"); + + b.Property("supervisor1_remark") + .HasMaxLength(1000); + + b.Property("supervisor1_result") + .HasMaxLength(1); + + b.Property("supervisor2"); + + b.Property("supervisor2A"); + + b.Property("supervisor2A_date"); + + b.Property("supervisor2A_remark") + .HasMaxLength(1000); + + b.Property("supervisor2A_result") + .HasMaxLength(1); + + b.Property("supervisor2_date"); + + b.Property("supervisor2_remark") + .HasMaxLength(1000); + + b.Property("supervisor2_result") + .HasMaxLength(1); + + b.Property("total_summary_chief"); + + b.Property("total_summary_competency_chief"); + + b.Property("total_summary_competency_supervisor"); + + b.Property("total_summary_supervisor"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_create_evaluation_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievementEntity", b => + { + b.Property("id"); + + b.Property("achievement") + .HasMaxLength(1000); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("score"); + + b.Property("score2"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("target_score1") + .HasMaxLength(255); + + b.Property("target_score2") + .HasMaxLength(255); + + b.Property("target_score3") + .HasMaxLength(255); + + b.Property("target_score4") + .HasMaxLength(255); + + b.Property("target_score5") + .HasMaxLength(255); + + b.Property("thefile") + .HasMaxLength(1000); + + b.Property("updated"); + + b.Property("weight"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_detail_id"); + + b.ToTable("eva_evaluation_achievement"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b => + { + b.Property("id"); + + b.Property("behavior") + .HasMaxLength(1000); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("score"); + + b.Property("score2"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("target_score1") + .HasMaxLength(255); + + b.Property("target_score2") + .HasMaxLength(255); + + b.Property("target_score3") + .HasMaxLength(255); + + b.Property("target_score4") + .HasMaxLength(255); + + b.Property("target_score5") + .HasMaxLength(255); + + b.Property("updated"); + + b.Property("weight"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_detail_id"); + + b.ToTable("eva_evaluation_behavior"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_groupEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("thegroup") + .HasMaxLength(255); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_evaluation_group"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_group_detailEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("evaluation_group_id"); + + b.Property("isActive"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("evaluation_group_id"); + + b.ToTable("eva_evaluation_group_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_level_scoreEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("detail") + .HasMaxLength(1000); + + b.Property("isActive"); + + b.Property("max_score"); + + b.Property("min_score"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_level_score"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_planEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("fiscal_year"); + + b.Property("isActive"); + + b.Property("theTime"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_performance_plan"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_plan_detailEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("end_date"); + + b.Property("isActive"); + + b.Property("list_no"); + + b.Property("performance_plan_id"); + + b.Property("remark") + .HasMaxLength(1000); + + b.Property("start_date"); + + b.Property("step") + .HasMaxLength(1000); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("performance_plan_id"); + + b.ToTable("eva_performance_plan_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_promoted_percentageEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("code") + .HasMaxLength(255); + + b.Property("created"); + + b.Property("detail") + .HasMaxLength(1000); + + b.Property("isActive"); + + b.Property("level_score_id"); + + b.Property("max_score"); + + b.Property("min_score"); + + b.Property("promoted_percentage"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("level_score_id"); + + b.ToTable("eva_promoted_percentage"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_salary_cylinderEntity", b => + { + b.Property("id"); + + b.Property("cost_living"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("middle"); + + b.Property("position_level"); + + b.Property("position_type"); + + b.Property("temporary_min"); + + b.Property("themax"); + + b.Property("themin"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_salary_cylinder"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponementEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluationEntity", "eva_create_evaluation") + .WithMany() + .HasForeignKey("create_evaluation_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponement_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_adjust_postponementEntity", "eva_adjust_postponement") + .WithMany() + .HasForeignKey("adjust_postponement_id"); + + b.HasOne("TodoAPI2.Models.eva_adjust_postponementEntity", "eva_adjust_postponement_quota") + .WithMany() + .HasForeignKey("adjust_postponement_quota_id") + .HasConstraintName("FK_eva_adjust_postponement_detail_eva_adjust_postponement_adj~1"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluationEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group") + .WithMany() + .HasForeignKey("evaluation_group_id"); + + b.HasOne("TodoAPI2.Models.eva_performance_planEntity", "eva_performance_plan") + .WithMany() + .HasForeignKey("performance_plan_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievementEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail") + .WithMany() + .HasForeignKey("create_evaluation_detail_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail") + .WithMany() + .HasForeignKey("create_evaluation_detail_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_group_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group") + .WithMany() + .HasForeignKey("evaluation_group_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_plan_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_performance_planEntity", "eva_performance_plan") + .WithMany() + .HasForeignKey("performance_plan_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_promoted_percentageEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_level_scoreEntity", "eva_level_score") + .WithMany() + .HasForeignKey("level_score_id"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/25630229074424_AddSuperVisorAB.cs b/Migrations/25630229074424_AddSuperVisorAB.cs new file mode 100644 index 0000000..9b133e7 --- /dev/null +++ b/Migrations/25630229074424_AddSuperVisorAB.cs @@ -0,0 +1,90 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace tb320eva.Migrations +{ + public partial class AddSuperVisorAB : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "supervisor1A", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor1A_date", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor1A_remark", + table: "eva_create_evaluation_detail", + maxLength: 1000, + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor1A_result", + table: "eva_create_evaluation_detail", + maxLength: 1, + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor2A", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor2A_date", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor2A_remark", + table: "eva_create_evaluation_detail", + maxLength: 1000, + nullable: true); + + migrationBuilder.AddColumn( + name: "supervisor2A_result", + table: "eva_create_evaluation_detail", + maxLength: 1, + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "supervisor1A", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor1A_date", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor1A_remark", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor1A_result", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor2A", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor2A_date", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor2A_remark", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "supervisor2A_result", + table: "eva_create_evaluation_detail"); + } + } +} diff --git a/Migrations/DataContextModelSnapshot.cs b/Migrations/DataContextModelSnapshot.cs index b86dcfb..e6d02db 100644 --- a/Migrations/DataContextModelSnapshot.cs +++ b/Migrations/DataContextModelSnapshot.cs @@ -123,6 +123,10 @@ namespace tb320eva.Migrations b.Property("score2"); + b.Property("supervisor1_id"); + + b.Property("supervisor2_id"); + b.Property("updated"); b.HasKey("id"); @@ -185,6 +189,16 @@ namespace tb320eva.Migrations b.Property("supervisor1"); + b.Property("supervisor1A"); + + b.Property("supervisor1A_date"); + + b.Property("supervisor1A_remark") + .HasMaxLength(1000); + + b.Property("supervisor1A_result") + .HasMaxLength(1); + b.Property("supervisor1_date"); b.Property("supervisor1_remark") @@ -195,6 +209,16 @@ namespace tb320eva.Migrations b.Property("supervisor2"); + b.Property("supervisor2A"); + + b.Property("supervisor2A_date"); + + b.Property("supervisor2A_remark") + .HasMaxLength(1000); + + b.Property("supervisor2A_result") + .HasMaxLength(1); + b.Property("supervisor2_date"); b.Property("supervisor2_remark") diff --git a/Models/eva_create_evaluation/eva_create_evaluationEntity.cs b/Models/eva_create_evaluation/eva_create_evaluationEntity.cs index b27f0d4..7c7f903 100644 --- a/Models/eva_create_evaluation/eva_create_evaluationEntity.cs +++ b/Models/eva_create_evaluation/eva_create_evaluationEntity.cs @@ -14,6 +14,8 @@ namespace TodoAPI2.Models { public class eva_create_evaluationEntity : BaseEntity2 { + + [ForeignKey("performance_plan_id")] public eva_performance_planEntity eva_performance_plan { get; set; } public Guid? performance_plan_id { get; set; } @@ -27,7 +29,11 @@ namespace TodoAPI2.Models [ForeignKey("evaluation_group_id")] public eva_evaluation_groupEntity eva_evaluation_group { get; set; } public Guid? evaluation_group_id { get; set; } + + public int? supervisor1_id { get; set; } + + public int? supervisor2_id { get; set; } + + } } - - diff --git a/Models/eva_create_evaluation/eva_create_evaluationInputModel.cs b/Models/eva_create_evaluation/eva_create_evaluationInputModel.cs index 9d6f714..2ecb2cb 100644 --- a/Models/eva_create_evaluation/eva_create_evaluationInputModel.cs +++ b/Models/eva_create_evaluation/eva_create_evaluationInputModel.cs @@ -26,6 +26,10 @@ namespace TodoAPI2.Models public Guid? evaluation_group_id { get; set; } + public int? supervisor1_id { get; set; } + + public int? supervisor2_id { get; set; } + public string active_mode { get; set; } } } diff --git a/Models/eva_create_evaluation/eva_create_evaluationService.cs b/Models/eva_create_evaluation/eva_create_evaluationService.cs index ade2c9d..b6dc3df 100644 --- a/Models/eva_create_evaluation/eva_create_evaluationService.cs +++ b/Models/eva_create_evaluation/eva_create_evaluationService.cs @@ -64,22 +64,28 @@ namespace TodoAPI2.Models } public eva_create_evaluationWithSelectionViewModel GetWithSelection(int id) { + var all_emp = emp.GetListByemployee_type(null, null); + var entity = _repository.Get(id); var i = Mapper.Map(entity); i.item_performance_plan_id = (from x in _repository.Context.eva_performance_plan select x).ToList(); - i.item_employee_id = emp.GetListByemployee_type(null, null); + i.item_employee_id = all_emp; i.item_evaluation_group_id = (from x in _repository.Context.eva_evaluation_group select x).ToList(); - + i.item_supervisor1_id = all_emp; + i.item_supervisor2_id = all_emp; return i; } public eva_create_evaluationWithSelectionViewModel GetBlankItem() { + var all_emp = emp.GetListByemployee_type(null, null); + var i = new eva_create_evaluationWithSelectionViewModel(); i.item_performance_plan_id = (from x in _repository.Context.eva_performance_plan select x).ToList(); - i.item_employee_id = emp.GetListByemployee_type(null, null); + i.item_employee_id = all_emp; i.item_evaluation_group_id = (from x in _repository.Context.eva_evaluation_group select x).ToList(); - + i.item_supervisor1_id = all_emp; + i.item_supervisor2_id = all_emp; return i; } @@ -93,6 +99,8 @@ namespace TodoAPI2.Models public List GetListBySearch(eva_create_evaluationSearchModel model) { + var all_emp = emp.GetListByemployee_type(null, null); + var data = ( from m_eva_create_evaluation in _repository.Context.eva_create_evaluation @@ -100,7 +108,7 @@ namespace TodoAPI2.Models into eva_performance_planResult1 from fk_eva_performance_planResult1 in eva_performance_planResult1.DefaultIfEmpty() - join fk_external_linkage2 in emp.GetListByemployee_type(null,null) on m_eva_create_evaluation.employee_id equals fk_external_linkage2.id + join fk_external_linkage2 in all_emp on m_eva_create_evaluation.employee_id equals fk_external_linkage2.id into external_linkageResult2 from fk_external_linkageResult2 in external_linkageResult2.DefaultIfEmpty() @@ -108,8 +116,15 @@ namespace TodoAPI2.Models into eva_evaluation_groupResult5 from fk_eva_evaluation_groupResult5 in eva_evaluation_groupResult5.DefaultIfEmpty() + join fk_external_linkage6 in all_emp on m_eva_create_evaluation.supervisor1_id equals fk_external_linkage6.id + into external_linkageResult6 + from fk_external_linkageResult6 in external_linkageResult6.DefaultIfEmpty() - where 1==1 + join fk_external_linkage7 in all_emp on m_eva_create_evaluation.supervisor2_id equals fk_external_linkage7.id + into external_linkageResult7 + from fk_external_linkageResult7 in external_linkageResult7.DefaultIfEmpty() + + where 1==1 && (m_eva_create_evaluation.performance_plan_id == model.performance_plan_id || !model.performance_plan_id.HasValue) && (m_eva_create_evaluation.evaluation_group_id == model.evaluation_group_id || !model.evaluation_group_id.HasValue) @@ -123,10 +138,14 @@ namespace TodoAPI2.Models score1 = m_eva_create_evaluation.score1, score2 = m_eva_create_evaluation.score2, evaluation_group_id = m_eva_create_evaluation.evaluation_group_id, + supervisor1_id = m_eva_create_evaluation.supervisor1_id, + supervisor2_id = m_eva_create_evaluation.supervisor2_id, performance_plan_id_eva_performance_plan_fiscal_year = fk_eva_performance_planResult1.fiscal_year, employee_id_external_linkage_external_name = fk_external_linkageResult2.fullname, - evaluation_group_id_eva_evaluation_group_code = fk_eva_evaluation_groupResult5.thegroup, + evaluation_group_id_eva_evaluation_group_code = fk_eva_evaluation_groupResult5.code, + supervisor1_id_external_linkage_external_name = fk_external_linkageResult6.fullname, + supervisor2_id_external_linkage_external_name = fk_external_linkageResult7.fullname, isActive = m_eva_create_evaluation.isActive, Created = m_eva_create_evaluation.created, @@ -180,6 +199,8 @@ namespace TodoAPI2.Models existingEntity.score1 = model.score1; existingEntity.score2 = model.score2; existingEntity.evaluation_group_id = model.evaluation_group_id; + existingEntity.supervisor1_id = model.supervisor1_id; + existingEntity.supervisor2_id = model.supervisor2_id; var updated = _repository.Update(id, existingEntity); @@ -198,11 +219,13 @@ namespace TodoAPI2.Models var existingEntity = _repository.Get(i.id.Value); if (existingEntity != null) { - existingEntity.performance_plan_id = i.performance_plan_id; - existingEntity.employee_id = i.employee_id; - existingEntity.score1 = i.score1; - existingEntity.score2 = i.score2; - existingEntity.evaluation_group_id = i.evaluation_group_id; + existingEntity.performance_plan_id = i.performance_plan_id; + existingEntity.employee_id = i.employee_id; + existingEntity.score1 = i.score1; + existingEntity.score2 = i.score2; + existingEntity.evaluation_group_id = i.evaluation_group_id; + existingEntity.supervisor1_id = i.supervisor1_id; + existingEntity.supervisor2_id = i.supervisor2_id; _repository.UpdateWithoutCommit(i.id.Value, existingEntity); diff --git a/Models/eva_create_evaluation/eva_create_evaluationViewModel.cs b/Models/eva_create_evaluation/eva_create_evaluationViewModel.cs index e8629f7..14a0bcf 100644 --- a/Models/eva_create_evaluation/eva_create_evaluationViewModel.cs +++ b/Models/eva_create_evaluation/eva_create_evaluationViewModel.cs @@ -24,9 +24,15 @@ namespace TodoAPI2.Models public Guid? evaluation_group_id { get; set; } + public int? supervisor1_id { get; set; } + + public int? supervisor2_id { get; set; } + public int? performance_plan_id_eva_performance_plan_fiscal_year { get; set; } public string employee_id_external_linkage_external_name { get; set; } public string evaluation_group_id_eva_evaluation_group_code { get; set; } + public string supervisor1_id_external_linkage_external_name { get; set; } + public string supervisor2_id_external_linkage_external_name { get; set; } public string description { diff --git a/Models/eva_create_evaluation/eva_create_evaluationWithSelectionViewModel.cs b/Models/eva_create_evaluation/eva_create_evaluationWithSelectionViewModel.cs index 6521bd1..c79f2b4 100644 --- a/Models/eva_create_evaluation/eva_create_evaluationWithSelectionViewModel.cs +++ b/Models/eva_create_evaluation/eva_create_evaluationWithSelectionViewModel.cs @@ -10,6 +10,8 @@ namespace TodoAPI2.Models public List item_performance_plan_id { get; set; } public List item_employee_id { get; set; } public List item_evaluation_group_id { get; set; } + public List item_supervisor1_id { get; set; } + public List item_supervisor2_id { get; set; } } } \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs b/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs index f816e0a..4e37325 100644 --- a/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs +++ b/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs @@ -85,6 +85,24 @@ namespace TodoAPI2.Models [MaxLength(1)] public string status_supervisor { get; set; } + public int? supervisor1A { get; set; } + [MaxLength(1)] + public string supervisor1A_result { get; set; } + + [MaxLength(1000)] + public string supervisor1A_remark { get; set; } + + public DateTime? supervisor1A_date { get; set; } + + public int? supervisor2A { get; set; } + + [MaxLength(1)] + public string supervisor2A_result { get; set; } + + [MaxLength(1000)] + public string supervisor2A_remark { get; set; } + + public DateTime? supervisor2A_date { get; set; } } } diff --git a/Models/eva_create_evaluation_detail_review03/Ieva_create_evaluation_detail_review03Service.cs b/Models/eva_create_evaluation_detail_review03/Ieva_create_evaluation_detail_review03Service.cs new file mode 100644 index 0000000..2b908f5 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/Ieva_create_evaluation_detail_review03Service.cs @@ -0,0 +1,28 @@ +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 Ieva_create_evaluation_detail_review03Service : IBaseService + { + new eva_create_evaluation_detail_review03ViewModel Insert(eva_create_evaluation_detail_review03InputModel model); + new eva_create_evaluation_detail_review03ViewModel Update(int id, eva_create_evaluation_detail_review03InputModel model); + List GetListBycreate_evaluation_id(int? create_evaluation_id); + List GetListBySearch(eva_create_evaluation_detail_review03SearchModel model); + + string UpdateMultiple(List model); + eva_create_evaluation_detail_review03WithSelectionViewModel GetWithSelection(int id); + eva_create_evaluation_detail_review03WithSelectionViewModel GetBlankItem(); + + + + } +} + diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03InputModel.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03InputModel.cs new file mode 100644 index 0000000..cb5dd26 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03InputModel.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 eva_create_evaluation_detail_review03InputModel + { + + public int? id { get; set; } + + public int? create_evaluation_id { get; set; } + + public int? supervisor1A { get; set; } + + public string supervisor1A_result { get; set; } + + public string supervisor1A_remark { get; set; } + + public DateTime? supervisor1A_date { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ReportRequestModel.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ReportRequestModel.cs new file mode 100644 index 0000000..8e32112 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ReportRequestModel.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 eva_create_evaluation_detail_review03ReportRequestModel : eva_create_evaluation_detail_review03SearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03SearchModel.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03SearchModel.cs new file mode 100644 index 0000000..d44b86e --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03SearchModel.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 eva_create_evaluation_detail_review03SearchModel + { + + public int id { get; set; } + + public int? create_evaluation_id { get; set; } + + } +} + diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03Service.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03Service.cs new file mode 100644 index 0000000..e2c9013 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03Service.cs @@ -0,0 +1,239 @@ +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 eva_create_evaluation_detail_review03Service : Ieva_create_evaluation_detail_review03Service + { + private IBaseRepository2 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + + public eva_create_evaluation_detail_review03Service(IBaseRepository2 repository, IMyDatabase mydb, Iexternal_linkageService inext) + { + _repository = repository; + db = mydb; + ext = inext; + } + + #region Private Functions + private eva_create_evaluation_detailEntity GetEntity(eva_create_evaluation_detail_review03InputModel model) + { + return Mapper.Map(model); + } + private List GetEntityList(List models) + { + return Mapper.Map>(models); + } + private eva_create_evaluation_detail_review03ViewModel GetDto(eva_create_evaluation_detailEntity entity) + { + return Mapper.Map(entity); + } + private List GetDtoList(List entities) + { + return Mapper.Map>(entities); + } + + #endregion + + #region Public Functions + #region Query Functions + + public eva_create_evaluation_detail_review03ViewModel Get(int id) + { + var entity = _repository.Get(id); + + return GetDto(entity); + } + public eva_create_evaluation_detail_review03WithSelectionViewModel GetWithSelection(int id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + i.item_supervisor1A_result = (from x in ext.GetAgreeDisagree() select x).ToList(); + + + return i; + } + public eva_create_evaluation_detail_review03WithSelectionViewModel GetBlankItem() + { + var i = new eva_create_evaluation_detail_review03WithSelectionViewModel(); + i.item_supervisor1A_result = (from x in ext.GetAgreeDisagree() select x).ToList(); + + + return i; + } + + public List GetListBycreate_evaluation_id(int? create_evaluation_id) + { + var model = new eva_create_evaluation_detail_review03SearchModel(); + model.create_evaluation_id = create_evaluation_id; + return GetListBySearch(model); + } + + public List GetListBySearch(eva_create_evaluation_detail_review03SearchModel model) + { + var data = ( + from m_eva_create_evaluation_detail_review03 in _repository.Context.eva_create_evaluation_detail + + join fk_external_linkage3 in ext.GetAgreeDisagree() on m_eva_create_evaluation_detail_review03.supervisor1A_result equals fk_external_linkage3.external_code + into external_linkageResult3 + from fk_external_linkageResult3 in external_linkageResult3.DefaultIfEmpty() + + + where 1==1 + //&& (m_eva_create_evaluation_detail_review03.id == model.id || !model.id.HasValue) + && (m_eva_create_evaluation_detail_review03.create_evaluation_id == model.create_evaluation_id || !model.create_evaluation_id.HasValue) + + + orderby m_eva_create_evaluation_detail_review03.created descending + select new eva_create_evaluation_detail_review03ViewModel() + { + id = m_eva_create_evaluation_detail_review03.id, + create_evaluation_id = m_eva_create_evaluation_detail_review03.create_evaluation_id, + supervisor1A = m_eva_create_evaluation_detail_review03.supervisor1A, + supervisor1A_result = m_eva_create_evaluation_detail_review03.supervisor1A_result, + supervisor1A_remark = m_eva_create_evaluation_detail_review03.supervisor1A_remark, + supervisor1A_date = m_eva_create_evaluation_detail_review03.supervisor1A_date, + + supervisor1A_result_external_linkage_external_name = fk_external_linkageResult3.external_name, + + isActive = m_eva_create_evaluation_detail_review03.isActive, + Created = m_eva_create_evaluation_detail_review03.created, + Updated = m_eva_create_evaluation_detail_review03.updated + } + ).Take(100).ToList(); + + return data; + } + + #endregion + + #region Manipulation Functions + + public int GetNewPrimaryKey() + { + int? newkey = 0; + + var x = (from i in _repository.Context.eva_create_evaluation_detail + orderby i.id descending + select i).Take(1).ToList(); + + if(x.Count > 0) + { + newkey = x[0].id + 1; + } + + return newkey.Value; + } + + public eva_create_evaluation_detail_review03ViewModel Insert(eva_create_evaluation_detail_review03InputModel model) + { + var entity = GetEntity(model); + entity.id = GetNewPrimaryKey(); + + + + var inserted = _repository.Insert(entity); + + return Get(inserted.id); + } + + public eva_create_evaluation_detail_review03ViewModel Update(int id, eva_create_evaluation_detail_review03InputModel model) + { + var existingEntity = _repository.Get(id); + if (existingEntity != null) + { + existingEntity.create_evaluation_id = model.create_evaluation_id; + existingEntity.supervisor1A = model.supervisor1A; + existingEntity.supervisor1A_result = model.supervisor1A_result; + existingEntity.supervisor1A_remark = model.supervisor1A_remark; + existingEntity.supervisor1A_date = model.supervisor1A_date; + + + var updated = _repository.Update(id, existingEntity); + return Get(updated.id); + } + else + throw new NotificationException("No data to update"); + } + + public string UpdateMultiple(List model) + { + foreach(var i in model) + { + if (i.active_mode == "1" && i.id.HasValue) // update + { + var existingEntity = _repository.Get(i.id.Value); + if (existingEntity != null) + { + existingEntity.create_evaluation_id = i.create_evaluation_id; + existingEntity.supervisor1A = i.supervisor1A; + existingEntity.supervisor1A_result = i.supervisor1A_result; + existingEntity.supervisor1A_remark = i.supervisor1A_remark; + existingEntity.supervisor1A_date = i.supervisor1A_date; + + + _repository.UpdateWithoutCommit(i.id.Value, existingEntity); + } + } + else if (i.active_mode == "1" && !i.id.HasValue) // add + { + var entity = GetEntity(i); + entity.id = GetNewPrimaryKey(); + _repository.InsertWithoutCommit(entity); + } + else if (i.active_mode == "0" && i.id.HasValue) // remove + { + _repository.DeleteWithoutCommit(i.id.Value); + } + else if (i.active_mode == "0" && !i.id.HasValue) + { + // nothing to do + } + } + _repository.Context.SaveChanges(); + + return model.Count().ToString(); + } + + public eva_create_evaluation_detail_review03ViewModel SetAsActive(int id) + { + var updated = _repository.SetAsActive(id); + + return Get(updated.id); + } + public eva_create_evaluation_detail_review03ViewModel SetAsInactive(int id) + { + var updated = _repository.SetAsInActive(id); + + return Get(updated.id); + } + public void Delete(int id) + { + _repository.Delete(id); + + return; + } + #endregion + + #region Match Item + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ViewModel.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ViewModel.cs new file mode 100644 index 0000000..2d68d2f --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03ViewModel.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 eva_create_evaluation_detail_review03ViewModel : BaseViewModel2 + { + + public int? create_evaluation_id { get; set; } + + public int? supervisor1A { get; set; } + + public string supervisor1A_result { get; set; } + + public string supervisor1A_remark { get; set; } + + public DateTime? supervisor1A_date { get; set; } + + public string txt_supervisor1A_date { get { return MyHelper.GetDateStringForReport(this.supervisor1A_date); } } + + public string supervisor1A_result_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03WithSelectionViewModel.cs b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03WithSelectionViewModel.cs new file mode 100644 index 0000000..1aa5885 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03WithSelectionViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class eva_create_evaluation_detail_review03WithSelectionViewModel: eva_create_evaluation_detail_review03ViewModel + { + public List item_supervisor1A_result { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review04/Ieva_create_evaluation_detail_review04Service.cs b/Models/eva_create_evaluation_detail_review04/Ieva_create_evaluation_detail_review04Service.cs new file mode 100644 index 0000000..2c5b757 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/Ieva_create_evaluation_detail_review04Service.cs @@ -0,0 +1,28 @@ +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 Ieva_create_evaluation_detail_review04Service : IBaseService + { + new eva_create_evaluation_detail_review04ViewModel Insert(eva_create_evaluation_detail_review04InputModel model); + new eva_create_evaluation_detail_review04ViewModel Update(int id, eva_create_evaluation_detail_review04InputModel model); + List GetListBycreate_evaluation_id(int? create_evaluation_id); + List GetListBySearch(eva_create_evaluation_detail_review04SearchModel model); + + string UpdateMultiple(List model); + eva_create_evaluation_detail_review04WithSelectionViewModel GetWithSelection(int id); + eva_create_evaluation_detail_review04WithSelectionViewModel GetBlankItem(); + + + + } +} + diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04InputModel.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04InputModel.cs new file mode 100644 index 0000000..cee6b25 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04InputModel.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 eva_create_evaluation_detail_review04InputModel + { + + public int? id { get; set; } + + public int? create_evaluation_id { get; set; } + + public int? supervisor2A { get; set; } + + public string supervisor2A_result { get; set; } + + public string supervisor2A_remark { get; set; } + + public DateTime? supervisor2A_date { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ReportRequestModel.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ReportRequestModel.cs new file mode 100644 index 0000000..9b2600d --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ReportRequestModel.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 eva_create_evaluation_detail_review04ReportRequestModel : eva_create_evaluation_detail_review04SearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04SearchModel.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04SearchModel.cs new file mode 100644 index 0000000..c04f758 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04SearchModel.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 eva_create_evaluation_detail_review04SearchModel + { + + public int id { get; set; } + + public int? create_evaluation_id { get; set; } + + } +} + diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04Service.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04Service.cs new file mode 100644 index 0000000..a588292 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04Service.cs @@ -0,0 +1,239 @@ +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 eva_create_evaluation_detail_review04Service : Ieva_create_evaluation_detail_review04Service + { + private IBaseRepository2 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + + public eva_create_evaluation_detail_review04Service(IBaseRepository2 repository, IMyDatabase mydb, Iexternal_linkageService inext) + { + _repository = repository; + db = mydb; + ext = inext; + } + + #region Private Functions + private eva_create_evaluation_detailEntity GetEntity(eva_create_evaluation_detail_review04InputModel model) + { + return Mapper.Map(model); + } + private List GetEntityList(List models) + { + return Mapper.Map>(models); + } + private eva_create_evaluation_detail_review04ViewModel GetDto(eva_create_evaluation_detailEntity entity) + { + return Mapper.Map(entity); + } + private List GetDtoList(List entities) + { + return Mapper.Map>(entities); + } + + #endregion + + #region Public Functions + #region Query Functions + + public eva_create_evaluation_detail_review04ViewModel Get(int id) + { + var entity = _repository.Get(id); + + return GetDto(entity); + } + public eva_create_evaluation_detail_review04WithSelectionViewModel GetWithSelection(int id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + i.item_supervisor2A_result = (from x in ext.GetAgreeDisagree() select x).ToList(); + + + return i; + } + public eva_create_evaluation_detail_review04WithSelectionViewModel GetBlankItem() + { + var i = new eva_create_evaluation_detail_review04WithSelectionViewModel(); + i.item_supervisor2A_result = (from x in ext.GetAgreeDisagree() select x).ToList(); + + + return i; + } + + public List GetListBycreate_evaluation_id(int? create_evaluation_id) + { + var model = new eva_create_evaluation_detail_review04SearchModel(); + model.create_evaluation_id = create_evaluation_id; + return GetListBySearch(model); + } + + public List GetListBySearch(eva_create_evaluation_detail_review04SearchModel model) + { + var data = ( + from m_eva_create_evaluation_detail_review04 in _repository.Context.eva_create_evaluation_detail + + join fk_external_linkage3 in ext.GetAgreeDisagree() on m_eva_create_evaluation_detail_review04.supervisor2A_result equals fk_external_linkage3.external_code + into external_linkageResult3 + from fk_external_linkageResult3 in external_linkageResult3.DefaultIfEmpty() + + + where 1==1 + //&& (m_eva_create_evaluation_detail_review04.id == model.id || !model.id.HasValue) + && (m_eva_create_evaluation_detail_review04.create_evaluation_id == model.create_evaluation_id || !model.create_evaluation_id.HasValue) + + + orderby m_eva_create_evaluation_detail_review04.created descending + select new eva_create_evaluation_detail_review04ViewModel() + { + id = m_eva_create_evaluation_detail_review04.id, + create_evaluation_id = m_eva_create_evaluation_detail_review04.create_evaluation_id, + supervisor2A = m_eva_create_evaluation_detail_review04.supervisor2A, + supervisor2A_result = m_eva_create_evaluation_detail_review04.supervisor2A_result, + supervisor2A_remark = m_eva_create_evaluation_detail_review04.supervisor2A_remark, + supervisor2A_date = m_eva_create_evaluation_detail_review04.supervisor2A_date, + + supervisor2A_result_external_linkage_external_name = fk_external_linkageResult3.external_name, + + isActive = m_eva_create_evaluation_detail_review04.isActive, + Created = m_eva_create_evaluation_detail_review04.created, + Updated = m_eva_create_evaluation_detail_review04.updated + } + ).Take(100).ToList(); + + return data; + } + + #endregion + + #region Manipulation Functions + + public int GetNewPrimaryKey() + { + int? newkey = 0; + + var x = (from i in _repository.Context.eva_create_evaluation_detail + orderby i.id descending + select i).Take(1).ToList(); + + if(x.Count > 0) + { + newkey = x[0].id + 1; + } + + return newkey.Value; + } + + public eva_create_evaluation_detail_review04ViewModel Insert(eva_create_evaluation_detail_review04InputModel model) + { + var entity = GetEntity(model); + entity.id = GetNewPrimaryKey(); + + + + var inserted = _repository.Insert(entity); + + return Get(inserted.id); + } + + public eva_create_evaluation_detail_review04ViewModel Update(int id, eva_create_evaluation_detail_review04InputModel model) + { + var existingEntity = _repository.Get(id); + if (existingEntity != null) + { + existingEntity.create_evaluation_id = model.create_evaluation_id; + existingEntity.supervisor2A = model.supervisor2A; + existingEntity.supervisor2A_result = model.supervisor2A_result; + existingEntity.supervisor2A_remark = model.supervisor2A_remark; + existingEntity.supervisor2A_date = model.supervisor2A_date; + + + var updated = _repository.Update(id, existingEntity); + return Get(updated.id); + } + else + throw new NotificationException("No data to update"); + } + + public string UpdateMultiple(List model) + { + foreach(var i in model) + { + if (i.active_mode == "1" && i.id.HasValue) // update + { + var existingEntity = _repository.Get(i.id.Value); + if (existingEntity != null) + { + existingEntity.create_evaluation_id = i.create_evaluation_id; + existingEntity.supervisor2A = i.supervisor2A; + existingEntity.supervisor2A_result = i.supervisor2A_result; + existingEntity.supervisor2A_remark = i.supervisor2A_remark; + existingEntity.supervisor2A_date = i.supervisor2A_date; + + + _repository.UpdateWithoutCommit(i.id.Value, existingEntity); + } + } + else if (i.active_mode == "1" && !i.id.HasValue) // add + { + var entity = GetEntity(i); + entity.id = GetNewPrimaryKey(); + _repository.InsertWithoutCommit(entity); + } + else if (i.active_mode == "0" && i.id.HasValue) // remove + { + _repository.DeleteWithoutCommit(i.id.Value); + } + else if (i.active_mode == "0" && !i.id.HasValue) + { + // nothing to do + } + } + _repository.Context.SaveChanges(); + + return model.Count().ToString(); + } + + public eva_create_evaluation_detail_review04ViewModel SetAsActive(int id) + { + var updated = _repository.SetAsActive(id); + + return Get(updated.id); + } + public eva_create_evaluation_detail_review04ViewModel SetAsInactive(int id) + { + var updated = _repository.SetAsInActive(id); + + return Get(updated.id); + } + public void Delete(int id) + { + _repository.Delete(id); + + return; + } + #endregion + + #region Match Item + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ViewModel.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ViewModel.cs new file mode 100644 index 0000000..5f200df --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04ViewModel.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 eva_create_evaluation_detail_review04ViewModel : BaseViewModel2 + { + + public int? create_evaluation_id { get; set; } + + public int? supervisor2A { get; set; } + + public string supervisor2A_result { get; set; } + + public string supervisor2A_remark { get; set; } + + public DateTime? supervisor2A_date { get; set; } + + public string txt_supervisor2A_date { get { return MyHelper.GetDateStringForReport(this.supervisor2A_date); } } + + public string supervisor2A_result_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04WithSelectionViewModel.cs b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04WithSelectionViewModel.cs new file mode 100644 index 0000000..9cefd9f --- /dev/null +++ b/Models/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04WithSelectionViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class eva_create_evaluation_detail_review04WithSelectionViewModel: eva_create_evaluation_detail_review04ViewModel + { + public List item_supervisor2A_result { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_evaluation_achievement/eva_evaluation_achievementInputModel.cs b/Models/eva_evaluation_achievement/eva_evaluation_achievementInputModel.cs index d63ed5d..5f70f66 100644 --- a/Models/eva_evaluation_achievement/eva_evaluation_achievementInputModel.cs +++ b/Models/eva_evaluation_achievement/eva_evaluation_achievementInputModel.cs @@ -24,6 +24,16 @@ namespace TodoAPI2.Models public string thefile { get; set; } + public string target_score1 { get; set; } + + public string target_score2 { get; set; } + + public string target_score3 { get; set; } + + public string target_score4 { get; set; } + + public string target_score5 { get; set; } + public string active_mode { get; set; } } } diff --git a/Models/eva_evaluation_achievement/eva_evaluation_achievementService.cs b/Models/eva_evaluation_achievement/eva_evaluation_achievementService.cs index 6977732..d70712b 100644 --- a/Models/eva_evaluation_achievement/eva_evaluation_achievementService.cs +++ b/Models/eva_evaluation_achievement/eva_evaluation_achievementService.cs @@ -20,14 +20,14 @@ namespace TodoAPI2.Models public class eva_evaluation_achievementService : Ieva_evaluation_achievementService { private IBaseRepository2 _repository; - private IMyDatabase db; - private Iexternal_linkageService ext; + private IMyDatabase db; + private Iexternal_linkageService ext; public eva_evaluation_achievementService(IBaseRepository2 repository, IMyDatabase mydb, Iexternal_linkageService inext) { _repository = repository; - db = mydb; - ext = inext; + db = mydb; + ext = inext; } #region Private Functions @@ -47,7 +47,7 @@ namespace TodoAPI2.Models { return Mapper.Map>(entities); } - + #endregion #region Public Functions @@ -77,12 +77,12 @@ namespace TodoAPI2.Models public List GetListBycreate_evaluation_detail_id(int? create_evaluation_detail_id) { - var model = new eva_evaluation_achievementSearchModel(); + var model = new eva_evaluation_achievementSearchModel(); model.create_evaluation_detail_id = create_evaluation_detail_id; return GetListBySearch(model); } - public List GetListBySearch(eva_evaluation_achievementSearchModel model) + public List GetListBySearch(eva_evaluation_achievementSearchModel model) { var data = ( from m_eva_evaluation_achievement in _repository.Context.eva_evaluation_achievement @@ -92,11 +92,11 @@ namespace TodoAPI2.Models from fk_eva_create_evaluation_detailResult1 in eva_create_evaluation_detailResult1.DefaultIfEmpty() - where 1==1 + where 1 == 1 && (m_eva_evaluation_achievement.create_evaluation_detail_id == model.create_evaluation_detail_id || !model.create_evaluation_detail_id.HasValue) - orderby m_eva_evaluation_achievement.achievement + orderby m_eva_evaluation_achievement.achievement select new eva_evaluation_achievementViewModel() { id = m_eva_evaluation_achievement.id, @@ -108,6 +108,12 @@ namespace TodoAPI2.Models create_evaluation_detail_id_eva_create_evaluation_detail_create_evaluation_id = fk_eva_create_evaluation_detailResult1.create_evaluation_id, + target_score1 = m_eva_evaluation_achievement.target_score1, + target_score2 = m_eva_evaluation_achievement.target_score2, + target_score3 = m_eva_evaluation_achievement.target_score3, + target_score4 = m_eva_evaluation_achievement.target_score4, + target_score5 = m_eva_evaluation_achievement.target_score5, + isActive = m_eva_evaluation_achievement.isActive, Created = m_eva_evaluation_achievement.created, Updated = m_eva_evaluation_achievement.updated @@ -126,10 +132,10 @@ namespace TodoAPI2.Models int? newkey = 0; var x = (from i in _repository.Context.eva_evaluation_achievement - orderby i.id descending - select i).Take(1).ToList(); + orderby i.id descending + select i).Take(1).ToList(); - if(x.Count > 0) + if (x.Count > 0) { newkey = x[0].id + 1; } @@ -143,6 +149,7 @@ namespace TodoAPI2.Models entity.id = GetNewPrimaryKey(); var current_sum = (from i in _repository.Context.eva_evaluation_achievement + where i.create_evaluation_detail_id == model.create_evaluation_detail_id select i.weight).Sum(); if (current_sum + model.weight > 100) @@ -159,17 +166,18 @@ namespace TodoAPI2.Models } var inserted = _repository.Insert(entity); - + return Get(inserted.id); } public eva_evaluation_achievementViewModel Update(int id, eva_evaluation_achievementInputModel model) { var current_sum = (from i in _repository.Context.eva_evaluation_achievement + where i.create_evaluation_detail_id == model.create_evaluation_detail_id select i.weight).Sum(); var current_item_weight = (from i in _repository.Context.eva_evaluation_achievement - where i.id==id + where i.id == id select i.weight).Sum(); if (current_sum - current_item_weight + model.weight > 100) @@ -185,61 +193,69 @@ namespace TodoAPI2.Models existingEntity.weight = model.weight; if (!string.IsNullOrEmpty(model.thefile)) { - if (model.thefile.StartsWith("Uploads")) - { - var thefileFileName = FileUtil.MoveTempUploadFileToActualPath( + if (model.thefile.StartsWith("Uploads")) + { + var thefileFileName = FileUtil.MoveTempUploadFileToActualPath( model.thefile, FilePathConstant.DirType.FilesTestUpload, existingEntity.id, existingEntity.thefile); - existingEntity.thefile = thefileFileName; - } - else - { - existingEntity.thefile = model.thefile; - } + existingEntity.thefile = thefileFileName; + } + else + { + existingEntity.thefile = model.thefile; + } } - else - { - existingEntity.thefile = null; - } - + else + { + existingEntity.thefile = null; + } + existingEntity.target_score1 = model.target_score1; + existingEntity.target_score2 = model.target_score2; + existingEntity.target_score3 = model.target_score3; + existingEntity.target_score4 = model.target_score4; + existingEntity.target_score5 = model.target_score5; var updated = _repository.Update(id, existingEntity); return Get(updated.id); } else - throw new NotificationException("No data to update"); + throw new NotificationException("No data to update"); } - public string UpdateMultiple(List model) + public string UpdateMultiple(List model) { - foreach(var i in model) + foreach (var i in model) { if (i.active_mode == "1" && i.id.HasValue) // update - { + { var existingEntity = _repository.Get(i.id.Value); if (existingEntity != null) { - existingEntity.create_evaluation_detail_id = i.create_evaluation_detail_id; - existingEntity.achievement = i.achievement; - existingEntity.weight = i.weight; - if (!string.IsNullOrEmpty(i.thefile)) - { - if (i.thefile.StartsWith("Uploads")) - { - var thefileFileName = FileUtil.MoveTempUploadFileToActualPath( - i.thefile, FilePathConstant.DirType.FilesTestUpload, existingEntity.id, existingEntity.thefile); - existingEntity.thefile = thefileFileName; - } - else - { - existingEntity.thefile = i.thefile; - } - } - else - { - existingEntity.thefile = null; - } - + existingEntity.create_evaluation_detail_id = i.create_evaluation_detail_id; + existingEntity.achievement = i.achievement; + existingEntity.weight = i.weight; + if (!string.IsNullOrEmpty(i.thefile)) + { + if (i.thefile.StartsWith("Uploads")) + { + var thefileFileName = FileUtil.MoveTempUploadFileToActualPath( + i.thefile, FilePathConstant.DirType.FilesTestUpload, existingEntity.id, existingEntity.thefile); + existingEntity.thefile = thefileFileName; + } + else + { + existingEntity.thefile = i.thefile; + } + } + else + { + existingEntity.thefile = null; + } + existingEntity.target_score1 = i.target_score1; + existingEntity.target_score2 = i.target_score2; + existingEntity.target_score3 = i.target_score3; + existingEntity.target_score4 = i.target_score4; + existingEntity.target_score5 = i.target_score5; _repository.UpdateWithoutCommit(i.id.Value, existingEntity); @@ -252,15 +268,15 @@ namespace TodoAPI2.Models _repository.InsertWithoutCommit(entity); } else if (i.active_mode == "0" && i.id.HasValue) // remove - { + { _repository.DeleteWithoutCommit(i.id.Value); } else if (i.active_mode == "0" && !i.id.HasValue) { // nothing to do - } + } } - _repository.Context.SaveChanges(); + _repository.Context.SaveChanges(); return model.Count().ToString(); } @@ -291,4 +307,6 @@ namespace TodoAPI2.Models #endregion } -} \ No newline at end of file +} + + diff --git a/Models/eva_evaluation_achievement/eva_evaluation_achievementViewModel.cs b/Models/eva_evaluation_achievement/eva_evaluation_achievementViewModel.cs index cf667eb..404f124 100644 --- a/Models/eva_evaluation_achievement/eva_evaluation_achievementViewModel.cs +++ b/Models/eva_evaluation_achievement/eva_evaluation_achievementViewModel.cs @@ -30,9 +30,19 @@ namespace TodoAPI2.Models return (string.IsNullOrEmpty(thefile) ? "" : $"{thefile}"); } - } + } + public string target_score1 { get; set; } + + public string target_score2 { get; set; } + + public string target_score3 { get; set; } + + public string target_score4 { get; set; } + + public string target_score5 { get; set; } public int? create_evaluation_detail_id_eva_create_evaluation_detail_create_evaluation_id { get; set; } } -} \ No newline at end of file +} + diff --git a/Models/eva_evaluation_behavior/eva_evaluation_behaviorService.cs b/Models/eva_evaluation_behavior/eva_evaluation_behaviorService.cs index f7f4d94..5f38c3b 100644 --- a/Models/eva_evaluation_behavior/eva_evaluation_behaviorService.cs +++ b/Models/eva_evaluation_behavior/eva_evaluation_behaviorService.cs @@ -141,6 +141,7 @@ namespace TodoAPI2.Models entity.id = GetNewPrimaryKey(); var current_sum = (from i in _repository.Context.eva_evaluation_behavior + where i.create_evaluation_detail_id == model.create_evaluation_detail_id select i.weight).Sum(); if (current_sum + model.weight > 100) @@ -156,6 +157,7 @@ namespace TodoAPI2.Models public eva_evaluation_behaviorViewModel Update(int id, eva_evaluation_behaviorInputModel model) { var current_sum = (from i in _repository.Context.eva_evaluation_behavior + where i.create_evaluation_detail_id == model.create_evaluation_detail_id select i.weight).Sum(); var current_item_weight = (from i in _repository.Context.eva_evaluation_behavior diff --git a/Models/eva_level_score_basic/Ieva_level_score_basicService.cs b/Models/eva_level_score_basic/Ieva_level_score_basicService.cs new file mode 100644 index 0000000..9e2a334 --- /dev/null +++ b/Models/eva_level_score_basic/Ieva_level_score_basicService.cs @@ -0,0 +1,28 @@ +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 Ieva_level_score_basicService : IBaseService + { + new eva_level_score_basicViewModel Insert(eva_level_score_basicInputModel model); + new eva_level_score_basicViewModel Update(Guid id, eva_level_score_basicInputModel model); + List GetListBycode(string code); + List GetListBySearch(eva_level_score_basicSearchModel model); + + string UpdateMultiple(List model); + eva_level_score_basicWithSelectionViewModel GetWithSelection(Guid id); + eva_level_score_basicWithSelectionViewModel GetBlankItem(); + + + + } +} + diff --git a/Models/eva_level_score_basic/eva_level_score_basicInputModel.cs b/Models/eva_level_score_basic/eva_level_score_basicInputModel.cs new file mode 100644 index 0000000..d53b6ec --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicInputModel.cs @@ -0,0 +1,30 @@ +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 eva_level_score_basicInputModel + { + + public Guid? id { get; set; } + + public string code { get; set; } + + public string detail { get; set; } + + public decimal? max_score { get; set; } + + public decimal? min_score { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_level_score_basic/eva_level_score_basicReportRequestModel.cs b/Models/eva_level_score_basic/eva_level_score_basicReportRequestModel.cs new file mode 100644 index 0000000..e9c55d4 --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicReportRequestModel.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 eva_level_score_basicReportRequestModel : eva_level_score_basicSearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_level_score_basic/eva_level_score_basicSearchModel.cs b/Models/eva_level_score_basic/eva_level_score_basicSearchModel.cs new file mode 100644 index 0000000..02372e5 --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicSearchModel.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 eva_level_score_basicSearchModel + { + + public Guid id { get; set; } + + public string code { get; set; } + + } +} + diff --git a/Models/eva_level_score_basic/eva_level_score_basicService.cs b/Models/eva_level_score_basic/eva_level_score_basicService.cs new file mode 100644 index 0000000..8a49069 --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicService.cs @@ -0,0 +1,213 @@ +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 eva_level_score_basicService : Ieva_level_score_basicService + { + private IBaseRepository _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + + public eva_level_score_basicService(IBaseRepository repository, IMyDatabase mydb, Iexternal_linkageService inext) + { + _repository = repository; + db = mydb; + ext = inext; + } + + #region Private Functions + private eva_level_scoreEntity GetEntity(eva_level_score_basicInputModel model) + { + return Mapper.Map(model); + } + private List GetEntityList(List models) + { + return Mapper.Map>(models); + } + private eva_level_score_basicViewModel GetDto(eva_level_scoreEntity entity) + { + return Mapper.Map(entity); + } + private List GetDtoList(List entities) + { + return Mapper.Map>(entities); + } + + #endregion + + #region Public Functions + #region Query Functions + + public eva_level_score_basicViewModel Get(Guid id) + { + var entity = _repository.Get(id); + + return GetDto(entity); + } + public eva_level_score_basicWithSelectionViewModel GetWithSelection(Guid id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + + + return i; + } + public eva_level_score_basicWithSelectionViewModel GetBlankItem() + { + var i = new eva_level_score_basicWithSelectionViewModel(); + + + return i; + } + + public List GetListBycode(string code) + { + var model = new eva_level_score_basicSearchModel(); + model.code = code; + return GetListBySearch(model); + } + + public List GetListBySearch(eva_level_score_basicSearchModel model) + { + var data = ( + from m_eva_level_score_basic in _repository.Context.eva_level_score + + + where 1==1 + //&& (m_eva_level_score_basic.id == model.id || !model.id.HasValue) + && (m_eva_level_score_basic.code == model.code || string.IsNullOrEmpty(model.code)) + + + orderby m_eva_level_score_basic.created descending + select new eva_level_score_basicViewModel() + { + id = m_eva_level_score_basic.id, + code = m_eva_level_score_basic.code, + detail = m_eva_level_score_basic.detail, + max_score = m_eva_level_score_basic.max_score, + min_score = m_eva_level_score_basic.min_score, + + + isActive = m_eva_level_score_basic.isActive, + Created = m_eva_level_score_basic.created, + Updated = m_eva_level_score_basic.updated + } + ).Take(100).ToList(); + + return data; + } + + #endregion + + #region Manipulation Functions + + public eva_level_score_basicViewModel Insert(eva_level_score_basicInputModel model) + { + var entity = GetEntity(model); + entity.id = Guid.NewGuid(); + + + + var inserted = _repository.Insert(entity); + + return Get(inserted.id); + } + + public eva_level_score_basicViewModel Update(Guid id, eva_level_score_basicInputModel model) + { + var existingEntity = _repository.Get(id); + if (existingEntity != null) + { + existingEntity.code = model.code; + existingEntity.detail = model.detail; + existingEntity.max_score = model.max_score; + existingEntity.min_score = model.min_score; + + + var updated = _repository.Update(id, existingEntity); + return Get(updated.id); + } + else + throw new NotificationException("No data to update"); + } + + public string UpdateMultiple(List model) + { + foreach(var i in model) + { + if (i.active_mode == "1" && i.id.HasValue) // update + { + var existingEntity = _repository.Get(i.id.Value); + if (existingEntity != null) + { + existingEntity.code = i.code; + existingEntity.detail = i.detail; + existingEntity.max_score = i.max_score; + existingEntity.min_score = i.min_score; + + + _repository.UpdateWithoutCommit(i.id.Value, existingEntity); + } + } + else if (i.active_mode == "1" && !i.id.HasValue) // add + { + var entity = GetEntity(i); + entity.id = Guid.NewGuid(); + _repository.InsertWithoutCommit(entity); + } + else if (i.active_mode == "0" && i.id.HasValue) // remove + { + _repository.DeleteWithoutCommit(i.id.Value); + } + else if (i.active_mode == "0" && !i.id.HasValue) + { + // nothing to do + } + } + _repository.Context.SaveChanges(); + + return model.Count().ToString(); + } + + public eva_level_score_basicViewModel SetAsActive(Guid id) + { + var updated = _repository.SetAsActive(id); + + return Get(updated.id); + } + public eva_level_score_basicViewModel SetAsInactive(Guid id) + { + var updated = _repository.SetAsInActive(id); + + return Get(updated.id); + } + public void Delete(Guid id) + { + _repository.Delete(id); + + return; + } + #endregion + + #region Match Item + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/Models/eva_level_score_basic/eva_level_score_basicViewModel.cs b/Models/eva_level_score_basic/eva_level_score_basicViewModel.cs new file mode 100644 index 0000000..d090269 --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicViewModel.cs @@ -0,0 +1,27 @@ +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 eva_level_score_basicViewModel : BaseViewModel2 + { + + public string code { get; set; } + + public string detail { get; set; } + + public decimal? max_score { get; set; } + + public decimal? min_score { get; set; } + + + } +} \ No newline at end of file diff --git a/Models/eva_level_score_basic/eva_level_score_basicWithSelectionViewModel.cs b/Models/eva_level_score_basic/eva_level_score_basicWithSelectionViewModel.cs new file mode 100644 index 0000000..03a19de --- /dev/null +++ b/Models/eva_level_score_basic/eva_level_score_basicWithSelectionViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class eva_level_score_basicWithSelectionViewModel: eva_level_score_basicViewModel + { + + } +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs index 4e1cc97..9643872 100644 --- a/Startup.cs +++ b/Startup.cs @@ -268,6 +268,12 @@ namespace Test01 services.AddScoped(); + services.AddScoped(); + + services.AddScoped(); + + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -459,6 +465,17 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); }); #endregion diff --git a/ViewControllers/eva_level_score_basicViewControllers.cs b/ViewControllers/eva_level_score_basicViewControllers.cs new file mode 100644 index 0000000..11929b4 --- /dev/null +++ b/ViewControllers/eva_level_score_basicViewControllers.cs @@ -0,0 +1,49 @@ +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 eva_level_score_basicViewController : Controller + { + private ILogger _logger; + private Ieva_level_score_basicService _repository; + private IConfiguration Configuration { get; set; } + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_level_score_basicViewController(ILogger logger, Ieva_level_score_basicService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + public IActionResult eva_level_score_basic() + { + 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/eva_create_evaluationView/eva_create_evaluation.cshtml b/Views/eva_create_evaluationView/eva_create_evaluation.cshtml index 47d07b0..13cb989 100644 --- a/Views/eva_create_evaluationView/eva_create_evaluation.cshtml +++ b/Views/eva_create_evaluationView/eva_create_evaluation.cshtml @@ -34,15 +34,28 @@ + +
+
+ + +
+ +
+ + +
+
+
- +
- +
diff --git a/Views/eva_create_evaluationView/eva_create_evaluation_d.cshtml b/Views/eva_create_evaluationView/eva_create_evaluation_d.cshtml index 682d20d..80c330d 100644 --- a/Views/eva_create_evaluationView/eva_create_evaluation_d.cshtml +++ b/Views/eva_create_evaluationView/eva_create_evaluation_d.cshtml @@ -91,8 +91,6 @@
- -
@@ -109,19 +107,31 @@
+ +
+
+ + +
+ +
+ + +
+
+
- +
- +
-
diff --git a/Views/eva_create_evaluation_detail_agreementView/eva_create_evaluation_detail_agreement_d.cshtml b/Views/eva_create_evaluation_detail_agreementView/eva_create_evaluation_detail_agreement_d.cshtml index 1049447..e7fb0f6 100644 --- a/Views/eva_create_evaluation_detail_agreementView/eva_create_evaluation_detail_agreement_d.cshtml +++ b/Views/eva_create_evaluation_detail_agreementView/eva_create_evaluation_detail_agreement_d.cshtml @@ -84,8 +84,33 @@ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+ +
+ + +
+
@@ -208,6 +233,11 @@ เครื่องมือ + + + + + @@ -219,17 +249,6 @@
พฤติกรรมการปฏิบัติงาน
-
-
- - - -
- -
- -
-
diff --git a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml index 48de5d5..43b1aea 100644 --- a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml +++ b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml @@ -297,9 +297,6 @@
ความเห็นผู้ประเมินสูงสุด
-
- กรุณากรอกข้อมูลลงในแบบฟอร์ม -
@@ -350,6 +347,99 @@
+
+ +
+
ความเห็น ผู้บังคับบัญชาการเหนือขึ้นไปอีกชั้นหนึ่ง
+ +
+
+ +
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+ +
+
+
+ +
+ +
+
ความเห็น ผู้บังคับบัญชาการเหนือขึ้นไปอีกชั้นหนึ่ง (สูงสุด)
+
+
+ +
+
+ + + + +
+
+ + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+ +
+
+ +
+ + + @section FooterPlaceHolder{ @@ -357,6 +447,8 @@ + + } diff --git a/Views/eva_create_evaluation_detail_review03View/eva_create_evaluation_detail_review03_d.cshtml b/Views/eva_create_evaluation_detail_review03View/eva_create_evaluation_detail_review03_d.cshtml new file mode 100644 index 0000000..014605d --- /dev/null +++ b/Views/eva_create_evaluation_detail_review03View/eva_create_evaluation_detail_review03_d.cshtml @@ -0,0 +1,99 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "eva_create_evaluation_detail_review03"; + Layout = "_LayoutDirect"; +} + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
บันทึกข้อมูล eva_create_evaluation_detail_review03
+ +
+
+ กรุณากรอกข้อมูลลงในแบบฟอร์ม +
+
+ +
+
+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+ + +
+
+ +
+ +@section FooterPlaceHolder{ + + +} + diff --git a/Views/eva_create_evaluation_detail_review04View/eva_create_evaluation_detail_review04_d.cshtml b/Views/eva_create_evaluation_detail_review04View/eva_create_evaluation_detail_review04_d.cshtml new file mode 100644 index 0000000..a796e5d --- /dev/null +++ b/Views/eva_create_evaluation_detail_review04View/eva_create_evaluation_detail_review04_d.cshtml @@ -0,0 +1,99 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "eva_create_evaluation_detail_review04"; + Layout = "_LayoutDirect"; +} + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
บันทึกข้อมูล eva_create_evaluation_detail_review04
+ +
+
+ กรุณากรอกข้อมูลลงในแบบฟอร์ม +
+
+ +
+
+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+ + +
+
+ +
+ +@section FooterPlaceHolder{ + + +} + diff --git a/Views/eva_level_scoreView/eva_level_score.cshtml b/Views/eva_level_scoreView/eva_level_score.cshtml index a0c0f8c..7e1159e 100644 --- a/Views/eva_level_scoreView/eva_level_score.cshtml +++ b/Views/eva_level_scoreView/eva_level_score.cshtml @@ -31,18 +31,15 @@
-
- - -
-
+
+ + +
- - @@ -64,13 +61,13 @@
-
กำหนดระดับผลการประเมิน
+
กำหนดร้อยละที่ได้เลื่อน
@@ -81,7 +78,7 @@
- +
@@ -93,9 +90,8 @@
- - + diff --git a/Views/eva_level_scoreView/eva_level_score_d.cshtml b/Views/eva_level_scoreView/eva_level_score_d.cshtml index 442e42b..07d66d5 100644 --- a/Views/eva_level_scoreView/eva_level_score_d.cshtml +++ b/Views/eva_level_scoreView/eva_level_score_d.cshtml @@ -71,18 +71,15 @@
-
กำหนดระดับผลการประเมิน
+
กำหนดร้อยละที่ได้เลื่อน
-
- กรุณากรอกข้อมูลลงในแบบฟอร์ม -
@@ -93,45 +90,35 @@
- +
- +
- - + +
- - + +
- -
-
-
- - -
-
-

-
กำหนดร้อยละที่ได้เลื่อน
diff --git a/Views/eva_level_score_basicView/eva_level_score_basic.cshtml b/Views/eva_level_score_basicView/eva_level_score_basic.cshtml new file mode 100644 index 0000000..07da8ce --- /dev/null +++ b/Views/eva_level_score_basicView/eva_level_score_basic.cshtml @@ -0,0 +1,113 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "eva_level_score_basic"; +} + + + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
ค้นหา ระดับการประเมิน
+
+
+ +
+ + +
+ +
+ + +
+ +
+
+ +
เครื่องมือ
+ + + + + + + + + + +
เครื่องมือ
+
+ +@section FooterPlaceHolder{ + + +} + diff --git a/Views/home/index.cshtml b/Views/home/index.cshtml index cfbafd6..db61f1d 100644 --- a/Views/home/index.cshtml +++ b/Views/home/index.cshtml @@ -31,7 +31,10 @@
  • ·กำหนดแผนการประเมินเพื่อปรับเลื่อนเงินเดือน
    +
    • ·กำหนดกลุ่มการประเมิน
      diff --git a/tb320eva.xml b/tb320eva.xml index 82f03e0..9ada29a 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -1228,6 +1228,220 @@ If the model is invalid Error Occurred + + + Default constructure for dependency injection + + + + + + + + Get specific item by id + + + + Return Get specific item by id + Returns the item + Error Occurred + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Get list items by create_evaluation_id + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Get list items by search + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Create new item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update item + + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Delete item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update multiple item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Default constructure for dependency injection + + + + + + + + Get specific item by id + + + + Return Get specific item by id + Returns the item + Error Occurred + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Get list items by create_evaluation_id + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Get list items by search + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Create new item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update item + + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Delete item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update multiple item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + Default constructure for dependency injection @@ -2525,6 +2739,113 @@ If the model is invalid Error Occurred + + + Default constructure for dependency injection + + + + + + + + Get specific item by id + + + + Return Get specific item by id + Returns the item + Error Occurred + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Get list items by code + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Get list items by search + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Create new item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update item + + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Delete item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + Update multiple item + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + Default constructure for dependency injection @@ -3363,6 +3684,14 @@ + + + Default constructure for dependency injection + + + + + Default constructure for dependency injection diff --git a/wwwroot/js/eva_create_evaluation/eva_create_evaluation.js b/wwwroot/js/eva_create_evaluation/eva_create_evaluation.js index 8ac03ca..ba7feee 100644 --- a/wwwroot/js/eva_create_evaluation/eva_create_evaluation.js +++ b/wwwroot/js/eva_create_evaluation/eva_create_evaluation.js @@ -26,6 +26,8 @@ DropDownClearFormAndFeedWithData($("#eva_create_evaluation_employee_id"), data, $("#eva_create_evaluation_score1").val(data.score1); $("#eva_create_evaluation_score2").val(data.score2); DropDownClearFormAndFeedWithData($("#eva_create_evaluation_evaluation_group_id"), data, "id", "thegroup", "item_evaluation_group_id", data.evaluation_group_id); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_supervisor1_id"), data, "id", "fullname", "item_supervisor1_id", data.supervisor1_id); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_supervisor2_id"), data, "id", "fullname", "item_supervisor2_id", data.supervisor2_id); } @@ -37,7 +39,8 @@ eva_create_evaluationObject.employee_id = $("#eva_create_evaluation_employee_id" eva_create_evaluationObject.score1 = $("#eva_create_evaluation_score1").val(); eva_create_evaluationObject.score2 = $("#eva_create_evaluation_score2").val(); eva_create_evaluationObject.evaluation_group_id = $("#eva_create_evaluation_evaluation_group_id").val(); - +eva_create_evaluationObject.supervisor1_id = $("#eva_create_evaluation_supervisor1_id").val(); +eva_create_evaluationObject.supervisor2_id = $("#eva_create_evaluation_supervisor2_id").val(); return eva_create_evaluationObject; } @@ -214,7 +217,18 @@ function eva_create_evaluation_GetSelect(f) { -//================= Multi-Selection Function ========================================= - +//================= Control Function ========================================= +function Oneva_create_evaluation_score1Change() +{ + var s1 = $("#eva_create_evaluation_score1").val(); + var s2 = $("#eva_create_evaluation_score2").val(); + $("#eva_create_evaluation_score2").val(100 - s1); +} +function Oneva_create_evaluation_score2Change() +{ + var s1 = $("#eva_create_evaluation_score1").val(); + var s2 = $("#eva_create_evaluation_score2").val(); + $("#eva_create_evaluation_score1").val(100 - s2); +} \ No newline at end of file diff --git a/wwwroot/js/eva_create_evaluation/eva_create_evaluation_d.js b/wwwroot/js/eva_create_evaluation/eva_create_evaluation_d.js index d35413f..70af89c 100644 --- a/wwwroot/js/eva_create_evaluation/eva_create_evaluation_d.js +++ b/wwwroot/js/eva_create_evaluation/eva_create_evaluation_d.js @@ -10,6 +10,8 @@ DropDownClearFormAndFeedWithData($("#eva_create_evaluation_employee_id"), data, $("#eva_create_evaluation_score1").val(data.score1); $("#eva_create_evaluation_score2").val(data.score2); DropDownClearFormAndFeedWithData($("#eva_create_evaluation_evaluation_group_id"), data, "id", "thegroup", "item_evaluation_group_id", data.evaluation_group_id); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_supervisor1_id"), data, "id", "fullname", "item_supervisor1_id", data.supervisor1_id); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_supervisor2_id"), data, "id", "fullname", "item_supervisor2_id", data.supervisor2_id); } @@ -21,7 +23,8 @@ eva_create_evaluationObject.employee_id = $("#eva_create_evaluation_employee_id" eva_create_evaluationObject.score1 = $("#eva_create_evaluation_score1").val(); eva_create_evaluationObject.score2 = $("#eva_create_evaluation_score2").val(); eva_create_evaluationObject.evaluation_group_id = $("#eva_create_evaluation_evaluation_group_id").val(); - +eva_create_evaluationObject.supervisor1_id = $("#eva_create_evaluation_supervisor1_id").val(); +eva_create_evaluationObject.supervisor2_id = $("#eva_create_evaluation_supervisor2_id").val(); return eva_create_evaluationObject; } @@ -101,6 +104,19 @@ function eva_create_evaluation_GoDelete(a) { -//================= Multi-Selection Function ========================================= +//================= Control Function ========================================= +function Oneva_create_evaluation_score1Change() +{ + var s1 = $("#eva_create_evaluation_score1").val(); + var s2 = $("#eva_create_evaluation_score2").val(); + $("#eva_create_evaluation_score2").val(100 - s1); +} + +function Oneva_create_evaluation_score2Change() +{ + var s1 = $("#eva_create_evaluation_score1").val(); + var s2 = $("#eva_create_evaluation_score2").val(); + $("#eva_create_evaluation_score1").val(100 - s2); +} diff --git a/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js b/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js new file mode 100644 index 0000000..56e0386 --- /dev/null +++ b/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js @@ -0,0 +1,106 @@ +var eva_create_evaluation_detail_review03_editMode = "CREATE"; +var eva_create_evaluation_detail_review03_API = "/api/eva_create_evaluation_detail_review03/"; + +//================= Form Data Customizaiton ========================================= + +function eva_create_evaluation_detail_review03_FeedDataToForm(data) { +$("#eva_create_evaluation_detail_review03_id").val(data.id); +$("#eva_create_evaluation_detail_review03_create_evaluation_id").val(data.create_evaluation_id); +$("#eva_create_evaluation_detail_review03_supervisor1A").val(data.supervisor1A); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review03_supervisor1A_result"), data, "id", "external_name", "item_supervisor1A_result", data.supervisor1A_result); +$("#eva_create_evaluation_detail_review03_supervisor1A_remark").val(data.supervisor1A_remark); +$("#eva_create_evaluation_detail_review03_supervisor1A_date").val(formatDate(data.supervisor1A_date)); + +} + +function eva_create_evaluation_detail_review03_GetFromForm() { + var eva_create_evaluation_detail_review03Object = new Object(); +eva_create_evaluation_detail_review03Object.id = $("#eva_create_evaluation_detail_review03_id").val(); +eva_create_evaluation_detail_review03Object.create_evaluation_id = $("#eva_create_evaluation_detail_review03_create_evaluation_id").val(); +eva_create_evaluation_detail_review03Object.supervisor1A = $("#eva_create_evaluation_detail_review03_supervisor1A").val(); +eva_create_evaluation_detail_review03Object.supervisor1A_result = $("#eva_create_evaluation_detail_review03_supervisor1A_result").val(); +eva_create_evaluation_detail_review03Object.supervisor1A_remark = $("#eva_create_evaluation_detail_review03_supervisor1A_remark").val(); +eva_create_evaluation_detail_review03Object.supervisor1A_date = getDate($("#eva_create_evaluation_detail_review03_supervisor1A_date").val()); + + + return eva_create_evaluation_detail_review03Object; +} + +function eva_create_evaluation_detail_review03_InitialForm() { + var successFunc = function (result) { + eva_create_evaluation_detail_review03_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review03_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function eva_create_evaluation_detail_review03_SetEditForm(a) { + var successFunc = function (result) { + eva_create_evaluation_detail_review03_editMode = "UPDATE"; + eva_create_evaluation_detail_review03_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review03_API + a, successFunc, AlertDanger); +} + +function eva_create_evaluation_detail_review03_SetCreateForm() { + eva_create_evaluation_detail_review03_editMode = "CREATE"; + eva_create_evaluation_detail_review03_InitialForm(); +} + +//================= Update and Delete ========================================= + +var eva_create_evaluation_detail_review03_customValidation = function (group) { + return ""; +}; + +function eva_create_evaluation_detail_review03_PutUpdate() { + if (!ValidateForm('eva_create_evaluation_detail_review03', eva_create_evaluation_detail_review03_customValidation)) + { + return; + } + var data = eva_create_evaluation_detail_review03_GetFromForm(); + + //Update Mode + if (eva_create_evaluation_detail_review03_editMode === "UPDATE") { + var successFunc1 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + eva_create_evaluation_detail_review03_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + eva_create_evaluation_detail_review03_API, data, successFunc2, AlertDanger); + } +} + +function eva_create_evaluation_detail_review03_GoDelete(a) { + if (confirm('คุณต้องการลบ ' + a + ' ใช่หรือไม่?')) { + var successFunc = function (result) { + AlertSuccess(result.code+" "+result.message); + eva_create_evaluation_detail_review03_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + eva_create_evaluation_detail_review03_API + a, null, successFunc, AlertDanger); + } +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + diff --git a/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js b/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js new file mode 100644 index 0000000..d3ff2c5 --- /dev/null +++ b/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js @@ -0,0 +1,106 @@ +var eva_create_evaluation_detail_review04_editMode = "CREATE"; +var eva_create_evaluation_detail_review04_API = "/api/eva_create_evaluation_detail_review04/"; + +//================= Form Data Customizaiton ========================================= + +function eva_create_evaluation_detail_review04_FeedDataToForm(data) { +$("#eva_create_evaluation_detail_review04_id").val(data.id); +$("#eva_create_evaluation_detail_review04_create_evaluation_id").val(data.create_evaluation_id); +$("#eva_create_evaluation_detail_review04_supervisor2A").val(data.supervisor2A); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review04_supervisor2A_result"), data, "id", "external_name", "item_supervisor2A_result", data.supervisor2A_result); +$("#eva_create_evaluation_detail_review04_supervisor2A_remark").val(data.supervisor2A_remark); +$("#eva_create_evaluation_detail_review04_supervisor2A_date").val(formatDate(data.supervisor2A_date)); + +} + +function eva_create_evaluation_detail_review04_GetFromForm() { + var eva_create_evaluation_detail_review04Object = new Object(); +eva_create_evaluation_detail_review04Object.id = $("#eva_create_evaluation_detail_review04_id").val(); +eva_create_evaluation_detail_review04Object.create_evaluation_id = $("#eva_create_evaluation_detail_review04_create_evaluation_id").val(); +eva_create_evaluation_detail_review04Object.supervisor2A = $("#eva_create_evaluation_detail_review04_supervisor2A").val(); +eva_create_evaluation_detail_review04Object.supervisor2A_result = $("#eva_create_evaluation_detail_review04_supervisor2A_result").val(); +eva_create_evaluation_detail_review04Object.supervisor2A_remark = $("#eva_create_evaluation_detail_review04_supervisor2A_remark").val(); +eva_create_evaluation_detail_review04Object.supervisor2A_date = getDate($("#eva_create_evaluation_detail_review04_supervisor2A_date").val()); + + + return eva_create_evaluation_detail_review04Object; +} + +function eva_create_evaluation_detail_review04_InitialForm() { + var successFunc = function (result) { + eva_create_evaluation_detail_review04_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review04_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function eva_create_evaluation_detail_review04_SetEditForm(a) { + var successFunc = function (result) { + eva_create_evaluation_detail_review04_editMode = "UPDATE"; + eva_create_evaluation_detail_review04_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review04_API + a, successFunc, AlertDanger); +} + +function eva_create_evaluation_detail_review04_SetCreateForm() { + eva_create_evaluation_detail_review04_editMode = "CREATE"; + eva_create_evaluation_detail_review04_InitialForm(); +} + +//================= Update and Delete ========================================= + +var eva_create_evaluation_detail_review04_customValidation = function (group) { + return ""; +}; + +function eva_create_evaluation_detail_review04_PutUpdate() { + if (!ValidateForm('eva_create_evaluation_detail_review04', eva_create_evaluation_detail_review04_customValidation)) + { + return; + } + var data = eva_create_evaluation_detail_review04_GetFromForm(); + + //Update Mode + if (eva_create_evaluation_detail_review04_editMode === "UPDATE") { + var successFunc1 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + eva_create_evaluation_detail_review04_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + eva_create_evaluation_detail_review04_API, data, successFunc2, AlertDanger); + } +} + +function eva_create_evaluation_detail_review04_GoDelete(a) { + if (confirm('คุณต้องการลบ ' + a + ' ใช่หรือไม่?')) { + var successFunc = function (result) { + AlertSuccess(result.code+" "+result.message); + eva_create_evaluation_detail_review04_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + eva_create_evaluation_detail_review04_API + a, null, successFunc, AlertDanger); + } +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + diff --git a/wwwroot/js/eva_evaluation_achievement/eva_evaluation_achievement.js b/wwwroot/js/eva_evaluation_achievement/eva_evaluation_achievement.js index 28eda35..2b6a0f8 100644 --- a/wwwroot/js/eva_evaluation_achievement/eva_evaluation_achievement.js +++ b/wwwroot/js/eva_evaluation_achievement/eva_evaluation_achievement.js @@ -23,7 +23,11 @@ $("#eva_evaluation_achievement_create_evaluation_detail_id").val(data.create_eva $("#eva_evaluation_achievement_achievement").val(data.achievement); $("#eva_evaluation_achievement_weight").val(data.weight); feedFileToControl(data.thefile, data.thefileDisplay, "eva_evaluation_achievement_thefile", "file"); - +$("#eva_evaluation_achievement_target_score1").val(data.target_score1); +$("#eva_evaluation_achievement_target_score2").val(data.target_score2); +$("#eva_evaluation_achievement_target_score3").val(data.target_score3); +$("#eva_evaluation_achievement_target_score4").val(data.target_score4); +$("#eva_evaluation_achievement_target_score5").val(data.target_score5); } function eva_evaluation_achievement_GetFromForm() { @@ -37,7 +41,11 @@ if ($("#eva_evaluation_achievement_thefile_hidURL").val() !== null) { }else { eva_evaluation_achievementObject.thefile = ""; } - +eva_evaluation_achievementObject.target_score1 = $("#eva_evaluation_achievement_target_score1").val(); +eva_evaluation_achievementObject.target_score2 = $("#eva_evaluation_achievement_target_score2").val(); +eva_evaluation_achievementObject.target_score3 = $("#eva_evaluation_achievement_target_score3").val(); +eva_evaluation_achievementObject.target_score4 = $("#eva_evaluation_achievement_target_score4").val(); +eva_evaluation_achievementObject.target_score5 = $("#eva_evaluation_achievement_target_score5").val(); return eva_evaluation_achievementObject; } @@ -164,6 +172,11 @@ var eva_evaluation_achievement_setupTable = function (result) { { "data": "id" }, { "data": "achievement" }, { "data": "weight" }, + { "data": "target_score1" }, + { "data": "target_score2" }, + { "data": "target_score3" }, + { "data": "target_score4" }, + { "data": "target_score5" }, { "data": "txt_thefile" }, ], "columnDefs": [ diff --git a/wwwroot/js/eva_level_score/eva_level_score.js b/wwwroot/js/eva_level_score/eva_level_score.js index 9f2bd3f..d65a009 100644 --- a/wwwroot/js/eva_level_score/eva_level_score.js +++ b/wwwroot/js/eva_level_score/eva_level_score.js @@ -160,8 +160,9 @@ var eva_level_score_setupTable = function (result) { { "data": "id" }, { "data": "code" }, { "data": "detail" }, +{ "data": "min_score" }, { "data": "max_score" }, - { "data": "min_score" }, + ], "columnDefs": [ { diff --git a/wwwroot/js/eva_level_score_basic/eva_level_score_basic.js b/wwwroot/js/eva_level_score_basic/eva_level_score_basic.js new file mode 100644 index 0000000..f9811f2 --- /dev/null +++ b/wwwroot/js/eva_level_score_basic/eva_level_score_basic.js @@ -0,0 +1,216 @@ +var eva_level_score_basic_editMode = "CREATE"; +var eva_level_score_basic_API = "/api/eva_level_score_basic/"; + +//================= Search Customizaiton ========================================= + +function eva_level_score_basic_GetSearchParameter() { + var eva_level_score_basicSearchObject = new Object(); +eva_level_score_basicSearchObject.code = $("#s_eva_level_score_basic_code").val(); + + return eva_level_score_basicSearchObject; +} + +function eva_level_score_basic_FeedDataToSearchForm(data) { +$("#s_eva_level_score_basic_code").val(data.code); + +} + +//================= Form Data Customizaiton ========================================= + +function eva_level_score_basic_FeedDataToForm(data) { +$("#eva_level_score_basic_id").val(data.id); +$("#eva_level_score_basic_code").val(data.code); +$("#eva_level_score_basic_detail").val(data.detail); +$("#eva_level_score_basic_max_score").val(data.max_score); +$("#eva_level_score_basic_min_score").val(data.min_score); + +} + +function eva_level_score_basic_GetFromForm() { + var eva_level_score_basicObject = new Object(); +eva_level_score_basicObject.id = $("#eva_level_score_basic_id").val(); +eva_level_score_basicObject.code = $("#eva_level_score_basic_code").val(); +eva_level_score_basicObject.detail = $("#eva_level_score_basic_detail").val(); +eva_level_score_basicObject.max_score = $("#eva_level_score_basic_max_score").val(); +eva_level_score_basicObject.min_score = $("#eva_level_score_basic_min_score").val(); + + + return eva_level_score_basicObject; +} + +function eva_level_score_basic_InitialForm(s) { + var successFunc = function (result) { + eva_level_score_basic_FeedDataToForm(result); + eva_level_score_basic_FeedDataToSearchForm(result); + if (s) { + // Incase model popup + $("#eva_level_score_basicModel").modal("show"); + } + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_level_score_basic_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function eva_level_score_basic_GoCreate() { + // Incase model popup + eva_level_score_basic_SetCreateForm(true); + + // Incase open new page + //window_open(appsite + "/eva_level_score_basicView/eva_level_score_basic_d"); +} + +function eva_level_score_basic_GoEdit(a) { + // Incase model popup + eva_level_score_basic_SetEditForm(a); + + // Incase open new page + //window_open(appsite + "/eva_level_score_basicView/eva_level_score_basic_d?id=" + a); +} + +function eva_level_score_basic_SetEditForm(a) { + var successFunc = function (result) { + eva_level_score_basic_editMode = "UPDATE"; + eva_level_score_basic_FeedDataToForm(result); + $("#eva_level_score_basicModel").modal("show"); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_level_score_basic_API + a, successFunc, AlertDanger); +} + +function eva_level_score_basic_SetCreateForm(s) { + eva_level_score_basic_editMode = "CREATE"; + eva_level_score_basic_InitialForm(s); +} + +function eva_level_score_basic_RefreshTable() { + // Incase model popup + eva_level_score_basic_DoSearch(); + + // Incase open new page + //window.parent.eva_level_score_basic_DoSearch(); +} + +//================= Update and Delete ========================================= + +var eva_level_score_basic_customValidation = function (group) { + return ""; +}; + +function eva_level_score_basic_PutUpdate() { + if (!ValidateForm('eva_level_score_basic', eva_level_score_basic_customValidation)) + { + return; + } + + var data = eva_level_score_basic_GetFromForm(); + + //Update Mode + if (eva_level_score_basic_editMode === "UPDATE") { + var successFunc1 = function (result) { + $("#eva_level_score_basicModel").modal("hide"); + AlertSuccess(result.code+" "+result.message); + eva_level_score_basic_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + eva_level_score_basic_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + $("#eva_level_score_basicModel").modal("hide"); + AlertSuccess(result.code+" "+result.message); + eva_level_score_basic_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + eva_level_score_basic_API, data, successFunc2, AlertDanger); + } +} + +function eva_level_score_basic_GoDelete(a) { + if (confirm('คุณต้องการลบข้อมูล ใช่หรือไม่?')) { + var successFunc = function (result) { + $("#eva_level_score_basicModel").modal("hide"); + AlertSuccess(result.code+" "+result.message); + eva_level_score_basic_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + eva_level_score_basic_API + a, null, successFunc, AlertDanger); + } +} + +//================= Data Table ========================================= + +var eva_level_score_basicTableV; + +var eva_level_score_basic_setupTable = function (result) { + tmp = '"'; + eva_level_score_basicTableV = $('#eva_level_score_basicTable').DataTable({ + "processing": true, + "serverSide": false, + "data": result, + "select": false, + "columns": [ + { "data": "id" }, + { "data": "code" }, + { "data": "detail" }, +{ "data": "min_score" }, + { "data": "max_score" }, + + ], + "columnDefs": [ + { + "targets": 0, + "data": "id", + "render": function (data, type, row, meta) { + return " "; + } + }], + "language": { + "url": appsite + "/DataTables-1.10.16/thai.json" + }, + "paging": true, + "searching": false + }); + endLoad(); +}; + +function eva_level_score_basic_InitiateDataTable() { + startLoad(); + var p = $.param(eva_level_score_basic_GetSearchParameter()); + AjaxGetRequest(apisite + "/api/eva_level_score_basic/GetListBySearch?"+p, eva_level_score_basic_setupTable, AlertDanger); +} + +function eva_level_score_basic_DoSearch() { + var p = $.param(eva_level_score_basic_GetSearchParameter()); + var eva_level_score_basic_reload = function (result) { + eva_level_score_basicTableV.destroy(); + eva_level_score_basic_setupTable(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/eva_level_score_basic/GetListBySearch?"+p, eva_level_score_basic_reload, AlertDanger); +} + +function eva_level_score_basic_GetSelect(f) { + var eva_level_score_basic_selectitem = []; + $.each(eva_level_score_basicTableV.rows('.selected').data(), function (key, value) { + eva_level_score_basic_selectitem.push(value[f]); + }); + alert(eva_level_score_basic_selectitem); +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + +