public ActionResult Add(string out_in_come, string data, string department_id, string reason) { QuangHanhManufacturingEntities DBContext = new QuangHanhManufacturingEntities(); using (DbContextTransaction transaction = DBContext.Database.BeginTransaction()) { try { Department department = DBContext.Departments.Find(department_id); if (department == null) { return(Json(new { success = false, message = "Phòng ban không tồn tại" })); } Documentary documentary = new Documentary { documentary_type = 8, date_created = DateTime.Now, person_created = Session["Name"] + "" }; documentary.reason = reason; documentary.out_income = out_in_come; documentary.department_id_to = department_id; documentary.documentary_status = 1; DBContext.Documentaries.Add(documentary); DBContext.SaveChanges(); JArray json = JArray.Parse(data); foreach (JObject item in json) { string room_id = item["id"].ToString(); string repair_requirement = item["repair_requirement"].ToString(); CameraRepairDetail drd = new CameraRepairDetail { documentary_camera_repair_status = 0, documentary_id = documentary.documentary_id, room_id = room_id, broken_camera_quantity = (int)item["broken_camera_quantity"], repair_requirement = repair_requirement, note = (string)item["note"], department_id = (string)item["department_id"] }; DBContext.CameraRepairDetails.Add(drd); JArray vattu = (JArray)item.SelectToken("vattu"); foreach (JObject jObject in vattu) { string supply_id = (string)jObject["supply_id"]; int quantity = (int)jObject["quantity"]; RepairCamera sde = new RepairCamera { documentary_id = documentary.documentary_id, room_id = room_id, supply_id = supply_id, quantity_plan = quantity }; DBContext.RepairCameras.Add(sde); } } DBContext.SaveChanges(); transaction.Commit(); return(Json(new { success = true })); } catch (Exception) { transaction.Rollback(); return(Json(new { success = false, message = "Có lỗi xảy ra" })); } } }
public ActionResult AddSupply(string list, int documentary_id, string room_id) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { CameraRepairDetail detail = db.CameraRepairDetails .Where(x => x.room_id == room_id && x.documentary_id == documentary_id && x.documentary_camera_repair_status == 0).FirstOrDefault(); if (detail == null) { return(Json(new { success = false, message = "Không thể chỉnh sửa quyết định đã xử lý" })); } JObject json = JObject.Parse(list); JArray arr = (JArray)json.SelectToken("list"); List <string> supply_ids = arr.Select(x => x["supply_id"].ToString()).ToList(); if (db.Supplies.Where(x => supply_ids.Contains(x.supply_id)).Count() != supply_ids.Count) { return(Json(new { success = false, message = "Mã vật tư không tồn tại" })); } foreach (JObject item in arr) { string supply_id = (string)item["supply_id"]; RepairCamera temp = db.RepairCameras .Where(a => a.documentary_id == documentary_id && a.room_id.Equals(room_id) && a.supply_id == supply_id).FirstOrDefault(); if (temp == null) { temp = new RepairCamera { documentary_id = documentary_id, room_id = room_id, quantity_in = (int)item["quantity_in"], quantity_out = (int)item["quantity_out"], quantity_plan = (int)item["quantity_plan"], quantity_used = (int)item["quantity_used"], supply_status = (string)item["supplyStatus"], supply_id = (string)item["supply_id"] }; db.RepairCameras.Add(temp); } else { temp.quantity_in = (int)item["quantity_in"]; temp.quantity_out = item["quantity_out"] == null ? 0 : (int)item["quantity_out"]; temp.quantity_used = item["quantity_used"] == null ? 0 : (int)item["quantity_used"]; temp.supply_status = (string)item["supplyStatus"]; } db.SaveChanges(); } db.SaveChanges(); transaction.Commit(); return(Json(new { success = true, message = "Cập nhật thành công" })); } catch (Exception) { transaction.Rollback(); return(Json(new { success = false, message = "Có lỗi xảy ra" })); } } }