public void insertHeader(tblHeader Header) { PSESEntities db = new PSESEntities(); var a = db.SP_InsertHeader(Header.Parent, Header.Text, Header.Text_Eng, Header.Alias, Header.H_Level, 0, Header.Text_Language).FirstOrDefault(); db.SP_InsertHeaderPosition(Header.PositionNo, a.H_id); if (Header.H_Level == 1) { db.SP_InsertHeaderJob(Header.PositionNo, Convert.ToInt32(a.H_id)); } }
public List <tblHeader> FinalHeader(tblHeader parent, List <tblHeader> ListAll) { List <tblHeader> ListResult = new List <tblHeader>(); if (ListAll.Where(a => a.Parent == parent.H_ID).ToList().Count == 0) { ListResult.Add(parent); return(ListResult); } List <tblHeader> Result = new List <tblHeader>(); Result.Add(parent); foreach (tblHeader res in ListAll.Where(a => a.Parent == parent.H_ID).ToList()) { foreach (tblHeader a in FinalHeader(res, ListAll)) { Result.Insert(Result.Count, a); } } return(Result); }
public void InsertHeader([FromBody] JObject Data) { tblHeader H = new tblHeader(); var header = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>(); H.Parent = Convert.ToInt32(Data["H_ID"].ToString()); H.H_Level = (H.Parent == 0)?1 : header.GetAllHeader().Where(a => a.H_ID == H.Parent).FirstOrDefault().H_Level + 1; H.Text = Data["Text"].ToString(); H.Text_Eng = Data["Text_Eng"].ToString(); H.Alias = Data["Alias"].ToString(); H.PositionNo = Convert.ToInt32(Data["PositionNo"].ToString()); if (H.Text_Eng.Length == 0) { H.Text_Eng = H.Text; } if (H.Text.Length == 0) { H.Text = H.Text_Eng; } H.Text_Language = "{\"EN\":\"" + H.Text_Eng + "\",\"TH\":\"" + H.Text + "\"}"; header.insertHeader(H); }
public HttpResponseMessage InsertEva([FromBody] JObject Data) { var header = ServiceContainer.GetService <PesWeb.Service.Modules.EvaManage>(); var header2 = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>(); List <tblEvaluation> evaAll = new List <tblEvaluation>(); if (evaAll.Count == 0) { int isAdd = 0; string name = ""; tblProjectMember proj = new tblProjectMember(); if (Data["EmployeeNO"].ToString().Length > 10) { isAdd = 1; List <string> nme = Data["EmployeeNO"].ToString().Split('-').ToList(); name = nme[1].Trim(); tblPart2Master role = header.getPart2Data().Where(a => a.Function.Trim() == Data["Position"].ToString().Trim()).FirstOrDefault(); tblProject project = header.getProject().Where(a => a.ProjectNameAlias.Trim() == Data["ProjectNO"].ToString().Trim()).FirstOrDefault(); if (project != null) { Data["ProjectNO"] = project.CustomerCompanyAlias + "-" + project.ProjectNameAlias; } proj.Part2ID = role.Part2ID; Data["EmployeeNO"] = Data["EmployeeNO"].ToString().Split('-')[0].Trim(); } else { proj = header.getProjectMember().Where(a => a.ProjectID == Data["ProjectNO"].ToString()).Where(a => a.StaffID == Data["EmployeeNO"].ToString()).FirstOrDefault(); } header.GetAllEvaluation().Where(a => a.EvaluatorNO == Data["EvaluatorNO"].ToString() && a.EmployeeNO == Data["EmployeeNO"].ToString() && a.ProjectNO == Data["ProjectNO"].ToString() && a.PeriodID == Convert.ToInt32(Data["PeriodID"].ToString())).ToList(); tblEvaluation eva = new tblEvaluation(); Period p = header.GetPeriod().Where(a => a.Period_Id == Convert.ToInt32(Data["PeriodID"].ToString())).FirstOrDefault(); eva.EmployeeNO = Data["EmployeeNO"].ToString(); eva.EvaluatorNO = Data["EvaluatorNO"].ToString(); //eva.Job_ID = (isAdd==1)? Data["ProjectNO"].ToString().Split(':') eva.Job_ID = proj.Part2ID; eva.PeriodID = p.Period_Id; eva.period = p.StartDate.ToString().Substring(3, 7); eva.ProjectNO = Data["ProjectNO"].ToString(); eva.StartEvaDate = Convert.ToDateTime(Data["StartDate"].ToString()); eva.FinishEvaDate = Convert.ToDateTime(Data["FinishDate"].ToString()); tblProject pj = new tblProject(); if (isAdd == 0) { pj = header.getProject().Where(a => a.ProjectID == Data["ProjectNO"].ToString()).FirstOrDefault(); } eva.ProjectCode = (isAdd == 1) ? Data["ProjectNO"].ToString() : pj.CustomerCompanyAlias + " " + pj.ProjectNameAlias; SP_InsertEvaluation_Result evaid = header.InsertEvaData(eva); int eva_ID = evaid.Eva_ID; List <tblHeaderJob> hj = header2.getAllHeaderJob().Where(a => a.PositionNo == proj.Part2ID).ToList(); List <tblHeader> Ans = new List <tblHeader>(); List <tblScore> sc = header.GetAllScore(); List <SP_GetHeaderByPosition_Result> GetHeader = header2.getHeaderByPosition(proj.Part2ID, eva_ID).OrderBy(a => a.H_ID).ToList(); List <tblHeader> hd = header2.GetAllHeader().ToList(); tblHeader H_test = new tblHeader(); H_test.H_ID = 0; // if (GetHeader.Count - GetHeader.Where(a => a.point).ToList().Count < FinalHeader(H_test, hd).ToList().Count) foreach (tblHeaderJob tmpHJ in hj) { foreach (tblHeader hd2 in hd.Where(a => a.H_ID == tmpHJ.H1_ID)) { foreach (tblHeader hd3 in FinalHeader(hd2, hd)) { if (sc.Where(a => a.Eva_ID == eva_ID && a.H3_ID == hd3.H_ID).ToList().Count == 0) { //if (Ans.Where(a => a.H_ID == hd3.H_ID).ToList().Count == 0) Ans.Add(hd3); } } } } foreach (tblHeader h in Ans) { header.InsertSCORE(eva_ID, h.H_ID); } List <tblEmployee> emp = header.getEmployees(); int num = header.GetAllApprove().Where(a => a.EvaID == eva_ID).ToList().Count; if (num == 0) { tblApprove ap = new tblApprove(); ap.EvaID = eva_ID; ap.PositionID = header.getEmployees().Where(a => a.EmployeeNo.Replace(" ", "") == Data["EmployeeNO"].ToString().Replace(" ", "")).FirstOrDefault().PositionNo; ap.Position = header.getPosition().Where(a => a.PositionNo == ap.PositionID).FirstOrDefault().PositionName; tblProjectMember pm = header.getProjectMember().Where(a => a.StaffID.Replace(" ", "") == Data["EmployeeNO"].ToString().Replace(" ", "") && a.ProjectID == Data["ProjectNO"].ToString()).FirstOrDefault(); string role = (isAdd == 1)? Data["Position"].ToString(): header.getPart2Data().Where(a => a.Part2ID == pm.Part2ID).FirstOrDefault().Function; if (isAdd == 0) { name = pm.StaffName; } ap.Role = role; tblEmployee emptemp = emp.Where(a => a.EmployeeNo.Trim() == Data["EmployeeNO"].ToString().Trim()).FirstOrDefault(); ap.Name = (emptemp != null) ? emptemp.EmployeeFirstName + " " + emptemp.EmployeeLastName : ""; //tblProject pj = header.getProject().Where(a => a.ProjectID == Data["ProjectNO"].ToString()).FirstOrDefault(); ap.ProjectCode = eva.ProjectCode; ap.EmployeeNo = Data["EmployeeNO"].ToString().Replace(" ", ""); int pID = header.insertApprove(ap).ID; List <tblFlowMaster> AllFlow = header.getAllFlow(); foreach (tblFlowMaster a in AllFlow) { tblApproveStatus tmp = new tblApproveStatus(); tmp.Comment = ""; tmp.Status = 0; tmp.FlowOrder = a.Flow; if (a.CodeName == "PM") { tblEmployee emp2 = emp.Where(t => t.EmployeeNo.Replace(" ", "") == Data["EvaluatorNO"].ToString().Replace(" ", "")).FirstOrDefault(); tmp.Name = emp2.EmployeeFirstName + " " + emp2.EmployeeLastName; tmp.EmployeeNO = emp2.EmployeeNo; // tmp.Status = 1; } else if (a.CodeName == "ST") { tmp.Name = name; tmp.EmployeeNO = Data["EmployeeNO"].ToString().Replace(" ", ""); } else if (a.CodeName == "HR") { tblEmployee emp2 = emp.Where(t => t.PositionNo == 23).FirstOrDefault(); tmp.Name = emp2.EmployeeFirstName + " " + emp2.EmployeeLastName; tmp.EmployeeNO = emp2.EmployeeNo; } else if (a.CodeName == "GM") { int organNo = (int)emp.Where(s => s.EmployeeNo.Replace(" ", "") == Data["EmployeeNO"].ToString().Replace(" ", "")).FirstOrDefault().OrganizationNo; List <tblEmployeeOrganization> emO = header.getEmployeeOrganization().Where(t => t.OrganizationNo == organNo && t.PositionNo == 21).ToList(); if (emO.Count != 1) { tmp.Name = ""; tmp.EmployeeNO = ""; } else { tblEmployee emp2 = emp.Where(t => t.EmployeeNo.Replace(" ", "") == emO.FirstOrDefault().EmployeeNo).FirstOrDefault(); if (emp2 != null) { tmp.Name = emp2.EmployeeFirstName + " " + emp2.EmployeeLastName; tmp.EmployeeNO = emp2.EmployeeNo; } } } tmp.ApproveID = pID; header.insertApproveStatus(tmp); } } tblEmployee empLog = emp.Where(t => t.EmployeeNo.Replace(" ", "") == Data["EvaluatorNO"].ToString().Replace(" ", "")).FirstOrDefault(); insertLog(empLog.EmployeeFirstName + " " + empLog.EmployeeLastName, empLog.EmployeeNo, "new evaluation : " + eva_ID); return(Request.CreateResponse(HttpStatusCode.OK)); } return(Request.CreateResponse(HttpStatusCode.BadRequest)); }
public List <JObject> GetAllHeader(int PositionID, int EvaID, int ID, string Language) { var header = ServiceContainer.GetService <PesWeb.Service.Modules.HeaderManage>(); var header2 = ServiceContainer.GetService <PesWeb.Service.Modules.EvaManage>(); List <tblScore> sc = header2.GetAllScore(); List <tblHeader> hd = header.GetAllHeader().ToList(); //List<tblHeaderJob> Allhj = header.getAllHeaderJob().ToList(); // tblProjectMember proj = header.getProjectMember().Where(a => a.ProjectID == Data["ProjectNO"].ToString()).Where(a => a.StaffID == Data["EmployeeNO"].ToString()).FirstOrDefault(); SP_GetEvaDataByEvaID_Result eva = header2.getEvaDataByEvaID(EvaID).Where(a => a.Part2ID == PositionID).FirstOrDefault(); List <tblHeaderJob> hj = header.getAllHeaderJob().Where(a => a.PositionNo == ((eva != null)? eva.Part2ID: PositionID)).ToList(); List <SP_GetHeaderByPosition_Result> GetHeader = header.getHeaderByPosition(PositionID, EvaID).OrderBy(a => a.H_ID).ToList(); List <tblHeader> Ans = new List <tblHeader>(); tblHeader p = new tblHeader(); int sum = 0; foreach (tblHeaderJob hh in hj) { if (hd.Where(a => a.H_ID == hh.H1_ID).FirstOrDefault() != null) { sum += FinalHeader(hd.Where(a => a.H_ID == hh.H1_ID).FirstOrDefault(), hd).ToList().Count; } } p.H_ID = 0; foreach (tblHeaderJob tmpHJ in hj) { foreach (tblHeader hd2 in hd.Where(a => a.H_ID == tmpHJ.H1_ID)) { foreach (tblHeader hd3 in FinalHeader(hd2, hd)) { if (sc.Where(a => a.Eva_ID == EvaID && a.H3_ID == hd3.H_ID).ToList().Count == 0) { //if (Ans.Where(a => a.H_ID == hd3.H_ID).ToList().Count == 0) Ans.Add(hd3); } } } } foreach (tblHeader h in Ans) { header2.InsertSCORE(EvaID, h.H_ID); } header2.UpdateEvaluationData(EvaID, PositionID); GetHeader = header.getHeaderByPosition(PositionID, EvaID).OrderBy(a => a.H_ID).ToList(); List <SP_GetHeaderByPosition_Result> H = new List <SP_GetHeaderByPosition_Result>(); //List<SP_GetHeaderByPosition_Result> H2 = new List<SP_GetHeaderByPosition_Result>(); // GetHeader.Reverse(0,GetHeader.Count); List <SP_GetHeaderByPosition_Result> GetHeader2 = new List <SP_GetHeaderByPosition_Result>(); List <tblHeaderAdditional> HdA = header.getHeaderAdditional(); foreach (tblHeaderAdditional HdATemp in HdA.Where(a => a.Eva_ID == EvaID && a.Part2ID == PositionID).ToList()) { if (HdATemp.H_status == 1 || ID == 2) { SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result(); newHeader.Alias = HdATemp.Alias; newHeader.H_Level = HdATemp.H_Level; newHeader.Parent = HdATemp.parent; newHeader.Text = HdATemp.Text; newHeader.Text_Eng = HdATemp.Text_Eng; newHeader.Eva_ID = HdATemp.Eva_ID; newHeader.H_ID = (-1) * HdATemp.H_ID; newHeader.PositionNO = PositionID; newHeader.point = HdATemp.point; newHeader.Comment = HdATemp.Comment; if (HdATemp.Text_Eng == "-") { HdATemp.Text_Eng = HdATemp.Text; } if (HdATemp.Text == "-") { HdATemp.Text = HdATemp.Text_Eng; } newHeader.Text_Language = "{\"EN\":\"" + HdATemp.Text_Eng + "\",\"TH\":\"" + HdATemp.Text + "\"}"; newHeader.statusNo = "1"; GetHeader.Add(newHeader); } else if (ID == 1) { DeleteHeader((-1) * HdATemp.H_ID); } } List <tblScore> sc2 = sc.Where(a => a.Eva_ID == EvaID && a.point > 0).OrderBy(a => a.H3_ID).ToList(); sc2.ForEach(a => { SP_GetHeaderByPosition_Result tmp = GetHeader.Where(b => b.H_ID == a.H3_ID).FirstOrDefault(); if (tmp == null && a.point > 0) { SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result(); tblHeader hd2 = hd.Where(b => b.H_ID == a.H3_ID).FirstOrDefault(); if (hd2 != null) { newHeader.Alias = hd2.Alias; newHeader.H_Level = hd2.H_Level; newHeader.Parent = hd2.Parent; newHeader.Text = hd2.Text; newHeader.Text_Eng = hd2.Text_Eng; newHeader.Eva_ID = EvaID; newHeader.H_ID = hd2.H_ID; newHeader.PositionNO = hd2.PositionNo; newHeader.point = a.point; newHeader.Comment = a.Comment; newHeader.Text_Language = hd2.Text_Language; newHeader.statusNo = "2"; GetHeader.Add(newHeader); } } }); List <tblHeaderAdditional> hda2 = HdA.Where(a => a.Eva_ID == EvaID).ToList(); hda2.ForEach(a => { SP_GetHeaderByPosition_Result tmp = GetHeader.Where(b => b.H_ID == a.H_ID).FirstOrDefault(); if (tmp == null && a.point > 0) { SP_GetHeaderByPosition_Result newHeader = new SP_GetHeaderByPosition_Result(); tblHeaderAdditional hd2 = HdA.Where(b => b.H_ID == a.H_ID).FirstOrDefault(); if (hd2 != null) { newHeader.Alias = hd2.Alias; newHeader.H_Level = hd2.H_Level; newHeader.Parent = hd2.parent; newHeader.Text = hd2.Text; newHeader.Text_Eng = hd2.Text_Eng; newHeader.Eva_ID = EvaID; newHeader.H_ID = hd2.H_ID; newHeader.PositionNO = 0; newHeader.point = a.point; newHeader.Comment = a.Comment; if (hd2.Text_Eng == "-") { hd2.Text_Eng = hd2.Text; } if (hd2.Text == "-") { hd2.Text = hd2.Text_Eng; } newHeader.Text_Language = "{\"EN\":\"" + hd2.Text_Eng + "\",\"TH\":\"" + hd2.Text + "\"}"; newHeader.statusNo = "2"; GetHeader.Add(newHeader); } } }); List <SP_GetHeaderByPosition_Result> H_new = new List <SP_GetHeaderByPosition_Result>(); List <SP_GetHeaderByPosition_Result> hder = GetHeader.Where(a => a.H_ID > 0).OrderBy(a => a.H_ID).ToList(); foreach (SP_GetHeaderByPosition_Result a in hder) { if (a.Parent == 0) { H_new.Add(a); } else { int parent = (int)a.Parent; for (int i = 0; i < H_new.Count; i++) { if (H_new[i].H_ID == parent) { H_new.Insert(i + 1, a); } } } } foreach (SP_GetHeaderByPosition_Result a in GetHeader.Where(a => a.H_ID < 0)) { if (a.Parent == 0) { H_new.Add(a); } else { int parent = (int)a.Parent; for (int i = 0; i < H_new.Count; i++) { if (H_new[i].H_ID == parent) { H_new.Insert(i + 1, a); } } } } List <SP_GetHeaderByPosition_Result> H_new2 = new List <SP_GetHeaderByPosition_Result>(); foreach (SP_GetHeaderByPosition_Result a in H_new) { if (a.Parent == 0) { H_new2.Add(a); } else { int parent = (int)a.Parent; for (int i = 0; i < H_new2.Count; i++) { if (H_new2[i].H_ID == parent && H_new2.Find(b => b.H_ID == a.H_ID) == null) { if (H_new2.Where(x => x.Score_ID == a.Score_ID).ToList().Count == 0) { H_new2.Insert(i + 1, a); } } } } } List <JObject> aaa = new List <JObject>(); H_new2.ForEach(a => { JObject bbb = new JObject(); bbb["H_ID"] = a.H_ID; bbb["Text_Language"] = JsonConvert.DeserializeObject <JObject>(a.Text_Language); bbb["Alias"] = a.Alias; bbb["Comment"] = a.Comment; bbb["Eva_ID"] = a.Eva_ID; bbb["H_Level"] = a.H_Level; bbb["Parent"] = a.Parent; bbb["point"] = a.point; bbb["PositionNO"] = a.PositionNO; bbb["Score_ID"] = a.Score_ID; bbb["Text"] = a.Text; bbb["Text_Eng"] = a.Text_Eng; bbb["Status"] = a.statusNo; aaa.Add(bbb); }); return(aaa); //JObject Data = new JObject(); //for (int i = 0;i<H_new2.Count;i++) //{ // if (H_new2[i].Text_Language != null) // { // string json = H_new2[i].Text_Language.Replace(@"\", ""); // Data = JsonConvert.DeserializeObject<JObject>(json); // if (Data[Language] != null) // { // H_new2[i].Text_Language = Data.ToString(); // } // } //} //return Data; }