예제 #1
0
 /**
  * @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));
 }