/**
  * @return \JMS\Payment\CoreBundle\Entity\ExtendedData|null
  */
 public function getExtendedData()
 {
     if (null !== $this->extendedData) {
         return $this->extendedData;
     }
     if (null !== $this->payment) {
         return $this->payment->getPaymentInstruction()->getExtendedData();
     } else {
         if (null !== $this->credit) {
             return $this->credit->getPaymentInstruction()->getExtendedData();
         }
     }
     return null;
 }
 public function testConstructor()
 {
     $payment = new Payment($instruction = $this->getInstruction(), 123.45);
     $this->assertEquals(0.0, $payment->getApprovedAmount());
     $this->assertEquals(0.0, $payment->getApprovingAmount());
     $this->assertEquals(0.0, $payment->getCreditedAmount());
     $this->assertEquals(0.0, $payment->getCreditingAmount());
     $this->assertEquals(0.0, $payment->getDepositedAmount());
     $this->assertEquals(0.0, $payment->getDepositingAmount());
     $this->assertEquals(0.0, $payment->getReversingApprovedAmount());
     $this->assertEquals(0.0, $payment->getReversingCreditedAmount());
     $this->assertEquals(0.0, $payment->getReversingDepositedAmount());
     $this->assertEquals(Payment::STATE_NEW, $payment->getState());
     $this->assertEquals(123.45, $payment->getTargetAmount());
     $this->assertInstanceOf('Doctrine\\Common\\Collections\\ArrayCollection', $payment->getTransactions());
     $this->assertEquals(0, count($payment->getTransactions()));
     $this->assertFalse($payment->isAttentionRequired());
     $this->assertFalse($payment->isExpired());
     $this->assertNull($payment->getId());
     $this->assertSame($instruction, $payment->getPaymentInstruction());
 }
 /**
  * This method adds a Payment container to this PaymentInstruction.
  *
  * This method is called automatically from Payment::__construct().
  *
  * @param Payment $payment
  * @return void
  */
 public function addPayment(Payment $payment)
 {
     if ($payment->getPaymentInstruction() !== $this) {
         throw new \InvalidArgumentException('This payment container belongs to another instruction.');
     }
     $this->payments->add($payment);
 }
 public function getOrderFromPayment(Payment $payment)
 {
     $pi = $payment->getPaymentInstruction();
     return $this->em->getRepository('FormaLibre\\InvoiceBundle\\Entity\\Order')->findOneBy(array('paymentInstruction' => $pi));
 }