/** * @Route("/configurar/campo", name="configurar_campo", options={"expose"=true}) */ public function configurarCampoAction() { $resultado = array('estado' => 'success', 'mensaje' => ''); $em = $this->getDoctrine()->getManager(); $req = $this->getRequest(); list($tipo_cambio, $id) = explode('__', $req->get('control')); $valor = $req->get('valor'); $campo = $em->find("IndicadoresBundle:Campo", $id); $valido = true; if ($tipo_cambio == 'tipo_campo') { $tipo_campo = $em->find("IndicadoresBundle:TipoCampo", $valor); if (strlen($req->get('datos_prueba'))) { $datos_prueba = explode(', ', $req->get('datos_prueba')); $util = new \MINSAL\IndicadoresBundle\Util\Util(); foreach ($datos_prueba as $dato) { $valido = $util->validar($dato, $tipo_campo->getCodigo()); if (!$valido) { break; } } } $mensaje = $campo->getNombre() . ': ' . $this->get('translator')->trans('tipo_campo_cambiado_a') . ' ' . $tipo_campo->getDescripcion(); $campo->setTipoCampo($tipo_campo); } elseif ($tipo_cambio == 'significado_variable') { $significado_variable = $em->find("IndicadoresBundle:SignificadoCampo", $valor); $mensaje = $campo->getNombre() . ': ' . $this->get('translator')->trans('significado_campo_cambiado_a') . ' ' . $significado_variable->getDescripcion(); $campo->setSignificado($significado_variable); } else { $diccionario = $em->find("IndicadoresBundle:Diccionario", $valor); $mensaje = $campo->getNombre() . ': ' . $this->get('translator')->trans('_diccionario_aplicado_') . ' ' . $diccionario->getDescripcion(); $campo->setDiccionario($diccionario); } if ($valido) { $resultado['mensaje'] = $mensaje; } else { $resultado = array('estado' => 'error', 'mensaje' => $this->get('translator')->trans('_tipo_no_corresponde_con_datos_')); } try { $em->flush(); } catch (\Exception $e) { $resultado = array('estado' => 'error', 'mensaje' => $this->get('translator')->trans('camio_no_realizado')); } return new Response(json_encode($resultado)); }