示例#1
0
        public ActionResult Edit(vFUNC_Manage VFM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Fun";
            SL.Action        = "Edit";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                FUNC F = context.FUNCS.Find(VFM.SN);
                F.FuncName      = VFM.FuncName;
                F.Controller    = VFM.Controller;
                F.Action        = VFM.Action;
                F.Url           = VFM.Url;
                F.PId           = VFM.PId;
                F.ShowOrder     = VFM.ShowOrder;
                F.IsEnable      = VFM.IsEnable;
                F.UpadteAccount = Session["UserID"].ToString().Trim();
                F.UpdateTime    = DateTime.Now;

                context.Entry(F).State = EntityState.Modified;
                context.SaveChanges();

                SL.EndDateTime  = DateTime.Now;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "編輯功能作業成功,FId:[" + VFM.FId.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Fun"));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "編輯功能作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["EditMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("Edit", "Fun", new { SN = VFM.SN }));
            }
        }
示例#2
0
        public ActionResult Edit(string UId)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Account";
            SL.Action        = "Create";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vEPSUSER_Manage VUM = new vEPSUSER_Manage();
                EPSUSER         U   = context.EPSUSERS.Find(UId);

                VUM.UId       = UId;
                VUM.UserName  = U.UserName;
                VUM.UserPwd   = U.UserPwd;
                VUM.UserEmail = U.UserEmail;
                VUM.RId       = U.RId;

                var query = from r in context.EPSROLES
                            select new
                {
                    r.RId,
                    r.RoleName
                };
                VUM.Role        = new SelectList(query, "RId", "RoleName");
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得使用者資料作業成功,UId:[" + UId + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VUM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得使用者資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Create", "Account"));
            }
        }
示例#3
0
        public ActionResult Index()
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Account";
            SL.Action        = "Index";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                var query = from u in context.EPSUSERS
                            join r in context.EPSROLES on u.RId equals r.RId into USERS
                            from x in USERS.DefaultIfEmpty()
                            select new vEPSUSER
                {
                    UId           = u.UId,
                    UserName      = u.UserName,
                    UserEmail     = u.UserEmail,
                    RoleName      = x.RoleName,
                    CreateAccount = u.CreateAccount,
                    CreateTime    = u.CreateTime,
                    UpadteAccount = u.UpadteAccount,
                    UpdateTime    = u.UpdateTime
                };

                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = query.Count();
                SL.SuccessCount = query.Count();
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得使用者清單作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(query.ToList()));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得使用者清單作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Login", "Account"));
            }
        }
示例#4
0
        /// <summary>
        /// 建立vCHECKs模型
        /// </summary>
        /// <param name="CheckDate">檢核日期</param>
        /// <param name="Shift">班別代號</param>
        /// <returns></returns>
        private vCHECKs GenChecks(string CheckDate, string Shift)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "GenChecks";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                //組合vCHECKs
                var CP = context.CHECKPROCESSES.Where(b => b.CheckDate == CheckDate).ToList();

                vCHECKs         vCs     = new vCHECKs();
                vCHECKPROCESS[] vCPList = new vCHECKPROCESS[CP.Count()];
                int             i       = 0;
                foreach (var item in CP)
                {
                    vCHECKPROCESS vCP = new vCHECKPROCESS();
                    vCP        = GetProcess(item.CheckSN, item.CheckDate, item.CheckID, Shift);
                    vCPList[i] = vCP;
                    i++;
                }

                vCs.vCHECKPROCESS = vCPList.ToList();
                SL.EndDateTime    = DateTime.Now;
                SL.TotalCount     = 1;
                SL.SuccessCount   = 1;
                SL.FailCount      = 0;
                SL.Result         = true;
                SL.Msg            = "建立[" + CheckDate + "]值班人員主畫面資料作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(vCs);
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立[" + CheckDate + "]值班人員主畫面資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(null);
            }
        }
示例#5
0
        public ActionResult Detail(string CheckSN, string CheckDate)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "Detail";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vCHECKPROCESS vCP = GetProcess(CheckSN, CheckDate);
                if (vCP != null)
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckSN + "]明細作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(View(vCP));
                }
                else
                {
                    //沒有檢核項目錯誤
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckSN + "]明細作業失敗,查無明細資料";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得[" + CheckSN + "]明細作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                return(null);
            }
        }
示例#6
0
        // GET: Fun/Edit
        public ActionResult Edit(int SN)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Fun";
            SL.Action        = "Edit";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vFUNC_Manage VFM = new vFUNC_Manage();
                FUNC         F   = context.FUNCS.Find(SN);

                VFM.SN         = F.SN;
                VFM.FId        = F.FId;
                VFM.FuncName   = F.FuncName;
                VFM.PId        = F.PId;
                VFM.Controller = F.Controller;
                VFM.Action     = F.Action;
                VFM.Url        = F.Url;
                VFM.ShowOrder  = F.ShowOrder;
                VFM.IsEnable   = F.IsEnable;

                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得功能資料作業成功,FId:[" + F.FId.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VFM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得功能資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Fun"));
            }
        }
示例#7
0
        public ActionResult Create()
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Role";
            SL.Action        = "Create";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vEPSROLE_Manage VRM   = new vEPSROLE_Manage();
                var             query = from f in context.FUNCS
                                        select new
                {
                    f.FId,
                    f.FuncName
                };

                VRM.Funcs = new SelectList(query, "FId", "FuncName");
                //預設給予登出功能
                VRM.FuncList    = new int[] { 100 };
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "建立角色表單作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VRM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立角色表單作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Role"));
            }
        }
示例#8
0
        /// <summary>
        /// 產生檢核編號
        /// </summary>
        /// <param name="CheckDate">檢核日期</param>
        /// <param name="Count">要產生幾個編號</param>
        /// <param name="initCount">從幾號開始產生</param>
        /// <returns></returns>
        private List <string> GenCheckSN(string CheckDate, int Count, int initCount)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "GenCheckSN";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                List <string> ResutlList = new List <string>();
                for (int i = initCount; i <= Count; i++)
                {
                    char c = '0';
                    ResutlList.Add(CheckDate + i.ToString().PadLeft(2, c));
                }
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = ResutlList.Count();
                SL.SuccessCount = ResutlList.Count();
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "建立[" + CheckDate + "]檢核編號作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(ResutlList);
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立[" + CheckDate + "]檢核編號作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                return(null);
            }
        }
示例#9
0
        //
        // GET: /Fun/Create
        public ActionResult Create()
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Fun";
            SL.Action        = "Create";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vFUNC_Manage VFM = new vFUNC_Manage();
                VFM.PId      = 0;
                VFM.IsEnable = true;

                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "建立角色表單作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VFM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立功能表單作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Fun"));
            }
        }
