Пример #1
0
 public function testTaxDetailsItemMultipleTaxes()
 {
     $appliedTaxDataArray = ['tax_rate_key' => '77', 'percent' => 0.0925, 'amount' => 0.82, 'rates' => [self::$travisCtyRateObjectDataArray, self::$utopiaCtyRateObjectDataArray, self::$noTaxRateObjectDataArray]];
     $taxDetailsItemDataArray = ['code' => 'QWERTY123', 'type' => 'product', 'tax_percent' => 0.0925, 'price' => 4.99, 'price_incl_tax' => 5.45, 'row_total' => 4.99, 'row_tax' => 0.64, 'taxable_amount' => 4.99, 'discount_amount' => 0.0, 'discount_tax_compensation_amount' => 0.0, 'applied_taxes' => [$appliedTaxDataArray]];
     $taxDetailsItemObjectFromArray = $this->taxDetailsItemBuilder->populateWithArray($taxDetailsItemDataArray)->create();
     $taxDetailsItemObjectFromObject = $this->taxDetailsItemBuilder->populate($taxDetailsItemObjectFromArray)->create();
     $this->assertEquals($taxDetailsItemDataArray, $taxDetailsItemObjectFromArray->__toArray());
     $this->assertEquals($taxDetailsItemDataArray, $taxDetailsItemObjectFromObject->__toArray());
     $this->assertEquals($taxDetailsItemObjectFromArray, $taxDetailsItemObjectFromObject);
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function _setDataValues(array $data)
 {
     if (isset($data[TaxDetails::KEY_APPLIED_TAXES])) {
         $appliedTaxDataObjects = [];
         $appliedTaxes = $data[TaxDetails::KEY_APPLIED_TAXES];
         foreach ($appliedTaxes as $appliedTax) {
             $appliedTaxDataObjects[] = $this->appliedTaxBuilder->populateWithArray($appliedTax)->create();
         }
         $data[TaxDetails::KEY_APPLIED_TAXES] = $appliedTaxDataObjects;
     }
     if (isset($data[TaxDetails::KEY_ITEMS])) {
         $taxDetailItemDataObjects = [];
         $taxDetailItems = $data[TaxDetails::KEY_ITEMS];
         foreach ($taxDetailItems as $taxDetailItem) {
             $taxDetailItemDataObjects[] = $this->taxDetailsItemBuilder->populateWithArray($taxDetailItem)->create();
         }
         $data[TaxDetails::KEY_ITEMS] = $taxDetailItemDataObjects;
     }
     return parent::_setDataValues($data);
 }
 /**
  * Callback function that creates a tax details item from a quote details item for testing.
  *
  * @param QuoteDetailsItem $item
  * @return Data\TaxDetails\Item
  */
 public function createTaxDetailsItem(QuoteDetailsItem $item)
 {
     $rowTotal = $item->getUnitPrice() * $item->getQuantity();
     $rowTax = $rowTotal * self::TAX;
     return $this->taxDetailsItemBuilder->populateWithArray($item->__toArray())->setPrice($item->getUnitPrice())->setRowTotal($rowTotal)->setTaxPercent(self::TAX)->setRowTax($rowTax)->setRowTotalInclTax($rowTotal + $rowTax)->setPriceInclTax($item->getUnitPrice() + $item->getUnitPrice() * self::TAX)->create();
 }