public IActionResult DeleteConfirmed(string id) { DelivFlowModel delivflow = _context.DelivFlows.Find(id); _context.DelivFlows.Remove(delivflow); _context.SaveChanges(); return RedirectToAction("Index"); }
public async Task <IViewComponentResult> InvokeAsync(string id) { var docId = id; DelivFlowModel rf = _context.DelivFlows.Where(df => df.DocId == docId && df.Status == "?") .ToList().FirstOrDefault(); if (rf != null) { rf.DocId = id; List <SelectListItem> listItem = new List <SelectListItem>(); listItem.Add(new SelectListItem { Text = "申請者", Value = "申請者" }); //listItem.Add(new SelectListItem { Text = "採購人員", Value = "採購人員" }); //listItem.Add(new SelectListItem { Text = "單位主管", Value = "單位主管" }); listItem.Add(new SelectListItem { Text = "設備工程師", Value = "設備工程師" }); listItem.Add(new SelectListItem { Text = "設備主管", Value = "設備主管" }); listItem.Add(new SelectListItem { Text = "得標廠商", Value = "得標廠商" }); //listItem.Add(new SelectListItem { Text = "使用單位", Value = "使用單位" }); listItem.Add(new SelectListItem { Text = "設備經辦", Value = "設備經辦" }); //listItem.Add(new SelectListItem { Text = "採購主管", Value = "採購主管" }); if (rf.Cls == "設備主管") { listItem.Add(new SelectListItem { Text = "結案", Value = "結案" }); } ViewData["Item"] = new SelectList(listItem, "Value", "Text", ""); // List <SelectListItem> listItem2 = new List <SelectListItem>(); listItem2.Add(new SelectListItem { Text = "", Value = "" }); ViewData["Item2"] = new SelectList(listItem2, "Value", "Text", ""); rf.Cls = ""; // //DeliveryModel ra = _context.Deliveries.Find(id); //if (ra != null) //{ // string cid = _context.AppUsers.Find(ra.UserId).DptId; // string gid = _context.Departments.Find(cid).GroupId; // if (gid != null) // { // rf.FlowHint = db.Groups.Find(gid).FlowHint4; // } //} rf.SelOpin = "同意"; } return(View(rf)); }
// // GET: /BMED/DelivFlow/Delete/5 public IActionResult Delete(string id = null) { DelivFlowModel delivflow = _context.DelivFlows.Find(id); if (delivflow == null) { return NotFound(); } return View(delivflow); }
public IActionResult Edit(DelivFlowModel delivflow) { if (ModelState.IsValid) { _context.Entry(delivflow).State = EntityState.Modified; _context.SaveChanges(); return(RedirectToAction("Index")); } return(View(delivflow)); }
// GET: /BMED/DelivFlow/Edit/5 public IActionResult Edit(string id = null) { DelivFlowModel delivflow = _context.DelivFlows.Find(id); if (delivflow == null) { return(NotFound()); } return(View(delivflow)); }
public IActionResult Create(DelivFlowModel delivflow) { if (ModelState.IsValid) { _context.DelivFlows.Add(delivflow); _context.SaveChanges(); return(RedirectToAction("Index")); } return(View(delivflow)); }
public IActionResult Create(DeliveryModel delivery) { if (ModelState.IsValid) { // Get Login User's details. var ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault(); _context.Entry(delivery).State = EntityState.Modified; DelivFlowModel rf = new DelivFlowModel(); rf.DocId = delivery.DocId; rf.StepId = 1; rf.UserId = ur.Id; rf.Status = "1"; rf.Role = roleManager.GetRolesForUser(ur.Id).FirstOrDefault(); rf.Rtp = ur.Id; rf.Rdt = null; rf.Rtt = DateTime.Now; rf.Cls = "申請者"; _context.DelivFlows.Add(rf); // rf = new DelivFlowModel(); rf.DocId = delivery.DocId; rf.StepId = 2; rf.Status = "?"; AppUserModel u; u = _context.AppUsers.Find(Convert.ToInt32(delivery.DelivPson)); rf.UserId = u.Id; rf.Role = roleManager.GetRolesForUser(u.Id).FirstOrDefault(); rf.Rtp = null; rf.Rdt = null; rf.Rtt = DateTime.Now; rf.Cls = "得標廠商"; _context.DelivFlows.Add(rf); // List <AssetModel> ar = _context.BMEDAssets.Where(a => !string.IsNullOrEmpty(a.Docid)) .Where(a => a.Docid == delivery.PurchaseNo).ToList(); VendorModel v; u = _context.AppUsers.Find(Convert.ToInt32(delivery.UserDpt)); foreach (AssetModel a in ar) { v = _context.BMEDVendors.Where(vv => vv.UniteNo == delivery.VendorId).FirstOrDefault(); if (v != null) { a.VendorId = v.VendorId; } a.DelivUid = u.Id; a.DelivDpt = u.DptId; _context.Entry(a).State = EntityState.Modified; } // _context.SaveChanges(); //---------------------------------------------------------------------------------- // Mail //---------------------------------------------------------------------------------- Tmail mail = new Tmail(); string body = ""; mail.from = new System.Net.Mail.MailAddress(ur.Email); u = _context.AppUsers.Find(Convert.ToInt32(delivery.DelivPson)); mail.to = new System.Net.Mail.MailAddress(u.Email); AppUserModel up = _context.AppUsers.Find(delivery.EngId); if (up != null) { if (!string.IsNullOrEmpty(up.Email)) { mail.cc = new System.Net.Mail.MailAddress(up.Email); } } // mail.message.Subject = "醫療儀器管理資訊系統[驗收案]:採購案號: " + delivery.PurchaseNo; body += "<p>申請人:" + delivery.UserName + "</p>"; body += "<p>合約號碼:" + delivery.ContractNo + "</p>"; body += "<p>採購案號:" + delivery.PurchaseNo + "</p>"; body += "<p><a href='http://dms.cch.org.tw/MvcMedEngMgr'>處理案件</a></p>"; body += "<br/>"; body += "<p>若有任何問題,請與驗收工程師(" + _context.AppUsers.Find(delivery.EngId).FullName + ")聯絡</p>"; 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(delivery)); }
public JsonResult GetNextEmp(string cls = null, string docid = null, string vendor = null) { // Get Login User's details. var ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault(); List <SelectListItem> list = new List <SelectListItem>(); List <string> s; SelectListItem li; DeliveryModel r = _context.Deliveries.Find(docid); //string c = db.UserProfiles.Find(r.UserId).CustId; string c = _context.AppUsers.Find(ur.Id).DptId; //string g = _context.CustOrgans.Find(c).GroupId; AppUserModel u; List <AppUserModel> uv; switch (cls) { case "設備工程師": s = roleManager.GetUsersInRole("MedEngineer").ToList(); s = s.OrderBy(ss => ss).ToList(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); if (li.Value == Convert.ToString(r.EngId)) { list.Insert(0, li); } else { list.Add(li); } } } //u = db.UserProfiles.Find(r.EngId); //if (u != null) //{ // li = new ListItem(); // li.Text = u.FullName; // li.Value = u.UserId.ToString(); // list.Add(li); //} break; case "設備主管": s = roleManager.GetUsersInRole("MedMgr").ToList(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { if (u.Status == "Y") { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } } break; case "單位主管": s = roleManager.GetUsersInRole("Manager").ToList(); string dptid = _context.AppUsers.Find(r.UserId).DptId; list = new List <SelectListItem>(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { if (u.DptId == dptid) { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } } break; case "申請者": if (r != null) { u = _context.AppUsers.Find(r.UserId); if (u != null) { list = new List <SelectListItem>(); li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + r.UserName; li.Value = r.UserId.ToString(); list.Add(li); } } break; case "採購人員": if (r != null) { li = new SelectListItem(); li.Text = _context.AppUsers.Find(r.PurchaserId).FullName; li.Value = r.PurchaserId.ToString(); list.Add(li); } break; case "得標廠商": List <VendorModel> vv = _context.BMEDVendors.Where(v => v.UniteNo == r.VendorId).ToList(); foreach (VendorModel v in vv) { uv = _context.AppUsers.Where(u2 => u2.VendorId == v.VendorId).ToList(); foreach (AppUserModel u3 in uv) { li = new SelectListItem(); li.Text = u3.FullName; li.Value = u3.Id.ToString(); list.Add(li); } } break; case "使用單位": DelivFlowModel df = _context.DelivFlows.Where(d => d.DocId == r.DocId) .Where(d => d.Cls == "使用單位").FirstOrDefault(); if (df != null) { u = _context.AppUsers.Find(df.UserId); if (u != null) { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } break; case "設備經辦": s = roleManager.GetUsersInRole("MedToDo").ToList(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } break; case "採購主管": s = roleManager.GetUsersInRole("BuyerMgr").ToList(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } break; case "賀康主管": s = roleManager.GetUsersInRole("MedAssetMgr").ToList(); list = new List <SelectListItem>(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null && u.Status == "Y") { DepartmentModel o = _context.Departments.Find(u.DptId); //DepartmentModel e = _context.Departments.Where( n => n.Name_C == r.Place).FirstOrDefault(); if (o.Loc == "C" || o.Loc == "P" || o.Loc == "K") { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } else if (o.Loc != "C" || o.Loc != "P" || o.Loc != "K") { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } } break; case "資訊工程師": list = new List <SelectListItem>(); s = roleManager.GetUsersInRole("IT_Engineer").ToList(); foreach (string l in s) { u = _context.AppUsers.Where(usr => usr.UserName == l).FirstOrDefault(); if (u != null) { if (u.Status == "Y") { li = new SelectListItem(); li.Text = "(" + u.UserName + ")" + u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } } break; default: break; } return(Json(list)); }
public IActionResult NextFlow(DelivFlowModel DelivFlow) { if (ModelState.IsValid) { // Get Login User's details. var ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault(); if (DelivFlow.SelOpin == "其他" && string.IsNullOrEmpty(DelivFlow.Opinions)) { throw new Exception("請填寫意見欄!!"); } DelivFlowModel rf = _context.DelivFlows.Where(df => df.DocId == DelivFlow.DocId) .Where(df => df.Status == "?").ToList().FirstOrDefault(); if (rf == null) { throw new Exception("查無流程!"); } if (rf.Cls == "得標廠商") { if (_context.BMEDAssets.Where(a => a.Docid == DelivFlow.DocId).Count() <= 0) { throw new Exception("沒有設備紀錄! 請新增設備!"); } } List <DelivFlowModel> rflist = _context.DelivFlows.Where(df => df.DocId == DelivFlow.DocId).ToList(); DeliveryModel r = _context.Deliveries.Find(DelivFlow.DocId); AppUserModel u; Tmail mail; string body = ""; if (DelivFlow.Cls == "結案") { string sto = ""; //KeepDtl rd = db.KeepDtls.Find(KeepFlow.Docid); rf.Opinions = DelivFlow.SelOpin + Environment.NewLine + DelivFlow.Opinions; rf.Status = "2"; rf.Rtt = DateTime.Now; rf.Rtp = ur.Id; _context.Entry(rf).State = EntityState.Modified; _context.SaveChanges(); // mail = new Tmail(); u = _context.AppUsers.Find(ur.Id); mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email foreach (DelivFlowModel 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.PurchaseNo; body += "<p>申請人:" + r.UserName + "</p>"; body += "<p>合約號碼:" + r.ContractNo + "</p>"; body += "<p>採購案號:" + r.PurchaseNo + "</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(DelivFlow) { Value = new { success = true, error = "" }, }); } DelivFlow.StepId = rf.StepId + 1; DelivFlow.Rtt = DateTime.Now; switch (DelivFlow.Cls) { case "申請者": DelivFlow.UserId = r.UserId; break; } DelivFlow.Status = "?"; u = _context.AppUsers.Find(DelivFlow.UserId); DelivFlow.Role = roleManager.GetRolesForUser(u.Id).FirstOrDefault(); rf.Opinions = DelivFlow.SelOpin + Environment.NewLine + DelivFlow.Opinions; rf.Status = "1"; rf.Rtp = ur.Id; DelivFlow.Opinions = null; _context.Entry(rf).State = EntityState.Modified; _context.DelivFlows.Add(DelivFlow); _context.SaveChanges(); // mail = new Tmail(); body = ""; u = _context.AppUsers.Find(ur.Id); mail.from = new System.Net.Mail.MailAddress(u.Email); //u.Email u = _context.AppUsers.Find(DelivFlow.UserId); mail.to = new System.Net.Mail.MailAddress(u.Email); //u.Email //mail.cc = new System.Net.Mail.MailAddress("*****@*****.**"); mail.message.Subject = "醫工智能保修系統[驗收案]:採購案號: " + r.PurchaseNo; body += "<p>申請人:" + r.UserName + "</p>"; body += "<p>合約號碼:" + r.ContractNo + "</p>"; body += "<p>採購案號:" + r.PurchaseNo + "</p>"; body += "<p><a href='http://dms.cch.org.tw/BMED/Account/Login'>處理案件</a></p>"; body += "<br/>"; body += "<p>若有任何問題,請與驗收工程師(" + _context.AppUsers.Find(r.EngId).FullName + ")聯絡</p>"; body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>"; mail.message.Body = body; mail.message.IsBodyHtml = true; mail.SendMail(); return(new JsonResult(DelivFlow) { Value = new { success = true, error = "" } }); } else { string msg = ""; foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors)) { msg += error.ErrorMessage + Environment.NewLine; } throw new Exception(msg); } }
public async Task <IActionResult> CreateAsync(DeliveryModel delivery) { string msg = ""; try { if (ModelState.IsValid) { // Get Login User's details. var ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault(); _context.Entry(delivery).State = EntityState.Modified; DelivFlowModel rf = new DelivFlowModel(); rf.DocId = delivery.DocId; rf.StepId = 1; rf.UserId = ur.Id; rf.Status = "1"; rf.Role = roleManager.GetRolesForUser(ur.Id).FirstOrDefault(); rf.Rtp = ur.Id; rf.Rdt = null; rf.Rtt = DateTime.Now; rf.Cls = "申請者"; _context.DelivFlows.Add(rf); // rf = new DelivFlowModel(); rf.DocId = delivery.DocId; rf.StepId = 2; rf.Status = "?"; AppUserModel u; u = _context.AppUsers.Find(Convert.ToInt32(delivery.DelivPson)); rf.UserId = u.Id; rf.Role = roleManager.GetRolesForUser(u.Id).FirstOrDefault(); rf.Rtp = null; rf.Rdt = null; rf.Rtt = DateTime.Now; rf.Cls = "得標廠商"; _context.DelivFlows.Add(rf); // List <AssetModel> ar = _context.BMEDAssets.Where(a => !string.IsNullOrEmpty(a.Docid)) .Where(a => a.Docid == delivery.PurchaseNo).ToList(); VendorModel v; u = _context.AppUsers.Find(Convert.ToInt32(delivery.UserDpt)); foreach (AssetModel a in ar) { v = _context.BMEDVendors.Where(vv => vv.UniteNo == delivery.VendorId).FirstOrDefault(); if (v != null) { a.VendorId = v.VendorId; } a.DelivUid = u.Id; a.DelivDpt = u.DptId; _context.Entry(a).State = EntityState.Modified; } // //AssetAdd(delivery.ContractNo, delivery.BudgetId);//.GetAwaiter().GetResult(); // if (!string.IsNullOrEmpty(delivery.ContractNo) && !string.IsNullOrEmpty(delivery.BudgetId)) { List <QryVendorData> rv = new List <QryVendorData>(); var s = "[" + "{" + "type:" + "null" + "," + "contract_no:" + delivery.ContractNo + "}" + "]";//new { type, contract_no }.ToString().Replace("=", ":");//"[" + "{" + "type:" + type + "," + "contract_no:" + contract_no + "}" + "]"; // var s = "{"+"type:" + type + "," + "contract_no:" + contract_no+"}"; HttpClient client = new HttpClient(); //var str = JsonConvert.SerializeObject(s); HttpContent content = new StringContent(s, Encoding.UTF8, "application/json"); client.BaseAddress = new Uri("https://api.cch.org.tw/HIS_WS_CONTRACT/"); // string url = "AssetApi/Get_Info"; //BmedWebApi client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); //HttpResponseMessage response = await client.GetAsync(url); HttpResponseMessage response = await client.PostAsync(url, content); string rstr = ""; if (response.IsSuccessStatusCode) { rstr = await response.Content.ReadAsStringAsync(); if (!string.IsNullOrEmpty(rstr)) { rv.AddRange(JsonConvert.DeserializeObject <List <QryVendorData> >(rstr)); } } client.Dispose(); if (rv.Where(r => r.CONTRACT_NO.Contains("Error")).Count() > 0 || rv == null || rv.Count() <= 0) { } else { rv = rv.Where(r => r.PURCHASE_NO == delivery.BudgetId) .GroupJoin(_context.BMEDAssets, r => r.ASSET_NO, a => a.AssetNo, (r, a) => new { r, a }) .SelectMany(x => x.a.DefaultIfEmpty(), (r, a) => new { vendor = r.r, a }) .Where(x => x.a == null) .Select(x => x.vendor) .ToList(); if (rv.Count > 0) { AssetModel asset = new AssetModel(); rv.ForEach(r => { asset.AssetNo = r.ASSET_NO; asset.AssetClass = "醫療儀器"; asset.Cname = r.PLANT_NAME; asset.AccDate = null; asset.BuyDate = null; asset.RelDate = null; asset.Brand = r.BRAND; asset.Type = r.MODEL; asset.VendorId = Int32.Parse(r.VENDOR_NO); asset.DisposeKind = "正常"; asset.DelivDpt = r.DELIV_DPT; asset.AccDpt = r.DPT_COD; asset.Rtt = DateTime.Now; _context.BMEDAssets.Add(asset); }); } } } //_context.BMEDAssets.Add(assets); //_context.SaveChanges(); await _context.SaveChangesAsync(); //---------------------------------------------------------------------------------- // Mail //---------------------------------------------------------------------------------- Tmail mail = new Tmail(); string body = ""; mail.from = new System.Net.Mail.MailAddress(ur.Email); u = _context.AppUsers.Find(Convert.ToInt32(delivery.DelivPson)); mail.to = new System.Net.Mail.MailAddress(u.Email); AppUserModel up = _context.AppUsers.Find(delivery.EngId); if (up != null) { if (!string.IsNullOrEmpty(up.Email)) { mail.cc = new System.Net.Mail.MailAddress(up.Email); } } // mail.message.Subject = "醫工智能保修系統[驗收案]:採購案號: " + delivery.PurchaseNo; body += "<p>申請人:" + delivery.UserName + "</p>"; body += "<p>合約號碼:" + delivery.ContractNo + "</p>"; body += "<p>採購案號:" + delivery.PurchaseNo + "</p>"; body += "<p><a href='http://dms.cch.org.tw/BMED/Account/Login'>處理案件</a></p>"; body += "<br/>"; body += "<p>若有任何問題,請與驗收工程師(" + _context.AppUsers.Find(delivery.EngId).FullName + ")聯絡</p>"; body += "<h3>此封信件為系統通知郵件,請勿回覆。</h3>"; mail.message.Body = body; mail.message.IsBodyHtml = true; mail.SendMail(); //---------------------------------------------------------------------------------- return(RedirectToAction("Index", "Home", new { Area = "" })); } else { foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors)) { msg += error.ErrorMessage + Environment.NewLine; } } } catch (Exception ex) { msg = ex.Message; } return(BadRequest(msg)); }