public function isDocumentPaid(Document $document) { $amount = $document->getAmountTax(); $paidAmount = 0; $payments = $this->entityManager->getRepository(BankTransaction::getClass())->findBy(array('document' => $document)); foreach ($payments as $payment) { $paidAmount += $payment->getSum(); } if ($document instanceof Document\PurchaseInvoice) { $paidAmount = abs($paidAmount); } if ($paidAmount >= $amount) { $document->setPaymentStatus(Document::PAYMENT_STATUS_PAID); } else { $document->setPaymentStatus(Document::PAYMENT_STATUS_UNPAID); } $this->invoiceService->saveInvoice($document); return $paidAmount >= $amount; }