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; }