// POST: MasterLC/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. //[HttpPost] //[ValidateAntiForgeryToken] //public ActionResult Create([Bind(Include = "Id,LCNo,LCDate,LCExpiryDate,PaymentTerm,Tenor,LCReceiveDate,LatestShipmentDate,Quantity,TotalValue,BuyerInfoId,BuyerBankId,IsAuth,OpBy,OpOn,AuthBy,AuthOn")] MasterLCInfoMas masterLCInfoMas) //{ // if (ModelState.IsValid) // { // db.MasterLCInfoMas.Add(masterLCInfoMas); // db.SaveChanges(); // return RedirectToAction("Index"); // } // ViewBag.BuyerInfoId = new SelectList(db.BuyerInfo, "Id", "Name", masterLCInfoMas.BuyerInfoId); // return View(masterLCInfoMas); //} public JsonResult SaveLCInfo(IEnumerable <MasterLCInfoDet> LCMasterDetInfo, IEnumerable <VMMasterLCInfoOrderDet> LCDetailOrderInfo, MasterLCInfoMas LCMasterInfo) { var result = new { flag = false, message = "Error occured. !", Id = 0 }; try { var OpDate = DateTime.Now; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { //var LcInfoM = new BuyerOrderMas() //{ // Id = 0, // OrderRefNo = OrderMas.OrderRefNo, // OrderDate = OrderMas.OrderDate, // BuyerInfoId = OrderMas.BuyerInfoId, // ProdDepartmentId = OrderMas.ProdDepartmentId, // SeasonInfoId = OrderMas.SeasonInfoId, // FabSupplierId = OrderMas.FabSupplierId, // OpBy = 1, // OpOn = OpDate, // IsAuth = true, // IsLocked = false //}; LCMasterInfo.OpBy = 1; LCMasterInfo.OpOn = OpDate; LCMasterInfo.IsAuth = true; db.MasterLCInfoMas.Add(LCMasterInfo); db.SaveChanges(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); foreach (var item in LCMasterDetInfo) { //var OrderD = new BuyerOrderDet() //{ // Id = 0, // BuyerOrderMasId = OrderM.Id, // ProdCatTypeId = item.ProdCatTypeId, // StyleNo = item.StyleNo, // ProdSizeId = item.ProdSizeId, // ProdColorId = item.ProdColorId, // FabricItemId = item.FabricItemId, // SupplierId = item.SupplierId, // UnitPrice = item.UnitPrice, // Quantity = item.Quantity, // ExFactoryDate = item.ExFactoryDate, // IsLocked = false //}; item.MasterLCInfoMasId = LCMasterInfo.Id; db.MasterLCInfoDet.Add(item); db.SaveChanges(); //dictionary.Add(item.TempOrderDetId, OrderD.Id); dictionary.Add(item.BuyerOrderMasId, item.Id); } //---- lc order det data //var slno = 1; if (LCDetailOrderInfo != null) { foreach (var item in LCDetailOrderInfo) { var ordetDet = new MasterLCInfoOrderDet() { Id = item.Id, MasterLCInfoDetId = dictionary[item.TempMasterLCInfoDetId], BuyerOrderDetId = item.BuyerOrderDetId, }; //db.Entry(deliv).State = deliv.Id == 0 ? // EntityState.Added : // EntityState.Modified; db.MasterLCInfoOrderDet.Add(ordetDet); db.SaveChanges(); } } dbContextTransaction.Commit(); result = new { flag = true, message = "Saving successful !!", Id = LCMasterInfo.Id }; Success("Record saved successfully.", true); } catch (Exception ex) { dbContextTransaction.Rollback(); result = new { flag = false, message = ex.Message, Id = 0 }; } } } catch (Exception ex) { result = new { flag = false, message = ex.Message, Id = 0 }; } return(Json(result, JsonRequestBehavior.AllowGet)); }
// POST: MasterLC/Edit/5 // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. //[HttpPost] //[ValidateAntiForgeryToken] //public ActionResult Edit([Bind(Include = "Id,LCNo,LCDate,LCExpiryDate,PaymentTerm,Tenor,LCReceiveDate,LatestShipmentDate,Quantity,TotalValue,BuyerInfoId,BuyerBankId,IsAuth,OpBy,OpOn,AuthBy,AuthOn")] MasterLCInfoMas masterLCInfoMas) //{ // if (ModelState.IsValid) // { // db.Entry(masterLCInfoMas).State = EntityState.Modified; // db.SaveChanges(); // return RedirectToAction("Index"); // } // ViewBag.BuyerInfoId = new SelectList(db.BuyerInfo, "Id", "Name", masterLCInfoMas.BuyerInfoId); // return View(masterLCInfoMas); //} //IEnumerable<VMBuyerOrderDetEdit> OrderDetails, IEnumerable<VMShipmentSummDet> DelivDetails, VMBuyerOrderMasEdit OrderMas, int[] DelItems, int[] DelDelivItems public JsonResult UpdateLCInfo(IEnumerable <MasterLCInfoDet> LCMasterDetInfo, IEnumerable <VMMasterLCInfoOrderDet> LCDetailOrderInfo, MasterLCInfoMas LCMasterInfo, int[] DeletedItems, int[] DeletedOrderDetails) { var result = new { flag = false, message = "Error occured. !" }; //return Json(result, JsonRequestBehavior.AllowGet); try { var OpDate = DateTime.Now; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { var LcInfoMas = db.MasterLCInfoMas.Find(LCMasterInfo.Id); if (LcInfoMas == null) { result = new { flag = false, message = "Invalid Id. Saving failed !" }; return(Json(result, JsonRequestBehavior.AllowGet)); } /* * Id = lc.lcMas.Id, * LCNo = lc.lcMas.LCNo, * LCDate = lc.lcMas.LCDate , * LCReceiveDate = lc.lcMas.LCReceiveDate, * LCExpiryDate = lc.lcMas.LCExpiryDate, * BuyerInfoId = lc.lcMas.BuyerInfoId, * BuyerName = lc.buyer.Name, * BuyerBankId = lc.lcMas.BuyerBankId, * LatestShipmentDate = lc.lcMas.LatestShipmentDate, * PaymentTerm = lc.lcMas.PaymentTerm, * Quantity = lc.lcMas.Quantity, * Tenor = lc.lcMas.Tenor, * TotalValue = lc.lcMas.TotalValue */ LcInfoMas.LCNo = LCMasterInfo.LCNo; LcInfoMas.LCDate = LCMasterInfo.LCDate; LcInfoMas.LCReceiveDate = LCMasterInfo.LCReceiveDate; LcInfoMas.LCExpiryDate = LCMasterInfo.LCExpiryDate; LcInfoMas.BuyerBankId = LCMasterInfo.BuyerBankId; LcInfoMas.LatestShipmentDate = LCMasterInfo.LatestShipmentDate; LcInfoMas.PaymentTerm = LCMasterInfo.PaymentTerm; LcInfoMas.Quantity = LCMasterInfo.Quantity; LcInfoMas.Tenor = LCMasterInfo.Tenor; LcInfoMas.TotalValue = LCMasterInfo.TotalValue; db.Entry(LcInfoMas).State = EntityState.Modified; db.SaveChanges(); //---- Delete MasterLCInfoOrderDet, MasterLCInfoDet if (DeletedOrderDetails != null) { foreach (var item in DeletedOrderDetails) { var orderDets = db.MasterLCInfoOrderDet.Find(item); if (orderDets != null) { db.MasterLCInfoOrderDet.Remove(orderDets); } db.SaveChanges(); } } if (DeletedItems != null) { foreach (var item in DeletedItems) { var orderDets = db.MasterLCInfoOrderDet.Where(x => x.MasterLCInfoDetId == item); if (orderDets != null) { db.MasterLCInfoOrderDet.RemoveRange(orderDets); } var delLCDet = db.MasterLCInfoDet.Find(item); db.MasterLCInfoDet.Remove(delLCDet); db.SaveChanges(); } } // --- Save LC Det // ---- save LC ORder det Dictionary <int, int> dictionary = new Dictionary <int, int>(); foreach (var item in LCMasterDetInfo) { item.MasterLCInfoMasId = LCMasterInfo.Id; db.Entry(item).State = item.Id == 0 ? EntityState.Added : EntityState.Modified; db.SaveChanges(); dictionary.Add(item.BuyerOrderMasId, item.Id); } //var slno = 1; if (LCDetailOrderInfo != null) { foreach (var item in LCDetailOrderInfo) { var ordetDet = new MasterLCInfoOrderDet() { Id = item.Id, MasterLCInfoDetId = dictionary[item.TempMasterLCInfoDetId], BuyerOrderDetId = item.BuyerOrderDetId, }; db.Entry(ordetDet).State = ordetDet.Id == 0 ? EntityState.Added : EntityState.Modified; //db.MasterLCInfoOrderDet.Add(ordetDet); db.SaveChanges(); } } //if (DelivDetails != null) //{ // foreach (var item in DelivDetails) // { // var deliv = new ShipmentSummDet() // { // Id = item.Id, // BuyerOrderDetId = item.BuyerOrderDetId == 0 ? dictionary[item.DelivOrderDetTempId] : item.BuyerOrderDetId, // DelivSlno = slno++, // ExFactoryDate = item.ExFactoryDate, // HandoverDate = item.HandoverDate, // ETD = item.ETD, // DestinationPortId = item.DestinationPortId, // DelivQuantity = item.DelivQuantity, // BuyersPONo = item.BuyersPONo, // IsLocked = false // }; // db.Entry(deliv).State = deliv.Id == 0 ? // EntityState.Added : // EntityState.Modified; // //db.BuyerOrderDets.Add(OrderD); // db.SaveChanges(); // } //} ////--- delete shipment detail items //if (DelDelivItems != null) //{ // foreach (var item in DelDelivItems) // { // var delOrder = db.ShipmentSummDet.Find(item); // db.ShipmentSummDet.Remove(delOrder); // db.SaveChanges(); // } //} //---- delete order detail items //if (DelItems != null) //{ // foreach (var item in DelItems) // { // //---- if order detail deleted without manual deletion of shipment // // ---- find those shipment and delete first // var shipDets = db.ShipmentSummDet.Where(x => x.BuyerOrderDetId == item); // if (shipDets != null) // { // db.ShipmentSummDet.RemoveRange(shipDets); // } // var delOrder = db.BuyerOrderDet.Find(item); // db.BuyerOrderDet.Remove(delOrder); // db.SaveChanges(); // } //} dbContextTransaction.Commit(); result = new { flag = true, message = "Update successful !!" }; Success("Updated successfully.", true); } catch (Exception ex) { dbContextTransaction.Rollback(); result = new { flag = false, message = ex.Message }; } } } catch (Exception ex) { result = new { flag = false, message = ex.Message }; } return(Json(result, JsonRequestBehavior.AllowGet)); }