public async Task <ActionResult> EditEditUnit(int id, int unitid) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } MaterialBuy materialBuy = await db.MaterialBuys.FindAsync(id); if (materialBuy == null) { return(HttpNotFound()); } MaterialBuyUnit materialBuyUnit = await db.MaterialBuyUnits.FindAsync(unitid); if (materialBuyUnit == null) { return(HttpNotFound()); } var materialBuyData = new MaterialBuyData(); materialBuyData.MaterialBuy = materialBuy; materialBuyData.MaterialBuyUnit = materialBuyUnit; materialBuyData.MaterialBuy.MaterialBuyUnits = materialBuyData.MaterialBuy.MaterialBuyUnits.OrderBy(p => p.ID).ToList(); return(View(materialBuyData)); }
public async Task <ActionResult> EditAddUnit(MaterialBuyData materialBuyData) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (ModelState.IsValid) { // db.Entry(materialBuyData).State = EntityState.Modified; MaterialName mName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn) || m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr)); if (mName != null) { materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialNameID = mName.ID; materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName = mName; } else { if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr == null) { materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn; } db.MaterialNames.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName); } MaterialBuy materialBuy = db.MaterialBuys.FirstOrDefault(m => m.ID == materialBuyData.MaterialBuy.ID); materialBuyData.MaterialBuyUnit.MaterialUnitPrice.CompanyID = materialBuy.CompanyID; materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Date = materialBuy.Date; MaterialUnitPrice muPrice = db.MaterialUnitPrices.OrderBy(m => m.Date) .FirstOrDefault(m => m.MaterialName.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn)); if (muPrice == null || muPrice.Price != materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price) { db.MaterialUnitPrices.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice); } else { materialBuyData.MaterialBuyUnit.MaterialUnitPrice = muPrice; materialBuyData.MaterialBuyUnit.MaterialUnitPriceID = muPrice.ID; } db.MaterialBuyUnits.Add(materialBuyData.MaterialBuyUnit); materialBuy.MaterialBuyUnits.Add(materialBuyData.MaterialBuyUnit); await db.SaveChangesAsync(); return(RedirectToAction("EditAddUnit", new { id = materialBuyData.MaterialBuy.ID })); } return(View(materialBuyData)); }
public async Task <ActionResult> EditAddUnit(int?id) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } MaterialBuy materialBuy = await db.MaterialBuys.FindAsync(id); if (materialBuy == null) { return(HttpNotFound()); } var materialBuyData = new MaterialBuyData(); materialBuyData.MaterialBuy = materialBuy; return(View(materialBuyData)); }
public async Task <ActionResult> EditEditUnit(int id, int unitid, MaterialBuyData materialBuyData) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (ModelState.IsValid) { // db.Entry(materialBuyData).State = EntityState.Modified; MaterialBuyUnit sUnit = db.MaterialBuyUnits.FirstOrDefault(mbu => mbu.ID == unitid); MaterialName sName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(sUnit.MaterialUnitPrice.MaterialName.NameVn)); int nameCount = db.MaterialUnitPrices.Where(m => m.MaterialName.NameVn.Equals(sUnit.MaterialUnitPrice.MaterialName.NameVn)).Count(); int sunitCount = db.MaterialBuyUnits.Where(u => u.MaterialUnitPriceID == sUnit.MaterialUnitPriceID).Count(); if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price != sUnit.MaterialUnitPrice.Price || materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency != sUnit.MaterialUnitPrice.Currency || !materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString.Equals(sUnit.MaterialUnitPrice.UnitString)) { if (sunitCount == 1) { sUnit.MaterialUnitPrice.UnitString = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString; sUnit.MaterialUnitPrice.Price = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price; sUnit.MaterialUnitPrice.Currency = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency; sUnit.MaterialUnitPrice.Date = DateTime.Today; } else { MaterialUnitPrice muPrice = new MaterialUnitPrice(); muPrice.MaterialName = sUnit.MaterialUnitPrice.MaterialName; muPrice.MaterialNameID = sUnit.MaterialUnitPrice.MaterialNameID; muPrice.Company = sUnit.MaterialUnitPrice.Company; muPrice.CompanyID = sUnit.MaterialUnitPrice.CompanyID; muPrice.UnitString = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString; muPrice.Price = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price; muPrice.Currency = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency; muPrice.Date = DateTime.Today; db.MaterialUnitPrices.Add(muPrice); sUnit.MaterialUnitPrice = muPrice; } } MaterialName newName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn)); if (!materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn.Equals(sName.NameVn)) { if (nameCount == 1) { if (newName == null) { newName = new MaterialName(); sUnit.MaterialUnitPrice.MaterialName.NameVn = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn; sUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn; materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.Translate = false; } else { db.MaterialNames.Remove(sUnit.MaterialUnitPrice.MaterialName); sUnit.MaterialUnitPrice.MaterialName = newName; } } else { if (newName == null) { if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr == null) { materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn; } else if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn == null) { materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr; } sUnit.MaterialUnitPrice.MaterialName = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName; db.MaterialNames.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName); } else { sUnit.MaterialUnitPrice.MaterialName = newName; } } } MaterialBuy materialBuy = db.MaterialBuys.FirstOrDefault(m => m.ID == materialBuyData.MaterialBuy.ID); sUnit.Quantity = materialBuyData.MaterialBuyUnit.Quantity; await db.SaveChangesAsync(); return(RedirectToAction("EditAddUnit", new { id = id })); } return(View(materialBuyData)); }