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