示例#10
0
        // GET: Fun
        public ActionResult Index()
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Fun";
            SL.Action        = "Index";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                var query = context.FUNCS.ToList();
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = query.Count();
                SL.SuccessCount = query.Count();
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得功能清單作業成功";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(query));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得功能清單作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Login", "Account"));
            }
        }
示例#11
0
        public ActionResult Logout()
        {
            //初始化系統參數
            Configer.Init();

            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Account";
            SL.Action        = "Logout";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                SL.EndDateTime  = DateTime.Now;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "登出作業成功,UId:[" + Session["UserID"].ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                Session.Clear();

                return(RedirectToAction("Login", "Account"));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "登出作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Login", "Account"));
            }
        }
示例#12
0
        public ActionResult Edit(vEPSROLE_Manage VRM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Role";
            SL.Action        = "Edit";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                EPSROLE R = context.EPSROLES.Find(VRM.RId);
                R.RoleName      = VRM.RoleName;
                R.UpadteAccount = Session["UserID"].ToString().Trim();
                R.UpdateTime    = DateTime.Now;
                //取得目前角色擁有的權限
                var query1 = from rm in context.ROLEFUNCMAPPINGS
                             where rm.RId == VRM.RId
                             select new
                {
                    rm.FId
                };
                List <int> TmpList = new List <int>();
                foreach (var item in query1)
                {
                    TmpList.Add(item.FId);
                }

                //取得新增清單
                var addResultList = VRM.FuncList.Except(TmpList);
                //取得移除清單
                var delResultList = TmpList.Except(VRM.FuncList);

                //新增權限作業
                if (addResultList != null)
                {
                    foreach (var item in addResultList)
                    {
                        ROLEFUNCMAPPING RM = new ROLEFUNCMAPPING();
                        RM.RId           = VRM.RId;
                        RM.FId           = item;
                        RM.CreateAccount = Session["UserID"].ToString().Trim();
                        RM.CreateTime    = DateTime.Now;
                        RM.UpadteAccount = Session["UserID"].ToString().Trim();
                        RM.UpdateTime    = DateTime.Now;

                        context.ROLEFUNCMAPPINGS.Add(RM);
                        context.SaveChanges();
                    }
                }

                //移除權限作業
                if (delResultList != null)
                {
                    foreach (var item in delResultList)
                    {
                        ROLEFUNCMAPPING RM = context.ROLEFUNCMAPPINGS.Where(b => b.RId == VRM.RId)
                                             .Where(b => b.FId == item)
                                             .First();
                        context.Entry(RM).State = EntityState.Deleted;
                        context.SaveChanges();
                    }
                }

                context.Entry(R).State = EntityState.Modified;
                context.SaveChanges();

                SL.EndDateTime  = DateTime.Now;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "編輯角色作業成功,RId:[" + VRM.RId.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Role"));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "編輯角色作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["EditMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("Edit", "Role", new { RId = VRM.RId }));
            }
        }
示例#13
0
        // GET: Role/Edit
        public ActionResult Edit(int RId)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Role";
            SL.Action        = "Edit";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vEPSROLE_Manage VRM = new vEPSROLE_Manage();
                EPSROLE         R   = context.EPSROLES.Find(RId);

                VRM.RId      = RId;
                VRM.RoleName = R.RoleName;
                //取得系統提供之所有權限
                var query = from f in context.FUNCS
                            select new
                {
                    f.FId,
                    f.FuncName
                };

                VRM.Funcs = new SelectList(query, "FId", "FuncName");
                //取得目前角色擁有的權限
                var query1 = from rm in context.ROLEFUNCMAPPINGS
                             where rm.RId == RId
                             select new
                {
                    rm.FId
                };
                List <int> TmpList = new List <int>();
                foreach (var item in query1)
                {
                    TmpList.Add(item.FId);
                }

                VRM.FuncList    = TmpList.ToArray();
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得角色資料作業成功,RId:[" + RId.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VRM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得角色資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("Index", "Role"));
            }
        }
示例#14
0
        public ActionResult Create(vEPSROLE_Manage VRM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Role";
            SL.Action        = "Create";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                if (ModelState.IsValid)
                {
                    EPSROLE R = new EPSROLE();
                    R.RoleName      = VRM.RoleName;
                    R.CreateAccount = Session["UserID"].ToString().Trim();
                    R.CreateTime    = DateTime.Now;
                    R.UpadteAccount = Session["UserID"].ToString().Trim();
                    R.UpdateTime    = DateTime.Now;

                    context.EPSROLES.Add(R);
                    context.SaveChanges();

                    foreach (var item in VRM.FuncList)
                    {
                        ROLEFUNCMAPPING RM = new ROLEFUNCMAPPING();
                        RM.RId           = R.RId;
                        RM.FId           = item;
                        RM.CreateAccount = Session["UserID"].ToString().Trim();
                        RM.CreateTime    = DateTime.Now;
                        RM.UpadteAccount = Session["UserID"].ToString().Trim();
                        RM.UpdateTime    = DateTime.Now;

                        context.ROLEFUNCMAPPINGS.Add(RM);
                        context.SaveChanges();
                    }
                    SL.EndDateTime  = DateTime.Now;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "建立使用者作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    //TempData["CreateMsg"] = "<script>alert('新增成功');</script>";

                    return(RedirectToAction("Index", "Role"));
                }
                else
                {
                    TempData["CreateMsg"] = "<script>alert('新增失敗');</script>";

                    return(RedirectToAction("Create", "Role"));
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "建立角色作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["CreateMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("Create", "Role"));
            }
        }
