示例#1
0
 /**
  * @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;
 }
示例#2
0
 /**
  * @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;
 }