/// <summary> /// Insert or update stock based on purchase Items /// </summary> /// <param name="vm"></param> public void InsertOrUpdateInventory(PurchaseItem vm) { using (MyContext db = new MyContext()) { _stock = new Stock(); //Initialize new stock with vm inserted values _stock.ItemID = vm.ItemID; _stock.BatchNo = vm.Batch; _stock.CostPrice = vm.CostPrice; _stock.SellingPrice = vm.SellingPrice; _stock.ExpiryDate = vm.Expiry; _stock.PurchaseID = vm.PurchaseID; //Get list of all the inserted item in Stock table List<Stock> _checkItem = (from s in db.Stocks where s.ItemID == vm.ItemID && s.BatchNo == vm.Batch select s).ToList(); //count the number of exixting record on inserted item int countStock = _checkItem.Count(); //Add new record if record is not found if (countStock == 0) { //Add new item with new Initial qty _stock.Qty = vm.Qty; _stock.InitialQty = _stock.Qty; db.Stocks.Add(_stock); db.SaveChanges(); } else { //to check how many times loop executes completely int loopCount = 0; //Check and Add or update foreach (Stock stock in _checkItem) { if (stock.CostPrice == vm.CostPrice) { //Update qty and InitialQty stock.Qty += vm.Qty; stock.InitialQty += vm.Qty; db.SaveChanges(); break; } loopCount++; } if (loopCount == _checkItem.Count()) { //Add new record with Qty and intial Qty _stock.InitialQty += vm.Qty; db.Stocks.Add(_stock); db.SaveChanges(); } } } }
public ActionResult BulkInsert(PurchaseItem vm) { try { db.PurchaseItems.Add(vm); db.SaveChanges(); repo.InsertOrUpdateInventory(vm); } catch(Exception ex) { ViewBag.SaveException = "Record couldn't be saved! Please check if record has already been entered! Thank you!!"; return View(vm); } ViewBag.SuccessMsg = "Successfully Saved ! Cheers!"; return RedirectToAction("Index","PurchaseItem"); }
/// <summary> /// Insert in purchaseItem using FormCollection. /// </summary> /// <param name="disposing"></param> public void InsertPurchaseItemFormColl(FormCollection coll) { string[] invoiceId, itemId, batch, qty, cp, sp, expiry; invoiceId = coll["PurchaseInvoice"].Split(','); itemId = coll["SelectedItemvalue"].Split(','); batch = coll["BatchNo"].Split(','); qty = coll["Qty"].Split(','); cp = coll["CostPrice"].Split(','); sp = coll["SellingPrice"].Split(','); expiry = coll["Expiry"].Split(','); int count = invoiceId.Count(); for(int i = 0; i<count;i++) { PurchaseItem pi = new PurchaseItem(); pi.PurchaseID = invoiceId[i]; pi.ItemID = Convert.ToInt32(itemId[i]); pi.Batch = batch[i]; pi.Qty = Convert.ToInt32(qty[i]); pi.CostPrice = Convert.ToDecimal(cp[i]); pi.SellingPrice = Convert.ToDecimal(sp[i]); pi.Expiry = Convert.ToDateTime(expiry[i]); //call bulk insert BulkInsert(pi); } }
/// <summary> /// /// </summary> /// <param name="vm"></param> /// <returns></returns> /// <remarks></remarks> public ActionResult NotGoodConstructor(PurchaseItem vm) { return null; }