示例#15
0
        /// <summary>
        /// 值班人員簽核
        /// </summary>
        /// <param name="CheckSNs">日常檢核件編號集合</param>
        /// <param name="CheckIDs">機房檢核項目ID集合</param>
        /// <param name="CheckDate">檢核日期</param>
        /// <param name="Shift">班別</param>
        /// <param name="SignedDatas">簽章值集合</param>
        /// <returns></returns>
        public string Confirm(string[] CheckSNs, int[] CheckIDs,
                              string CheckDate, string Shift,
                              string[] SignedDatas)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "Confirm";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                int i = 0;
                foreach (var item in CheckSNs)
                {
                    //取得CHECKPROCESS物件
                    CHECKPROCESS CP = context.CHECKPROCESSES.Find(item);

                    if (CP != null)
                    {
                        //update CHECKPROCESSES
                        EPSUSER U = context.EPSUSERS.Find(Session["UserID"].ToString().Trim());

                        switch (Shift)
                        {
                        //早班
                        case "01":
                            CP.ShiftOne     = U.UserName;
                            CP.ShiftOneSign = SignedDatas[i];
                            CP.CloseStutus  = "早班檢核完畢";
                            break;

                        //晚班
                        case "03":
                            CP.ShiftThree     = U.UserName;
                            CP.ShiftThreeSign = SignedDatas[i];
                            CP.CloseStutus    = "晚班檢核完畢";
                            break;

                        //假日班
                        case "04":
                            CP.ShiftFour     = U.UserName;
                            CP.ShiftFourSign = SignedDatas[i];
                            CP.CloseStutus   = "假日班檢核完畢";
                            break;
                        }

                        CP.UpadteAccount        = Session["UserID"].ToString().Trim();
                        CP.UpdateTime           = DateTime.Now;
                        context.Entry(CP).State = EntityState.Modified;
                        context.SaveChanges();

                        string     CheckTitle = "";
                        CHECKTITLE CT         = context.CHECKTITLES.Find(CheckIDs[i]);
                        if (CT != null)
                        {
                            CheckTitle = CT.Title;
                        }

                        //更新覆核表單
                        var query = context.REVIEWDATAS.Where(b => b.CheckDate == CheckDate);
                        if (query.Count() > 0)
                        {
                            foreach (var q in query.ToList())
                            {
                                if (q.ListName == "事件描述及行動" || q.ListName == "交接事項")
                                {
                                    if (Shift == "01")
                                    {
                                        q.ShiftOneChecked = "";
                                    }
                                    else if (Shift == "03")
                                    {
                                        q.ShiftTrheeChecked = "";
                                    }
                                    else if (Shift == "04")
                                    {
                                        q.ShiftFourChecked = "";
                                    }
                                }
                                else
                                {
                                    var query01 = context.CHECKLISTS.Where(b => b.ShiftID == Shift)
                                                  .Where(b => b.ListName == q.ListName);

                                    if (query01.Count() > 0)
                                    {
                                        if (Shift == "01")
                                        {
                                            if (getCheckReuslt(CheckDate, Shift, q.ListName))
                                            {
                                                q.ShiftOneChecked = "正常";
                                            }
                                            else
                                            {
                                                q.ShiftOneChecked = "異常";
                                            }
                                        }
                                        else if (Shift == "03")
                                        {
                                            if (getCheckReuslt(CheckDate, Shift, q.ListName))
                                            {
                                                q.ShiftTrheeChecked = "正常";
                                            }
                                            else
                                            {
                                                q.ShiftTrheeChecked = "異常";
                                            }
                                        }
                                        else if (Shift == "04")
                                        {
                                            if (getCheckReuslt(CheckDate, Shift, q.ListName))
                                            {
                                                q.ShiftFourChecked = "正常";
                                            }
                                            else
                                            {
                                                q.ShiftFourChecked = "異常";
                                            }
                                        }
                                    }
                                }

                                q.UpadteAccount        = Session["UserID"].ToString().Trim();
                                q.UpdateTime           = DateTime.Now;
                                context.Entry(q).State = EntityState.Modified;
                                context.SaveChanges();
                            }
                        }
                        else
                        {
                            //沒有覆核表單
                        }
                    }

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "確認[" + item + "]作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                }
                i++;

                if (Shift == "03" || Shift == "04")
                {
                    bool   CanNotify   = true;
                    string CloseStutus = "";
                    var    queryCP     = context.CHECKPROCESSES.Where(b => b.CheckDate == CheckDate);
                    foreach (var item1 in queryCP.ToList())
                    {
                        if (Shift == "03")
                        {
                            CloseStutus = "晚班檢核完畢";
                            if (item1.ShiftOne == "" || item1.ShiftThree == "")
                            {
                                CanNotify = false;
                                break;
                            }
                        }
                        else if (Shift == "04")
                        {
                            CloseStutus = "假日班檢核完畢";
                            if (item1.ShiftFour == "")
                            {
                                CanNotify = false;
                                break;
                            }
                        }
                    }

                    if (CanNotify)
                    {
                        //通知下一位負責人
                        SF.emailNotify2ReviewbyDate(CloseStutus, Session["UserID"].ToString(),
                                                    CheckDate, "覆核");
                    }
                }
                return("確認成功");
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "確認作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return("確認失敗");
            }
        }
示例#16
0
        /// <summary>
        /// 項目檢核
        /// </summary>
        /// <param name="CheckSN">日常檢核件編號</param>
        /// <param name="CheckID">機房檢核項目ID</param>
        /// <param name="ListID">檢核項目ID</param>
        /// <param name="CheckResult">檢核結果</param>
        /// <param name="CheckDate">檢核日期</param>
        /// <param name="ShiftID">班別</param>
        /// <returns></returns>
        public string Check(string CheckSN, int CheckID,
                            int ListID, string CheckResult,
                            string CheckDate, string Shift)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "GetProcess";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                string Title     = context.CHECKTITLES.Find(CheckID).Title;
                string CheckName = context.CHECKLISTS.Find(ListID).Definition;

                CHECKLIST CL = context.CHECKLISTS.Find(ListID);

                if (CL.ShiftID == "00")
                {
                    Shift = "00";
                }

                //檢查CHECKPROCESS有沒有資料
                var query = context.CHECKPROCESSDETAILS.Where(b => b.ListID == ListID)
                            .Where(b => b.CheckSN == CheckSN)
                            .Where(b => b.CheckID == CheckID)
                            .Where(b => b.CheckDate == CheckDate)
                            .Where(b => b.ShiftID == Shift);

                if (query.Count() > 0)
                {
                    //update CHECKPROCESSDETAILS
                    CHECKPROCESSDETAIL CPD = context.CHECKPROCESSDETAILS.Where(b => b.ListID == ListID)
                                             .Where(b => b.CheckSN == CheckSN)
                                             .Where(b => b.CheckID == CheckID)
                                             .Where(b => b.CheckDate == CheckDate)
                                             .Where(b => b.ShiftID == Shift).First();

                    CPD.CheckResult          = CheckResult;
                    CPD.UpadteAccount        = Session["UserID"].ToString().Trim();
                    CPD.UpdateTime           = DateTime.Now;
                    context.Entry(CPD).State = EntityState.Modified;
                    context.SaveChanges();

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckSN + "]檢核[" + Title + "][" + CheckName + "]作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("檢核成功");
                }
                else
                {
                    //insert CHECKPROCESSDETAILS
                    CHECKPROCESSDETAIL newCPD = new CHECKPROCESSDETAIL();
                    newCPD.CheckSN       = CheckSN;
                    newCPD.CheckID       = CheckID;
                    newCPD.ListID        = ListID;
                    newCPD.ShiftID       = Shift;
                    newCPD.CheckDate     = CheckDate;
                    newCPD.CheckResult   = CheckResult;
                    newCPD.CreateAccount = Session["UserID"].ToString().Trim();
                    newCPD.CreateTime    = DateTime.Now;
                    newCPD.UpadteAccount = Session["UserID"].ToString().Trim();
                    newCPD.UpdateTime    = DateTime.Now;

                    context.CHECKPROCESSDETAILS.Add(newCPD);
                    context.SaveChanges();

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckSN + "]檢核[" + Title + "][" + CheckName + "]作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("檢核成功");
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "[" + CheckSN + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return("檢核失敗");
            }
        }
