/** * @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; }