Exemplo n.º 1
0
        public ActionResult DeleteConfirmed(string id)
        {
            BuyFlowModel buyflow = _context.BuyFlows.Find(id);

            _context.BuyFlows.Remove(buyflow);
            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        //
        // GET: /BuyFlow/Delete/5

        public ActionResult Delete(string id = null)
        {
            BuyFlowModel buyflow = _context.BuyFlows.Find(id);

            if (buyflow == null)
            {
                return(NotFound());
            }
            return(View(buyflow));
        }
Exemplo n.º 3
0
 public ActionResult Edit(BuyFlowModel buyflow)
 {
     if (ModelState.IsValid)
     {
         _context.Entry(buyflow).State = EntityState.Modified;
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(buyflow));
 }
Exemplo n.º 4
0
        public ActionResult Create(BuyFlowModel buyflow)
        {
            if (ModelState.IsValid)
            {
                _context.BuyFlows.Add(buyflow);
                _context.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(buyflow));
        }
Exemplo n.º 5
0
        public ActionResult FlowRecovery(string docId)
        {
            // Get Login User's details.
            var loginUser = _userRepo.Find(ur => ur.UserName == User.Identity.Name).FirstOrDefault();

            if (!userManager.IsInRole(User, "MedToDo"))
            {
                throw new Exception("權限不足!");
            }
            var lastFlow = _context.BuyFlows.Where(bf => bf.DocId == docId && bf.Status == "2").FirstOrDefault();

            if (lastFlow != null)
            {
                lastFlow.Status    = "1";
                lastFlow.Opinions += "(*恢復流程)";
                BuyFlowModel rf = new BuyFlowModel();
                rf.DocId  = docId;
                rf.StepId = lastFlow.StepId + 1;
                rf.UserId = loginUser.Id;
                rf.Status = "?";
                rf.Role   = roleManager.GetRolesForUser(loginUser.Id).FirstOrDefault();
                rf.Rtp    = null;
                rf.Rdt    = null;
                rf.Rtt    = DateTime.Now;
                rf.Cls    = "設備經辦";
                _context.BuyFlows.Add(rf);
                //
                _context.SaveChanges();
                return(new JsonResult(docId)
                {
                    Value = new { success = true, error = "" },
                });
            }
            else
            {
                throw new Exception("流程恢復失敗!");
            }
        }
Exemplo n.º 6
0
        public ActionResult NextFlow(BuyFlowModel BuyFlow)
        {
            // Get Login User's details.
            var loginUser = _userRepo.Find(ur => ur.UserName == User.Identity.Name).FirstOrDefault();

            if (ModelState.IsValid)
            {
                if (BuyFlow.SelOpin == "其他" && string.IsNullOrEmpty(BuyFlow.Opinions))
                {
                    throw new Exception("請填寫意見欄!!");
                }
                BuyFlowModel        rf     = _context.BuyFlows.Where(f => f.DocId == BuyFlow.DocId && f.Status == "?").FirstOrDefault();
                List <BuyFlowModel> rflist = _context.BuyFlows.Where(f => f.DocId == BuyFlow.DocId).ToList();
                BuyEvaluateModel    r;
                BuySFlowModel       s = _context.BuySFlows.Where(b => b.DocSid == BuyFlow.DocId).FirstOrDefault();
                if (s != null)
                {
                    r = _context.BuyEvaluates.Find(s.DocId);
                }
                else
                {
                    r = _context.BuyEvaluates.Find(BuyFlow.DocId);
                }
                AppUserModel u;
                Tmail        mail;
                string       body = "";
                string       sto  = "";
                if (BuyFlow.Cls == "結案")
                {
                    rf.Opinions = BuyFlow.SelOpin + Environment.NewLine + BuyFlow.Opinions;
                    rf.Status   = "2";
                    rf.Rtt      = DateTime.Now;
                    rf.Rtp      = loginUser.Id;
                    if (s != null)
                    {
                        s.Status = "2";
                        s.Rtt    = DateTime.Now;
                        s.Rtp    = loginUser.Id;
                        _context.Entry(s).State = EntityState.Modified;
                    }
                    _context.Entry(rf).State = EntityState.Modified;
                    _context.SaveChanges();
                    //
                    if (s != null) //會簽
                    {
                        List <BuySFlowModel> sf = _context.BuySFlows.Where(bs => bs.DocId == s.DocId)
                                                  .Where(bs => bs.Status == "?").ToList();
                        if (sf.Count() == 0)
                        {
                            BuyFlowModel f = _context.BuyFlows.Where(bf => bf.DocId == s.DocId)
                                             .Where(bf => bf.Status == "E").FirstOrDefault();
                            if (f != null)
                            {
                                f.Status = "?";
                                _context.Entry(f).State = EntityState.Modified;
                                _context.SaveChanges();
                                //
                                mail      = new Tmail();
                                u         = _context.AppUsers.Find(loginUser.Id);
                                mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                                mail.to   = new System.Net.Mail.MailAddress(_context.AppUsers.Find(f.UserId).Email);
                                //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                                mail.message.Subject = "醫工智能保修系統[採購評估案-會簽完成通知]:儀器名稱: " + r.PlantCnam;
                                body += "<p>申請人:" + r.UserName + "</p>";
                                body += "<p>儀器名稱:" + r.PlantCnam + "</p>";
                                body += "<br/>";
                                body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                                mail.message.Body       = body;
                                mail.message.IsBodyHtml = true;
                                mail.SendMail();
                            }
                        }
                    }
                    else
                    {
                        mail      = new Tmail();
                        u         = _context.AppUsers.Find(loginUser.Id);
                        mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                        foreach (BuyFlowModel rr in rflist)
                        {
                            u    = _context.AppUsers.Find(rr.UserId);
                            sto += u.Email + ",";
                        }
                        mail.sto = sto.TrimEnd(new char[] { ',' });
                        //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                        mail.message.Subject = "醫工智能保修系統[採購評估案-結案通知]:儀器名稱: " + r.PlantCnam;
                        body += "<p>申請人:" + r.UserName + "</p>";
                        body += "<p>儀器名稱:" + r.PlantCnam + "</p>";
                        body += "<p><a href='http://dms.cch.org.tw/BMED/Account/Login'>前往網站檢視</a></p>";
                        body += "<br/>";
                        body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                        mail.message.Body       = body;
                        mail.message.IsBodyHtml = true;
                        mail.SendMail();
                    }
                    return(new JsonResult(BuyFlow)
                    {
                        Value = new { success = true, error = "" },
                    });
                }
                else if (BuyFlow.Cls == "廢除")
                {
                    rf.Opinions = BuyFlow.SelOpin + Environment.NewLine + BuyFlow.Opinions;
                    rf.Status   = "3";
                    rf.Rtt      = DateTime.Now;
                    rf.Rtp      = loginUser.Id;
                    _context.Entry(rf).State = EntityState.Modified;
                    _context.SaveChanges();
                    //
                    mail      = new Tmail();
                    u         = _context.AppUsers.Find(loginUser.Id);
                    mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                    foreach (BuyFlowModel rr in rflist)
                    {
                        u    = _context.AppUsers.Find(rr.UserId);
                        sto += u.Email + ",";
                    }
                    mail.sto = sto.TrimEnd(new char[] { ',' });
                    //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                    mail.message.Subject = "醫工智能保修系統[採購評估案-廢除通知]:儀器名稱: " + r.PlantCnam;
                    body += "<p>申請人:" + r.UserName + "</p>";
                    body += "<p>儀器名稱:" + r.PlantCnam + "</p>";
                    body += "<br/>";
                    body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                    mail.message.Body       = body;
                    mail.message.IsBodyHtml = true;
                    mail.SendMail();
                    return(new JsonResult(BuyFlow)
                    {
                        Value = new { success = true, error = "" },
                    });
                }
                BuyFlow.StepId = rf.StepId + 1;
                BuyFlow.Rtt    = DateTime.Now;
                switch (BuyFlow.Cls)
                {
                case "申請者":
                    BuyFlow.UserId = r.UserId;
                    break;

                case "設備經辦":

                    break;
                }
                BuyFlow.Status = "?";
                u                        = _context.AppUsers.Find(BuyFlow.UserId);
                BuyFlow.Role             = roleManager.GetRolesForUser(u.Id).FirstOrDefault();
                rf.Opinions              = BuyFlow.SelOpin + Environment.NewLine + BuyFlow.Opinions;
                rf.Status                = "1";
                rf.Rtp                   = loginUser.Id;
                BuyFlow.Opinions         = null;
                _context.Entry(rf).State = EntityState.Modified;
                _context.BuyFlows.Add(BuyFlow);
                _context.SaveChanges();
                //
                mail      = new Tmail();
                body      = "";
                u         = _context.AppUsers.Find(loginUser.Id);
                mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                u         = _context.AppUsers.Find(BuyFlow.UserId);
                mail.to   = new System.Net.Mail.MailAddress(u.Email); //u.Email
                //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                mail.message.Subject = "醫工智能保修系統[採購評估案]:儀器名稱: " + r.PlantCnam;
                body += "<p>申請人:" + r.UserName + "</p>";
                body += "<p>儀器名稱:" + r.PlantCnam + "</p>";
                body += "<p><a href='http://dms.cch.org.tw/BMED/Account/Login'>處理案件</a></p>";
                body += "<br/>";
                body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>";
                mail.message.Body       = body;
                mail.message.IsBodyHtml = true;
                mail.SendMail();

                return(new JsonResult(BuyFlow)
                {
                    Value = new { success = true, error = "" },
                });
            }

            return(View(BuyFlow));
        }
Exemplo n.º 7
0
        public ActionResult InEvaluate(string docid = null)
        {
            BuyFlowModel buyflow = _context.BuyFlows.Where(b => b.DocId == docid)
                                   .Where(b => b.Status == "?").FirstOrDefault();

            if (buyflow == null)
            {
                return(NotFound());
            }
            else
            {
                buyflow.Status = "E";
                buyflow.Rtt    = DateTime.Now;
                _context.Entry(buyflow).State = EntityState.Modified;
                //
                BuyEvaluateModel e = _context.BuyEvaluates.Find(docid);
                BuySFlowModel    s = new BuySFlowModel();
                s.DocId  = docid;
                s.DocSid = buyflow.DocId + "_1";
                s.StepId = 2;
                s.Status = "?";
                s.Rtp    = buyflow.UserId;
                s.Rtt    = DateTime.Now;
                _context.BuySFlows.Add(s);
                BuySFlowModel s2 = new BuySFlowModel();
                s2.DocId  = docid;
                s2.DocSid = buyflow.DocId + "_2";
                s2.StepId = 2;
                s2.Status = "?";
                s2.Rtp    = buyflow.UserId;
                s2.Rtt    = DateTime.Now;
                _context.BuySFlows.Add(s2);
                //
                BuyFlowModel bf  = new BuyFlowModel();
                BuyFlowModel bf2 = new BuyFlowModel();
                bf.DocId   = buyflow.DocId + "_1";
                bf2.DocId  = buyflow.DocId + "_2";
                bf.StepId  = 1;
                bf2.StepId = 1;
                bf.UserId  = buyflow.UserId;
                bf2.UserId = buyflow.UserId;
                bf.Status  = "1";
                bf2.Status = "1";
                bf.Cls     = "採購人員";
                bf2.Cls    = "採購人員";
                bf.Rtp     = buyflow.UserId;
                bf2.Rtp    = buyflow.UserId;
                bf.Rtt     = DateTime.Now;
                bf2.Rtt    = DateTime.Now;
                _context.Entry(buyflow).State = EntityState.Modified;
                _context.BuyFlows.Add(bf);
                _context.BuyFlows.Add(bf2);
                //
                bf.StepId  = 2;
                bf2.StepId = 2;
                bf.UserId  = e.UserId;
                bf2.UserId = e.EngId;
                bf.Status  = "?";
                bf2.Status = "?";
                bf.Cls     = "申請者";
                bf2.Cls    = "維修工程師";
                bf.Rtp     = buyflow.UserId;
                bf2.Rtp    = buyflow.UserId;
                bf.Rtt     = DateTime.Now;
                bf2.Rtt    = DateTime.Now;
                _context.BuyFlows.Add(bf);
                _context.BuyFlows.Add(bf2);
                _context.SaveChanges();
            }
            return(RedirectToAction("Index", "Home", new { Area = "" }));
        }
Exemplo n.º 8
0
        public IActionResult TransToBuyEvaluate()
        {
            // Get Login User's details.
            var user = _userRepo.Find(ur => ur.UserName == User.Identity.Name).FirstOrDefault();

            String[] st = { "?", "2" };
            var      s  = _context.BuyFlows.Where(b => st.Contains(b.Status))
                          .Join(_context.BuyEvaluates, b => b.DocId, e => e.DocId,
                                (b, e) => e).Where(e => !string.IsNullOrEmpty(e.BudgetId))
                          .Select(e => e.BudgetId).Distinct();
            List <BudgetModel> bs = _context.Budgets.Where(b => !s.Contains(b.DocId)).ToList();
            BuyEvaluateModel   r;
            BuyFlowModel       rf;
            Tmail           mail;
            string          body = "";
            AppUserModel    a    = _context.AppUsers.Find(user.Id);
            AppUserModel    u;
            DepartmentModel c  = _context.Departments.Find(a.DptId);
            int             dc = 0;

            foreach (BudgetModel b in bs)
            {
                r = new BuyEvaluateModel();
                if (dc <= 0)
                {
                    dc = Convert.ToInt32(r.GetID(ref _context));
                }
                else
                {
                    dc++;
                }
                r.DocId      = Convert.ToString(dc);
                r.PlantCnam  = b.PlantName;
                r.PlantEnam  = b.PlantName;
                r.Standard   = b.Standard;
                r.Price      = b.Price;
                r.Amt        = b.Amt;
                r.Unit       = b.Unit;
                r.TotalPrice = b.TotalPrice;
                r.UserId     = a.Id;
                r.UserName   = a.FullName;
                r.Company    = c.DptId == null ? "" : c.Name_C;
                r.AccDpt     = b.AccDpt == null ? "" : b.AccDpt;
                r.AccDptNam  = _context.Departments.Find(b.AccDpt) == null ? "" : _context.Departments.Find(b.AccDpt).Name_C;
                r.Contact    = a.Mobile;
                r.PlantType  = "醫療儀器";
                r.Place      = r.AccDptNam;
                if (_context.AppUsers.Where(up => up.FullName == b.EngName && up.Status == "Y").FirstOrDefault() == null)
                {
                    throw new Exception("無工程師[" + b.EngName + "]資料!!請建立使用者資料。");
                }
                r.EngId = _context.AppUsers.Where(up => up.FullName == b.EngName && up.Status == "Y").FirstOrDefault() == null ? user.Id :
                          _context.AppUsers.Where(up => up.FullName == b.EngName && up.Status == "Y").FirstOrDefault().Id;
                r.Rtp      = a.Id;
                r.Rtt      = DateTime.Now;
                r.BudgetId = b.DocId;
                _context.BuyEvaluates.Add(r);
                //
                rf        = new BuyFlowModel();
                rf.DocId  = r.DocId;
                rf.StepId = 1;
                rf.UserId = user.Id;
                rf.Status = "1";
                rf.Role   = roleManager.GetRolesForUser(user.Id).GetValue(0).ToString();
                rf.Rtp    = user.Id;
                rf.Rdt    = null;
                rf.Rtt    = DateTime.Now;
                rf.Cls    = "申請者";
                _context.BuyFlows.Add(rf);
                //
                rf        = new BuyFlowModel();
                rf.DocId  = r.DocId;
                rf.StepId = 2;
                rf.UserId = r.EngId;
                rf.Status = "?";
                u         = _context.AppUsers.Find(r.EngId);
                rf.Role   = roleManager.GetRolesForUser(u.Id).FirstOrDefault();
                rf.Rtp    = null;
                rf.Rdt    = null;
                rf.Rtt    = DateTime.Now;
                rf.Cls    = "設備工程師";
                _context.BuyFlows.Add(rf);
                //
                try
                {
                    _context.SaveChanges();
                    //
                    mail      = new Tmail();
                    body      = "";
                    u         = _context.AppUsers.Find(user.Id);
                    mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                    u         = _context.AppUsers.Find(rf.UserId);
                    mail.to   = new System.Net.Mail.MailAddress(u.Email); //u.Email
                    //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                    mail.message.Subject = "醫療儀器管理資訊系統[採購評估案]:儀器名稱: " + r.PlantCnam;
                    body += "<p>申請人:" + r.UserName + "</p>";
                    body += "<p>儀器名稱:" + r.PlantCnam + "</p>";
                    body += "<p><a href='http://dms.cch.org.tw/MvcMedEngMgr'>處理案件</a></p>";
                    body += "<br/>";
                    body += "<h3>this is a inform letter from system manager.Do not reply for it.</h3>";
                    mail.message.Body       = body;
                    mail.message.IsBodyHtml = true;
                    //mail.SendMail();
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            return(new JsonResult(bs)
            {
                Value = new { success = true, error = "" },
            });
        }
Exemplo n.º 9
0
        public IActionResult Create(BuyEvaluateModel buyevaluate)
        {
            if (ModelState.IsValid)
            {
                // Get Login User's details.
                var             user = _userRepo.Find(ur => ur.UserName == User.Identity.Name).FirstOrDefault();
                DepartmentModel dpt  = _context.Departments.Where(d => d.Name_C == buyevaluate.AccDptNam).FirstOrDefault();
                if (dpt != null)
                {
                    buyevaluate.AccDpt = dpt.DptId;
                }
                else
                {
                    ModelState.AddModelError("", "成本中心無此資料!!");
                    return(View(buyevaluate));
                }
                buyevaluate.Rtp = user.Id;
                buyevaluate.Rtt = DateTime.Now;
                _context.Entry(buyevaluate).State = EntityState.Modified;
                //
                BuyFlowModel rf = new BuyFlowModel();
                rf.DocId  = buyevaluate.DocId;
                rf.StepId = 1;
                rf.UserId = user.Id;
                rf.Status = "1";
                rf.Role   = roleManager.GetRolesForUser(user.Id).GetValue(0).ToString();
                rf.Rtp    = user.Id;
                rf.Rdt    = null;
                rf.Rtt    = DateTime.Now;
                rf.Cls    = "申請者";
                _context.BuyFlows.Add(rf);
                //
                rf        = new BuyFlowModel();
                rf.DocId  = buyevaluate.DocId;
                rf.StepId = 2;
                rf.UserId = buyevaluate.EngId;
                rf.Status = "?";
                AppUserModel u = _context.AppUsers.Find(buyevaluate.EngId);
                rf.Role = roleManager.GetRolesForUser(u.Id).FirstOrDefault();
                rf.Rtp  = null;
                rf.Rdt  = null;
                rf.Rtt  = DateTime.Now;
                rf.Cls  = "設備工程師";
                _context.BuyFlows.Add(rf);
                //
                _context.SaveChanges();
                //
                Tmail  mail = new Tmail();
                string body = "";
                u         = _context.AppUsers.Find(user.Id);
                mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email
                u         = _context.AppUsers.Find(buyevaluate.PurchaserId);
                mail.to   = new System.Net.Mail.MailAddress(u.Email); //u.Email
                //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**");
                mail.message.Subject = "醫療儀器管理資訊系統[採購評估案]:儀器名稱: " + buyevaluate.PlantCnam;
                body += "<p>申請人:" + buyevaluate.UserName + "</p>";
                body += "<p>儀器名稱:" + buyevaluate.PlantCnam + "</p>";
                body += "<p><a href='http://dms.cch.org.tw/MvcMedEngMgr'>處理案件</a></p>";
                body += "<br/>";
                body += "<h3>this is a inform letter from system manager. Do not reply for it.</h3>";
                mail.message.Body       = body;
                mail.message.IsBodyHtml = true;
                //mail.SendMail();
                return(RedirectToAction("Index", "Home", new { Area = "" }));
            }

            return(View(buyevaluate));
        }