示例#17
0
        /// <summary>
        /// 建立覆核表單
        /// </summary>
        /// <param name="CheckDate">檢核日期</param>
        private void GenReviewData(string CheckDate)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "GenReviewData";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                var query = context.CHECKPROCESSES.Where(b => b.CheckDate == CheckDate).ToList();

                foreach (var q in query)
                {
                    var ListNames = context.CHECKLISTS.Where(b => b.CheckID == q.CheckID).Select(m => new { m.ListName, m.ShowOrder }).Distinct().OrderBy(c => c.ShowOrder);
                    foreach (var item in ListNames.ToList())
                    {
                        REVIEWDATA RD = new REVIEWDATA();
                        RD.CheckDate         = CheckDate;
                        RD.CheckSN           = q.CheckSN;
                        RD.ListName          = item.ListName;
                        RD.ShiftOneChecked   = "N/A";
                        RD.ShiftTrheeChecked = "N/A";
                        RD.ShiftFourChecked  = "N/A";
                        RD.CreateAccount     = "System";
                        RD.CreateTime        = DateTime.Now;
                        RD.UpadteAccount     = "System";
                        RD.UpdateTime        = DateTime.Now;

                        context.REVIEWDATAS.Add(RD);
                        context.SaveChanges();
                    }

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = ListNames.Count();
                    SL.SuccessCount = ListNames.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "建立[" + CheckDate + "]覆核表單作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立[" + CheckDate + "]覆核表單作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
            }
        }
示例#18
0
        private vSystemLog getSystemLog(string nowUser, DateTime STime, DateTime ETime, string nowResult, int CurrentPage)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Log";
            SL.Action        = "getSystemLog";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            vSystemLog vSL = new vSystemLog();

            try
            {
                Expression <Func <SYSTEMLOG, bool> > SystemLogUserWhereCondition;
                if (nowUser != "-1")
                {
                    SystemLogUserWhereCondition = b => b.UId == nowUser;
                }
                else
                {
                    SystemLogUserWhereCondition = b => 1 == 1;
                }

                Expression <Func <SYSTEMLOG, bool> > SystemLogResultWhereCondition;
                if (nowResult != "-1")
                {
                    bool x = bool.Parse(nowResult);
                    SystemLogResultWhereCondition = b => b.Result == x;
                }
                else
                {
                    SystemLogResultWhereCondition = b => 1 == 1;
                }

                var query = context.SYSTEMLOG.Where(SystemLogUserWhereCondition)
                            .Where(SystemLogResultWhereCondition)
                            .Where(b => b.StartDateTime >= STime)
                            .Where(b => b.EndDateTime <= ETime)
                            .OrderBy(b => b.StartDateTime);

                if (query.Count() > 0)
                {
                    var SystemLogList = query.ToPagedList(CurrentPage, Configer.NumofgridviewPage_perrows);

                    vSL.SYSTEMLOGList = SystemLogList;
                    vSL.nowUser       = nowUser;
                    vSL.PageIndex     = CurrentPage;
                    vSL.nowResult     = nowResult;
                    vSL.UserList      = SF.getUserList(nowUser);

                    // Adds the empty item at the top of the list
                    List <SelectListItem> ResultListItmes = new List <SelectListItem>();
                    ResultListItmes.Add(new SelectListItem
                    {
                        Text  = "全部",
                        Value = "-1"
                    });
                    ResultListItmes.Add(new SelectListItem
                    {
                        Text  = "成功",
                        Value = "true"
                    });
                    ResultListItmes.Add(new SelectListItem
                    {
                        Text  = "失敗",
                        Value = "false"
                    });
                    vSL.ResultList = ResultListItmes;

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = query.Count();
                    SL.SuccessCount = query.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得系統紀錄作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(vSL);
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得系統紀錄作業成功,本次查詢無資料";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得系統紀錄作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(null);
            }
        }
示例#19
0
        /// <summary>
        /// 取得vCHECKPROCESS模型
        /// </summary>
        /// <param name="CheckSN">檢核編號</param>
        /// <param name="CheckDate">檢核日期</param>
        /// <param name="CheckID">檢核項目代號</param>
        /// <param name="Shift">班別代號</param>
        /// <returns></returns>
        private vCHECKPROCESS GetProcess(string CheckSN, string CheckDate, int CheckID, string Shift)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Process";
            SL.Action        = "GetProcess";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vCHECKPROCESS vCP = new vCHECKPROCESS();
                vCP.CheckSN   = CheckSN;
                vCP.CheckDate = CheckDate;
                CHECKTITLE CT = context.CHECKTITLES.Find(CheckID);
                vCP.Title   = CT.Title;
                vCP.CheckID = CT.CheckID;

                var query = from cp in context.CHECKPROCESSES
                            where cp.CheckSN == CheckSN
                            where cp.CheckDate == CheckDate
                            join cl in context.CHECKLISTS on cp.CheckID equals cl.CheckID
                            join cd in context.CHECKPROCESSDETAILS.Where(b => b.CheckDate == CheckDate)
                            on cl.ListID equals cd.ListID into x
                            from y in x.DefaultIfEmpty()
                            select new vCHECKDETAIL
                {
                    ListID      = cl.ListID,
                    CheckID     = cl.CheckID,
                    ListName    = cl.ListName,
                    CheckType   = cl.CheckType,
                    Shift       = cl.ShiftID,
                    Charger     = cl.ChargerID,
                    StartTime   = cl.StartTime,
                    EndTime     = cl.EndTime,
                    CheckResult = y.CheckResult,
                    CloseStatus = cp.CloseStutus
                };

                if (query.Count() > 0)
                {
                    //根據班別挑出檢核項目
                    var Shifts = new string[] { "00", Shift };
                    query = query.Where(b => Shifts.Contains(b.Shift));

                    //取得特定角色下的使用者清單
                    int RId = Convert.ToInt32(Session["UserRole"].ToString());

                    //只有OPManager角色需要處理
                    if (RId == 3)
                    {
                        //依據負責人挑出檢核項目
                        var Users = context.EPSUSERS.Where(b => b.RId == RId).Select(b => b.UId).ToList();
                        SF.logandshowInfo("Users:" + Users.ToString(), log_Info);
                        int C = query.Where(b => Users.Contains(b.Charger)).Count();
                        SF.logandshowInfo("C:" + C.ToString(), log_Info);
                        if (C > 0)
                        {
                            query = query.Where(b => Users.Contains(b.Charger));
                        }
                    }

                    vCP.vCHECKDETAILs = query.OrderBy(b => b.StartTime).ToList();
                    SL.EndDateTime    = DateTime.Now;
                    SL.TotalCount     = query.Count();
                    SL.SuccessCount   = query.Count();
                    SL.FailCount      = 0;
                    SL.Result         = true;
                    SL.Msg            = "取得[" + CheckSN + "]檢核流程作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    return(vCP);
                }
                else
                {
                    //沒有檢核項目錯誤
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckSN + "]檢核流程作業失敗,沒有對應檢核項目";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得[" + CheckSN + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                return(null);
            }
        }
