/** * @return \Doctrine\ORM\QueryBuilder */ protected function getQueryBuilder() { $qb = $this->paymentRepository->createQueryBuilder('a'); if (count($this->extendedPage->accounts)) { $ids = array(); foreach ($this->extendedPage->accounts as $account) { $ids[] = $account->id; } $qb->andWhere('a.id IN (:accounts)')->setParameter('accounts', $ids); } return $qb; }
/** * @param AccountEntity $account * @return bool */ public function synchronizeAccount(AccountEntity $account) { foreach ($this->getDrivers() as $driver) { if ($driver->getCode() == $account->getBank()->getCode()) { $payments = $driver->getPayments($account, $account->getSyncDate()); $last = NULL; foreach ($payments as $payment) { if ($this->paymentRepository->findOneBy(array('paymentId' => $payment->getPaymentId())) || $this->paymentRepository->findOneBy(array('instructionId' => $payment->getInstructionId()))) { continue; } $payment->setAccount($account); $this->paymentRepository->save($payment); $last = $payment; } if ($last instanceof PaymentEntity) { $account->setSyncDate($last->getDate()); $this->accountRepository->save($account); } return TRUE; } } return FALSE; }