Example #1
0
 /**
  * Creates a QuoteDetails item data object by calling setters.
  *
  * @param array $dataArray
  * @return Item
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 private function generateItemWithSetters($dataArray)
 {
     $this->quoteDetailsItemBuilder->populateWithArray([]);
     if (array_key_exists(Item::KEY_CODE, $dataArray)) {
         $this->quoteDetailsItemBuilder->setCode($dataArray[Item::KEY_CODE]);
     }
     if (array_key_exists(Item::KEY_TYPE, $dataArray)) {
         $this->quoteDetailsItemBuilder->setType($dataArray[Item::KEY_TYPE]);
     }
     if (array_key_exists(Item::KEY_TAX_CLASS_KEY, $dataArray)) {
         $this->quoteDetailsItemBuilder->setTaxClassKey($this->taxClassKeyBuilder->setType($dataArray[Item::KEY_TAX_CLASS_KEY][TaxClassKey::KEY_TYPE])->setValue($dataArray[Item::KEY_TAX_CLASS_KEY][TaxClassKey::KEY_VALUE])->create());
     }
     if (array_key_exists(Item::KEY_DISCOUNT_AMOUNT, $dataArray)) {
         $this->quoteDetailsItemBuilder->setDiscountAmount($dataArray[Item::KEY_DISCOUNT_AMOUNT]);
     }
     if (array_key_exists(Item::KEY_QUANTITY, $dataArray)) {
         $this->quoteDetailsItemBuilder->setQuantity($dataArray[Item::KEY_QUANTITY]);
     }
     if (array_key_exists(Item::KEY_PARENT_CODE, $dataArray)) {
         $this->quoteDetailsItemBuilder->setParentCode($dataArray[Item::KEY_PARENT_CODE]);
     }
     if (array_key_exists(Item::KEY_SHORT_DESCRIPTION, $dataArray)) {
         $this->quoteDetailsItemBuilder->setShortDescription($dataArray[Item::KEY_SHORT_DESCRIPTION]);
     }
     if (array_key_exists(Item::KEY_UNIT_PRICE, $dataArray)) {
         $this->quoteDetailsItemBuilder->setUnitPrice($dataArray[Item::KEY_UNIT_PRICE]);
     }
     if (array_key_exists(Item::KEY_TAX_INCLUDED, $dataArray)) {
         $this->quoteDetailsItemBuilder->setTaxIncluded($dataArray[Item::KEY_TAX_INCLUDED]);
     }
     return $this->quoteDetailsItemBuilder->create();
 }
Example #2
0
 /**
  * Map an item to item data object
  *
  * @param ItemBuilder $itemBuilder
  * @param AbstractItem $item
  * @param bool $priceIncludesTax
  * @param bool $useBaseCurrency
  * @param string $parentCode
  * @return ItemDataObject
  */
 public function mapItem(ItemBuilder $itemBuilder, AbstractItem $item, $priceIncludesTax, $useBaseCurrency, $parentCode = null)
 {
     if (!$item->getTaxCalculationItemId()) {
         $sequence = 'sequence-' . $this->getNextIncrement();
         $item->setTaxCalculationItemId($sequence);
     }
     $itemBuilder->setCode($item->getTaxCalculationItemId());
     $itemBuilder->setQuantity($item->getQty());
     $itemBuilder->setTaxClassKey($itemBuilder->getTaxClassKeyBuilder()->setType(TaxClassKey::TYPE_ID)->setValue($item->getProduct()->getTaxClassId())->create());
     $itemBuilder->setTaxIncluded($priceIncludesTax);
     $itemBuilder->setType(self::ITEM_TYPE_PRODUCT);
     if ($useBaseCurrency) {
         if (!$item->getBaseTaxCalculationPrice()) {
             $item->setBaseTaxCalculationPrice($item->getBaseCalculationPriceOriginal());
         }
         $itemBuilder->setUnitPrice($item->getBaseTaxCalculationPrice());
         $itemBuilder->setDiscountAmount($item->getBaseDiscountAmount());
     } else {
         if (!$item->getTaxCalculationPrice()) {
             $item->setTaxCalculationPrice($item->getCalculationPriceOriginal());
         }
         $itemBuilder->setUnitPrice($item->getTaxCalculationPrice());
         $itemBuilder->setDiscountAmount($item->getDiscountAmount());
     }
     $itemBuilder->setParentCode($parentCode);
     return $itemBuilder->create();
 }
Example #3
0
 /**
  * Map an item to item data object
  *
  * @param ItemBuilder $itemBuilder
  * @param AbstractItem $item
  * @param bool $priceIncludesTax
  * @param bool $useBaseCurrency
  * @param string $parentCode
  * @return ItemDataObject
  */
 protected function mapItem(ItemBuilder $itemBuilder, AbstractItem $item, $priceIncludesTax, $useBaseCurrency, $parentCode = null)
 {
     if (!$item->getSequence()) {
         $sequence = 'sequence-' . $this->getNextIncrement();
         $item->setSequence($sequence);
     }
     $itemBuilder->setCode($item->getSequence());
     $itemBuilder->setQuantity($item->getQty());
     $itemBuilder->setTaxClassId($item->getProduct()->getTaxClassId());
     $itemBuilder->setTaxIncluded($priceIncludesTax);
     $itemBuilder->setType('product');
     //TODO: find a place to define constants
     if ($item->getParentItem()) {
         $itemBuilder->setParentCode($item->getParentItem()->getId());
     }
     if ($useBaseCurrency) {
         if (!$item->getBaseTaxCalculationPrice()) {
             $item->setBaseTaxCalculationPrice($item->getBaseCalculationPriceOriginal());
         }
         $itemBuilder->setUnitPrice($item->getBaseTaxCalculationPrice());
         $itemBuilder->setDiscountAmount($item->getBaseDiscountAmount());
     } else {
         if (!$item->getTaxCalculationPrice()) {
             $item->setTaxCalculationPrice($item->getCalculationPriceOriginal());
         }
         $itemBuilder->setUnitPrice($item->getTaxCalculationPrice());
         $itemBuilder->setDiscountAmount($item->getDiscountAmount());
     }
     $itemBuilder->setParentCode($parentCode);
     return $itemBuilder->create();
 }