示例#20
0
        public ActionResult EditItem(vCHECKLIST_Manage VCLM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Document";
            SL.Action        = "EditItem";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                if (ModelState.IsValid)
                {
                    CHECKLIST nowCL = context.CHECKLISTS.Find(VCLM.ListID);
                    //nowCL.ListID = CL.ListID;
                    nowCL.CheckID       = VCLM.CheckID;
                    nowCL.ListName      = VCLM.ListName;
                    nowCL.Definition    = VCLM.Definition;
                    nowCL.StartTime     = VCLM.StartTime;
                    nowCL.EndTime       = VCLM.EndTime;
                    nowCL.ShiftID       = VCLM.ShiftID;
                    nowCL.ClassID       = VCLM.ClassID;
                    nowCL.CheckType     = VCLM.CheckType;
                    nowCL.AlwaysShow    = VCLM.AlwaysShow;
                    nowCL.ChargerID     = VCLM.ChargerID;
                    nowCL.ShowOrder     = VCLM.ShowOrder;
                    nowCL.UpadteAccount = Session["UserID"].ToString().Trim();;
                    nowCL.UpdateTime    = DateTime.Now;

                    context.Entry(nowCL).State = EntityState.Modified;
                    context.SaveChanges();

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "編輯檢核項目作業成功,ListID:[" + VCLM.ListID + "]";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    //string Title = context.CHECKTITLES.Find(VCLM.CheckID).Title;

                    return(RedirectToAction("ListItem", "Document", new { CheckID = VCLM.CheckID, Title = VCLM.CheckTitle }));
                }
                else
                {
                    TempData["EditMsg"] = "<script>alert('編輯失敗');</script>";

                    return(RedirectToAction("EditItem", "Document", new { ListID = VCLM.ListID }));
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "編輯檢核項目作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["EditMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("EditItem", "Document", new { ListID = VCLM.ListID }));
            }
        }
示例#21
0
        /// <summary>
        /// 簽核
        /// </summary>
        /// <param name="CheckSNs"></param>
        /// <param name="CheckDates"></param>
        /// <param name="SignedData"></param>
        /// <returns></returns>
        public string Confirm(List <string> CheckSNs, List <string> CheckDates, string SignedData)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "Confirm";
            SL.StartDateTime = DateTime.Now;

            string UId = Session["UserID"].ToString();

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            int  TotalCount   = 0;
            int  SuccessCount = 0;
            int  FailCount    = 0;
            bool ReviewOK     = true;

            try
            {
                string CloseStutus = "";
                TotalCount = CheckSNs.Count();
                foreach (var item in CheckSNs)
                {
                    CHECKPROCESS CP = context.CHECKPROCESSES.Find(item);

                    if (CP != null)
                    {
                        //update CHECKPROCESSES
                        EPSUSER U    = context.EPSUSERS.Find(UId);
                        int     Role = U.RId;// int.Parse(UId);

                        switch (Role)
                        {
                        //機房領班
                        case 3:
                            CP.ShiftTop     = U.UserName;
                            CP.ShiftTopSign = SignedData;
                            CP.CloseStutus  = "領班覆核完畢";
                            CloseStutus     = "領班覆核完畢";
                            break;

                        //主管
                        case 4:
                            CP.ManageOne     = U.UserName;
                            CP.ManageOneSign = SignedData;
                            CP.CloseStutus   = "主管覆核完畢";
                            CloseStutus      = "主管覆核完畢";
                            break;

                        //系統部主管
                        case 5:
                            CP.ManageTop     = U.UserName;
                            CP.ManageTopSign = SignedData;
                            CP.CloseStutus   = "已結案";
                            CloseStutus      = "已結案";
                            break;
                        }

                        CP.UpadteAccount        = UId;
                        CP.UpdateTime           = DateTime.Now;
                        context.Entry(CP).State = EntityState.Modified;
                        context.SaveChanges();
                        SuccessCount += 1;

                        SL.EndDateTime  = DateTime.Now;
                        SL.TotalCount   = 1;
                        SL.SuccessCount = 1;
                        SL.FailCount    = 0;
                        SL.Result       = false;
                        SL.Msg          = "覆核[" + item + "]作業成功";
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    }
                    else
                    {
                        FailCount      += 1;
                        ReviewOK        = false;
                        SL.EndDateTime  = DateTime.Now;
                        SL.TotalCount   = 1;
                        SL.SuccessCount = 0;
                        SL.FailCount    = 1;
                        SL.Result       = false;
                        SL.Msg          = "覆核[" + item + "]作業失敗,查無檢核流程資料";
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    }
                }

                if (ReviewOK)
                {
                    //通知下一位負責人,已結案則通知機房領班、機房主管、系統部主管
                    if (CloseStutus == "已結案")
                    {
                        SF.emailNotify2ClosebyDate(CloseStutus, UId,
                                                   CheckDates[0].ToString(), CloseStutus);
                    }
                    else
                    {
                        SF.emailNotify2ReviewbyDate(CloseStutus, UId,
                                                    CheckDates[0].ToString(), "覆核");
                    }
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = TotalCount;
                    SL.SuccessCount = SuccessCount;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckDates[0].ToString() + "]覆核作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("全部覆核成功");
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = TotalCount;
                    SL.SuccessCount = SuccessCount;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckDates[0].ToString() + "]覆核作業失敗";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("有" + FailCount.ToString() + "筆資料覆核失敗");
                }
            }
            catch (Exception ex)
            {
                ReviewOK        = false;
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = CheckSNs.Count();
                SL.SuccessCount = 0;
                SL.FailCount    = CheckSNs.Count();
                SL.Result       = false;
                SL.Msg          = "覆核作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return("覆核發生異常");
            }
        }
