// GET: PurchaseRequisitionDtls/Create public ActionResult CreateDtl() { ViewBag.PartNumber = new SelectList(db.Part, "PartNumber", "PartName"); ViewBag.PurchaseRequisitionID = new SelectList(db.PurchaseRequisition, "PurchaseRequisitionID", "PurchaseRequisitionID"); ViewBag.SuggestSupplierCode = new SelectList(db.SupplierInfo, "SupplierCode", "SupplierName"); PurchaseRequisitionDtl p = new PurchaseRequisitionDtl(); p.DateRequired = DateTime.Now; return(View(p)); }
public ActionResult CreateDtl2([Bind(Include = "PurchaseRequisitionDtlOID,PurchaseRequisitionDtlCode,PurchaseRequisitionID,PartNumber,Qty,SuggestSupplierCode,DateRequired")] PurchaseRequisitionDtl purchaseRequisitionDtl) { int z = 1; string y = "", x = purchaseRequisitionDtl.PurchaseRequisitionID; y = x + "-00" + z.ToString(); purchaseRequisitionDtl.PurchaseRequisitionDtlCode = y; for (int i = 0; i < db.PurchaseRequisitionDtl.Count(); i++) { PurchaseRequisitionDtl test = db.PurchaseRequisitionDtl.Find(y); if (z < 9) { if (test != null) { z += 1; y = x + "-00" + z.ToString(); test = db.PurchaseRequisitionDtl.Find(y); } } else if (z < 99) { if (test != null) { z += 1; y = x + "-0" + z.ToString(); test = db.PurchaseRequisitionDtl.Find(y); } } else { if (test != null) { z += 1; y = x + "-" + z.ToString(); test = db.PurchaseRequisitionDtl.Find(y); } } } purchaseRequisitionDtl.PurchaseRequisitionDtlCode = y; //請購單明細代碼 PR-20191016-001-001 if (ModelState.IsValid) { db.PurchaseRequisitionDtl.Add(purchaseRequisitionDtl); db.SaveChanges(); return(RedirectToAction("IndexDtl")); } ViewBag.PartNumber = new SelectList(db.Part, "PartNumber", "PartName", purchaseRequisitionDtl.PartNumber); ViewBag.PurchaseRequisitionID = new SelectList(db.PurchaseRequisition, "PurchaseRequisitionID", "ProductNumber", purchaseRequisitionDtl.PurchaseRequisitionID); ViewBag.SuggestSupplierCode = new SelectList(db.SupplierInfo, "SupplierCode", "SupplierName", purchaseRequisitionDtl.SuggestSupplierCode); return(View(purchaseRequisitionDtl)); }
public ActionResult EditDtl([Bind(Include = "PurchaseRequisitionDtlOID,PurchaseRequisitionDtlCode,PurchaseRequisitionID,PartNumber,Qty,SuggestSupplierCode,DateRequired")] PurchaseRequisitionDtl purchaseRequisitionDtl) { if (ModelState.IsValid) { db.Entry(purchaseRequisitionDtl).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("IndexDtl")); } ViewBag.PartNumber = new SelectList(db.Part, "PartNumber", "PartName", purchaseRequisitionDtl.PartNumber); ViewBag.PurchaseRequisitionID = new SelectList(db.PurchaseRequisition, "PurchaseRequisitionID", "ProductNumber", purchaseRequisitionDtl.PurchaseRequisitionID); ViewBag.SuggestSupplierCode = new SelectList(db.SupplierInfo, "SupplierCode", "SupplierName", purchaseRequisitionDtl.SuggestSupplierCode); return(View(purchaseRequisitionDtl)); }
// GET: PurchaseRequisitionDtls/Details/5 public ActionResult DetailsDtl(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PurchaseRequisitionDtl purchaseRequisitionDtl = db.PurchaseRequisitionDtl.Find(id); if (purchaseRequisitionDtl == null) { return(HttpNotFound()); } return(View(purchaseRequisitionDtl)); }
// GET: PurchaseRequisitionDtls/Edit/5 public ActionResult EditDtl(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PurchaseRequisitionDtl purchaseRequisitionDtl = db.PurchaseRequisitionDtl.Find(id); if (purchaseRequisitionDtl == null) { return(HttpNotFound()); } ViewBag.PartNumber = new SelectList(db.Part, "PartNumber", "PartName", purchaseRequisitionDtl.PartNumber); ViewBag.PurchaseRequisitionID = new SelectList(db.PurchaseRequisition, "PurchaseRequisitionID", "ProductNumber", purchaseRequisitionDtl.PurchaseRequisitionID); ViewBag.SuggestSupplierCode = new SelectList(db.SupplierInfo, "SupplierCode", "SupplierName", purchaseRequisitionDtl.SuggestSupplierCode); return(View(purchaseRequisitionDtl)); }
// GET: PurchaseRequisitionDtls/Create public ActionResult CreateDtl2(string id) { ViewBag.PartNumber = new SelectList(db.Part, "PartNumber", "PartName"); ViewBag.PurchaseRequisitionID = new SelectList(db.PurchaseRequisition, "PurchaseRequisitionID", "ProductNumber"); /// ViewBag.SuggestSupplierCode = new SelectList(db.SupplierInfo, "SupplierCode", "SupplierName"); //var q = from x in db.SupplierInfo select x.SupplierCode; //var q1 = from y in db.PurchaseRequisitionDtl select y.SuggestSupplierCode; //var q2 = q.Union(q1); //ViewBag.SuggestSupplierCode = new SelectList(q2); /// ViewBag.PurchaseRequisitionIDD = id; PurchaseRequisitionDtl p = new PurchaseRequisitionDtl(); p.PurchaseRequisitionID = id; p.DateRequired = DateTime.Now; return(View(p)); }
public ActionResult DeleteDtl(string id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PurchaseRequisitionDtl purchaseRequisitionDtl = db.PurchaseRequisitionDtl.Find(id); if (purchaseRequisitionDtl == null) { return(HttpNotFound()); } db.PurchaseRequisitionDtl.Remove(purchaseRequisitionDtl); db.SaveChanges(); return(RedirectToAction("IndexDtl")); } catch { return(Content("<script> alert('刪除失敗');window.location.href='../Index'</script>")); } }
/// <summary> /// 取得單一採購明細 - 新版使用方法 /// </summary> /// <param name="purchaseRequisitionID"></param> /// <returns></returns> public PurchaseOrderDtlItem GetPODtlItemViewModel(string purchaseRequisitionDtlCode) { //採購明細已加入 PurchaseOrderDtlItem pod = session.PODItems.Where(item => item.PurchaseOrderDtlCode == purchaseRequisitionDtlCode).FirstOrDefault(); if (pod != null) { return(pod); } PurchaseOrderDtlItem podedit = null; //採購明細未加入 DateTime now = DateTime.Now; //排除時間 now = new DateTime(now.Year, now.Month, now.Day); //取得顯示資料 PurchaseRequisitionDtl prd = db.PurchaseRequisitionDtl.Find(purchaseRequisitionDtlCode); if (prd.SuggestSupplierCode != null) { //有建議供應商,預先給定值 SourceList sl = db.SourceList.Find($"{prd.PartNumber}-{prd.SuggestSupplierCode}"); Part p = prd.Part; //設定基本資料 //請購料件總數 int totalPartQty = p.QtyPerUnit * prd.Qty; //請購批量數量(預設不得超買) int qty = totalPartQty / sl.QtyPerUnit; //採購料件總數 int totalSourceListQty = qty * sl.QtyPerUnit; podedit = new PurchaseOrderDtlItem { PartNumber = prd.PartNumber, PartName = p.PartName, PartSpec = p.PartSpec, QtyPerUnit = sl.QtyPerUnit, OriginalUnitPrice = sl.UnitPrice, //暫不實作最小訂貨量MOQ //Qty = sl.MOQ.HasValue && prd.Qty < sl.MOQ.Value ? sl.MOQ.Value : prd.Qty, Qty = qty, TotalPartQty = totalPartQty, TotalSourceListQty = totalSourceListQty, Discount = 0M, DateRequired = prd.DateRequired.AddDays(-7), SourceListID = sl.SourceListID, PurchaseRequisitionDtlCode = prd.PurchaseRequisitionDtlCode }; //計算折扣,需從已加入的相同貨源請購明細計算總數來得到折扣 int totalQty = session.PODItems.Where(item => item.SourceListID == sl.SourceListID).Sum(item => item.Qty) + qty; List <SourceListDtl> slds = db.SourceListDtl.Where(s => s.SourceListID == sl.SourceListID && s.DiscountBeginDate <= now && s.DiscountEndDate >= now).OrderBy(o => o.QtyDemanded).ToList(); decimal discount = 0M; foreach (SourceListDtl sld in slds) { if (totalQty >= sld.QtyDemanded) { discount = sld.Discount; } } //設定折扣 //新增的 podedit.Discount = discount; podedit.PurchaseUnitPrice = (int)Math.Ceiling(podedit.OriginalUnitPrice * (1 - discount)); podedit.Total = podedit.PurchaseUnitPrice * podedit.Qty; session.PODItemEditting = podedit; //已存在的 foreach (var item in session.PODItems.Where(item => item.SourceListID == sl.SourceListID)) { item.Discount = discount; item.PurchaseUnitPrice = (int)Math.Ceiling(item.OriginalUnitPrice * (1 - discount)); item.Total = item.PurchaseUnitPrice * item.Qty; } } else { //沒有建議供應商 session.PODItemEditting = new PurchaseOrderDtlItem { Qty = 0, TotalSourceListQty = 0, Discount = 0, Total = 0, PurchaseRequisitionDtlCode = purchaseRequisitionDtlCode, DateRequired = prd.DateRequired.AddDays(-7), }; } return(session.PODItemEditting); }