From 07d70e4a66836f0823b04710ad232d8c112e2189 Mon Sep 17 00:00:00 2001 From: nakorn Date: Wed, 13 Oct 2021 15:49:07 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=20https://app.clickup.com/t/1nav665?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...st_postponement_detail_normal_02Service.cs | 51 +++++++++++++++++++ ...ust_postponement_detail_quota_02Service.cs | 51 +++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/Models/eva_adjust_postponement_detail_normal_02/eva_adjust_postponement_detail_normal_02Service.cs b/Models/eva_adjust_postponement_detail_normal_02/eva_adjust_postponement_detail_normal_02Service.cs index 2127403..4e27377 100644 --- a/Models/eva_adjust_postponement_detail_normal_02/eva_adjust_postponement_detail_normal_02Service.cs +++ b/Models/eva_adjust_postponement_detail_normal_02/eva_adjust_postponement_detail_normal_02Service.cs @@ -78,8 +78,59 @@ namespace TodoAPI2.Models return i; } + private (decimal?, string) getData(eva_create_evaluation_detailEntity detail) + { + if (detail.status_supervisor2A == "Y") + { + return (detail.score_supervisor2A, detail.level_score_supervisor2A); + } + else if (detail.status_supervisor1A == "Y") + { + return (detail.score_supervisor1A, detail.level_score_supervisor1A); + } + else if (detail.status_supervisor == "Y") + { + return (detail.score_supervisor, detail.level_score_supervisor); + } + else if (detail.status_chief == "Y") + { + return (detail.score_chief, detail.level_score_chief); + } + else + { + return (0, null); + } + } + + private void ReloadPostponement(int? adjust_postponement_id) + { + var rawData = from i in _repository.Context.eva_adjust_postponement_detail + where i.adjust_postponement_id == adjust_postponement_id + select i; + + var baseScore = from i in _repository.Context.eva_adjust_postponement_detail + join j in _repository.Context.eva_adjust_postponement on i.adjust_postponement_id equals j.id + join k in _repository.Context.eva_create_evaluation on j.create_evaluation_id equals k.id + join m in _repository.Context.eva_create_evaluation_detail on k.id equals m.create_evaluation_id + where i.adjust_postponement_id == adjust_postponement_id + && m.employee_id == i.employee_id + select m; + + foreach(var x in rawData) + { + var y = (from i in baseScore + where i.employee_id == x.employee_id + select getData(i)).FirstOrDefault(); + x.level_score_final = y.Item2; + x.score_final = y.Item1; + } + _repository.Context.SaveChanges(); + } + public List GetListByadjust_postponement_id(int? adjust_postponement_id) { + ReloadPostponement(adjust_postponement_id); + var model = new eva_adjust_postponement_detail_normal_02SearchModel(); model.adjust_postponement_id = adjust_postponement_id; return GetListBySearch(model); diff --git a/Models/eva_adjust_postponement_detail_quota_02/eva_adjust_postponement_detail_quota_02Service.cs b/Models/eva_adjust_postponement_detail_quota_02/eva_adjust_postponement_detail_quota_02Service.cs index 106dfc7..fdb5a5f 100644 --- a/Models/eva_adjust_postponement_detail_quota_02/eva_adjust_postponement_detail_quota_02Service.cs +++ b/Models/eva_adjust_postponement_detail_quota_02/eva_adjust_postponement_detail_quota_02Service.cs @@ -78,8 +78,59 @@ namespace TodoAPI2.Models return i; } + private (decimal?, string) getData(eva_create_evaluation_detailEntity detail) + { + if (detail.status_supervisor2A == "Y") + { + return (detail.score_supervisor2A, detail.level_score_supervisor2A); + } + else if (detail.status_supervisor1A == "Y") + { + return (detail.score_supervisor1A, detail.level_score_supervisor1A); + } + else if (detail.status_supervisor == "Y") + { + return (detail.score_supervisor, detail.level_score_supervisor); + } + else if (detail.status_chief == "Y") + { + return (detail.score_chief, detail.level_score_chief); + } + else + { + return (0, null); + } + } + + private void ReloadPostponement(int? adjust_postponement_quota_id) + { + var rawData = from i in _repository.Context.eva_adjust_postponement_detail + where i.adjust_postponement_quota_id == adjust_postponement_quota_id + select i; + + var baseScore = from i in _repository.Context.eva_adjust_postponement_detail + join j in _repository.Context.eva_adjust_postponement on i.adjust_postponement_id equals j.id + join k in _repository.Context.eva_create_evaluation on j.create_evaluation_id equals k.id + join m in _repository.Context.eva_create_evaluation_detail on k.id equals m.create_evaluation_id + where i.adjust_postponement_quota_id == adjust_postponement_quota_id + && m.employee_id == i.employee_id + select m; + + foreach (var x in rawData) + { + var y = (from i in baseScore + where i.employee_id == x.employee_id + select getData(i)).FirstOrDefault(); + x.level_score_final = y.Item2; + x.score_final = y.Item1; + } + _repository.Context.SaveChanges(); + } + public List GetListByadjust_postponement_quota_id(int? adjust_postponement_quota_id) { + ReloadPostponement(adjust_postponement_quota_id); + var model = new eva_adjust_postponement_detail_quota_02SearchModel(); model.adjust_postponement_quota_id = adjust_postponement_quota_id; return GetListBySearch(model);