示例#22
0
        /// <summary>
        /// 駁回
        /// </summary>
        /// <param name="CheckSNs"></param>
        /// <param name="CheckDates"></param>
        /// <param name="Reason"></param>
        /// <returns></returns>
        public string Reject(List <string> CheckSNs, List <string> CheckDates, string Reason)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "Reject";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            int  TotalCount   = 0;
            int  SuccessCount = 0;
            int  FailCount    = 0;
            bool RejectOK     = true;

            try
            {
                TotalCount = CheckSNs.Distinct().Count();
                foreach (var item in CheckSNs.Distinct())
                {
                    CHECKPROCESS CP = context.CHECKPROCESSES.Find(item);
                    REJECTREASON RR = new REJECTREASON();

                    if (CP != null)
                    {
                        CP.CloseStutus          = "檢查中";
                        CP.UpadteAccount        = Session["UserID"].ToString().Trim();
                        CP.UpdateTime           = DateTime.Now;
                        context.Entry(CP).State = EntityState.Modified;

                        RR.CheckSN       = item;
                        RR.Reason        = Reason;
                        RR.CreateAccount = Session["UserID"].ToString().Trim();
                        RR.CreateTime    = DateTime.Now;
                        context.REJECTREASONS.Add(RR);
                        context.SaveChanges();

                        SuccessCount   += 1;
                        SL.EndDateTime  = DateTime.Now;
                        SL.TotalCount   = 1;
                        SL.SuccessCount = 1;
                        SL.FailCount    = 0;
                        SL.Result       = false;
                        SL.Msg          = "駁回[" + item + "]作業成功";
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    }
                    else
                    {
                        FailCount      += 1;
                        RejectOK        = false;
                        SL.EndDateTime  = DateTime.Now;
                        SL.TotalCount   = 1;
                        SL.SuccessCount = 0;
                        SL.FailCount    = 1;
                        SL.Result       = false;
                        SL.Msg          = "駁回[" + item + "]作業失敗,查無檢核流程資料";
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    }
                }

                if (RejectOK)
                {
                    int    Role        = int.Parse(Session["UserRole"].ToString());
                    string CloseStutus = "";
                    ////通知下一位負責人
                    switch (Role)
                    {
                    //機房領班
                    case 3:
                        CloseStutus = "領班駁回";
                        break;

                    //主管
                    case 4:
                        CloseStutus = "主管駁回";
                        break;

                    //系統部主管
                    case 5:
                        CloseStutus = "系統部主管駁回";
                        break;
                    }

                    SF.emailNotify2RejectbyDate(CloseStutus, Session["UserID"].ToString(),
                                                CheckDates[0].ToString());
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = TotalCount;
                    SL.SuccessCount = SuccessCount;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckDates[0].ToString() + "]駁回作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("全部駁回成功");
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = TotalCount;
                    SL.SuccessCount = SuccessCount;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "[" + CheckDates[0].ToString() + "]駁回作業失敗";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return("有" + FailCount.ToString() + "筆資料駁回失敗");
                }
            }
            catch (Exception ex)
            {
                RejectOK        = false;
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = CheckSNs.Count();
                SL.SuccessCount = 0;
                SL.FailCount    = CheckSNs.Count();
                SL.Result       = false;
                SL.Msg          = "駁回作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return("駁回發生異常");
            }
        }
示例#23
0
        /// <summary>
        /// 取得vCHECKPROCESS模型
        /// </summary>
        /// <param name="CheckSN">檢核編號</param>
        /// <param name="CheckDate">檢核日期</param>
        /// <returns></returns>
        private vCHECKPROCESS GetProcess(string CheckSN, string CheckDate)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "GetProcess";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vCHECKPROCESS vCP = new vCHECKPROCESS();
                vCP.CheckSN   = CheckSN;
                vCP.CheckDate = CheckDate;
                int        CheckID = context.CHECKPROCESSES.Find(CheckSN).CheckID;
                CHECKTITLE CT      = context.CHECKTITLES.Find(CheckID);
                vCP.Title = CT.Title;

                var query = from cp in context.CHECKPROCESSES
                            where cp.CheckSN == CheckSN
                            where cp.CheckDate == CheckDate
                            join cd in context.CHECKPROCESSDETAILS.Where(b => b.CheckDate == CheckDate) on cp.CheckID equals cd.CheckID
                            join cl in context.CHECKLISTS on cd.ListID equals cl.ListID into x
                            from y in x.DefaultIfEmpty()
                            select new vCHECKDETAIL
                {
                    ListID      = y.ListID,
                    CheckID     = y.CheckID,
                    ListName    = y.ListName,
                    CheckType   = y.CheckType,
                    Shift       = y.ShiftID,
                    StartTime   = y.StartTime,
                    EndTime     = y.EndTime,
                    CheckResult = cd.CheckResult,
                    CloseStatus = cp.CloseStutus
                };

                if (query.Count() > 0)
                {
                    //根據班別挑出檢核項目
                    //var Shifts = new string[] { "00", Shift };
                    //query = query.Where(b => Shifts.Contains(b.Shift));

                    vCP.vCHECKDETAILs = query.OrderBy(b => b.StartTime).ToList();
                    SL.EndDateTime    = DateTime.Now;
                    SL.TotalCount     = query.Count();
                    SL.SuccessCount   = query.Count();
                    SL.FailCount      = 0;
                    SL.Result         = true;
                    SL.Msg            = "取得[" + CheckSN + "]檢核流程作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    return(vCP);
                }
                else
                {
                    //沒有檢核項目錯誤
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckSN + "]檢核流程作業失敗,沒有對應檢核項目";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得[" + CheckSN + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                return(null);
            }
        }
示例#24
0
        public ActionResult Summary(string CheckDate)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "Summary";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                vReviewSummary vRS = new vReviewSummary();
                vRS.CheckDate = CheckDate;
                string CheckSN = CheckDate + "01";
                vRS.EventItem    = context.CHECKPROCESSDETAILS.Where(b => b.CheckSN == CheckSN).Where(b => b.ListID == 1).First().CheckResult;
                vRS.HandoverItem = context.CHECKPROCESSDETAILS.Where(b => b.CheckSN == CheckSN).Where(b => b.ListID == 2).First().CheckResult;
                var query01 = context.CHECKPROCESSES.Where(b => b.CheckDate == CheckDate).Where(b => b.CheckID == 1);
                if (query01.Count() > 0)
                {
                    vRS.ShiftOne   = query01.First().ShiftOne;
                    vRS.ShiftThree = query01.First().ShiftThree;
                    vRS.ShiftFour  = query01.First().ShiftFour;
                    vRS.ShiftTop   = query01.First().ShiftTop;
                    vRS.ManageOne  = query01.First().ManageOne;
                    vRS.ManageTop  = query01.First().ManageTop;
                }


                var query = context.REVIEWDATAS.Where(b => b.CheckDate == CheckDate);
                //.Where(b=>b.ListName!= "事件描述及行動").Where(b=>b.ListName != "交接事項");
                if (query.Count() > 0)
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = query.Count();
                    SL.SuccessCount = query.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckDate + "]覆核資料作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    DateTime parsed;
                    string   parsedTime = "取得檢核件時間錯誤";
                    if (DateTime.TryParseExact(CheckDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
                    {
                        parsedTime = parsed.ToString("yyyy-MM-dd");
                    }

                    TempData["TitleText"] = parsedTime + " 檢核資料";
                    vRS.RD = query.ToList();
                    return(View(vRS));
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = query.Count();
                    SL.SuccessCount = query.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[" + CheckDate + "]覆核資料作業失敗," + "錯誤訊息[找不到待覆核資料]";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得[" + CheckDate + "]覆核資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(null);
            }
        }
示例#25
0
        // GET: Review
        public ActionResult Index()
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Review";
            SL.Action        = "Index";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            //int RoleID = Int32.Parse(Session["UserRole"].ToString());
            string RoleID = Session["UserRole"].ToString();

            try
            {
                var query = from rp in context.REVIEWPROFILES.Where(b => b.NextReviews == RoleID)
                            join cp in context.CHECKPROCESSES.Where(b => b.CloseStutus != "檢查中")
                            .Where(b => b.CloseStutus != "早班檢核完畢")
                            on rp.CloseStauts equals cp.CloseStutus
                            join ct in context.CHECKTITLES on cp.CheckID equals ct.CheckID into x
                            from y in x.DefaultIfEmpty()
                            select new vReview
                {
                    CheckSN     = cp.CheckSN,
                    CheckDate   = cp.CheckDate,
                    Title       = y.Title,
                    CloseStutus = cp.CloseStutus,
                    ShiftOne    = cp.ShiftOne,
                    ShiftThree  = cp.ShiftThree,
                    ShiftFour   = cp.ShiftFour,
                    ShiftTop    = cp.ShiftTop,
                    ManageOne   = cp.ManageOne,
                    ManageTop   = cp.ManageTop
                };

                if (query.Count() > 0)
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = query.Count();
                    SL.SuccessCount = query.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[待覆核資料]流程作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(View(query.OrderBy(b => b.CheckSN).ToList()));
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "取得[待覆核資料]流程作業成功,目前無待覆核資料";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(null);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "取得[待覆核資料]流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(null);
            }
        }
示例#26
0
        public ActionResult Create(vFUNC_Manage VFM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Fun";
            SL.Action        = "Create";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                if (ModelState.IsValid)
                {
                    FUNC F = new FUNC();
                    F.FId           = VFM.FId;
                    F.FuncName      = VFM.FuncName;
                    F.Controller    = VFM.Controller;
                    F.Action        = VFM.Action;
                    F.Url           = VFM.Url;
                    F.PId           = VFM.PId;
                    F.ShowOrder     = VFM.ShowOrder;
                    F.IsEnable      = VFM.IsEnable;
                    F.CreateAccount = Session["UserID"].ToString().Trim();
                    F.CreateTime    = DateTime.Now;
                    F.UpadteAccount = Session["UserID"].ToString().Trim();
                    F.UpdateTime    = DateTime.Now;

                    context.FUNCS.Add(F);
                    context.SaveChanges();

                    SL.EndDateTime  = DateTime.Now;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "建立功能作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    //TempData["CreateMsg"] = "<script>alert('新增成功');</script>";

                    return(RedirectToAction("Index", "Fun"));
                }
                else
                {
                    TempData["CreateMsg"] = "<script>alert('新增失敗');</script>";

                    return(RedirectToAction("Create", "Fun"));
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "建立功能作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["CreateMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("Create", "Fun"));
            }
        }
