/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id) { //Se almacena en la variable data los valores de los campos recibidos del formularios $data = Input::all(); //Se busca la enfermedad por el id recibido para poder editarla $enfermedad = Enfermedad::find($id); //Se coloca los valores recibidos del fomrulario para almacenarlo en cada campo correspondiente $enfermedad->descripcion = $data['descripcion']; $enfermedad->mensaje_positivo = $data['mensaje_positivo']; $enfermedad->mensaje_negativo = $data['mensaje_negativo']; $enfermedad->status = $data['status']; $enfermedad->save(); //Ciclo que recorre los marcadores con los valores recibidos del formulario foreach (Marcador::all() as $marcador) { if ($marcador->trimestre_marcador == 3) { $sw = 0; $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', '1')->first(); if ($data['marcador_' . $marcador->id . '_1'] == '' && !empty($condicion)) { CondicionEnfermedad::destroy($condicion->id); } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && !empty($condicion)) { $condicion = CondicionEnfermedad::find($condicion->id); $sw = 1; } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && empty($condicion)) { $condicion = new CondicionEnfermedad(); $sw = 1; } if ($sw == 1) { $condicion->id_enfermedad = $id; $condicion->id_marcador = $marcador->id; $condicion->trimestre_marcador = '1'; $condicion->valor_condicion = $data['marcador_' . $marcador->id . '_1']; $condicion->limite_superior = $data['limite_superior_' . $marcador->id . '_1']; $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . '_1']; $condicion->id_user_updated = Auth::user()->id; $condicion->save(); } $marcador->trimestre_marcador = '2'; } $sw = 0; //Variable que almacena el objeto de la condicion perteneciente a esa enfermedad y ese marcador $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', $marcador->trimestre_marcador)->first(); //Si el valor recibido del formulario viene en blanco y la condicion exista en la base de datos se procede a editar el valor if ($data['marcador_' . $marcador->id . ''] == '' && !empty($condicion)) { CondicionEnfermedad::destroy($condicion->id); } elseif ($data['marcador_' . $marcador->id . ''] != '' && !empty($condicion)) { $condicion = CondicionEnfermedad::find($condicion->id); $sw = 1; } elseif ($data['marcador_' . $marcador->id . ''] != '' && empty($condicion)) { $condicion = new CondicionEnfermedad(); $sw = 1; } if ($sw == 1) { $condicion->id_enfermedad = $id; $condicion->id_marcador = $marcador->id; $condicion->trimestre_marcador = $marcador->trimestre_marcador; $condicion->valor_condicion = $data['marcador_' . $marcador->id . '']; $condicion->limite_superior = $data['limite_superior_' . $marcador->id . '']; $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . '']; $condicion->id_user_updated = Auth::user()->id; $condicion->save(); } } //Se retorna a la vista return Redirect::route('datos.condiciones.index'); }