diff --git a/ApiControllers/eva_adjust_postponement_update_statusControllers.cs b/ApiControllers/eva_adjust_postponement_update_statusControllers.cs new file mode 100644 index 0000000..45945f4 --- /dev/null +++ b/ApiControllers/eva_adjust_postponement_update_statusControllers.cs @@ -0,0 +1,230 @@ +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_adjust_postponement_update_status")] + public class eva_adjust_postponement_update_statusController : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_adjust_postponement_update_statusService _repository; + private Iexternal_employeeService emp; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_adjust_postponement_update_statusController(ILogger logger, + Ieva_adjust_postponement_update_statusService repository, IConfiguration configuration, + Iexternal_employeeService inemp) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + emp = inemp; + } + + /// + /// Get specific item by id + /// + /// + /// + /// Return Get specific item by id + /// Returns the item + /// Error Occurred + [HttpGet("{id}")] + [ProducesResponseType(typeof(eva_adjust_postponement_update_statusWithSelectionViewModel), 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_adjust_postponement_update_statusWithSelectionViewModel), 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 postponement_status_note + /// + /// + /// + /// 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 postponement_status_note) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBypostponement_status_note(postponement_status_note)); + } + 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_adjust_postponement_update_statusSearchModel 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}"); + } + } + + + /// + /// 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_adjust_postponement_update_statusInputModel model) + { + if (ModelState.IsValid) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + + int? e = null; + + if (!string.IsNullOrEmpty(HttpContext.Request.Cookies["user_id"])) + { + var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]); + var theEmp = emp.GetEmployeeForLogin(Convert.ToInt32(loginid)); + if(theEmp != null) + { + e = theEmp.id; + } + else + { + return Unauthorized(); + } + } + else + { + return Unauthorized(); + } + + var result = _repository.Update(id, model, true, e); + 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); + } + + + } +} diff --git a/EXCEL/eva_adjust_postponement@eva_adjust_postponement_update_status.xlsx b/EXCEL/eva_adjust_postponement@eva_adjust_postponement_update_status.xlsx new file mode 100644 index 0000000..d53111b Binary files /dev/null and b/EXCEL/eva_adjust_postponement@eva_adjust_postponement_update_status.xlsx differ diff --git a/Migrations/20220501044125_AddPostponementStatus.Designer.cs b/Migrations/20220501044125_AddPostponementStatus.Designer.cs new file mode 100644 index 0000000..1eeab30 --- /dev/null +++ b/Migrations/20220501044125_AddPostponementStatus.Designer.cs @@ -0,0 +1,1257 @@ +// +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("20220501044125_AddPostponementStatus")] + partial class AddPostponementStatus + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn) + .HasAnnotation("ProductVersion", "2.2.6-servicing-10079") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + modelBuilder.Entity("TodoAPI2.Models.activity_log_evaEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("causer_id"); + + b.Property("causer_type") + .HasMaxLength(191); + + b.Property("created_at"); + + b.Property("description") + .HasMaxLength(32000); + + b.Property("ip_address") + .HasMaxLength(191); + + b.Property("log_name") + .HasMaxLength(191); + + b.Property("mac_address") + .HasMaxLength(191); + + b.Property("properties") + .HasMaxLength(32000); + + b.Property("subject_id"); + + b.Property("subject_type") + .HasMaxLength(191); + + b.Property("updated_at"); + + b.HasKey("id"); + + b.ToTable("activity_log_eva"); + }); + + 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("postponement_status") + .HasMaxLength(5); + + b.Property("postponement_status_by") + .HasMaxLength(255); + + b.Property("postponement_status_date"); + + b.Property("postponement_status_note") + .HasMaxLength(1000); + + b.Property("quota_status") + .HasMaxLength(5); + + b.Property("quota_status_by") + .HasMaxLength(255); + + b.Property("quota_status_date"); + + b.Property("quota_status_note") + .HasMaxLength(1000); + + 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("achievement_final"); + + b.Property("adjust_postponement_id"); + + b.Property("adjust_postponement_quota_id"); + + b.Property("competency_final"); + + b.Property("cost_living"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("employee_no_at_this_time") + .HasMaxLength(1000); + + b.Property("fullname_at_this_time") + .HasMaxLength(1000); + + b.Property("isActive"); + + b.Property("is_for_postponement"); + + b.Property("level_score_final") + .HasMaxLength(255); + + 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("reward_new"); + + b.Property("reward_new2"); + + b.Property("reward_old"); + + b.Property("sarary"); + + b.Property("score_final"); + + 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("supervisor3_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_competency_supervisor3A"); + + b.Property("Final_summary_supervisor"); + + b.Property("Final_summary_supervisor1A"); + + b.Property("Final_summary_supervisor2A"); + + b.Property("Final_summary_supervisor3A"); + + b.Property("achievement_chief"); + + b.Property("achievement_supervisor"); + + b.Property("achievement_supervisor1A"); + + b.Property("achievement_supervisor2A"); + + b.Property("achievement_supervisor3A"); + + b.Property("chief"); + + b.Property("chief_a"); + + b.Property("chief_a_date"); + + b.Property("chief_a_reject_reason") + .HasMaxLength(1000); + + 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("competency_supervisor3A"); + + b.Property("create_evaluation_id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("eva_employee_id"); + + b.Property("help_org_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("level_score_supervisor3A") + .HasMaxLength(255); + + b.Property("order_of_data"); + + b.Property("remark") + .HasMaxLength(1000); + + b.Property("score_chief"); + + b.Property("score_supervisor"); + + b.Property("score_supervisor1A"); + + b.Property("score_supervisor2A"); + + b.Property("score_supervisor3A"); + + 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_supervisor3A") + .HasMaxLength(1); + + b.Property("status_supervisor3A_click_date"); + + b.Property("status_supervisor_a") + .HasMaxLength(1); + + b.Property("status_supervisor_a_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_id"); + + 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_id"); + + b.Property("supervisor2_remark") + .HasMaxLength(1000); + + b.Property("supervisor2_result") + .HasMaxLength(1); + + b.Property("supervisor3A"); + + b.Property("supervisor3A_date"); + + b.Property("supervisor3A_remark") + .HasMaxLength(1000); + + b.Property("supervisor3A_result") + .HasMaxLength(1); + + b.Property("supervisor3_id"); + + 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_competency_supervisor3A"); + + b.Property("total_summary_supervisor"); + + b.Property("total_summary_supervisor1A"); + + b.Property("total_summary_supervisor2A"); + + b.Property("total_summary_supervisor3A"); + + b.Property("updated"); + + b.Property("work_period"); + + b.HasKey("id"); + + b.HasIndex("create_evaluation_id"); + + b.ToTable("eva_create_evaluation_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluation_detail_historyEntity", b => + { + b.Property("id"); + + b.Property("action_detail") + .HasMaxLength(4000); + + b.Property("action_dt"); + + b.Property("action_emp_id"); + + b.Property("created"); + + b.Property("evaluation_detail_id"); + + b.Property("history_group"); + + b.Property("isActive"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("evaluation_detail_id"); + + b.ToTable("eva_create_evaluation_detail_history"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievementEntity", b => + { + b.Property("id"); + + b.Property("achievement") + .HasMaxLength(16000); + + b.Property("achievement_line1") + .HasMaxLength(16000); + + 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_achievement_attachEntity", b => + { + b.Property("id"); + + b.Property("achievement_id"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("the_file") + .HasMaxLength(1000); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("achievement_id"); + + b.ToTable("eva_evaluation_achievement_attach"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievement_detailEntity", b => + { + b.Property("id"); + + b.Property("achievement_detail") + .HasMaxLength(16000); + + b.Property("achievement_id"); + + b.Property("achievement_order"); + + b.Property("created"); + + b.Property("isActive"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("achievement_id"); + + b.ToTable("eva_evaluation_achievement_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b => + { + b.Property("id"); + + b.Property("behavior") + .HasMaxLength(16000); + + 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("main_dept_id"); + + b.Property("percentage"); + + 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_level_score_detailEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("group_guid"); + + b.Property("isActive"); + + b.Property("level_score_id"); + + b.Property("max_percentage"); + + b.Property("max_value"); + + b.Property("min_percentage"); + + b.Property("min_value"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("group_guid"); + + b.HasIndex("level_score_id"); + + b.ToTable("eva_level_score_detail"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_employeeEntity", b => + { + b.Property("id"); + + b.Property("cost_of_living"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("frame_group_guid"); + + b.Property("help_org_id"); + + b.Property("isActive"); + + b.Property("level_text") + .HasMaxLength(1000); + + b.Property("monthly_remuneration"); + + b.Property("order_of_data"); + + b.Property("org_id"); + + b.Property("position_allowance"); + + b.Property("position_text") + .HasMaxLength(1000); + + b.Property("salary"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("frame_group_guid"); + + b.ToTable("eva_limit_frame_employee"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_groupEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("frame_plan_guid"); + + b.Property("group_guid"); + + b.Property("isActive"); + + b.Property("limit_frame_295"); + + b.Property("main_dept_id"); + + b.Property("remark") + .HasMaxLength(4000); + + b.Property("remark2") + .HasMaxLength(4000); + + b.Property("total_salary"); + + b.Property("total_salary_limit"); + + b.Property("total_salary_limit_rounded"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("frame_plan_guid"); + + b.HasIndex("group_guid"); + + b.ToTable("eva_limit_frame_group"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_planEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("executed_date"); + + b.Property("isActive"); + + b.Property("limit_frame_005"); + + b.Property("limit_frame_005_total"); + + b.Property("limit_frame_005_total_rounded"); + + b.Property("plan_guid"); + + b.Property("salary_adjustment_date"); + + b.Property("status_chief") + .HasMaxLength(1); + + b.Property("status_self") + .HasMaxLength(1); + + b.Property("supervisor1"); + + b.Property("supervisor1_date"); + + b.Property("supervisor1_remark") + .HasMaxLength(1000); + + b.Property("supervisor1_result") + .HasMaxLength(1); + + b.Property("total_salary"); + + b.Property("updated"); + + b.HasKey("id"); + + b.HasIndex("plan_guid"); + + b.ToTable("eva_limit_frame_plan"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_performance_planEntity", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("created"); + + b.Property("end_leave"); + + b.Property("fiscal_year"); + + b.Property("isActive"); + + b.Property("percent"); + + b.Property("remark") + .HasMaxLength(500); + + b.Property("start_leave"); + + 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("monthly_compensation"); + + b.Property("position_allowance"); + + b.Property("position_level"); + + b.Property("position_type"); + + b.Property("salary_max"); + + 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_setup_permissionEntity", b => + { + b.Property("id"); + + b.Property("created"); + + b.Property("employee_id"); + + b.Property("isActive"); + + b.Property("remark") + .HasMaxLength(4000); + + b.Property("updated"); + + b.HasKey("id"); + + b.ToTable("eva_setup_permission"); + }); + + 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_create_evaluation_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluationEntity", "eva_create_evaluation_create_evaluation_id") + .WithMany() + .HasForeignKey("create_evaluation_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_create_evaluation_detail_historyEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail_evaluation_detail_id") + .WithMany() + .HasForeignKey("evaluation_detail_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_achievement_attachEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_achievementEntity", "eva_evaluation_achievement_achievement_id") + .WithMany() + .HasForeignKey("achievement_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievement_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_achievementEntity", "eva_evaluation_achievement") + .WithMany() + .HasForeignKey("achievement_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_level_score_detailEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group_group_guid") + .WithMany() + .HasForeignKey("group_guid"); + + b.HasOne("TodoAPI2.Models.eva_level_scoreEntity", "eva_level_score_level_score_id") + .WithMany() + .HasForeignKey("level_score_id"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_employeeEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_limit_frame_groupEntity", "eva_limit_frame_group_frame_group_guid") + .WithMany() + .HasForeignKey("frame_group_guid"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_groupEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_limit_frame_planEntity", "eva_limit_frame_plan_frame_plan_guid") + .WithMany() + .HasForeignKey("frame_plan_guid"); + + b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group_group_guid") + .WithMany() + .HasForeignKey("group_guid"); + }); + + modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_planEntity", b => + { + b.HasOne("TodoAPI2.Models.eva_performance_planEntity", "eva_performance_plan_plan_guid") + .WithMany() + .HasForeignKey("plan_guid"); + }); + + 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/20220501044125_AddPostponementStatus.cs b/Migrations/20220501044125_AddPostponementStatus.cs new file mode 100644 index 0000000..805c6d5 --- /dev/null +++ b/Migrations/20220501044125_AddPostponementStatus.cs @@ -0,0 +1,92 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace tb320eva.Migrations +{ + public partial class AddPostponementStatus : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "postponement_status", + table: "eva_adjust_postponement", + maxLength: 5, + nullable: true); + + migrationBuilder.AddColumn( + name: "postponement_status_by", + table: "eva_adjust_postponement", + maxLength: 255, + nullable: true); + + migrationBuilder.AddColumn( + name: "postponement_status_date", + table: "eva_adjust_postponement", + nullable: true); + + migrationBuilder.AddColumn( + name: "postponement_status_note", + table: "eva_adjust_postponement", + maxLength: 1000, + nullable: true); + + migrationBuilder.AddColumn( + name: "quota_status", + table: "eva_adjust_postponement", + maxLength: 5, + nullable: true); + + migrationBuilder.AddColumn( + name: "quota_status_by", + table: "eva_adjust_postponement", + maxLength: 255, + nullable: true); + + migrationBuilder.AddColumn( + name: "quota_status_date", + table: "eva_adjust_postponement", + nullable: true); + + migrationBuilder.AddColumn( + name: "quota_status_note", + table: "eva_adjust_postponement", + maxLength: 1000, + nullable: true); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "postponement_status", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "postponement_status_by", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "postponement_status_date", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "postponement_status_note", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "quota_status", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "quota_status_by", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "quota_status_date", + table: "eva_adjust_postponement"); + + migrationBuilder.DropColumn( + name: "quota_status_note", + table: "eva_adjust_postponement"); + } + } +} diff --git a/Migrations/DataContextModelSnapshot.cs b/Migrations/DataContextModelSnapshot.cs index 712c9d2..f275b44 100644 --- a/Migrations/DataContextModelSnapshot.cs +++ b/Migrations/DataContextModelSnapshot.cs @@ -90,6 +90,28 @@ namespace tb320eva.Migrations b.Property("percentage"); + b.Property("postponement_status") + .HasMaxLength(5); + + b.Property("postponement_status_by") + .HasMaxLength(255); + + b.Property("postponement_status_date"); + + b.Property("postponement_status_note") + .HasMaxLength(1000); + + b.Property("quota_status") + .HasMaxLength(5); + + b.Property("quota_status_by") + .HasMaxLength(255); + + b.Property("quota_status_date"); + + b.Property("quota_status_note") + .HasMaxLength(1000); + b.Property("report_type") .HasMaxLength(1000); diff --git a/Models/eva_adjust_postponement/eva_adjust_postponementEntity.cs b/Models/eva_adjust_postponement/eva_adjust_postponementEntity.cs index e14bee5..5c7e296 100644 --- a/Models/eva_adjust_postponement/eva_adjust_postponementEntity.cs +++ b/Models/eva_adjust_postponement/eva_adjust_postponementEntity.cs @@ -58,5 +58,23 @@ namespace TodoAPI2.Models public string report_type { get; set; } public DateTime? imported_date { get; set; } + + [MaxLength(5)] + public string postponement_status { get; set; } + + public DateTime? postponement_status_date { get; set; } + [MaxLength(255)] + public int? postponement_status_by { get; set; } + [MaxLength(1000)] + public string postponement_status_note { get; set; } + + [MaxLength(5)] + public string quota_status { get; set; } + + public DateTime? quota_status_date { get; set; } + [MaxLength(255)] + public int? quota_status_by { get; set; } + [MaxLength(1000)] + public string quota_status_note { get; set; } } } diff --git a/Models/eva_adjust_postponement_update_status/Ieva_adjust_postponement_update_statusService.cs b/Models/eva_adjust_postponement_update_status/Ieva_adjust_postponement_update_statusService.cs new file mode 100644 index 0000000..b05265a --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/Ieva_adjust_postponement_update_statusService.cs @@ -0,0 +1,31 @@ +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_adjust_postponement_update_statusService + { + + new eva_adjust_postponement_update_statusViewModel Update(int id, eva_adjust_postponement_update_statusInputModel model, bool is_force_save, int? updateby); + List GetListBypostponement_status_note(string postponement_status_note); + List GetListBySearch(eva_adjust_postponement_update_statusSearchModel model); + + + eva_adjust_postponement_update_statusWithSelectionViewModel GetWithSelection(int id); + eva_adjust_postponement_update_statusWithSelectionViewModel GetBlankItem(); + + eva_adjust_postponementEntity GetEntity(int id); + DataContext GetContext(); + + + + } +} + diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusInputModel.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusInputModel.cs new file mode 100644 index 0000000..824edf0 --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusInputModel.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_adjust_postponement_update_statusInputModel + { + + public int? id { get; set; } + + public string postponement_status { get; set; } + + public DateTime? postponement_status_date { get; set; } + + public int? postponement_status_by { get; set; } + + public string postponement_status_note { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusReportRequestModel.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusReportRequestModel.cs new file mode 100644 index 0000000..acbc0cd --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusReportRequestModel.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_adjust_postponement_update_statusReportRequestModel : eva_adjust_postponement_update_statusSearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusSearchModel.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusSearchModel.cs new file mode 100644 index 0000000..21f4d42 --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusSearchModel.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_adjust_postponement_update_statusSearchModel + { + + public int id { get; set; } + + public string postponement_status_note { get; set; } + + } +} + diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusService.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusService.cs new file mode 100644 index 0000000..755a82e --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusService.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_adjust_postponement_update_statusService : Ieva_adjust_postponement_update_statusService + { + private IBaseRepository2 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + private Iexternal_employeeService emp; + + public eva_adjust_postponement_update_statusService( + IBaseRepository2 repository, + IMyDatabase mydb, + Iexternal_linkageService inext, + Iexternal_employeeService inemp + ) + { + _repository = repository; + db = mydb; + ext = inext; + emp = inemp; + } + + #region Private Functions + private eva_adjust_postponementEntity GetEntity(eva_adjust_postponement_update_statusInputModel model) + { + return Mapper.Map(model); + } + private List GetEntityList(List models) + { + return Mapper.Map>(models); + } + private eva_adjust_postponement_update_statusViewModel GetDto(eva_adjust_postponementEntity entity) + { + return Mapper.Map(entity); + } + private List GetDtoList(List entities) + { + return Mapper.Map>(entities); + } + + #endregion + + #region Public Functions + #region Query Functions + + public eva_adjust_postponement_update_statusViewModel Get(int id) + { + var entity = _repository.Get(id); + + if (!entity.postponement_status_date.HasValue) entity.postponement_status_date = DateTime.Now; + + return GetDto(entity); + } + + public eva_adjust_postponementEntity GetEntity(int id) + { + var entity = _repository.Get(id); + + if (!entity.postponement_status_date.HasValue) entity.postponement_status_date = DateTime.Now; + + return entity; + } + + public DataContext GetContext() + { + return _repository.Context; + } + + public eva_adjust_postponement_update_statusWithSelectionViewModel GetWithSelection(int id) + { + var entity = _repository.Get(id); + var i = Mapper.Map(entity); + i.item_postponement_status = (from x in ext.GetAgreeDisagree4() select x).ToList(); + i.item_postponement_status_by = (from x in emp.GetAllEmployee() select x).ToList(); + i.postponement_status_date = DateTime.Now; + + return i; + } + public eva_adjust_postponement_update_statusWithSelectionViewModel GetBlankItem() + { + var i = new eva_adjust_postponement_update_statusWithSelectionViewModel(); + i.item_postponement_status = (from x in ext.GetAgreeDisagree4() select x).ToList(); + i.item_postponement_status_by = (from x in emp.GetAllEmployee() select x).ToList(); + i.postponement_status_date = DateTime.Now; + + return i; + } + + public List GetListBypostponement_status_note(string postponement_status_note) + { + var model = new eva_adjust_postponement_update_statusSearchModel(); + model.postponement_status_note = postponement_status_note; + return GetListBySearch(model); + } + + public List GetListBySearch(eva_adjust_postponement_update_statusSearchModel model) + { + var data = ( + from m_eva_adjust_postponement_update_status in _repository.Context.eva_adjust_postponement + + join fk_external_linkage1 in ext.GetAgreeDisagree4() on m_eva_adjust_postponement_update_status.postponement_status equals fk_external_linkage1.external_code + into external_linkageResult1 + from fk_external_linkageResult1 in external_linkageResult1.DefaultIfEmpty() + + join fk_external_linkage3 in ext.GetAgreeDisagree4() on m_eva_adjust_postponement_update_status.postponement_status_by equals fk_external_linkage3.id + into external_linkageResult3 + from fk_external_linkageResult3 in external_linkageResult3.DefaultIfEmpty() + + + where + 1 == 1 + && (string.IsNullOrEmpty(model.postponement_status_note) || m_eva_adjust_postponement_update_status.postponement_status_note.Contains(model.postponement_status_note)) + + + orderby m_eva_adjust_postponement_update_status.created descending + select new eva_adjust_postponement_update_statusViewModel() + { + id = m_eva_adjust_postponement_update_status.id, + postponement_status = m_eva_adjust_postponement_update_status.postponement_status, + postponement_status_date = m_eva_adjust_postponement_update_status.postponement_status_date, + postponement_status_by = m_eva_adjust_postponement_update_status.postponement_status_by, + postponement_status_note = m_eva_adjust_postponement_update_status.postponement_status_note, + + postponement_status_external_linkage_external_name = fk_external_linkageResult1.external_name, + postponement_status_by_external_linkage_external_name = fk_external_linkageResult3.external_name, + + isActive = m_eva_adjust_postponement_update_status.isActive, + Created = m_eva_adjust_postponement_update_status.created, + Updated = m_eva_adjust_postponement_update_status.updated + } + ).Take(1000).ToList(); + + return data; + } + + #endregion + + #region Manipulation Functions + + + public int GetNewPrimaryKey() + { + int? newkey = 0; + + var x = (from i in _repository.Context.eva_adjust_postponement + orderby i.id descending + select i).Take(1).ToList(); + + if(x.Count > 0) + { + newkey = x[0].id + 1; + } + + return newkey.Value; + } + + + public eva_adjust_postponement_update_statusViewModel Update(int id, eva_adjust_postponement_update_statusInputModel model, bool is_force_save, int? updateby) + { + var existingEntity = _repository.Get(id); + if (existingEntity != null) + { + existingEntity.postponement_status = model.postponement_status; + existingEntity.postponement_status_date = DateTime.Now; + existingEntity.postponement_status_by = updateby; + existingEntity.postponement_status_note = model.postponement_status_note; + + var updated = _repository.Update(id, existingEntity); + return Get(updated.id); + } + else + throw new NotificationException("No data to update"); + } + + + + public eva_adjust_postponement_update_statusViewModel SetAsActive(int id) + { + var updated = _repository.SetAsActive(id); + + return Get(updated.id); + } + public eva_adjust_postponement_update_statusViewModel SetAsInactive(int id) + { + var updated = _repository.SetAsInActive(id); + + return Get(updated.id); + } + public void Delete(int id) + { + _repository.Delete(id); + + return; + } + + + + private Dictionary GetLookupForLog() + { + var i = new Dictionary(); + + + i.Add("postponement_status", "สถานะการปรับเลื่อนเงินเดือน"); + i.Add("postponement_status_external_linkage_external_name", "สถานะการปรับเลื่อนเงินเดือน"); + i.Add("postponement_status_date", "วันที่"); + i.Add("txt_postponement_status_date", "วันที่"); + i.Add("postponement_status_by", "ปรับสถานะโดย"); + i.Add("postponement_status_by_external_linkage_external_name", "ปรับสถานะโดย"); + i.Add("postponement_status_note", "หมายเหตุ"); + + return i; + } + + #endregion + + #region Match Item + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusViewModel.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusViewModel.cs new file mode 100644 index 0000000..43159f0 --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusViewModel.cs @@ -0,0 +1,31 @@ +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_adjust_postponement_update_statusViewModel : BaseViewModel2 + { + + public string postponement_status { get; set; } + + public DateTime? postponement_status_date { get; set; } + + public string txt_postponement_status_date { get { return MyHelper.GetDateStringForReport(this.postponement_status_date); } } + + public int? postponement_status_by { get; set; } + + public string postponement_status_note { get; set; } + + public string postponement_status_external_linkage_external_name { get; set; } + public string postponement_status_by_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusWithSelectionViewModel.cs b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusWithSelectionViewModel.cs new file mode 100644 index 0000000..4218ff6 --- /dev/null +++ b/Models/eva_adjust_postponement_update_status/eva_adjust_postponement_update_statusWithSelectionViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class eva_adjust_postponement_update_statusWithSelectionViewModel: eva_adjust_postponement_update_statusViewModel + { + public List item_postponement_status { get; set; } + public List item_postponement_status_by { 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 becb24d..cfc0d80 100644 --- a/Models/external_linkage/Iexternal_linkageService.cs +++ b/Models/external_linkage/Iexternal_linkageService.cs @@ -41,6 +41,7 @@ namespace TodoAPI2.Models string GetMainDept(int? dep_id); List GetSalaryReportType(); + List GetAgreeDisagree4(); } } diff --git a/Models/external_linkage/external_linkageService.cs b/Models/external_linkage/external_linkageService.cs index 911e9a5..bf41c9d 100644 --- a/Models/external_linkage/external_linkageService.cs +++ b/Models/external_linkage/external_linkageService.cs @@ -308,6 +308,31 @@ namespace TodoAPI2.Models return result; } + public List GetAgreeDisagree4() + { + var result = new List(); + + var k = new external_linkageViewModel(); + k.external_id = 1; + k.external_code = ""; + k.external_name = "อยู่ระหว่างพิจารณา"; + result.Add(k); + + var i = new external_linkageViewModel(); + i.external_id = 2; + i.external_code = "Y"; + i.external_name = "อนุมัติและส่งต่อ"; + result.Add(i); + + var j = new external_linkageViewModel(); + j.external_id = 3; + j.external_code = "N"; + j.external_name = "ตีกลับ"; + result.Add(j); + + return result; + } + public List GetDepartmentData() { var sql_parent = string.Format("select" + diff --git a/Startup.cs b/Startup.cs index 52a3ccf..3d0327d 100644 --- a/Startup.cs +++ b/Startup.cs @@ -345,6 +345,8 @@ namespace Test01 services.AddScoped, BaseRepository2>(); services.AddScoped(); + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -655,6 +657,10 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); }); #endregion diff --git a/Views/eva_adjust_postponement_normalView/eva_adjust_postponement_normal_d.cshtml b/Views/eva_adjust_postponement_normalView/eva_adjust_postponement_normal_d.cshtml index cbba8a1..491fdce 100644 --- a/Views/eva_adjust_postponement_normalView/eva_adjust_postponement_normal_d.cshtml +++ b/Views/eva_adjust_postponement_normalView/eva_adjust_postponement_normal_d.cshtml @@ -5,7 +5,55 @@ Layout = "_LayoutDirect"; } +
@@ -104,6 +152,9 @@
+ + +
@@ -169,16 +220,19 @@ @section FooterPlaceHolder{ + } diff --git a/Views/eva_adjust_postponement_update_statusView/eva_adjust_postponement_update_status.cshtml b/Views/eva_adjust_postponement_update_statusView/eva_adjust_postponement_update_status.cshtml new file mode 100644 index 0000000..5896e08 --- /dev/null +++ b/Views/eva_adjust_postponement_update_statusView/eva_adjust_postponement_update_status.cshtml @@ -0,0 +1,120 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "eva_adjust_postponement_update_status"; +} + + + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
ค้นหา eva_adjust_postponement_update_status
+
+
+ +
+ + +
+ +
+ + + +
+ +
+
+ + + + + + + + + + + + + + + +
เครื่องมือ
+
+ +@section FooterPlaceHolder{ + + +} + diff --git a/tb320eva.csproj b/tb320eva.csproj index 371525d..257c363 100644 --- a/tb320eva.csproj +++ b/tb320eva.csproj @@ -67,6 +67,7 @@ + @@ -86,6 +87,7 @@ + diff --git a/tb320eva.xml b/tb320eva.xml index b7f7826..a0f601a 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -896,6 +896,67 @@ Returns the item 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 postponement_status_note + + + + 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 + + + + Update item + + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + Default constructure for dependency injection diff --git a/wwwroot/js/eva_adjust_postponement_update_status/eva_adjust_postponement_update_status.js b/wwwroot/js/eva_adjust_postponement_update_status/eva_adjust_postponement_update_status.js new file mode 100644 index 0000000..78bc4c3 --- /dev/null +++ b/wwwroot/js/eva_adjust_postponement_update_status/eva_adjust_postponement_update_status.js @@ -0,0 +1,226 @@ +var eva_adjust_postponement_update_status_editMode = "CREATE"; +var eva_adjust_postponement_update_status_API = "/api/eva_adjust_postponement_update_status/"; + +//================= Search Customizaiton ========================================= + +function eva_adjust_postponement_update_status_GetSearchParameter() { + var eva_adjust_postponement_update_statusSearchObject = new Object(); + eva_adjust_postponement_update_statusSearchObject.postponement_status_note = $("#s_eva_adjust_postponement_update_status_postponement_status_note").val(); + + return eva_adjust_postponement_update_statusSearchObject; +} + +function eva_adjust_postponement_update_status_FeedDataToSearchForm(data) { + $("#s_eva_adjust_postponement_update_status_postponement_status_note").val(data.postponement_status_note); + +} + +//================= Form Data Customizaiton ========================================= + +function eva_adjust_postponement_update_status_FeedDataToForm(data) { + $("#eva_adjust_postponement_update_status_id").val(data.id); + DropDownClearFormAndFeedWithData($("#eva_adjust_postponement_update_status_postponement_status"), data, "id", "external_name", "item_postponement_status", data.postponement_status); + $("#eva_adjust_postponement_update_status_postponement_status_date").val(formatDate(data.postponement_status_date)); + DropDownClearFormAndFeedWithData($("#eva_adjust_postponement_update_status_postponement_status_by"), data, "id", "external_name", "item_postponement_status_by", data.postponement_status_by); + $("#eva_adjust_postponement_update_status_postponement_status_note").val(data.postponement_status_note); + +} + +function eva_adjust_postponement_update_status_GetFromForm() { + var eva_adjust_postponement_update_statusObject = new Object(); + eva_adjust_postponement_update_statusObject.id = $("#eva_adjust_postponement_update_status_id").val(); + eva_adjust_postponement_update_statusObject.postponement_status = $("#eva_adjust_postponement_update_status_postponement_status").val(); + eva_adjust_postponement_update_statusObject.postponement_status_date = getDate($("#eva_adjust_postponement_update_status_postponement_status_date").val()); + eva_adjust_postponement_update_statusObject.postponement_status_by = $("#eva_adjust_postponement_update_status_postponement_status_by").val(); + eva_adjust_postponement_update_statusObject.postponement_status_note = $("#eva_adjust_postponement_update_status_postponement_status_note").val(); + + + return eva_adjust_postponement_update_statusObject; +} + +function eva_adjust_postponement_update_status_InitialForm(s) { + var successFunc = function (result) { + eva_adjust_postponement_update_status_FeedDataToForm(result); + eva_adjust_postponement_update_status_FeedDataToSearchForm(result); + if (s) { + // Incase model popup + $("#eva_adjust_postponement_update_statusModel").modal("show"); + } + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_adjust_postponement_update_status_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Form Mode Setup and Flow ========================================= + +function eva_adjust_postponement_update_status_GoCreate() { + // Incase model popup + eva_adjust_postponement_update_status_SetCreateForm(true); + + // Incase open new page + //window_open(appsite + "/eva_adjust_postponement_update_statusView/eva_adjust_postponement_update_status_d"); +} + +function eva_adjust_postponement_update_status_GoEdit(a) { + // Incase model popup + eva_adjust_postponement_update_status_SetEditForm(a); + + // Incase open new page + //window_open(appsite + "/eva_adjust_postponement_update_statusView/eva_adjust_postponement_update_status_d?id=" + a); +} + +function eva_adjust_postponement_update_status_SetEditForm(a) { + var successFunc = function (result) { + eva_adjust_postponement_update_status_editMode = "UPDATE"; + eva_adjust_postponement_update_status_FeedDataToForm(result); + $("#eva_adjust_postponement_update_statusModel").modal("show"); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + eva_adjust_postponement_update_status_API + a, successFunc, AlertDanger); +} + +function eva_adjust_postponement_update_status_SetCreateForm(s) { + eva_adjust_postponement_update_status_editMode = "CREATE"; + eva_adjust_postponement_update_status_InitialForm(s); +} + +function eva_adjust_postponement_update_status_RefreshTable() { + // Incase model popup + eva_adjust_postponement_update_status_DoSearch(); + + // Incase open new page + //window.parent.eva_adjust_postponement_update_status_DoSearch(); +} + +//================= Update and Delete ========================================= + +var eva_adjust_postponement_update_status_customValidation = function (group) { + return ""; +}; + +function eva_adjust_postponement_update_status_PutUpdate() { + if (!ValidateForm('eva_adjust_postponement_update_status', eva_adjust_postponement_update_status_customValidation)) { + return; + } + + var data = eva_adjust_postponement_update_status_GetFromForm(); + + //Update Mode + if (eva_adjust_postponement_update_status_editMode === "UPDATE") { + var successFunc1 = function (result) { + $("#eva_adjust_postponement_update_statusModel").modal("hide"); + AlertSuccess(result.code + " " + result.message); + //eva_adjust_postponement_update_status_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPutRequest(apisite + eva_adjust_postponement_update_status_API + data.id, data, successFunc1, AlertDanger); + } + // Create mode + else { + var successFunc2 = function (result) { + $("#eva_adjust_postponement_update_statusModel").modal("hide"); + AlertSuccess(result.code + " " + result.message); + //eva_adjust_postponement_update_status_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxPostRequest(apisite + eva_adjust_postponement_update_status_API, data, successFunc2, AlertDanger); + } +} + +function eva_adjust_postponement_update_status_GoDelete(a) { + if (confirm('คุณต้องการลบข้อมูล ใช่หรือไม่?')) { + var successFunc = function (result) { + $("#eva_adjust_postponement_update_statusModel").modal("hide"); + AlertSuccess(result.code + " " + result.message); + eva_adjust_postponement_update_status_RefreshTable(); + endLoad(); + }; + startLoad(); + AjaxDeleteRequest(apisite + eva_adjust_postponement_update_status_API + a, null, successFunc, AlertDanger); + } +} + +//================= Data Table ========================================= + +var eva_adjust_postponement_update_statusTableV; + +var eva_adjust_postponement_update_status_setupTable = function (result) { + tmp = '"'; + eva_adjust_postponement_update_statusTableV = $('#eva_adjust_postponement_update_statusTable').DataTable({ + "processing": true, + "serverSide": false, + "data": result, + //"select": { + // "style": 'multi' + //}, + "columns": [ + //{ "data": "" }, + { "data": "id" }, + { "data": "id" }, + { "data": "postponement_status_external_linkage_external_name" }, + { "data": "txt_postponement_status_date" }, + { "data": "postponement_status_by_external_linkage_external_name" }, + { "data": "postponement_status_note" }, + ], + "columnDefs": [ + { + "targets": 0, //1, + "data": "id", + "render": function (data, type, row, meta) { + return " "; + } + }, + //{ + // targets: 0, + // data: "", + // defaultContent: '', + // orderable: false, + // className: 'select-checkbox' + //} + ], + "language": { + "url": appsite + "/DataTables-1.10.16/thai.json" + }, + "paging": true, + "searching": false + }); + endLoad(); +}; + +function eva_adjust_postponement_update_status_InitiateDataTable() { + startLoad(); + var p = $.param(eva_adjust_postponement_update_status_GetSearchParameter()); + AjaxGetRequest(apisite + "/api/eva_adjust_postponement_update_status/GetListBySearch?" + p, eva_adjust_postponement_update_status_setupTable, AlertDanger); +} + +function eva_adjust_postponement_update_status_DoSearch() { + var p = $.param(eva_adjust_postponement_update_status_GetSearchParameter()); + var eva_adjust_postponement_update_status_reload = function (result) { + eva_adjust_postponement_update_statusTableV.destroy(); + eva_adjust_postponement_update_status_setupTable(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + "/api/eva_adjust_postponement_update_status/GetListBySearch?" + p, eva_adjust_postponement_update_status_reload, AlertDanger); +} + +function eva_adjust_postponement_update_status_GetSelect(f) { + var eva_adjust_postponement_update_status_selectitem = []; + $.each(eva_adjust_postponement_update_statusTableV.rows('.selected').data(), function (key, value) { + eva_adjust_postponement_update_status_selectitem.push(value[f]); + }); + alert(eva_adjust_postponement_update_status_selectitem); +} + +//================= File Upload ========================================= + + + +//================= Multi-Selection Function ========================================= + + +