From 7b525b97845489d2d9e4cca435039b5508ae8265 Mon Sep 17 00:00:00 2001 From: Nakorn Rientrakrunchai Date: Fri, 12 Feb 2021 12:23:41 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=E0=B8=AB=E0=B8=99=E0=B9=89=E0=B8=B2=E0=B8=88=E0=B8=AD=E0=B8=9A?= =?UTF-8?q?=E0=B8=B1=E0=B8=99=E0=B8=97=E0=B8=B6=E0=B8=81=E0=B8=9C=E0=B8=A5?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=95=E0=B8=A3=E0=B8=A7=E0=B8=88?= =?UTF-8?q?=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=95=E0=B8=81=E0=B8=A5=E0=B8=87?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B9=80?= =?UTF-8?q?=E0=B8=A1=E0=B8=B4=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e_evaluation_detail_review0AControllers.cs | 403 +++++++++ ...eva_create_evaluation_detail_review0A.xlsx | Bin 0 -> 10386 bytes .../25640212050657_Addchief_a.Designer.cs | 774 ++++++++++++++++++ Migrations/25640212050657_Addchief_a.cs | 52 ++ Migrations/DataContextModelSnapshot.cs | 10 + .../eva_create_evaluation_detailEntity.cs | 10 + ...reate_evaluation_detail_review0AService.cs | 32 + ...te_evaluation_detail_review0AInputModel.cs | 32 + ...ation_detail_review0AReportRequestModel.cs | 21 + ...e_evaluation_detail_review0ASearchModel.cs | 23 + ...reate_evaluation_detail_review0AService.cs | 316 +++++++ ...ate_evaluation_detail_review0AViewModel.cs | 32 + ...n_detail_review0AWithSelectionViewModel.cs | 13 + .../Iexternal_linkageService.cs | 1 + .../external_linkageService.cs | 18 + Startup.cs | 6 + ...create_evaluation_detail_firstdoc_d.cshtml | 53 +- ...create_evaluation_detail_review0A_d.cshtml | 88 ++ tb320eva.csproj | 2 + tb320eva.xml | 118 +++ ...eva_create_evaluation_detail_review0A_d.js | 106 +++ 21 files changed, 2109 insertions(+), 1 deletion(-) create mode 100644 ApiControllers/eva_create_evaluation_detail_review0AControllers.cs create mode 100644 EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review0A.xlsx create mode 100644 Migrations/25640212050657_Addchief_a.Designer.cs create mode 100644 Migrations/25640212050657_Addchief_a.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/Ieva_create_evaluation_detail_review0AService.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AInputModel.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AReportRequestModel.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0ASearchModel.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AService.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AViewModel.cs create mode 100644 Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AWithSelectionViewModel.cs create mode 100644 Views/eva_create_evaluation_detail_review0AView/eva_create_evaluation_detail_review0A_d.cshtml create mode 100644 wwwroot/js/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0A_d.js diff --git a/ApiControllers/eva_create_evaluation_detail_review0AControllers.cs b/ApiControllers/eva_create_evaluation_detail_review0AControllers.cs new file mode 100644 index 0000000..fba4c3c --- /dev/null +++ b/ApiControllers/eva_create_evaluation_detail_review0AControllers.cs @@ -0,0 +1,403 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using TTSW.Controllers; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.Data; +using Microsoft.Extensions.Configuration; +using System.IO; +using System.Net; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/eva_create_evaluation_detail_review0A")] + public class eva_create_evaluation_detail_review0AController : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_create_evaluation_detail_review0AService _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_create_evaluation_detail_review0AController(ILogger logger, Ieva_create_evaluation_detail_review0AService 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_review0AWithSelectionViewModel), 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, $"{ex.Message}"); + } + } + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(eva_create_evaluation_detail_review0AWithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetBlankItem() + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetBlankItem(); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetBlankItem.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// 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, $"{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_review0ASearchModel 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, $"{ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("eva_create_evaluation_detail_review0A_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult eva_create_evaluation_detail_review0A_report(eva_create_evaluation_detail_review0AReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var httpclient = new WebClient(); + string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL"); + string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite"); + string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username"); + string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password"); + + string url = $"{mainurl}{reportsite}/xxใส่ชื่อรายงานตรงนี้xx.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}"; + + if (model.filetype == "xlsx") + { + url += "&ignorePagination=true"; + } + + var data = httpclient.DownloadData(url); + var stream = new MemoryStream(data); + + return File(stream, model.contentType); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while GetReport.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// 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_review0AInputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Insert(model, true); + 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, $"{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_review0AInputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.Update(id, model, true); + 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, $"{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, $"{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, true); + 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, $"{ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// Refresh AutoField of all items + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPut("RefreshAutoField")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult RefreshAutoField() + { + if (ModelState.IsValid) + { + try + { + //if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + _repository.RefreshAutoFieldOfAllData(); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = $"ปรับปรุง Auto Field ของทุก record เรียบร้อย"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while RefreshAutoField.", ex); + return StatusCode(500, $"มีปัญหาระหว่างการปรับปรุง Auto Field. {ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + + + } +} diff --git a/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review0A.xlsx b/EXCEL/eva_create_evaluation_detail@eva_create_evaluation_detail_review0A.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d5a0feb4fef90740349e640f2a18cef22290826a GIT binary patch literal 10386 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 literal 0 HcmV?d00001 diff --git a/Migrations/25640212050657_Addchief_a.Designer.cs b/Migrations/25640212050657_Addchief_a.Designer.cs new file mode 100644 index 0000000..178e88d --- /dev/null +++ b/Migrations/25640212050657_Addchief_a.Designer.cs @@ -0,0 +1,774 @@ +// +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("25640212050657_Addchief_a")] + partial class Addchief_a + { + 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(4000); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("fiscal_year"); + + b.Property("imported_date"); + + b.Property("imported_file") + .HasMaxLength(1000); + + 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("report_type") + .HasMaxLength(1000); + + 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("level_this_time") + .HasMaxLength(1000); + + b.Property("middle"); + + b.Property("migration_eva_result") + .HasMaxLength(1000); + + b.Property("migration_total_score"); + + b.Property("new_cost_living"); + + b.Property("new_sarary"); + + b.Property("new_sarary_with_quota"); + + b.Property("order_at_this_time"); + + b.Property("org_at_this_time"); + + b.Property("other_money_at_this_time"); + + b.Property("position_allowance_at_this_time"); + + b.Property("position_this_time") + .HasMaxLength(1000); + + 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_competency_supervisor1A"); + + b.Property("Final_summary_competency_supervisor2A"); + + b.Property("Final_summary_supervisor"); + + b.Property("Final_summary_supervisor1A"); + + b.Property("Final_summary_supervisor2A"); + + b.Property("achievement_chief"); + + b.Property("achievement_supervisor"); + + b.Property("achievement_supervisor1A"); + + b.Property("achievement_supervisor2A"); + + b.Property("chief"); + + b.Property("chief_a"); + + b.Property("chief_a_date"); + + b.Property("chief_a_remark") + .HasMaxLength(1000); + + b.Property("chief_a_result") + .HasMaxLength(1); + + b.Property("competency_chief"); + + b.Property("competency_supervisor"); + + b.Property("competency_supervisor1A"); + + b.Property("competency_supervisor2A"); + + 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("level_score_supervisor1A") + .HasMaxLength(255); + + b.Property("level_score_supervisor2A") + .HasMaxLength(255); + + b.Property("score_chief"); + + b.Property("score_supervisor"); + + b.Property("score_supervisor1A"); + + b.Property("score_supervisor2A"); + + b.Property("status_chief") + .HasMaxLength(1); + + b.Property("status_chief_a") + .HasMaxLength(1); + + b.Property("status_chief_a_click_date"); + + b.Property("status_chief_click_date"); + + b.Property("status_self") + .HasMaxLength(1); + + b.Property("status_self_a") + .HasMaxLength(1); + + b.Property("status_self_a_click_date"); + + b.Property("status_self_click_date"); + + b.Property("status_supervisor") + .HasMaxLength(1); + + b.Property("status_supervisor1A") + .HasMaxLength(1); + + b.Property("status_supervisor1A_click_date"); + + b.Property("status_supervisor2A") + .HasMaxLength(1); + + b.Property("status_supervisor2A_click_date"); + + b.Property("status_supervisor_click_date"); + + 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_competency_supervisor1A"); + + b.Property("total_summary_competency_supervisor2A"); + + b.Property("total_summary_supervisor"); + + b.Property("total_summary_supervisor1A"); + + b.Property("total_summary_supervisor2A"); + + 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("score3"); + + b.Property("score4"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("sumary3"); + + b.Property("sumary4"); + + 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("score3"); + + b.Property("score4"); + + b.Property("sumary"); + + b.Property("sumary2"); + + b.Property("sumary3"); + + b.Property("sumary4"); + + 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_evaluation_operating_agreementEntity", b => + { + b.Property("id"); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("indicators") + .HasMaxLength(4000); + + b.Property("isActive"); + + b.Property("mission_detail") + .HasMaxLength(4000); + + b.Property("mission_no"); + + b.Property("target") + .HasMaxLength(4000); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_detail_id"); + + b.ToTable("eva_evaluation_operating_agreement"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_idp_planEntity", b => + { + b.Property("id"); + + b.Property("create_evaluation_detail_id"); + + b.Property("created"); + + b.Property("develop") + .HasMaxLength(1000); + + b.Property("development_method") + .HasMaxLength(1000); + + b.Property("end_date"); + + b.Property("isActive"); + + b.Property("period_text") + .HasMaxLength(1000); + + b.Property("start_date"); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_idp_plan"); + }); + + 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_evaluation_operating_agreementEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail_create_evaluation_detail_id") + .WithMany() + .HasForeignKey("create_evaluation_detail_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/25640212050657_Addchief_a.cs b/Migrations/25640212050657_Addchief_a.cs new file mode 100644 index 0000000..7960158 --- /dev/null +++ b/Migrations/25640212050657_Addchief_a.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace tb320eva.Migrations +{ + public partial class Addchief_a : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "chief_a", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "chief_a_date", + table: "eva_create_evaluation_detail", + nullable: true); + + migrationBuilder.AddColumn( + name: "chief_a_remark", + table: "eva_create_evaluation_detail", + maxLength: 1000, + nullable: true); + + migrationBuilder.AddColumn( + name: "chief_a_result", + table: "eva_create_evaluation_detail", + maxLength: 1, + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "chief_a", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "chief_a_date", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "chief_a_remark", + table: "eva_create_evaluation_detail"); + + migrationBuilder.DropColumn( + name: "chief_a_result", + table: "eva_create_evaluation_detail"); + } + } +} diff --git a/Migrations/DataContextModelSnapshot.cs b/Migrations/DataContextModelSnapshot.cs index 09958bd..5ef6e4c 100644 --- a/Migrations/DataContextModelSnapshot.cs +++ b/Migrations/DataContextModelSnapshot.cs @@ -195,6 +195,16 @@ namespace tb320eva.Migrations b.Property("chief"); + b.Property("chief_a"); + + b.Property("chief_a_date"); + + b.Property("chief_a_remark") + .HasMaxLength(1000); + + b.Property("chief_a_result") + .HasMaxLength(1); + b.Property("competency_chief"); b.Property("competency_supervisor"); 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 86cb0c1..434cff7 100644 --- a/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs +++ b/Models/eva_create_evaluation_detail/eva_create_evaluation_detailEntity.cs @@ -164,6 +164,16 @@ namespace TodoAPI2.Models [MaxLength(255)] public string level_score_supervisor2A { get; set; } + + public int? chief_a { get; set; } + + [MaxLength(1)] + public string chief_a_result { get; set; } + + [MaxLength(1000)] + public string chief_a_remark { get; set; } + + public DateTime? chief_a_date { get; set; } } } diff --git a/Models/eva_create_evaluation_detail_review0A/Ieva_create_evaluation_detail_review0AService.cs b/Models/eva_create_evaluation_detail_review0A/Ieva_create_evaluation_detail_review0AService.cs new file mode 100644 index 0000000..a305464 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/Ieva_create_evaluation_detail_review0AService.cs @@ -0,0 +1,32 @@ +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_review0AService : IBaseService2 + { + new eva_create_evaluation_detail_review0AViewModel Insert(eva_create_evaluation_detail_review0AInputModel model, bool is_force_save); + new eva_create_evaluation_detail_review0AViewModel Update(int id, eva_create_evaluation_detail_review0AInputModel model, bool is_force_save); + List GetListBycreate_evaluation_id(int? create_evaluation_id); + List GetListBySearch(eva_create_evaluation_detail_review0ASearchModel model); + + string UpdateMultiple(List model, bool is_force_save); + eva_create_evaluation_detail_review0AWithSelectionViewModel GetWithSelection(int id); + eva_create_evaluation_detail_review0AWithSelectionViewModel GetBlankItem(); + + void RefreshAutoFieldOfAllData(); + eva_create_evaluation_detailEntity GetEntity(int id); + DataContext GetContext(); + + + + } +} + diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AInputModel.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AInputModel.cs new file mode 100644 index 0000000..492abc3 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AInputModel.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_review0AInputModel + { + + public int? id { get; set; } + + public int? create_evaluation_id { get; set; } + + public int? chief_a { get; set; } + + public string chief_a_result { get; set; } + + public string chief_a_remark { get; set; } + + public DateTime? chief_a_date { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AReportRequestModel.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AReportRequestModel.cs new file mode 100644 index 0000000..e7cd608 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AReportRequestModel.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_review0AReportRequestModel : eva_create_evaluation_detail_review0ASearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0ASearchModel.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0ASearchModel.cs new file mode 100644 index 0000000..9006a8e --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0ASearchModel.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_review0ASearchModel + { + + public int id { get; set; } + + public int? create_evaluation_id { get; set; } + + } +} + diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AService.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AService.cs new file mode 100644 index 0000000..f7d421a --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AService.cs @@ -0,0 +1,316 @@ +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_review0AService : Ieva_create_evaluation_detail_review0AService + { + private IBaseRepository2 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + + public eva_create_evaluation_detail_review0AService(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_review0AInputModel model) + { + return Mapper.Map(model); + } + private List GetEntityList(List models) + { + return Mapper.Map>(models); + } + private eva_create_evaluation_detail_review0AViewModel 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_review0AViewModel Get(int id) + { + var entity = _repository.Get(id); + + return GetDto(entity); + } + + public eva_create_evaluation_detailEntity GetEntity(int id) + { + var entity = _repository.Get(id); + + return entity; + } + + public DataContext GetContext() + { + return _repository.Context; + } + + public eva_create_evaluation_detail_review0AWithSelectionViewModel GetWithSelection(int id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + i.item_chief_a_result = (from x in ext.GetAgreeDisagree2() select x).ToList(); + + + return i; + } + public eva_create_evaluation_detail_review0AWithSelectionViewModel GetBlankItem() + { + var i = new eva_create_evaluation_detail_review0AWithSelectionViewModel(); + i.item_chief_a_result = (from x in ext.GetAgreeDisagree2() select x).ToList(); + + + return i; + } + + public List GetListBycreate_evaluation_id(int? create_evaluation_id) + { + var model = new eva_create_evaluation_detail_review0ASearchModel(); + model.create_evaluation_id = create_evaluation_id; + return GetListBySearch(model); + } + + public List GetListBySearch(eva_create_evaluation_detail_review0ASearchModel model) + { + var data = ( + from m_eva_create_evaluation_detail_review0A in _repository.Context.eva_create_evaluation_detail + + join fk_external_linkage3 in ext.GetAgreeDisagree2() on m_eva_create_evaluation_detail_review0A.chief_a_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_review01.id == model.id || !model.id.HasValue) + && (m_eva_create_evaluation_detail_review0A.create_evaluation_id == model.create_evaluation_id || !model.create_evaluation_id.HasValue) + + + orderby m_eva_create_evaluation_detail_review0A.created descending + select new eva_create_evaluation_detail_review0AViewModel() + { + id = m_eva_create_evaluation_detail_review0A.id, + create_evaluation_id = m_eva_create_evaluation_detail_review0A.create_evaluation_id, + chief_a = m_eva_create_evaluation_detail_review0A.chief_a, + chief_a_result = m_eva_create_evaluation_detail_review0A.chief_a_result, + chief_a_remark = m_eva_create_evaluation_detail_review0A.chief_a_remark, + chief_a_date = m_eva_create_evaluation_detail_review0A.chief_a_date, + + chief_a_result_external_linkage_external_name = fk_external_linkageResult3.external_name, + + isActive = m_eva_create_evaluation_detail_review0A.isActive, + Created = m_eva_create_evaluation_detail_review0A.created, + Updated = m_eva_create_evaluation_detail_review0A.updated + } + ).Take(1000).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_review0AViewModel Insert(eva_create_evaluation_detail_review0AInputModel model, bool is_force_save) + { + var entity = GetEntity(model); + entity.id = GetNewPrimaryKey(); + + + //entity.SetAutoField(_repository.Context); + + if (is_force_save) + { + var inserted = _repository.Insert(entity); + //entity.DoAfterInsertUpdate(_repository.Context); + return Get(inserted.id); + } + else + { + _repository.InsertWithoutCommit(entity); + //entity.DoAfterInsertUpdate(_repository.Context); + return Mapper.Map(entity); + } + } + + public eva_create_evaluation_detail_review0AViewModel Update(int id, eva_create_evaluation_detail_review0AInputModel model, bool is_force_save) + { + var existingEntity = _repository.Get(id); + if (existingEntity != null) + { + var current_detail = (from k in _repository.Context.eva_create_evaluation_detail + where k.id == model.id + select k).FirstOrDefault(); + + if (current_detail.status_chief_a == "Y") + { + throw new Exception("ผู้ประเมิน อนุมัติข้อตกลงไปแล้ว บันทึกไม่ได้"); + } + + existingEntity.create_evaluation_id = model.create_evaluation_id; + existingEntity.chief_a = model.chief_a; + existingEntity.chief_a_result = model.chief_a_result; + existingEntity.chief_a_remark = model.chief_a_remark; + existingEntity.chief_a_date = model.chief_a_date; + + //existingEntity.SetAutoField(_repository.Context); + + if (is_force_save) + { + var updated = _repository.Update(id, existingEntity); + //existingEntity.DoAfterInsertUpdate(_repository.Context); + return Get(updated.id); + } + else + { + _repository.UpdateWithoutCommit(id, existingEntity); + //existingEntity.DoAfterInsertUpdate(_repository.Context); + return Mapper.Map(existingEntity); + } + } + else + throw new NotificationException("No data to update"); + } + + public string UpdateMultiple(List model, bool is_force_save) + { + 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.chief_a = i.chief_a; + existingEntity.chief_a_result = i.chief_a_result; + existingEntity.chief_a_remark = i.chief_a_remark; + existingEntity.chief_a_date = i.chief_a_date; + + //existingEntity.SetAutoField(_repository.Context); + _repository.UpdateWithoutCommit(i.id.Value, existingEntity); + } + } + else if (i.active_mode == "1" && !i.id.HasValue) // add + { + var entity = GetEntity(i); + entity.id = GetNewPrimaryKey(); + //entity.SetAutoField(_repository.Context); + _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 + } + } + if (is_force_save) + { + _repository.Context.SaveChanges(); + } + + return model.Count().ToString(); + } + + public eva_create_evaluation_detail_review0AViewModel SetAsActive(int id) + { + var updated = _repository.SetAsActive(id); + + return Get(updated.id); + } + public eva_create_evaluation_detail_review0AViewModel SetAsInactive(int id) + { + var updated = _repository.SetAsInActive(id); + + return Get(updated.id); + } + public void Delete(int id) + { + _repository.Delete(id); + + return; + } + + public void RefreshAutoFieldOfAllData() + { + var all_items = from i in _repository.Context.eva_create_evaluation_detail + select i; + foreach (var item in all_items) + { + //item.SetAutoField(_repository.Context); + } + _repository.Context.SaveChanges(); + } + + private Dictionary GetLookupForLog() + { + var i = new Dictionary(); + + + i.Add("create_evaluation_id", "แบบประเมิน"); + i.Add("chief_a", "ผู้ประเมิน"); + i.Add("chief_a_result", "ผลการประเมิน"); + i.Add("chief_a_result_external_linkage_external_name", "ผลการประเมิน"); + i.Add("chief_a_remark", "ความเห็นผู้ประเมินสูงสุด"); + i.Add("chief_a_date", "วันที่ประเมิน"); + i.Add("txt_chief_a_date", "วันที่ประเมิน"); + + return i; + } + + #endregion + + #region Match Item + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AViewModel.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AViewModel.cs new file mode 100644 index 0000000..3f3ff64 --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AViewModel.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_review0AViewModel : BaseViewModel2 + { + + public int? create_evaluation_id { get; set; } + + public int? chief_a { get; set; } + + public string chief_a_result { get; set; } + + public string chief_a_remark { get; set; } + + public DateTime? chief_a_date { get; set; } + + public string txt_chief_a_date { get { return MyHelper.GetDateStringForReport(this.chief_a_date); } } + + public string chief_a_result_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AWithSelectionViewModel.cs b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AWithSelectionViewModel.cs new file mode 100644 index 0000000..77acc0f --- /dev/null +++ b/Models/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0AWithSelectionViewModel.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_review0AWithSelectionViewModel: eva_create_evaluation_detail_review0AViewModel + { + public List item_chief_a_result { get; set; } + + } +} \ No newline at end of file diff --git a/Models/external_linkage/Iexternal_linkageService.cs b/Models/external_linkage/Iexternal_linkageService.cs index 115953c..e4b10f8 100644 --- a/Models/external_linkage/Iexternal_linkageService.cs +++ b/Models/external_linkage/Iexternal_linkageService.cs @@ -23,6 +23,7 @@ namespace TodoAPI2.Models List Getevaluation_status(); List Getevaluation_accept(); List GetAgreeDisagree(); + List GetAgreeDisagree2(); List GetDepartmentData(); List GetDepartmentDataForReport(); List GetPositionForReport(); diff --git a/Models/external_linkage/external_linkageService.cs b/Models/external_linkage/external_linkageService.cs index d6a8a89..fab603b 100644 --- a/Models/external_linkage/external_linkageService.cs +++ b/Models/external_linkage/external_linkageService.cs @@ -266,6 +266,24 @@ namespace TodoAPI2.Models return result; } + public List GetAgreeDisagree2() + { + var result = new List(); + var i = new external_linkageViewModel(); + i.external_id = 1; + i.external_code = "Y"; + i.external_name = "เห็นด้วยกับข้อตกลงการประเมิน"; + result.Add(i); + + var j = new external_linkageViewModel(); + j.external_id = 2; + j.external_code = "N"; + j.external_name = "ไม่เห็นด้วยและมีความเห็นต่าง"; + result.Add(j); + + return result; + } + public List GetDepartmentData() { var sql = string.Format("select * from public.{0}DepartmentData{0} where department_name != '' and deleted_at is null order by department_name; ", '"'.ToString()); diff --git a/Startup.cs b/Startup.cs index 3910ba7..9ad9143 100644 --- a/Startup.cs +++ b/Startup.cs @@ -310,6 +310,8 @@ namespace Test01 services.AddScoped(); + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -565,6 +567,10 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }); #endregion diff --git a/Views/eva_create_evaluation_detail_firstdocView/eva_create_evaluation_detail_firstdoc_d.cshtml b/Views/eva_create_evaluation_detail_firstdocView/eva_create_evaluation_detail_firstdoc_d.cshtml index b596b00..468f617 100644 --- a/Views/eva_create_evaluation_detail_firstdocView/eva_create_evaluation_detail_firstdoc_d.cshtml +++ b/Views/eva_create_evaluation_detail_firstdocView/eva_create_evaluation_detail_firstdoc_d.cshtml @@ -194,6 +194,56 @@
+
+
บันทึกผลการตรวจข้อตกลงการประเมิน
+ +
+
+ +
+
+ + + + + +
+
+
+
+ + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+ + +
+
+ +
+ +
+
ส่งข้อตกลงการประเมิน
@@ -223,6 +273,7 @@ + + +} + diff --git a/tb320eva.csproj b/tb320eva.csproj index dc9a5c1..451424a 100644 --- a/tb320eva.csproj +++ b/tb320eva.csproj @@ -70,12 +70,14 @@ + + diff --git a/tb320eva.xml b/tb320eva.xml index 6caeb32..42def7a 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -1628,6 +1628,124 @@ 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 + + + + Refresh AutoField of all items + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + Default constructure for dependency injection diff --git a/wwwroot/js/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0A_d.js b/wwwroot/js/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0A_d.js new file mode 100644 index 0000000..8e90814 --- /dev/null +++ b/wwwroot/js/eva_create_evaluation_detail_review0A/eva_create_evaluation_detail_review0A_d.js @@ -0,0 +1,106 @@ +var eva_create_evaluation_detail_review0A_editMode = "CREATE"; +var eva_create_evaluation_detail_review0A_API = "/api/eva_create_evaluation_detail_review0A/"; + +//================= Form Data Customizaiton ========================================= + +function eva_create_evaluation_detail_review0A_FeedDataToForm(data) { +$("#eva_create_evaluation_detail_review0A_id").val(data.id); +$("#eva_create_evaluation_detail_review0A_create_evaluation_id").val(data.create_evaluation_id); +$("#eva_create_evaluation_detail_review0A_chief_a").val(data.chief_a); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review0A_chief_a_result"), data, "id", "external_name", "item_chief_a_result", data.chief_a_result); +$("#eva_create_evaluation_detail_review0A_chief_a_remark").val(data.chief_a_remark); +$("#eva_create_evaluation_detail_review0A_chief_a_date").val(formatDate(data.chief_a_date)); + +} + +function eva_create_evaluation_detail_review0A_GetFromForm() { + var eva_create_evaluation_detail_review0AObject = new Object(); +eva_create_evaluation_detail_review0AObject.id = $("#eva_create_evaluation_detail_review0A_id").val(); +eva_create_evaluation_detail_review0AObject.create_evaluation_id = $("#eva_create_evaluation_detail_review0A_create_evaluation_id").val(); +eva_create_evaluation_detail_review0AObject.chief_a = $("#eva_create_evaluation_detail_review0A_chief_a").val(); +eva_create_evaluation_detail_review0AObject.chief_a_result = $("#eva_create_evaluation_detail_review0A_chief_a_result").val(); +eva_create_evaluation_detail_review0AObject.chief_a_remark = $("#eva_create_evaluation_detail_review0A_chief_a_remark").val(); +eva_create_evaluation_detail_review0AObject.chief_a_date = getDate($("#eva_create_evaluation_detail_review0A_chief_a_date").val()); + + + return eva_create_evaluation_detail_review0AObject; +} + +function eva_create_evaluation_detail_review0A_InitialForm() { + var successFunc = function (result) { + eva_create_evaluation_detail_review0A_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review0A_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function eva_create_evaluation_detail_review0A_SetEditForm(a) { + var successFunc = function (result) { + eva_create_evaluation_detail_review0A_editMode = "UPDATE"; + eva_create_evaluation_detail_review0A_FeedDataToForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_create_evaluation_detail_review0A_API + a, successFunc, AlertDanger); +} + +function eva_create_evaluation_detail_review0A_SetCreateForm() { + eva_create_evaluation_detail_review0A_editMode = "CREATE"; + eva_create_evaluation_detail_review0A_InitialForm(); +} + +//================= Update and Delete ========================================= + +var eva_create_evaluation_detail_review0A_customValidation = function (group) { + return ""; +}; + +function eva_create_evaluation_detail_review0A_PutUpdate() { + if (!ValidateForm('eva_create_evaluation_detail_review0A', eva_create_evaluation_detail_review0A_customValidation)) + { + return; + } + var data = eva_create_evaluation_detail_review0A_GetFromForm(); + + //Update Mode + if (eva_create_evaluation_detail_review0A_editMode === "UPDATE") { + var successFunc1 = function (result) { + AlertSuccess(result.code+" "+result.message); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + eva_create_evaluation_detail_review0A_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_review0A_API, data, successFunc2, AlertDanger); + } +} + +function eva_create_evaluation_detail_review0A_GoDelete(a) { + if (confirm('คุณต้องการลบ ' + a + ' ใช่หรือไม่?')) { + var successFunc = function (result) { + AlertSuccess(result.code+" "+result.message); + eva_create_evaluation_detail_review0A_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + eva_create_evaluation_detail_review0A_API + a, null, successFunc, AlertDanger); + } +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + +