コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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;
        }