public function updateStudent($id)
 {
     $row = $this->retrieveOldStudent($id);
     if (!$row) {
         return;
     }
     $estudiante = $this->em->getRepository('AppBundle:Estudiante')->findOneBy(array('oldId' => $row['id']));
     $isUpdate = true;
     if (!$estudiante) {
         $estudiante = new Estudiante();
         $isUpdate = false;
     }
     $nombre = $row['nombre'];
     $apellido = $row['apellido'];
     $fechaNacimiento = $row['fecha_nacimiento'];
     $anioIngreso = $row['anio_ingreso'];
     $sociedad = $row['sociedad'];
     $referencia_bancaria = $row['referencia_bancaria'];
     $emergencia_medica = $row['emergencia_medica'];
     $horario = $row['horario'];
     $futuro_colegio = $row['futuro_colegio'];
     $descuento = $row['descuento'];
     $clase = $row['clase'];
     $egresado = $row['egresado'];
     $estudiante->setAnioIngreso($anioIngreso);
     $estudiante->setApellido($apellido);
     $estudiante->setDescuento($descuento);
     $estudiante->setEgresado($egresado);
     if ($fechaNacimiento) {
         $estudiante->setFechaNacimiento(new \DateTime($fechaNacimiento));
     }
     $estudiante->setNombre($nombre);
     $estudiante->setReferenciaBancaria($referencia_bancaria);
     $estudiante->setActive(true);
     $estudiante->setOldId($row['id']);
     if ($horario == 'doble_horario') {
         $horario = 'Doble Horario';
     }
     $dbHorario = $this->em->getRepository('AppBundle:Horario')->findOneBy(array('name' => ucfirst($horario)));
     $estudiante->setHorario($dbHorario);
     $dbClase = $this->em->getRepository('AppBundle:Clase')->findOneBy(array('name' => ucfirst($clase)));
     $estudiante->setClase($dbClase);
     if ($futuro_colegio != '') {
         $dbColegio = $this->em->getRepository('AppBundle:Colegio')->findOneBy(array('name' => $futuro_colegio));
         if (!$dbColegio) {
             $dbColegio = new Colegio();
             $dbColegio->setName($futuro_colegio);
             $this->em->persist($dbColegio);
         }
         $estudiante->setFuturoColegio($dbColegio);
     }
     if ($sociedad != '') {
         $dbSociedad = $this->em->getRepository('AppBundle:SociedadMedica')->findOneBy(array('name' => $sociedad));
         if (!$dbSociedad) {
             $dbSociedad = new SociedadMedica();
             $dbSociedad->setName($sociedad);
             $this->em->persist($dbSociedad);
         }
         $estudiante->setSociedadMedica($dbSociedad);
     }
     if ($emergencia_medica != '') {
         $dbEmergenciaMedica = $this->em->getRepository('AppBundle:EmergenciaMedica')->findOneBy(array('name' => $emergencia_medica));
         if (!$dbEmergenciaMedica) {
             $dbEmergenciaMedica = new EmergenciaMedica();
             $dbEmergenciaMedica->setName($emergencia_medica);
             $this->em->persist($dbEmergenciaMedica);
         }
         $estudiante->setEmergenciaMedica($dbEmergenciaMedica);
     }
     $oldDbActivities = $this->retrieveOldStudentActivities($id);
     $activitiesList = new ArrayCollection();
     foreach ($oldDbActivities as $rowActivity) {
         $activity = $this->em->getRepository('AppBundle:Actividad')->findOneBy(array('oldId' => $rowActivity['actividad_id']));
         if ($activity) {
             $activitiesList->add($activity);
         }
     }
     $estudiante->mergeActividades($activitiesList);
     $this->em->persist($estudiante);
     $this->em->flush();
     if (!$isUpdate) {
         $this->cuentaService->updateOrCreateCuenta($estudiante);
     }
     $this->facturasServices->generateUserAndFinalBill($estudiante);
     $this->newsLetterSyncService->updateEstudianteRelations($estudiante);
     return true;
 }