예제 #1
0
 public function updateOrCreateCuenta(Estudiante $estudiante)
 {
     $cuenta = $this->em->getRepository('AppBundle:Cuenta')->findOneBy(array('referenciabancaria' => $estudiante->getReferenciaBancaria()));
     if ($cuenta) {
         foreach ($cuenta->getEstudiantes() as $hermano) {
             $estudiante->addMyBrother($hermano);
             $hermano->addMyBrother($estudiante);
             $this->em->persist($hermano);
         }
         foreach ($cuenta->getProgenitores() as $progenitor) {
             $estudiante->addProgenitore($progenitor);
             $progenitor->addEstudiante($estudiante);
             $this->em->persist($progenitor);
         }
         $estudiante->setCuenta($cuenta);
         $this->em->persist($estudiante);
     } else {
         $this->logger->addDebug(sprintf('Account not exists. Creating with reference: %s', $estudiante->getReferenciaBancaria()));
         $cuenta = new Cuenta();
         $cuenta->setReferenciabancaria($estudiante->getReferenciaBancaria());
         $this->em->persist($cuenta);
         $estudiante->setCuenta($cuenta);
     }
     $this->em->persist($estudiante);
     $this->em->flush();
 }