示例#27
0
        public ActionResult Login(LoginInfo model)
        {
            //初始化系統參數
            Configer.Init();

            AD             AD           = new AD();
            VA             VA           = new VA();
            LoginProcessor LP           = new LoginProcessor();
            bool           UseCertLogin = false;
            string         LDAPName     = Configer.LDAPName;
            //string VAVerifyURL = WebConfigurationManager.AppSettings["VAVerifyURL"];
            //string ConnStr = Configer.C_DBConnstring;
            Boolean ContinueLogin = true;

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = model.UserID;
            SL.Controller    = "Account";
            SL.Action        = "Login";
            SL.StartDateTime = DateTime.Now;
            SL.TotalCount    = 1;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            //string SendResult = string.Empty;

            if (ModelState.IsValid)
            {
                if (LDAPName == "")
                {
                    //缺少系統參數,需記錄錯誤
                    SL.EndDateTime  = DateTime.Now;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 1;
                    SL.Msg          = "登入作業失敗,錯誤訊息:[缺少系統參數LDAPName]";
                    SL.Result       = false;
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    ContinueLogin = false;
                }
                if (ContinueLogin)
                {
                    AD.UserName  = model.UserID;
                    AD.Pwd       = model.Pwd;
                    AD.validType = AD.ValidType.Domain;
                    AD.LDAPName  = LDAPName;

                    //VA.SignData = model.SignData;
                    //VA.Plaintext = model.Plaintext;
                    //VA.txnCode = "TxnCode";
                    //VA.VAVerifyURL = VAVerifyURL;
                    //VA.Tolerate = 120;

                    DateTime LoginStartTime = DateTime.Now;
                    SF.logandshowInfo("登入開始@" + LoginStartTime.ToString(Configer.SystemDateTimeFormat), log_Info);
                    bool     LoginResult  = LP.DoLogin(UseCertLogin, AD, VA);
                    DateTime LoginEndTime = DateTime.Now;
                    SF.logandshowInfo("登入結束@" + LoginEndTime.ToString(Configer.SystemDateTimeFormat), log_Info);
                    string LoginSpanTime = OtherProcesser.TimeDiff(LoginStartTime, LoginEndTime, "Milliseconds");
                    SF.logandshowInfo("本次登入共花費@" + LoginSpanTime + "毫秒", log_Info);

                    if (LoginResult == true)
                    {
                        //登入成功,需紀錄
                        SL.EndDateTime  = DateTime.Now;
                        SL.SuccessCount = 1;
                        SL.FailCount    = 0;
                        SL.Msg          = "登入成功";
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                        Session["UseCertLogin"] = UseCertLogin;
                        //Session["UseCertLogin"] = true;
                        Session["UserID"] = model.UserID;
                        //Session["UserID"] = "TAS191";
                        int UserRole = SF.getUserRole(model.UserID);
                        Session["UserRole"] = UserRole;

                        //主管導向覆核頁面
                        if (UserRole > 3)
                        {
                            return(RedirectToAction("Index", "Review"));
                        }
                        else
                        {
                            //導向檢查頁面
                            return(RedirectToAction("Index", "Process"));
                        }
                    }
                    else
                    {
                        //string a=VA.ResultStr;

                        //登入失敗,需記錄錯誤
                        SL.EndDateTime = DateTime.Now;
                        SL.FailCount   = 1;
                        if (UseCertLogin)
                        {
                            SL.Msg = "登入失敗,錯誤訊息:[AD或VA驗證失敗]";
                        }
                        else
                        {
                            SL.Msg = "登入失敗,錯誤訊息:[AD驗證失敗]";
                        }
                        SL.Result = false;
                        SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                        TempData["LoginMsg"] = SL.Msg;

                        return(RedirectToAction("Login", "Account"));
                    }
                }
                else
                {
                    TempData["LoginMsg"] = "登入失敗,錯誤訊息:[系統登入參數遺失]";
                    return(RedirectToAction("Login", "Account"));
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
示例#28
0
        /// <summary>
        /// 產生CHECKPROCESS資料
        /// </summary>
        /// <param name="CheckSNList">檢核編號清單</param>
        /// <param name="CheckDate">檢核日期</param>
        /// <returns></returns>
        private bool GenCheckProcess(List <string> CheckSNList, string CheckDate)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = "System";
            SL.Controller    = "Process";
            SL.Action        = "GenCheckProcess";
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            bool Result = true;

            try
            {
                var CT = context.CHECKTITLES.ToList();

                if (CheckSNList != null)
                {
                    //產生CHECKPROCESS
                    int i = 0;
                    foreach (var item in CT)
                    {
                        CHECKPROCESS newCP = new CHECKPROCESS();
                        newCP.CheckSN       = CheckSNList[i];
                        newCP.CheckID       = item.CheckID;
                        newCP.CheckDate     = CheckDate;
                        newCP.CloseStutus   = "檢查中";
                        newCP.CreateAccount = "System";
                        newCP.CreateTime    = DateTime.Now;
                        newCP.UpadteAccount = "System";
                        newCP.UpdateTime    = DateTime.Now;
                        newCP.CheckDate     = CheckDate;
                        context.CHECKPROCESSES.Add(newCP);
                        context.SaveChanges();

                        i++;
                    }
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = CheckSNList.Count();
                    SL.SuccessCount = CheckSNList.Count();
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "建立[" + CheckDate + "]檢核流程作業成功";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    return(Result);
                }
                else
                {
                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 0;
                    SL.SuccessCount = 0;
                    SL.FailCount    = 0;
                    SL.Result       = false;
                    SL.Msg          = "建立[" + CheckDate + "]檢核流程作業失敗," + "錯誤訊息[無檢核編號]";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                    Result = false;

                    return(Result);
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 0;
                SL.SuccessCount = 0;
                SL.FailCount    = 0;
                SL.Result       = false;
                SL.Msg          = "建立[" + CheckDate + "]檢核流程作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);
                Result = false;

                return(Result);
            }
        }
示例#29
0
        public ActionResult Edit(vEPSUSER_Manage VUM)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Account";
            SL.Action        = "Create";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                if (ModelState.IsValid)
                {
                    EPSUSER U = context.EPSUSERS.Find(VUM.UId);
                    U.UserPwd              = VUM.UserPwd;
                    U.UserEmail            = VUM.UserEmail;
                    U.RId                  = VUM.RId;
                    U.UpadteAccount        = Session["UserID"].ToString().Trim();
                    U.UpdateTime           = DateTime.Now;
                    context.Entry(U).State = EntityState.Modified;
                    context.SaveChanges();

                    SL.EndDateTime  = DateTime.Now;
                    SL.TotalCount   = 1;
                    SL.SuccessCount = 1;
                    SL.FailCount    = 0;
                    SL.Result       = true;
                    SL.Msg          = "編輯使用者資料作業成功,UId:[" + VUM.UId + "]";
                    SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                    //TempData["EditMsg"] = "<script>alert('編輯成功');</script>";

                    return(RedirectToAction("Index", "Account"));
                }
                else
                {
                    TempData["EditMsg"] = "<script>alert('編輯失敗');</script>";

                    return(RedirectToAction("Edit", "Account", new { UId = VUM.UId }));
                }
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "編輯使用者作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                TempData["EditMsg"] = "<script>alert('發生異常');</script>";

                return(RedirectToAction("Edit", "Account", new { UId = VUM.UId }));
            }
        }
示例#30
0
        public ActionResult EditItem(int ListID)
        {
            //初始化系統參數
            Configer.Init();

            //Log記錄用
            SYSTEMLOG SL = new SYSTEMLOG();

            SL.UId           = Session["UserID"].ToString();
            SL.Controller    = "Document";
            SL.Action        = "EditItem";
            SL.TotalCount    = 1;
            SL.StartDateTime = DateTime.Now;

            string        MailServer     = Configer.MailServer;
            int           MailServerPort = Configer.MailServerPort;
            string        MailSender     = Configer.MailSender;
            List <string> MailReceiver   = Configer.MailReceiver;

            try
            {
                CHECKLIST         CL   = context.CHECKLISTS.Find(ListID);
                CHECKTITLE        CT   = context.CHECKTITLES.Find(CL.CheckID);
                vCHECKLIST_Manage VCTM = new vCHECKLIST_Manage();

                VCTM.CheckTitle     = CT.Title;
                VCTM.CheckID        = CL.CheckID;
                VCTM.ListName       = CL.ListName;
                VCTM.Definition     = CL.Definition;
                VCTM.CheckTitle     = CT.Title;
                TempData["CheckID"] = CL.CheckID;
                TempData["Title"]   = CT.Title;

                //取得班別清單
                var query1 = from s in context.CHECKSHIFTS
                             select new
                {
                    s.ShiftID,
                    s.ShiftValue
                };
                VCTM.ShiftID     = CL.ShiftID;
                VCTM.ShiftIDList = new SelectList(query1, "ShiftID", "ShiftValue");

                //取得分類清單
                var query2 = from c in context.CHECKCLASSES
                             select new
                {
                    c.ClassID,
                    c.ClassValue
                };
                VCTM.ClassID     = CL.ClassID;
                VCTM.ClassIDList = new SelectList(query2, "ClassID", "ClassValue");

                //取得負責人清單
                var query = from u in context.EPSUSERS
                            select new
                {
                    u.UId,
                    u.UserName
                };
                VCTM.ChargerID   = CL.ChargerID;
                VCTM.ChargerList = new SelectList(query, "UId", "UserName");
                VCTM.CheckType   = CL.CheckType;
                VCTM.AlwaysShow  = CL.AlwaysShow;
                VCTM.StartTime   = CL.StartTime;
                VCTM.EndTime     = CL.EndTime;
                VCTM.ShowOrder   = CL.ShowOrder;

                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 1;
                SL.FailCount    = 0;
                SL.Result       = true;
                SL.Msg          = "取得檢核項目資料作業成功,ListID:[" + ListID.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(View(VCTM));
            }
            catch (Exception ex)
            {
                SL.EndDateTime  = DateTime.Now;
                SL.TotalCount   = 1;
                SL.SuccessCount = 0;
                SL.FailCount    = 1;
                SL.Result       = false;
                SL.Msg          = "取得檢核項目資料作業失敗," + "錯誤訊息[" + ex.ToString() + "]";
                SF.log2DB(SL, MailServer, MailServerPort, MailSender, MailReceiver);

                return(RedirectToAction("ListItem", "Document"));
            }
        }