public ActionResult AddOrEditDetail(VT_GetDetailById_Result con) { TransactionDetail td = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault(); if (td.Quantity != con.Quantity) { if (td.Quantity < con.Quantity) { db.VT_ExtraDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now); return(Json(new { success = true, message = "Added Successfully" }, JsonRequestBehavior.AllowGet)); } if (td.Quantity > con.Quantity) { if (con.Quantity == 0) { db.TransactionDetails.Remove(td); db.SaveChanges(); return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet)); } else { if (!con.FeeName.Contains("VanChuyen")) { db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now); return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet)); } else { var count = db.TransportOrders .Where(o => o.TransactionID == con.ID && o.TripID != null) .Count(); if (count < (td.Quantity - con.Quantity)) { return(Json(new { success = true, message = "Lỗi: số lệnh cần xóa lớn hơn số lệnh đã tạo chuyến" }, JsonRequestBehavior.AllowGet)); } else { db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now); return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet)); } } } } } TransactionDetail tran = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault(); tran.FeeAmount = con.FeeAmount; tran.Total = tran.FeeAmount * tran.Quantity; db.Entry(tran).State = EntityState.Modified; db.SaveChanges(); int? total = db.TransactionDetails.Where(x => x.TransactionID == tran.TransactionID).Sum(x => x.Total); Transaction tr = db.Transactions.Where(x => x.ID == tran.TransactionID).FirstOrDefault(); tr.Total = total; db.Entry(tr).State = EntityState.Modified; db.SaveChanges(); return(Json(new { success = true, message = "Updated Successfully" }, JsonRequestBehavior.AllowGet)); }
public ActionResult AddOrEditDetail(VT_GetDetailById_Result con) { try { TransactionDetail td = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault(); if (td.Quantity != con.Quantity) { //neu tang so cont if (td.Quantity < con.Quantity) { db.VT_ExtraDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now, con.CntrSize); return(Json(new { success = true, message = "Thêm chi tiết thành công!" }, JsonRequestBehavior.AllowGet)); } //neu giam so cont if (td.Quantity > con.Quantity) { if (con.Quantity == 0) { db.TransactionDetails.Remove(td); db.SaveChanges(); return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet)); } else { if (!con.FeeName.Contains("VanChuyen")) { db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now); return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet)); } else { var count = db.TransportOrders .Where(o => o.TransactionID == con.ID && o.TripID == null) .Count(); if (count < (td.Quantity - con.Quantity)) { return(Json(new { success = true, message = "Lỗi: số lệnh cần xóa lớn hơn số lệnh chưa tạo chuyến" }, JsonRequestBehavior.AllowGet)); } else { db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now); return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet)); } } } } } TransactionDetail tran = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault(); tran.FeeAmount = con.FeeAmount; tran.Total = tran.FeeAmount * tran.Quantity; db.Entry(tran).State = EntityState.Modified; db.SaveChanges(); int? total = db.TransactionDetails.Where(x => x.TransactionID == tran.TransactionID).Sum(x => x.Total); Transaction tr = db.Transactions.Where(x => x.ID == tran.TransactionID).FirstOrDefault(); tr.Total = total; db.Entry(tr).State = EntityState.Modified; db.SaveChanges(); return(Json(new { success = true, message = "Cập nhật thành công!" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { help.LogError(ex); return(Json(new { success = false, message = "Cập nhật thất bại!" }, JsonRequestBehavior.AllowGet)); } }