public IActionResult Delete(string docid, string seqno) { try { KeepCostModel keepCost = _context.BMEDKeepCosts.Find(docid, Convert.ToInt32(seqno)); _context.BMEDKeepCosts.Remove(keepCost); _context.SaveChanges(); // KeepDtlModel dtl = _context.BMEDKeepDtls.Where(d => d.DocId == keepCost.DocId) .FirstOrDefault(); if (dtl != null) { dtl.Cost = _context.BMEDKeepCosts.Where(k => k.DocId == keepCost.DocId) .Select(k => k.TotalCost) .DefaultIfEmpty(0).Sum(); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } return(new JsonResult(keepCost) { Value = new { success = true, error = "" } }); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IViewComponentResult> InvokeAsync(string id) { KeepCostModel cost = new KeepCostModel(); var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); /* Check the device's contract. */ var keepDtl = _context.BMEDKeepDtls.Find(id); if (keepDtl.NotInExceptDevice == "Y") //該案件為統包 { ViewData["HideCost"] = "Y"; } else { ViewData["HideCost"] = "N"; } int seqno = _context.BMEDKeepCosts.Where(c => c.DocId == id) .Select(c => c.SeqNo).DefaultIfEmpty().Max(); cost.DocId = id; cost.Qty = 1; //Default value. cost.SeqNo = seqno + 1; KeepFlowModel rf = _context.BMEDKeepFlows.Where(f => f.DocId == id) .Where(f => f.Status == "?").FirstOrDefault(); var isEngineer = false; if (ur.DptId == "8420" || ur.DptId == "7084") { isEngineer = true; } if (!(rf.Cls.Contains("工程師") && rf.UserId == ur.Id)) /* 流程 => 其他 */ { if (rf.Cls.Contains("工程師") && isEngineer == true) /* 流程 => 工程師,Login User => 非負責之工程師 */ { return(View(cost)); } if (rf.Cls.Contains("醫工主管") || rf.Cls.Contains("賀康主管")) /* 流程 => 醫工、賀康主管 */ { if (rf.UserId == ur.Id) { return(View(cost)); } } List <KeepCostModel> t = _context.BMEDKeepCosts.Include(r => r.TicketDtl).Where(c => c.DocId == id).ToList(); return(View("List", t)); } /* 流程 => 工程師,Login User => 負責之工程師 */ return(View(cost)); }
public IActionResult KeepCostEdit(KeepCostModel keepCost) { var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); if (keepCost.SignNo != null) { keepCost.SignNo = keepCost.SignNo.ToUpper(); } if (keepCost.StockType == "3") { ModelState.Remove("TicketDtl.SeqNo"); } if (ModelState.IsValid) { keepCost.Rtp = ur.Id; keepCost.Rtt = DateTime.Now; _context.Entry(keepCost).State = EntityState.Modified; _context.SaveChanges(); KeepDtlModel dtl = _context.KeepDtls.Where(d => d.DocId == keepCost.DocId) .FirstOrDefault(); if (dtl != null) { dtl.Cost = _context.KeepCosts.Where(k => k.DocId == keepCost.DocId) .Select(k => k.TotalCost) .DefaultIfEmpty(0).Sum(); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } return(new JsonResult(keepCost) { 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 <IViewComponentResult> InvokeAsync(string id) { KeepCostModel cost = new KeepCostModel(); var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); /* Check the device's contract. */ //var keepDtl = _context.KeepDtls.Find(id); //if (keepDtl.NotInExceptDevice == "Y") //該案件為統包 //{ // ViewData["HideCost"] = "Y"; //} //else //{ // ViewData["HideCost"] = "N"; //} ViewData["HideCost"] = "N"; int seqno = _context.KeepCosts.Where(c => c.DocId == id) .Select(c => c.SeqNo).DefaultIfEmpty().Max(); cost.DocId = id; cost.SeqNo = seqno + 1; KeepFlowModel rf = _context.KeepFlows.Where(f => f.DocId == id) .Where(f => f.Status == "?").FirstOrDefault(); var isEngineer = _context.UsersInRoles.Where(u => u.AppRoles.RoleName == "RepEngineer" && u.UserId == ur.Id).FirstOrDefault(); if (!(rf.Cls.Contains("工程師") && rf.UserId == ur.Id)) /* 流程 => 其他 */ { if (rf.Cls.Contains("工程師") && isEngineer != null) /* 流程 => 工程師,Login User => 非負責之工程師 */ { return(View(cost)); } List <KeepCostModel> t = _context.KeepCosts.Include(r => r.TicketDtl).Where(c => c.DocId == id).ToList(); return(View("List", t)); } /* 流程 => 工程師,Login User => 負責之工程師 */ return(View(cost)); }
// GET: Admin/Invoice/KeepCostEdit/5 public IActionResult KeepCostEdit(string docid, string seqno) { KeepCostModel keepCost = _context.KeepCosts.Include(rc => rc.TicketDtl) .SingleOrDefault(rc => rc.DocId == docid && rc.SeqNo == Convert.ToInt32(seqno)); if (keepCost.StockType == "0") { ViewData["StockType"] = "庫存"; } else if (keepCost.StockType == "2") { ViewData["StockType"] = "發票(含收據)"; } else if (keepCost.StockType == "4") { ViewData["StockType"] = "零用金"; } else { ViewData["StockType"] = "簽單"; } return(View(keepCost)); }
public async Task <IActionResult> Edit(KeepCostModel keepCost) { var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); var kdtl = _context.BMEDKeepDtls.Find(keepCost.DocId); /* Change to UpperCase.*/ if (keepCost.TicketDtl.TicketDtlNo != null) { keepCost.TicketDtl.TicketDtlNo = keepCost.TicketDtl.TicketDtlNo.ToUpper(); } if (keepCost.SignNo != null) { keepCost.SignNo = keepCost.SignNo.ToUpper(); } if (ModelState.IsValid) { try { if (keepCost.StockType == "2") { var dupData = _context.BMEDKeepCosts.Include(c => c.TicketDtl) .Where(c => c.DocId == keepCost.DocId && c.PartName == keepCost.PartName && c.Standard == keepCost.Standard && c.TicketDtl.TicketDtlNo == keepCost.TicketDtl.TicketDtlNo).FirstOrDefault(); if (dupData != null) { string msg = "資料重複儲存!!"; return(BadRequest(msg)); } } else { var dupData = _context.BMEDKeepCosts.Include(c => c.TicketDtl) .Where(c => c.DocId == keepCost.DocId && c.PartName == keepCost.PartName && c.Standard == keepCost.Standard && c.SignNo == keepCost.SignNo).FirstOrDefault(); if (dupData != null) { string msg = "資料重複儲存!!"; return(BadRequest(msg)); } } int seqno = _context.BMEDKeepCosts.Where(c => c.DocId == keepCost.DocId) .Select(c => c.SeqNo).DefaultIfEmpty().Max(); keepCost.SeqNo = seqno + 1; if (keepCost.StockType == "2") { if (string.IsNullOrEmpty(keepCost.TicketDtl.TicketDtlNo)) { //throw new Exception("發票號碼不可空白!!"); string msg = "發票號碼不可空白!!"; return(BadRequest(msg)); } if (keepCost.AccountDate == null) { //throw new Exception("發票日期不可空白!!"); string msg = "發票日期不可空白!!"; return(BadRequest(msg)); } // check vendor from ERP if (keepCost.VendorId == null) { string msg = "廠商尚未選擇!!"; return(BadRequest(msg)); } else { if (kdtl != null) { if (kdtl.NotInExceptDevice == "N") //非統包 { // Do nothing. } else { var vendor = _context.BMEDVendors.Find(keepCost.VendorId); var checkResult = await new ERPVendors().CheckERPVendorAsync(vendor.UniteNo, vendor.VendorName); if (checkResult != null) { keepCost.ERPVendorId = checkResult; } else { string msg = "於ERP系統查無此廠商!!"; return(BadRequest(msg)); } } } else { var vendor = _context.BMEDVendors.Find(keepCost.VendorId); var checkResult = await new ERPVendors().CheckERPVendorAsync(vendor.UniteNo, vendor.VendorName); if (checkResult != null) { keepCost.ERPVendorId = checkResult; } else { string msg = "於ERP系統查無此廠商!!"; return(BadRequest(msg)); } } } int i = _context.BMEDTicketDtls.Where(d => d.TicketDtlNo == keepCost.TicketDtl.TicketDtlNo) .Select(d => d.SeqNo).DefaultIfEmpty().Max(); keepCost.TicketDtl.SeqNo = i + 1; keepCost.TicketDtl.ObjName = keepCost.PartName; keepCost.TicketDtl.Qty = keepCost.Qty; keepCost.TicketDtl.Unite = keepCost.Unite; keepCost.TicketDtl.Price = keepCost.Price; keepCost.TicketDtl.Cost = keepCost.TotalCost; TicketModel t = _context.BMEDTickets.Find(keepCost.TicketDtl.TicketDtlNo); if (t == null) { t = new TicketModel(); t.TicketNo = keepCost.TicketDtl.TicketDtlNo; t.TicDate = keepCost.AccountDate; t.ApplyDate = null; t.CancelDate = null; t.VendorId = keepCost.VendorId; t.VendorName = keepCost.VendorName; keepCost.TicketDtl.Ticket = t; _context.BMEDTickets.Add(t); } _context.BMEDTicketDtls.Add(keepCost.TicketDtl); } else { keepCost.AccountDate = keepCost.AccountDate == null ? DateTime.Now.Date : keepCost.AccountDate; keepCost.TicketDtl = null; } keepCost.Rtp = ur.Id; keepCost.Rtt = DateTime.Now; if (keepCost.StockType != "0") { if (kdtl.NotInExceptDevice == "N") //非統包 { keepCost.PartNo = ""; } } _context.BMEDKeepCosts.Add(keepCost); _context.SaveChanges(); // KeepDtlModel dtl = _context.BMEDKeepDtls.Where(d => d.DocId == keepCost.DocId) .FirstOrDefault(); if (dtl != null) { dtl.Cost = _context.BMEDKeepCosts.Where(k => k.DocId == keepCost.DocId) .Select(k => k.TotalCost) .DefaultIfEmpty(0).Sum(); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } return(ViewComponent("BMEDKeepCostList", new { id = keepCost.DocId, viewType = "Edit" })); } catch (Exception e) { throw new Exception(e.Message); } } else { string msg = ""; foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors)) { msg += error.ErrorMessage + Environment.NewLine; } throw new Exception(msg); } }
public IActionResult Edit2(KeepCostModel keepCost) { var ur = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault(); if (keepCost.StockType == "3") { ModelState.Remove("TicketDtl.SeqNo"); } if (ModelState.IsValid) { if (keepCost.StockType != "3") { TicketModel t = _context.Tickets.Find(keepCost.TicketDtl.TicketDtlNo); if (t == null) { t = new TicketModel(); t.TicketNo = keepCost.TicketDtl.TicketDtlNo; t.TicDate = keepCost.AccountDate; t.ApplyDate = null; t.CancelDate = null; t.VendorId = keepCost.VendorId; t.VendorName = keepCost.VendorName; keepCost.TicketDtl.Ticket = t; _context.Tickets.Add(t); } TicketDtlModel ticketDtl = _context.TicketDtls.Find(keepCost.TicketDtl.TicketDtlNo, keepCost.TicketDtl.SeqNo); if (ticketDtl == null) { int i = _context.TicketDtls.Where(d => d.TicketDtlNo == keepCost.TicketDtl.TicketDtlNo) .Select(d => d.SeqNo).DefaultIfEmpty().Max(); keepCost.TicketDtl.SeqNo = i + 1; keepCost.TicketDtl.ObjName = keepCost.PartName; keepCost.TicketDtl.Qty = keepCost.Qty; keepCost.TicketDtl.Unite = keepCost.Unite; keepCost.TicketDtl.Price = keepCost.Price; keepCost.TicketDtl.Cost = keepCost.TotalCost; _context.TicketDtls.Add(keepCost.TicketDtl); } else { ticketDtl.ObjName = keepCost.PartName; ticketDtl.Qty = keepCost.Qty; ticketDtl.Unite = keepCost.Unite; ticketDtl.Price = keepCost.Price; ticketDtl.Cost = keepCost.TotalCost; _context.Entry(ticketDtl).State = EntityState.Modified; } } keepCost.Rtp = ur.Id; keepCost.Rtt = DateTime.Now; _context.Entry(keepCost).State = EntityState.Modified; _context.SaveChanges(); KeepDtlModel dtl = _context.KeepDtls.Where(d => d.DocId == keepCost.DocId) .FirstOrDefault(); if (dtl != null) { dtl.Cost = _context.KeepCosts.Where(k => k.DocId == keepCost.DocId) .Select(k => k.TotalCost) .DefaultIfEmpty(0).Sum(); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } return(RedirectToAction("Edit", "Keep", new { Area = "", id = keepCost.DocId, page = 5 })); } if (keepCost.StockType == "0") { ViewData["StockType"] = "庫存"; } else if (keepCost.StockType == "2") { ViewData["StockType"] = "發票(含收據)"; } else if (keepCost.StockType == "4") { ViewData["StockType"] = "零用金"; } else { ViewData["StockType"] = "簽單"; } return(View(keepCost)); }