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 });

            }

        }
Ejemplo n.º 2
0
         /// <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);

             }
         }