public ActionResult Add() { var UserId = User.Identity.GetUserId(); ViewBag.Transfer = new SelectList(EmployeeOutletDAL.GetDataByID(int.Parse(UserId)), "OutletID", "OutletName"); AdjustmentViewModel model = new AdjustmentViewModel(); return(PartialView("Add", model)); }
public async Task <IActionResult> Create([Bind("LineItemId,AdjustmentAmount")] AdjustmentViewModel adjustmentViewModel) { LineItem lineItem = await _context.LineItems .Include(l => l.Campaign) .SingleOrDefaultAsync(m => m.Id == adjustmentViewModel.LineItemId); if (lineItem == null) { return(NotFound()); } // If LineItem or its Campaign have been marked as Reviewed if (lineItem.Reviewed || lineItem.Campaign.Reviewed) { return(BadRequest()); } // Adjustment amount must be > 0 and < the LineItem's BookedAmount if (adjustmentViewModel.AdjustmentAmount < 0 || adjustmentViewModel.AdjustmentAmount > lineItem.BookedAmount) { return(BadRequest()); } if (ModelState.IsValid) { // Create Adjustment Adjustment adjustment = new Adjustment(); adjustment.User = await _userManager.GetUserAsync(HttpContext.User); adjustment.AdjustmentAmount = adjustmentViewModel.AdjustmentAmount; adjustment.DateTime = DateTime.UtcNow; adjustment.LineItem = lineItem; _context.Add(adjustment); // Update LineItem lineItem.AdjustedAmount = adjustment.AdjustmentAmount; lineItem.ActualAmount = lineItem.BookedAmount - adjustment.AdjustmentAmount; if (lineItem.Adjustments == null) { lineItem.Adjustments = new List <Adjustment>(); } lineItem.Adjustments.Add(adjustment); await _context.SaveChangesAsync(); } return(RedirectToAction("Details", "LineItems", new { id = adjustmentViewModel.LineItemId })); }
public ActionResult Add(AdjustmentViewModel model) { if (ModelState.IsValid) { using (POSContext context = new POSContext()) { using (var dbTransaction = context.Database.BeginTransaction()) { int UserId = User.Identity.GetUserId <int>(); int OutletId = 1; //OutletId = (int)EmployeeOutletDAL.GetDataOutletByUserId(UserId).OutletID; AdjusmentStock item = new AdjusmentStock() { ID = model.ID, OutletID = OutletId, Note = model.Note, CreatedBy = UserId, CreatedOn = DateTime.Now, ModifiedBy = UserId, ModifiedOn = DateTime.Now, }; context.TAdjusmentStock.Add(item); context.SaveChanges(); int i = 0; foreach (var detail in model.VariantID) { AdjusmentStockDetail item2 = new AdjusmentStockDetail() { HeaderID = item.ID, VariantID = detail, ActualStock = model.ActualStock[i], InStock = model.InStock[i], CreatedBy = UserId, CreatedOn = DateTime.Now, ModifiedBy = UserId, ModifiedOn = DateTime.Now, }; context.TAdjusmentStockDetail.Add(item2); context.SaveChanges(); ItemsIventory vInv = context.TItemsIventory.Where(t => t.VariantID == detail).FirstOrDefault(); if (vInv != null) { vInv.VariantID = detail; vInv.Beginning = model.InStock[i]; vInv.Adjusment = model.AdjusmentList[i]; vInv.CreatedBy = UserId; vInv.CreatedOn = DateTime.Now; vInv.ModifiedBy = UserId; vInv.ModifiedOn = DateTime.Now; } ; context.SaveChanges(); i++; //masih kurang satu tabel lagi buat save } //yaitu tabel tabel ItemsInventory di adjustment dgn rumus actual-instock try { dbTransaction.Commit(); return(RedirectToAction("Index")); } catch (Exception) { dbTransaction.Rollback(); } } } } return(PartialView("Add", model)); }