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 void PreDeleteUnit(int id, int unitid) { MaterialBuyUnit materialBuyUnit = db.MaterialBuyUnits.Find(unitid); int unitcount = db.MaterialBuyUnits.Count(m => m.MaterialUnitPriceID == materialBuyUnit.MaterialUnitPriceID); if (unitcount <= 1) { int namecount = db.MaterialUnitPrices.Count(m => m.MaterialNameID == materialBuyUnit.MaterialUnitPrice.MaterialNameID); if (namecount <= 1) { db.MaterialNames.Remove(materialBuyUnit.MaterialUnitPrice.MaterialName); } db.MaterialUnitPrices.Remove(materialBuyUnit.MaterialUnitPrice); } db.MaterialBuyUnits.Remove(materialBuyUnit); }
public async Task <ActionResult> EditAddMakeReceipt(ProjectMakeReceiptData projectMakeReceiptData) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (ModelState.IsValid) { // db.Entry(materialBuyData).State = EntityState.Modified; Project project = db.Projects.FirstOrDefault(m => m.ID == projectMakeReceiptData.Porject.ID); MaterialBuy receipt = new MaterialBuy(); receipt.Company = project.Company; receipt.CompanyID = project.CompanyID; receipt.Date = projectMakeReceiptData.Date; receipt.EmployeeID = Convert.ToInt32(Session["LoginUserEmployeeID"]); receipt.Employee = db.Employees.FirstOrDefault(e => e.ID == receipt.EmployeeID); receipt.MaterialBuyType = MaterialBuyType.MakeReceipt; receipt.NoteVn = projectMakeReceiptData.NoteVn; receipt.NoteKr = projectMakeReceiptData.NoteVn; receipt.Project = project; receipt.ProjectID = project.ID; receipt.VATPer = projectMakeReceiptData.VATPer; MaterialBuyUnit unit = new MaterialBuyUnit(); unit.MaterialBuy = receipt; unit.Quantity = 1; MaterialName mName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(projectMakeReceiptData.NameVn) || m.NameKr.Equals(projectMakeReceiptData.NameVn)); if (mName == null) { mName = new MaterialName(); mName.NameKr = projectMakeReceiptData.NameVn; mName.NameVn = projectMakeReceiptData.NameVn; db.MaterialNames.Add(mName); } MaterialUnitPrice muPrice = db.MaterialUnitPrices.OrderBy(m => m.Date) .FirstOrDefault(mp => mp.MaterialName.NameVn.Equals(projectMakeReceiptData.NameVn) || mp.MaterialName.NameKr.Equals(projectMakeReceiptData.NameVn)); if (muPrice == null || muPrice.Price != projectMakeReceiptData.Price) { muPrice = new MaterialUnitPrice(); muPrice.Company = project.Company; muPrice.CompanyID = project.CompanyID; muPrice.Date = projectMakeReceiptData.Date; muPrice.UnitString = "Set"; muPrice.Price = projectMakeReceiptData.Price; muPrice.Currency = projectMakeReceiptData.Currency; db.MaterialUnitPrices.Add(muPrice); } muPrice.MaterialName = mName; unit.MaterialUnitPrice = muPrice; receipt.MaterialBuyUnits = new List <MaterialBuyUnit>(); receipt.MaterialBuyUnits.Add(unit); db.MaterialBuys.Add(receipt); db.MaterialBuyUnits.Add(unit); project.MaterialBuys.Add(receipt); // db.Payments.Add(projectDepositData.Deposit); // project.Deposits.Add(projectDepositData.Deposit); await db.SaveChangesAsync(); return(RedirectToAction("EditAddMakeReceipt", new { id = projectMakeReceiptData.Porject.ID })); } return(View(projectMakeReceiptData)); }
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)); }