public ActionResult Edit(int id = 0)
        {
            f_cerl f_cerl = db.f_cerl.Find(id);

            if (f_cerl == null)
            {
                return(HttpNotFound());
            }

            //initDDL();
            //FlowPath flowpath = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, "A");
            //if (flowpath != null)
            //{
            //   if (flowpath.inStateAction != null)
            //  {
            IEnumerable <FormActions> formactions = GetFormAction(f_cerl.FlowCode, f_cerl.State);

            ViewData["FormAction"] = formactions;
            // }
            //}
            //if (f_cerl.TestItem == 2002100)
            //{

            //}

            IEnumerable <vTaskDetail> vTaskDetail = GetTaskDetail(f_cerl.fID);

            ViewData["vTaskDetail"] = vTaskDetail;

            InitDDLShow(f_cerl, "EDIT");
            InitAttachFiles(f_cerl.fID);
            return(View(f_cerl));
        }
 protected void InitDDLShow(f_cerl f_cerl, string action)
 {
     InitDDL("siteList", "0", 0, f_cerl);
     InitDDL("testList", "1000000", 1, f_cerl);
     InitDDL("requestList", "1001100", 0, f_cerl);
     InitDDL("ReturnTypeList", "0", 0, f_cerl);
     InitDDL("CustomerNameList", "0", 0, f_cerl);
     InitDDL("FailureSiteList", "0", 0, f_cerl);
     InitDDL("IssueSourceList", "0", 0, f_cerl);
     InitDDL("TestPurposeList", "0", 0, f_cerl);
     InitDDL("ProcessStepList", "0", 0, f_cerl);
     InitDDL("SupervisorList", "20", 0, f_cerl);
     InitDDL("UserRoleList", Constant.LogonUserId, 0, f_cerl);
     //InitDDL("LocalSupervisor", f_cerl.TestItem.ToString(), 0, f_cerl);
     if (action.ToUpper() == "EDIT")
     {
         InitDDL("LocalSupervisorList", f_cerl.TestItem.ToString(), 0, f_cerl);
         InitDDL("LabMemberList", f_cerl.TestItem.ToString(), 0, f_cerl);
     }
     else
     {
         InitDDL("LocalSupervisorList", "30", 0, f_cerl);
         InitDDL("LabMemberList", "40", 0, f_cerl);
     }
 }
Example #3
0
        public bool CheckUserUnsignedTask(string fID)
        {
            bool       rslt     = false;
            List <int> UserRole = db.vUserRole.Where(x => x.BadgeCode == UserId).Select(x => x.RoleId).ToList();
            f_cerl     fcerl    = db.f_cerl.Where(x => x.fID == fID).FirstOrDefault();

            rslt = (UserRole.Contains(1)) ? true : false;

            if (rslt == true) // Admin?
            {
                return(rslt);
            }

            try
            {
                IEnumerable <vTaskDetail> objfp    = GetUnsignedTask(UserId);
                List <string>             unsinged = objfp.Where(x => x.FID == fID).Select(x => x.FID).ToList();
                // 允許使用者自行移轉
                if (unsinged != null && fcerl != null)
                {
                    if (unsinged.Count > 0 || (fcerl.State == 10 && fcerl.Applicant == UserId))
                    {
                        rslt = true;
                    }
                }
            }
            catch
            {
            }
            return(rslt);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            f_cerl f_cerl = db.f_cerl.Find(id);

            db.f_cerl.Remove(f_cerl);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        //
        // GET: /F_CERL/Delete/5

        public ActionResult Delete(int id = 0)
        {
            f_cerl f_cerl = db.f_cerl.Find(id);

            if (f_cerl == null)
            {
                return(HttpNotFound());
            }
            return(View(f_cerl));
        }
        //
        // GET: /F_CERL/Edit/5

        public f_cerl CheckAndPushTask(FormCollection fc, f_cerl f_cerl)
        {
            string strAction             = f_cerl.Action;
            string ListAssignTo          = "";
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            StringBuilder       vchSet   = new StringBuilder();
            FlowPath            fp       = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, f_cerl.Action);// 取得下一關的State

            if (fp == null)
            {
                return(f_cerl);
            }

            if (f_cerl.State >= 1000)
            {
                strAction = "";
                return(f_cerl);
            }

            if (fp != null)
            {
                if (f_cerl.LocalSupervisor == null)
                {
                    f_cerl.LocalSupervisor = "IEC970209";
                }
                vchSet.Append(Method.BuildXML(fp.outState.ToString(), "outState"));
                vchSet.Append(Method.BuildXML(f_cerl.Supervisor, "Supervisor"));
                vchSet.Append(Method.BuildXML(f_cerl.LocalSupervisor, "LocalSupervisor"));
                vchSet.Append(Method.BuildXML(f_cerl.LabMember, "LabMember"));
                vchSet.Append(Method.BuildXML(f_cerl.Applicant, "Applicant"));
                vchSet.Append(Method.BuildXML(f_cerl.Manager, "Manager"));
                vchSet.Append(Method.BuildXML(f_cerl.Action, ""));
                GetListAssignTo(fp.outState, vchSet.ToString(), out ListAssignTo); //取得下一關的收件人
                f_cerl.ListAssignTo = ListAssignTo;

                if (ListAssignTo != "")
                {
                    response = PostFormDataToRoute(fc, f_cerl); //Push Task, Send Task mail by AssignTo
                }
                f_cerl.State = int.Parse(fp.outState.ToString());
            }
            return(f_cerl);
        }
