public async Task <ActionResult> EditEditMakeReceipt(int?id, int makereceiptid) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = await db.Projects.FindAsync(id); if (project == null) { return(HttpNotFound()); } MaterialBuy makeReceipt = await db.MaterialBuys.FindAsync(makereceiptid); if (makeReceipt == null) { return(HttpNotFound()); } var projectMakeReceiptData = new ProjectMakeReceiptData(); projectMakeReceiptData.Porject = project; projectMakeReceiptData.Date = makeReceipt.Date; projectMakeReceiptData.NoteVn = makeReceipt.NoteVn; projectMakeReceiptData.NameVn = makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn; projectMakeReceiptData.Price = makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Price; projectMakeReceiptData.Currency = makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Currency; projectMakeReceiptData.VATPer = makeReceipt.VATPer; ViewBag.MakeReceiptID = makereceiptid; projectMakeReceiptData.Porject.MaterialBuys = projectMakeReceiptData.Porject.MaterialBuys.OrderByDescending(p => p.Date).ToList(); return(View(projectMakeReceiptData)); }
public async Task <ActionResult> EditAddMakeReceipt(int?id) { if (Session["LoginUserID"] == null) { return(RedirectToAction("Login", "Account")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = await db.Projects.FindAsync(id); if (project == null) { return(HttpNotFound()); } var projectMakeReceiptData = new ProjectMakeReceiptData(); projectMakeReceiptData.Porject = project; return(View(projectMakeReceiptData)); }
public async Task <ActionResult> EditEditMakeReceipt(int id, int makereceiptid, 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 makeReceipt = await db.MaterialBuys.FindAsync(makereceiptid); if (makeReceipt.Date != projectMakeReceiptData.Date) { makeReceipt.Date = projectMakeReceiptData.Date; makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Date = projectMakeReceiptData.Date; } if (makeReceipt.VATPer != projectMakeReceiptData.VATPer) { makeReceipt.VATPer = projectMakeReceiptData.VATPer; } if ((makeReceipt.NoteVn != null && !makeReceipt.NoteVn.Equals(projectMakeReceiptData.NoteVn)) || (makeReceipt.NoteVn == null && projectMakeReceiptData.NoteVn != null)) { makeReceipt.NoteVn = projectMakeReceiptData.NoteVn; makeReceipt.NoteKr = projectMakeReceiptData.NoteVn; makeReceipt.Translate = false; } if (makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Price != projectMakeReceiptData.Price || makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Currency != projectMakeReceiptData.Currency) { makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Price = projectMakeReceiptData.Price; makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.Currency = projectMakeReceiptData.Currency; } if ((projectMakeReceiptData.NameVn != null && !projectMakeReceiptData.NameVn.Equals(makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn)) || (projectMakeReceiptData.NameVn == null && makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn != null)) { int nameCount = db.MaterialUnitPrices.Where(m => m.MaterialName.NameVn.Equals(makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn)).Count(); MaterialName oldName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn) || m.NameKr.Equals(makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName.NameVn)); 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; makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName = mName; db.MaterialNames.Add(mName); } else { makeReceipt.MaterialBuyUnits.FirstOrDefault().MaterialUnitPrice.MaterialName = mName; } if (nameCount == 1) { db.MaterialNames.Remove(oldName); } } await db.SaveChangesAsync(); return(RedirectToAction("EditAddMakeReceipt", new { id = projectMakeReceiptData.Porject.ID })); } return(View(projectMakeReceiptData)); }
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)); }