public function createEstudiante(Estudiante $estudiante)
 {
     $this->em->persist($estudiante);
     $cuenta = $this->em->getRepository('AppBundle:Cuenta')->findOneBy(array('referenciabancaria' => $estudiante->getReferenciaBancaria()));
     if ($cuenta) {
         $this->logger->addInfo("The student is from an active account");
         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->addInfo("Creating new account for the student");
         $cuenta = new Cuenta();
         $cuenta->setReferenciabancaria($estudiante->getReferenciaBancaria());
         $this->em->persist($cuenta);
         $estudiante->setCuenta($cuenta);
     }
     $this->em->flush();
     return $estudiante;
 }
 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();
 }
 public function load(ObjectManager $manager)
 {
     $sql = 'select id, referenciabancaria, debe, pago, diferencia from cuenta';
     $username = DataFixturesConstants::DBUSER;
     $password = DataFixturesConstants::DBPASS;
     $database = DataFixturesConstants::DBSCHEMA;
     return;
     $conn = new \PDO(sprintf('mysql:host=localhost;dbname=%s', $database), $username, $password, array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
     $stmt = $conn->prepare($sql);
     $stmt->execute();
     $metadata = $manager->getClassMetaData(get_class(new Cuenta()));
     $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
     while ($row = $stmt->fetch()) {
         // Adding cuenta.
         $cuenta = new Cuenta();
         $cuenta->setId($row['id']);
         //$cuenta->setDebe($row['debe']);
         $cuenta->setDebe(0);
         //$cuenta->setDiferencia($row['diferencia']);
         //$cuenta->setPago($row['pago']);
         $cuenta->setPago(0);
         $cuenta->setReferenciabancaria($row['referenciabancaria']);
         $estudiantes = $manager->getRepository('AppBundle:Estudiante')->findBy(array('referenciaBancaria' => $row['referenciabancaria']));
         $manager->persist($cuenta);
         $brotherParents = true;
         foreach ($estudiantes as $estudiante) {
             $estudiante->setCuenta($cuenta);
             if ($brotherParents) {
                 foreach ($estudiante->getProgenitores() as $progenitor) {
                     $progenitor->setCuenta($cuenta);
                     $manager->persist($progenitor);
                 }
             }
             $brotherParents = false;
             $manager->persist($estudiante);
         }
     }
     $manager->flush();
 }