Example #7
0
        public HttpResponseMessage PostFormDataToRoute(FormCollection fc, f_cerl f_cerl)
        {
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            NameValueCollection dyndata  = new NameValueCollection();
            string Action = f_cerl.Action;

            if (Action == null)
            {
                Action = "";
            }

            dyndata.Add("FID", f_cerl.fID);
            dyndata.Add("FormCode", f_cerl.FormCode.ToString());
            dyndata.Add("FlowCode", f_cerl.FlowCode.ToString());
            dyndata.Add("Applicant", f_cerl.Applicant);
            dyndata.Add("ListAssignTo", f_cerl.ListAssignTo); // 用分號打包卡號, EX: IEC891652;IEC950848
            dyndata.Add("State", f_cerl.State.ToString());
            dyndata.Add("Action", f_cerl.Action);
            dyndata.Add("Editor", UserId);
            dyndata.Add("Comment", f_cerl.Comment);
            //string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(dyndata);

            using (var wb = new WebClient())
            {
                var wi  = _userwi;
                var wic = wi.Impersonate();
                wb.Headers.Set("CONTENT-TYPE", "application/x-www-form-urlencoded");
                wb.UseDefaultCredentials = true;
                //wb.Credentials = new NetworkCredential(Constant.NetworkCredentialUserId, Constant.NetworkCredentialPWD);

                string url = _formcontroller.Url.RouteUrl(@"DefaultApi", new { action = "Task", controller = "api" });
                if (url == null)
                {
                    url = Constant.RoutesWebSite + @"/api/task/Post";
                }
                byte[] rslt = wb.UploadValues(url, dyndata);
            }
            return(response);
        }
        public ActionResult Edit(FormCollection fc, f_cerl f_cerl)
        {
            if (f_cerl.State >= 1000)
            {
                InitDDLShow(null, "EDIT");
                return(View(f_cerl));
            }

            string UserId = Constant.LogonUserId;

            if (ModelState.IsValid)
            {
                if (TryUpdateModel(f_cerl, "", fc.AllKeys, new string[] { "cdt" }))
                {
                    f_cerl        = CheckAndPushTask(fc, f_cerl);
                    f_cerl.udt    = DateTime.Now;
                    f_cerl.editor = UserId;

                    var r = new List <attachFile>();
                    int i = 0;

                    foreach (string file in Request.Files)
                    {
                        HttpPostedFileBase hpf = Request.Files[i] as HttpPostedFileBase;
                        if (hpf.ContentLength == 0)
                        {
                            continue;
                        }

                        string   formId        = f_cerl.fID;
                        string   state         = f_cerl.State.ToString();
                        string   filePath0     = Constant.UserFileDirectory + formId + @"\";
                        string   filePath      = Constant.UserFileDirectory + formId + @"\" + state + @"\";
                        FileInfo newinfo       = new FileInfo(hpf.FileName);
                        string   savedFileName = Path.Combine(filePath, Path.GetFileName(newinfo.Name));
                        if (!Directory.Exists(filePath0))
                        {
                            Directory.CreateDirectory(filePath0);
                        }

                        if (!Directory.Exists(filePath))
                        {
                            Directory.CreateDirectory(filePath);
                        }
                        hpf.SaveAs(savedFileName);
                        int count = db.attachFiles.Where(x => x.fID == formId && x.folderId == state && x.fileName == newinfo.Name).Count();

                        if (count == 0)
                        {
                            r.Add(new attachFile()
                            {
                                fID         = formId,
                                displayname = newinfo.Name,
                                fileName    = newinfo.Name,
                                Length      = hpf.ContentLength,
                                Type        = hpf.ContentType,
                                folderId    = state,
                                editor      = Constant.LogonUserId,
                                filePath    = filePath,

                                cdt = DateTime.Now,
                                udt = DateTime.Now
                            });
                        }
                        i++;
                    }
                    foreach (attachFile a in r)
                    {
                        db.attachFiles.Add(a);
                    }
                }

                db.Entry(f_cerl).State = EntityState.Modified;
                db.SaveChanges();

                //return RedirectToAction("Index");

                RouteValueDictionary rv = new RouteValueDictionary();
                rv.Add("id", f_cerl.ID);
                return(RedirectToAction("Details", rv));
                //InitDDLShow();
                //return RedirectToAction("Index");
            }
            return(View(f_cerl));
        }
        public ActionResult Create(FormCollection fc, f_cerl f_cerl)
        {
            StringBuilder vchSet   = new StringBuilder();
            string        Editor   = Method.GetLogonUserId(Session, User.Identity.Name);
            string        State    = "10";
            int           FlowCode = 1001001;
            string        FormId   = System.Guid.NewGuid().ToString().ToUpper();

            vchSet.Append(Method.BuildXML(f_cerl.TestItem.ToString(), "TestItem"));
            vchSet.Append(Method.BuildXML(f_cerl.CustomerID.ToString(), "CustomerID"));
            vchSet.Append(Method.BuildXML(f_cerl.ProjectName, "ProjectName"));
            string CaseId = edb.FnGetCaseID(vchSet.ToString()).FirstOrDefault().CaseID;
            string UID    = edb.FnGetCaseID(vchSet.ToString()).FirstOrDefault().UID;

            f_cerl.fID       = FormId;
            f_cerl.FlowCode  = FlowCode;
            f_cerl.FormCode  = int.Parse(f_cerl.TestItem.ToString());
            f_cerl.CaseID    = CaseId;
            f_cerl.UID       = UID;
            f_cerl.State     = int.Parse(State);
            f_cerl.editor    = Editor;
            f_cerl.Applicant = Editor;
            f_cerl.cdt       = DateTime.Now;
            f_cerl.udt       = DateTime.Now;
            if (TryUpdateModel(f_cerl, "", fc.AllKeys, new string[] { "fID", "Manager", "FlowCode", "FormCode", "Applicant", "editor", "State", "udt", "cdt" }))
            {
                if (ModelState.IsValid)
                {
                    if (f_cerl.Manager == null)
                    {
                        f_cerl.Manager = "IEC970209"; // test Manager
                    }

                    var r = new List <attachFile>();
                    int i = 0;


                    foreach (string file in Request.Files)
                    {
                        HttpPostedFileBase hpf = Request.Files[i] as HttpPostedFileBase;
                        if (hpf.ContentLength == 0)
                        {
                            continue;
                        }

                        string   formId        = FormId;
                        string   state         = State;
                        string   filePath0     = Constant.UserFileDirectory + formId + @"\";
                        string   filePath      = Constant.UserFileDirectory + formId + @"\" + state + @"\";
                        FileInfo newinfo       = new FileInfo(hpf.FileName);
                        string   savedFileName = Path.Combine(filePath, Path.GetFileName(newinfo.Name));
                        if (!Directory.Exists(filePath0))
                        {
                            Directory.CreateDirectory(filePath0);
                        }

                        if (!Directory.Exists(filePath))
                        {
                            Directory.CreateDirectory(filePath);
                        }
                        hpf.SaveAs(savedFileName);

                        r.Add(new attachFile()
                        {
                            fID         = formId,
                            displayname = newinfo.Name,
                            fileName    = newinfo.Name,
                            Length      = hpf.ContentLength,
                            Type        = hpf.ContentType,
                            folderId    = state,
                            editor      = Editor,
                            filePath    = filePath,

                            cdt = DateTime.Now,
                            udt = DateTime.Now
                        });

                        i++;
                    }
                    foreach (attachFile a in r)
                    {
                        db.attachFiles.Add(a);
                    }

                    f_cerl = CheckAndPushTask(fc, f_cerl);

                    db.f_cerl.Add(f_cerl);
                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }

            return(View(f_cerl));
        }
        protected void InitDDL(string ddlName, string root, int iWhere, f_cerl fcerl)
        {
            string[] stringArray = { "siteList", "testList", "requestList" };
            string[] MemberArray = { "SupervisorList", "LocalSupervisorList", "LabMemberList" };
            var      initlist    = edb.FnGeneralDropDownList(ddlName, root).Select(x => new { Id = x.Id, Name = x.Name }).ToList();

            if (stringArray.Contains(ddlName))
            {
                initlist = edb.FnTestItemMenuDropDownList(root.ToString()).Where(y => y.lvl == iWhere).Select(x => new { Id = x.Id, Name = x.Name }).ToList();
            }

            if (MemberArray.Contains(ddlName))
            {
                initlist = edb.FnMemberDropDownList(ddlName, root).Select(x => new { Id = x.BadgeCode, Name = x.Name }).ToList();
            }

            string selectedvalue = "";

            if (fcerl != null)
            {
                switch (ddlName)
                {
                case "siteList":
                    selectedvalue = fcerl.Site.ToString();
                    break;

                case "testList":
                    selectedvalue = fcerl.TestItem.ToString();
                    break;

                case "requestList":
                    selectedvalue = fcerl.RequestItem.ToString();
                    break;

                case "SupervisorList":
                    selectedvalue = fcerl.Supervisor;
                    break;

                case "LocalSupervisorList":
                    selectedvalue = fcerl.LocalSupervisor;
                    break;

                case "LabMemberList":
                    selectedvalue = fcerl.LabMember;
                    break;

                case "ProcessStepList":
                    selectedvalue = fcerl.ProcessStep.ToString();
                    break;

                case "TestPurposeList":
                    selectedvalue = fcerl.TestPurpose.ToString();
                    break;

                case "IssueSourceList":
                    selectedvalue = fcerl.IssueSource.ToString();
                    break;

                case "FailureSiteList":
                    selectedvalue = fcerl.FailureSite.ToString();
                    break;

                case "ReturnTypeList":
                    selectedvalue = fcerl.ReturnType.ToString();
                    break;

                case "CustomerNameList":
                    selectedvalue = fcerl.CustomerID.ToString();
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (ddlName)
                {
                case "UserRoleList":
                    selectedvalue = iWhere.ToString();
                    break;

                default:
                    break;
                }
            }

            List <SelectListItem> initList = new List <SelectListItem>();

            foreach (var item in initlist)
            {
                initList.Add(new SelectListItem()
                {
                    Text     = item.Name,
                    Value    = item.Id.ToString(),
                    Selected = (item.Id.ToString() == selectedvalue)
                });
            }
            SelectList cList = new SelectList(initList, "Value", "Text");

            ViewData[ddlName] = cList;
            Session[ddlName]  = cList;
        }
Example #11
0
        public f_cerl CheckAndPushTask(FormCollection fc, f_cerl f_cerl)
        {
            string fnCheckAndPushTask = "RouteWork_CheckAndPushTask";
            string UserId             = f_cerl.editor;
            string strAction          = f_cerl.Action;
            string ListAssignTo       = "";
            int    errorline          = 233;

            try
            {
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                StringBuilder       vchSet   = new StringBuilder();
                errorline = 238;
                FlowPath fp = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, f_cerl.Action); // 取得下一關的State
                errorline = 240;
                if (fp == null)
                {
                    return(f_cerl);
                }

                if (f_cerl.State >= 1000)
                {
                    strAction = "";
                    return(f_cerl);
                }
                errorline = 249;
                if (fp != null)
                {
                    if (f_cerl.LocalSupervisor == null)
                    {
                        f_cerl.LocalSupervisor = db.vUsers.Where(u => u.RoleId == 20).Select(v => v.BadgeCode).FirstOrDefault();//"IEC970209";
                    }
                    errorline = 254;
                    if (f_cerl.Manager == null)
                    {
                        f_cerl.Manager = f_cerl.Applicant;
                    }
                    errorline = 257;
                    vchSet.Append(Method.BuildXML(fp.outState.ToString(), "outState"));
                    vchSet.Append(Method.BuildXML(f_cerl.TestItem.ToString(), "TestItem"));
                    vchSet.Append(Method.BuildXML(f_cerl.Supervisor, "Supervisor"));
                    vchSet.Append(Method.BuildXML(f_cerl.LocalSupervisor, "LocalSupervisor"));
                    vchSet.Append(Method.BuildXML(f_cerl.LabMember, "LabMember"));
                    vchSet.Append(Method.BuildXML(f_cerl.Applicant, "Applicant"));
                    vchSet.Append(Method.BuildXML(f_cerl.Manager, "Manager"));
                    vchSet.Append(Method.BuildXML(f_cerl.Action, ""));
                    errorline = 266;
                    GetListAssignTo(fp.outState, vchSet.ToString(), out ListAssignTo); //取得下一關的收件人
                    f_cerl.ListAssignTo = ListAssignTo;
                    errorline           = 269;
                    if (ListAssignTo != "")
                    {
                        errorline = 272;
                        response  = PostFormDataToRoute(fc, f_cerl); //Push Task, Send Task mail by AssignTo

                        f_cerl.State           = int.Parse(fp.outState.ToString());
                        db.Entry(f_cerl).State = EntityState.Modified;
                        db.SaveChanges();
                        errorline = 278;
                        SendMail(fp, f_cerl.fID);
                        errorline = 280;
                    }
                    errorline = 282;
                }
                f_cerl.Comment = "";
            }
            catch (Exception ex)
            {
                string        msg     = ex.Message;
                string        newLine = "\r\n";
                StringBuilder sb      = new StringBuilder();
                sb.Append("Issue at line 291: occur error after line " + errorline.ToString() + msg);
                sb.Append(newLine);
                sb.Append(f_cerl.ID + " " + f_cerl.State);
                syserrdb.InitErrorData(Src: fnCheckAndPushTask, content: sb.ToString(), editor: UserId);
            }
            return(f_cerl);
        }