示例#1
0
 public function testGettersSetters()
 {
     $invoice = new Invoice();
     $this->assertTrue($invoice === $invoice->setPriceType(Invoice::PRICE_GROSS));
     $this->assertEquals(Invoice::PRICE_GROSS, $invoice->getPriceType());
     $this->assertTrue($invoice === $invoice->setCurrency('EUR'));
     $this->assertEquals('EUR', $invoice->getCurrency());
     $this->assertEquals(2, $invoice->getPrecision());
     $this->assertTrue($invoice === $invoice->setCurrency('JPY', 0));
     $this->assertEquals('JPY', $invoice->getCurrency());
     $this->assertEquals(0, $invoice->getPrecision());
     $address = array('imos GmbH', 'Alfons-Feifel-Str. 9', '73037 Göppingen');
     $this->assertTrue($invoice === $invoice->setCustomerAddress($address));
     $this->assertEquals($address, $invoice->getCustomerAddress());
     $this->assertTrue($invoice === $invoice->setCustomerNumber('99999'));
     $this->assertEquals('99999', $invoice->getCustomerNumber());
     $this->assertTrue($invoice === $invoice->setInvoiceNumber('RE-12345'));
     $this->assertEquals('RE-12345', $invoice->getInvoiceNumber());
     $this->assertTrue($invoice === $invoice->setInvoiceDate(new DateTime('2016-01-01')));
     $this->assertEquals(new DateTime('2016-01-01'), $invoice->getInvoiceDate());
     $this->assertTrue($invoice === $invoice->setDueDate(new DateTime('2016-02-01')));
     $this->assertEquals(new DateTime('2016-02-01'), $invoice->getDueDate());
     $this->assertTrue($invoice === $invoice->setBillingPeriod(DateRange::create('2016-01-01', '2016-02-01')));
     $this->assertEquals(DateRange::create('2016-01-01', '2016-02-01'), $invoice->getBillingPeriod());
     $this->assertTrue($invoice === $invoice->setCommission('Partner 1'));
     $this->assertEquals('Partner 1', $invoice->getCommission());
     $this->assertTrue($invoice === $invoice->clearTaxIds());
     $this->assertTrue($invoice === $invoice->addTaxId('Ust-ID', 'DE999999999'));
     $this->assertTrue($invoice === $invoice->addTaxId('Steuernummer', '12345 / 67890'));
     $this->assertEquals(array(array('label' => 'Ust-ID', 'value' => 'DE999999999'), array('label' => 'Steuernummer', 'value' => '12345 / 67890')), $invoice->getTaxIds());
     $this->assertTrue($invoice === $invoice->setPaymentTerms('30 days strictly net'));
     $this->assertEquals('30 days strictly net', $invoice->getPaymentTerms());
     $this->assertTrue($invoice === $invoice->clearExtraInfo());
     $this->assertTrue($invoice === $invoice->addExtraInfo('Payable by bank transfer.'));
     $this->assertTrue($invoice === $invoice->addExtraInfo('IBAN: DE99 1234 5678 9012 3456 78'));
     $this->assertEquals(array('Payable by bank transfer.', 'IBAN: DE99 1234 5678 9012 3456 78'), $invoice->getExtraInfo());
     $item1 = new LineItem();
     $item2 = new LineItem();
     $this->assertTrue($invoice === $invoice->clearLineItems());
     $this->assertTrue($invoice === $invoice->addLineItem($item1));
     $this->assertTrue($invoice === $invoice->addLineItem($item2));
     $result = $invoice->getLineItems();
     $this->assertCount(2, $result);
     $this->assertTrue($item1 === $result[0]);
     $this->assertTrue($item2 === $result[1]);
 }
示例#2
0
 /**
  * @param Invoice $invoice
  * @return array
  */
 protected function getColumns(Invoice $invoice)
 {
     $columns = array();
     foreach ($this->availableColumns as $column) {
         foreach ($invoice->getLineItems() as $lineItem) {
             $getMethod = 'get' . strtoupper($column[0]) . substr($column, 1);
             if (!is_null($lineItem->{$getMethod}())) {
                 $columns[$column] = $column;
                 continue 2;
                 // To next column
             }
         }
     }
     return $columns;
 }