public async Task<ActionResult> Medios_Subcontratados([Bind(Include = "id,coste_sub,subcontrata")] Operaciones_Medios_Subcontratados operaciones) { try { if (ModelState.IsValid) { Operaciones_Medios_Subcontratados modificar = new Operaciones_Medios_Subcontratados(); await modificar.Actualizar(operaciones, User.Identity.GetUserId(), Request.UserHostAddress); TempData["Mensaje"] = "Medios modificados correctamente."; return RedirectToAction("Editar", "Operaciones", new { id = operaciones.id }); } TempData["Mensaje"] = "Error al modificar los Medios."; return RedirectToAction("Editar", "Operaciones", new { id = operaciones.id }); } catch { TempData["Mensaje"] = "Error al modificar los Medios."; return RedirectToAction("Editar", "Operaciones", new { id = operaciones.id }); } }
/// <summary> /// Método para actializar los medios de la Operación /// </summary> /// <param name="op_nuevo"></param> /// <param name="id"></param> /// <param name="ip"></param> /// <returns></returns> public async Task Actualizar(Operaciones_Medios_Subcontratados op_nuevo, string id, string ip) { using (var db = new Conexion()) { //Eliminar las Subcontratas de esta Operación List<Operaciones_Subcontratas> op_sub = db.Operaciones_Subcontratas.Where(m => m.operacion_id == op_nuevo.id).ToList(); db.Operaciones_Subcontratas.RemoveRange(op_sub); await db.SaveChangesAsync(); //Elimino Medios de Tipo Personal List<Operaciones_TipoPersonal> intro_opp = new List<Operaciones_TipoPersonal>(); intro_opp = db.Operaciones_TipoPersonal.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoPersonal.RemoveRange(intro_opp); await db.SaveChangesAsync(); //Elimino Medios de Tipo Material List<Operaciones_TipoMaterial> intro_opm = new List<Operaciones_TipoMaterial>(); intro_opm = db.Operaciones_TipoMaterial.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaterial.RemoveRange(intro_opm); await db.SaveChangesAsync(); //Elimino Medios de Tipo Maquinaria List<Operaciones_TipoMaquinaria> intro_opma = new List<Operaciones_TipoMaquinaria>(); intro_opma = db.Operaciones_TipoMaquinaria.Where(m => m.operacion == op_nuevo.id).ToList(); db.Operaciones_TipoMaquinaria.RemoveRange(intro_opma); await db.SaveChangesAsync(); Operaciones_Subcontratas nuevo = new Operaciones_Subcontratas(); nuevo.cantidad = op_nuevo.coste_sub; nuevo.operacion_id = op_nuevo.id; nuevo.subcontrata_id = op_nuevo.subcontrata; db.Operaciones_Subcontratas.Add(nuevo); await db.SaveChangesAsync(); Operaciones operaciones = await db.Operaciones.FindAsync(op_nuevo.id); operaciones.coste_total = op_nuevo.coste_sub; operaciones.medios = "subcontratados"; db.Entry(operaciones).State = EntityState.Modified; await db.SaveChangesAsync(); Historial historial = new Historial("Modificó Medio de Tipo Subcontrata", id, "usuario", ip); } }