/** * {@inheritdoc} */ public function load(ObjectManager $manager) { // Chargement de la configuration $configurationLoader = $this->container->get('comptes_bundle.configuration.loader'); $fixturesConfiguration = $configurationLoader->load('fixtures.yml'); // Tableau de données $comptesContent = $fixturesConfiguration['comptes']; foreach ($comptesContent as $compteContent) { $compte = new Compte(); // Dates d'ouverture et de fermeture $dateOuverture = new \DateTime(); $dateOuverture->setTimestamp($compteContent['date_ouverture']); $dateFermeture = new \DateTime(); $dateFermeture->setTimestamp($compteContent['date_fermeture']); $compte->setNom($compteContent['nom']); $compte->setNumero($compteContent['numero']); $compte->setBanque($compteContent['banque']); $compte->setPlafond($compteContent['plafond']); $compte->setSoldeInitial($compteContent['solde_initial']); $compte->setDateOuverture($dateOuverture); $compte->setDateFermeture($dateFermeture); $compte->setRang($compteContent['rang']); $manager->persist($compte); } $manager->flush(); }
/** * Récupère les mouvements d'un compte entre deux dates. * * @param Compte $compte Le compte bancaire. * @param \DateTime $dateStart Date de début, incluse. * @param \DateTime $dateEnd Date de fin, incluse. * @param string $order 'ASC' (par défaut) ou 'DESC'. * * @return \Doctrine\Common\Collections\ArrayCollection */ public function findByCompteAndDate(Compte $compte, \DateTime $dateStart, \DateTime $dateEnd, $order = 'ASC') { $queryBuilder = $this->createQueryBuilder('m'); $expressionBuilder = $this->getEntityManager()->getExpressionBuilder(); $compteID = $compte->getId(); $and = $expressionBuilder->andX(); $and->add($queryBuilder->expr()->eq('m.compte', ':compte_id')); $and->add($expressionBuilder->gte('m.date', ':date_start')); $and->add($expressionBuilder->lte('m.date', ':date_end')); $queryBuilder->where($and)->setParameter('compte_id', $compteID)->setParameter('date_start', $dateStart)->setParameter('date_end', $dateEnd)->orderBy('m.date', $order); $mouvements = $queryBuilder->getQuery()->getResult(); return $mouvements; }