public function verificarExistenciaDatos($insert, $cliente, $tipoRegistro)
 {
     $em = $this->getDoctrine()->getEntityManager();
     $ruta = $this->container->getParameter('knx.directorio.uploads');
     // Archivo donde se almacena informacion sobre campos q le hacen falta atributo y camposo q estan vacios y son obligatorios.
     $fp = fopen($ruta . "errores-archivo.txt", "a");
     fwrite($fp, "Este Archivo Contiene Una Lista Con Informacion Incorrecta En Su Archivo Original, Modifique De Su Archivo Original y Vuelva a Cargar.\n");
     $arrayAfilia = array();
     // array donde se guardan las afiliaciones
     foreach ($insert as $key => $value) {
         // se verifica que las columnas estes complestas de cada fila
         if (count($value) == 20) {
             $tipoId = $em->getRepository('ParametrizarBundle:Paciente')->existTipoId($insert[$key][0]);
             $identificacion = $em->getRepository('ParametrizarBundle:Paciente')->existIdentificacion((int) $insert[$key][1]);
             $priNombre = $em->getRepository('ParametrizarBundle:Paciente')->existPriNombre($insert[$key][2]);
             $priApellido = $em->getRepository('ParametrizarBundle:Paciente')->existPriApellido($insert[$key][4]);
             $fn = $em->getRepository('ParametrizarBundle:Paciente')->existFN($insert[$key][6]);
             $sexo = $em->getRepository('ParametrizarBundle:Paciente')->existSexo($insert[$key][7]);
             $estadoCivil = $em->getRepository('ParametrizarBundle:Paciente')->existEstadoCivil($insert[$key][8]);
             $mupio = $em->getRepository('ParametrizarBundle:Paciente')->findMupioId($insert[$key][10], $insert[$key][9]);
             $depto = "";
             if ($mupio) {
                 $mupio = $em->getRepository('ParametrizarBundle:Mupio')->find($mupio);
                 $depto = $mupio->getDepto();
             }
             $zona = $em->getRepository('ParametrizarBundle:Paciente')->existZona($insert[$key][12]);
             $ocupacion = $em->getRepository('ParametrizarBundle:Ocupacion')->find($insert[$key][18]);
             // Campos obligatorios que no pueden ir nulos
             if ($tipoId && $identificacion && $priNombre && $priApellido && $fn && $sexo && $estadoCivil && $depto && $mupio && $zona && $ocupacion) {
                 $fn = date_create_from_format('Y-m-d', $insert[$key][6]);
                 // Se instancia el objeto paciente y listo para settiar
                 $paciente = new Paciente();
                 $paciente->setTipoId($insert[$key][0]);
                 $paciente->setIdentificacion($insert[$key][1]);
                 $paciente->setPriNombre($insert[$key][2]);
                 $paciente->setSegNombre($insert[$key][3]);
                 $paciente->setPriApellido($insert[$key][4]);
                 $paciente->setSegApellido($insert[$key][5]);
                 $paciente->setFN($fn);
                 $paciente->setSexo($insert[$key][7]);
                 $paciente->setEstaCivil($insert[$key][8]);
                 $paciente->setDepto($depto->getId());
                 $paciente->setMupio($mupio->getId());
                 $paciente->setDireccion($insert[$key][11]);
                 $paciente->setZona($insert[$key][12]);
                 $paciente->setTelefono($insert[$key][13]);
                 $paciente->setMovil($insert[$key][14]);
                 $paciente->setEmail($insert[$key][15]);
                 $paciente->setPertEtnica($insert[$key][16]);
                 $paciente->setNivelEdu($insert[$key][17]);
                 $paciente->setOcupacion($ocupacion);
                 $paciente->setTipoDes($insert[$key][19]);
                 $afiliacion = new Afiliacion();
                 $afiliacion->setPaciente($paciente);
                 $afiliacion->setCliente($cliente);
                 $afiliacion->setTipoRegist($tipoRegistro);
                 $arrayAfilia[] = $afiliacion;
                 $em->persist($paciente);
             } else {
                 // hay campos imcompletos en $value  linea $key por favor verifique la informacion y vuelva a cargar
                 fwrite($fp, implode(',', $value) . "\n");
             }
         } else {
             // faltan valores por ingresar en $value linea $key
             fwrite($fp, implode(',', $value) . "\n");
         }
     }
     fclose($fp);
     return $arrayAfilia;
 }
 public function ajaxSaveAction()
 {
     $request = $this->get('request');
     $paciente = $request->request->get('paciente');
     $cliente = $request->request->get('cliente');
     $tipoRegist = $request->request->get('tipoRegist');
     $rango = $request->request->get('rango');
     if ($paciente && $cliente) {
         $em = $this->getDoctrine()->getEntityManager();
         $paciente = $em->getRepository('ParametrizarBundle:Paciente')->findOneBy(array('identificacion' => $paciente));
         $cliente = $em->getRepository('ParametrizarBundle:Cliente')->find($cliente);
         if ($paciente && $cliente) {
             $afiliacion = $em->getRepository('ParametrizarBundle:Afiliacion')->findBy(array('cliente' => $cliente->getId(), 'paciente' => $paciente->getId()));
             if ($afiliacion) {
                 $response = array("responseCode" => 400, "msg" => "El cliente ya se encuentra asociado al paciente.");
             } else {
                 $entity = new Afiliacion();
                 $entity->setPaciente($paciente);
                 $entity->setCliente($cliente);
                 $entity->setTipoRegist($tipoRegist);
                 $entity->setRango($rango);
                 $em->persist($entity);
                 $em->flush();
                 $response = array("responseCode" => 200);
                 $response['id'] = $entity->getCliente()->getId();
                 $response['nombre'] = $entity->getCliente()->getNombre();
             }
         } else {
             $response = array("responseCode" => 400);
         }
     }
     $return = json_encode($response);
     return new Response($return, 200, array('Content-Type' => 'application/json'));
 }