// POST: FactoryOrder/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,BuyerOrderMasId,SalesContractNo,SalesContractDate,SupplierId,IsAuth,OpBy,OpOn,AuthBy,AuthOn,IsLocked")] FactoryOrderMas factoryOrderMas) //{ // if (ModelState.IsValid) // { // db.FactoryOrderMas.Add(factoryOrderMas); // db.SaveChanges(); // return RedirectToAction("Index"); // } // ViewBag.BuyerOrderMasId = new SelectList(db.BuyerOrderMas, "Id", "OrderRefNo", factoryOrderMas.BuyerOrderMasId); // ViewBag.SupplierId = new SelectList(db.Supplier, "Id", "Name", factoryOrderMas.SupplierId); // return View(factoryOrderMas); //} public JsonResult SaveFactoryOrder(IEnumerable <VMFactoryOrderDet> OrderDetails, IEnumerable <VMFactoryOrderDelivDet> DelivDetails, FactoryOrderMas OrderMas) { var result = new { flag = false, message = "Error occured. !", Id = 0 }; try { var OpDate = DateTime.Now; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { //var OrderM = 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 //}; OrderMas.OpBy = 1; OrderMas.OpOn = OpDate; OrderMas.IsAuth = true; OrderMas.IsLocked = false; db.FactoryOrderMas.Add(OrderMas); db.SaveChanges(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); if (OrderDetails != null) { foreach (var item in OrderDetails) { var OrderD = new FactoryOrderDet() { Id = 0, FactoryOrderMasId = OrderMas.Id, BuyerOrderDetId = item.BuyerOrderDetId, IsLocked = false }; //item.FactoryOrderMasId = OrderMas.Id; //item.IsLocked = false; db.FactoryOrderDet.Add(OrderD); db.SaveChanges(); dictionary.Add(item.TempOrderDetId, OrderD.Id); } } //---- shipment data // var slno = 1; if (DelivDetails != null) { foreach (var item in DelivDetails) { var deliv = new FactoryOrderDelivDet() { Id = item.Id, ShipmentSummDetId = item.ShipmentSummDetId, FactoryOrderDetId = dictionary[item.DelivOrderDetTempId], ExFactoryDate = item.ExFactoryDate, FactFOB = item.FactFOB //DiscountFOB = item.DiscountFOB, //DiscountFlag = false }; //db.Entry(deliv).State = deliv.Id == 0 ? // EntityState.Added : // EntityState.Modified; db.FactoryOrderDelivDet.Add(deliv); db.SaveChanges(); } } dbContextTransaction.Commit(); result = new { flag = true, message = "Saving successful !!", Id = OrderMas.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: FactoryOrder/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,BuyerOrderMasId,SalesContractNo,SalesContractDate,SupplierId,IsAuth,OpBy,OpOn,AuthBy,AuthOn,IsLocked")] FactoryOrderMas factoryOrderMas) //{ // if (ModelState.IsValid) // { // db.Entry(factoryOrderMas).State = EntityState.Modified; // db.SaveChanges(); // return RedirectToAction("Index"); // } // ViewBag.BuyerOrderMasId = new SelectList(db.BuyerOrderMas, "Id", "OrderRefNo", factoryOrderMas.BuyerOrderMasId); // ViewBag.SupplierId = new SelectList(db.Supplier, "Id", "Name", factoryOrderMas.SupplierId); // return View(factoryOrderMas); //} public JsonResult UpdateFactoryOrder(IEnumerable <VMFactoryOrderDet> OrderDetails, IEnumerable <VMFactoryOrderDelivDet> DelivDetails, FactoryOrderMas OrderMas) { var result = new { flag = false, message = "Error occured. !" }; try { var OpDate = DateTime.Now; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { var OrderM = db.FactoryOrderMas.Find(OrderMas.Id); if (OrderM == null) { result = new { flag = false, message = "Factory Order not found, Saving Failed !!" }; return(Json(result, JsonRequestBehavior.AllowGet)); } OrderM.SalesContractDate = OrderMas.SalesContractDate; OrderM.SalesContractDate = OrderMas.SalesContractDate; OrderM.OpBy = 1; OrderM.OpOn = OpDate; db.Entry(OrderM).State = EntityState.Modified; db.SaveChanges(); //var OrderM = 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 //}; //OrderMas.OpBy = 1; //OrderMas.OpOn = OpDate; //OrderMas.IsAuth = true; //OrderMas.IsLocked = false; //db.FactoryOrderMas.Add(OrderMas); //db.SaveChanges(); Dictionary <int, int> dictionary = new Dictionary <int, int>(); foreach (var item in OrderDetails) { //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, // IsLocked = false //}; if (item.Id == 0) //insert { //item.FactoryOrderMasId = OrderMas.Id; //item.IsLocked = false; var OrderD = new FactoryOrderDet() { Id = item.Id, FactoryOrderMasId = OrderMas.Id, BuyerOrderDetId = item.BuyerOrderDetId, IsLocked = false }; db.FactoryOrderDet.Add(OrderD); dictionary.Add(item.TempOrderDetId, OrderD.Id); } else //update { var oItem = db.FactoryOrderDet.Find(item.Id); //oItem.FOBUnitPrice = item.FOBUnitPrice; db.Entry(oItem).State = EntityState.Modified; dictionary.Add(item.TempOrderDetId, oItem.Id); } db.SaveChanges(); } // var slno = 1; if (DelivDetails != null) { foreach (var item in DelivDetails) { var delivItem = db.FactoryOrderDelivDet.Find(item.Id); if (delivItem != null) { delivItem.ExFactoryDate = item.ExFactoryDate; delivItem.FactFOB = item.FactFOB; //db.FactoryOrderDelivDet.Attach(delivItem); db.Entry(delivItem).State = EntityState.Modified; db.SaveChanges(); } else { var deliv = new FactoryOrderDelivDet() { Id = item.Id, FactoryOrderDetId = dictionary[item.DelivOrderDetTempId], ExFactoryDate = item.ExFactoryDate, ShipmentSummDetId = item.ShipmentSummDetId, FactFOB = item.FactFOB }; db.Entry(deliv).State = deliv.Id == 0 ? EntityState.Added : EntityState.Modified; //db.FactoryOrderDelivDet.Add(deliv); db.SaveChanges(); } } } dbContextTransaction.Commit(); result = new { flag = true, message = "Saving 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)); }