/**
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param array $response
  * @return void
  */
 protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response)
 {
     $this->assertEquals($orderItem->getId(), $response['item_id']);
     $this->assertEquals($orderItem->getOrderId(), $response['order_id']);
     $this->assertEquals($orderItem->getProductId(), $response['product_id']);
     $this->assertEquals($orderItem->getProductType(), $response['product_type']);
     $this->assertEquals($orderItem->getBasePrice(), $response['base_price']);
     $this->assertEquals($orderItem->getRowTotal(), $response['row_total']);
 }
 /**
  * Get product id
  *
  * @param \Magento\Sales\Model\Order\Admin\Item $subject
  * @param callable $proceed
  * @param \Magento\Sales\Model\Order\Item $item
  *
  * @return int
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function aroundGetProductId(\Magento\Sales\Model\Order\Admin\Item $subject, \Closure $proceed, \Magento\Sales\Model\Order\Item $item)
 {
     if ($item->getProductType() == \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE) {
         $productOptions = $item->getProductOptions();
         $product = $this->productFactory->create();
         return $product->getIdBySku($productOptions['simple_sku']);
     }
     return $proceed($item);
 }
 public function testGetBaseTotalAmount()
 {
     $baseRowTotal = 10;
     $baseDiscountAmount = 2;
     $expectedResult = 8;
     $this->itemMock->expects($this->once())->method('getBaseRowTotal')->will($this->returnValue($baseRowTotal));
     $this->itemMock->expects($this->once())->method('getBaseDiscountAmount')->will($this->returnValue($baseDiscountAmount));
     $this->assertEquals($expectedResult, $this->defaultColumn->getBaseTotalAmount($this->itemMock));
 }
 /**
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param array $response
  * @return void
  */
 protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response)
 {
     $expected = $orderItem->getBuyRequest()->getLinks();
     $this->assertArrayHasKey('product_option', $response);
     $this->assertArrayHasKey('extension_attributes', $response['product_option']);
     $this->assertArrayHasKey('downloadable_option', $response['product_option']['extension_attributes']);
     $actualOptions = $response['product_option']['extension_attributes']['downloadable_option'];
     $this->assertArrayHasKey('downloadable_links', $actualOptions);
     $this->assertEquals($expected, $actualOptions['downloadable_links']);
 }
 /**
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param array $response
  * @return void
  */
 protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response)
 {
     $expected = $orderItem->getBuyRequest()->getSuperAttribute();
     $this->assertArrayHasKey('product_option', $response);
     $this->assertArrayHasKey('extension_attributes', $response['product_option']);
     $this->assertArrayHasKey('configurable_item_options', $response['product_option']['extension_attributes']);
     $actualOptions = $response['product_option']['extension_attributes']['configurable_item_options'];
     $this->assertTrue(is_array($actualOptions));
     $this->assertTrue(is_array($actualOptions[0]));
     $this->assertArrayHasKey('option_id', $actualOptions[0]);
     $this->assertArrayHasKey('option_value', $actualOptions[0]);
     $this->assertEquals(key($expected), $actualOptions[0]['option_id']);
     $this->assertEquals(current($expected), $actualOptions[0]['option_value']);
 }
 /**
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param array $response
  * @return void
  */
 protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response)
 {
     $bundleOption = $orderItem->getBuyRequest()->getBundleOption();
     $bundleOptionQty = $orderItem->getBuyRequest()->getBundleOptionQty();
     $this->assertArrayHasKey('product_option', $response);
     $this->assertArrayHasKey('extension_attributes', $response['product_option']);
     $this->assertArrayHasKey('bundle_options', $response['product_option']['extension_attributes']);
     $actualOptions = $response['product_option']['extension_attributes']['bundle_options'];
     $this->assertEquals(array_keys($bundleOption), array_column($actualOptions, 'option_id'));
     $this->assertEquals($bundleOptionQty, array_column($actualOptions, 'option_qty', 'option_id'));
     foreach ($actualOptions as $option) {
         $expectedSelections = is_array($bundleOption[$option['option_id']]) ? $bundleOption[$option['option_id']] : [$bundleOption[$option['option_id']]];
         $this->assertEquals($expectedSelections, $option['option_selections']);
     }
 }
 /**
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param array $response
  * @return void
  */
 protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response)
 {
     $expected = $orderItem->getBuyRequest()->getOptions();
     $this->assertArrayHasKey('product_option', $response);
     $this->assertArrayHasKey('extension_attributes', $response['product_option']);
     $this->assertArrayHasKey('custom_options', $response['product_option']['extension_attributes']);
     $actualOptions = $response['product_option']['extension_attributes']['custom_options'];
     $expectedOptions = [];
     foreach ($expected as $optionId => $optionValue) {
         if (is_array($optionValue)) {
             $optionValue = implode(',', $optionValue);
         }
         $expectedOptions[] = ['option_id' => $optionId, 'option_value' => $optionValue];
     }
     $this->assertEquals($expectedOptions, $actualOptions);
 }
Example #8
0
 public function testSave()
 {
     $this->orderMock->expects($this->exactly(3))->method('getId')->willReturn(null);
     $this->orderItemMock->expects($this->once())->method('getChildrenItems')->willReturn([]);
     $this->orderItemMock->expects($this->once())->method('getQuoteParentItemId')->willReturn(null);
     $this->orderMock->expects($this->once())->method('setTotalItemCount')->with(1);
     $this->storeGroupMock->expects($this->once())->method('getDefaultStoreId')->willReturn(1);
     $this->orderMock->expects($this->once())->method('getAllItems')->willReturn([$this->orderItemMock]);
     $this->orderMock->expects($this->once())->method('validateBeforeSave')->willReturnSelf();
     $this->orderMock->expects($this->once())->method('beforeSave')->willReturnSelf();
     $this->orderMock->expects($this->once())->method('isSaveAllowed')->willReturn(true);
     $this->orderMock->expects($this->once())->method('getEntityType')->willReturn('order');
     $this->orderMock->expects($this->exactly(2))->method('getStore')->willReturn($this->storeMock);
     $this->storeMock->expects($this->exactly(2))->method('getGroup')->willReturn($this->storeGroupMock);
     $this->storeMock->expects($this->once())->method('getWebsite')->willReturn($this->websiteMock);
     $this->storeGroupMock->expects($this->once())->method('getDefaultStoreId')->willReturn(1);
     $this->salesSequenceManagerMock->expects($this->once())->method('getSequence')->with('order', 1)->willReturn($this->salesSequenceMock);
     $this->salesSequenceMock->expects($this->once())->method('getNextValue')->willReturn('10000001');
     $this->orderMock->expects($this->once())->method('setIncrementId')->with('10000001')->willReturnSelf();
     $this->orderMock->expects($this->once())->method('getIncrementId')->willReturn(null);
     $this->orderMock->expects($this->once())->method('getData')->willReturn(['increment_id' => '10000001']);
     $this->objectRelationProcessorMock->expects($this->once())->method('validateDataIntegrity')->with(null, ['increment_id' => '10000001']);
     $this->relationCompositeMock->expects($this->once())->method('processRelations')->with($this->orderMock);
     $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->adapterMock);
     $this->adapterMock->expects($this->any())->method('quoteInto');
     $this->adapterMock->expects($this->any())->method('describeTable')->will($this->returnValue([]));
     $this->adapterMock->expects($this->any())->method('update');
     $this->adapterMock->expects($this->any())->method('lastInsertId');
     $this->orderMock->expects($this->any())->method('getId')->will($this->returnValue(1));
     $this->entitySnapshotMock->expects($this->once())->method('isModified')->with($this->orderMock)->will($this->returnValue(true));
     $this->resource->save($this->orderMock);
 }
Example #9
0
 /**
  * @dataProvider canShowPriceInfoDataProvider
  */
 public function testCanShowPriceInfo($parentItem, $productOptions, $result)
 {
     $this->model->setItem($this->orderItem);
     $this->orderItem->expects($this->any())->method('getOrderItem')->will($this->returnSelf());
     $this->orderItem->expects($this->any())->method('getParentItem')->will($this->returnValue($parentItem));
     $this->orderItem->expects($this->any())->method('getProductOptions')->will($this->returnValue($productOptions));
     $this->assertSame($result, $this->model->canShowPriceInfo($this->orderItem));
 }
Example #10
0
 public function testGetOriginalPrice()
 {
     $price = 9.99;
     $this->model->setPrice($price);
     $this->assertEquals($price, $this->model->getOriginalPrice());
     $originalPrice = 5.55;
     $this->model->setData(\Magento\Sales\Api\Data\OrderItemInterface::ORIGINAL_PRICE, $originalPrice);
     $this->assertEquals($originalPrice, $this->model->getOriginalPrice());
 }
Example #11
0
 public function testCollect()
 {
     $this->creditmemoMock->expects($this->once())->method('getAllItems')->willReturn([$this->creditmemoItemMock]);
     $this->creditmemoItemMock->expects($this->atLeastOnce())->method('getOrderItem')->willReturn($this->orderItemMock);
     $this->orderItemMock->expects($this->once())->method('isDummy')->willReturn(false);
     $this->creditmemoItemMock->expects($this->once())->method('calcRowTotal')->willReturnSelf();
     $this->creditmemoItemMock->expects($this->once())->method('getRowTotal')->willReturn(1);
     $this->creditmemoItemMock->expects($this->once())->method('getBaseRowTotal')->willReturn(1);
     $this->creditmemoItemMock->expects($this->once())->method('getRowTotalInclTax')->willReturn(1);
     $this->creditmemoItemMock->expects($this->once())->method('getBaseRowTotalInclTax')->willReturn(1);
     $this->creditmemoMock->expects($this->once())->method('setSubtotal')->with(1)->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('setBaseSubtotal')->with(1)->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('setSubtotalInclTax')->with(1)->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('setBaseSubtotalInclTax')->with(1)->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('getGrandTotal')->willReturn(1);
     $this->creditmemoMock->expects($this->once())->method('setGrandTotal')->with(2)->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('getBaseGrandTotal')->willReturn(1);
     $this->creditmemoMock->expects($this->once())->method('setBaseGrandTotal')->with(2)->willReturnSelf();
     $this->assertEquals($this->total, $this->total->collect($this->creditmemoMock));
 }
Example #12
0
 public function testProcessRelation()
 {
     $this->addressHandlerMock->expects($this->once())->method('removeEmptyAddresses')->with($this->orderMock)->willReturnSelf();
     $this->addressHandlerMock->expects($this->once())->method('process')->with($this->orderMock)->willReturnSelf();
     $this->orderMock->expects($this->exactly(2))->method('getItems')->willReturn([$this->orderItemMock]);
     $this->orderMock->expects($this->exactly(3))->method('getId')->willReturn('order-id-value');
     $this->orderItemMock->expects($this->once())->method('setOrderId')->with('order-id-value')->willReturnSelf();
     $this->orderItemMock->expects($this->once())->method('setOrder')->with($this->orderMock)->willReturnSelf();
     $this->orderItemRepositoryMock->expects($this->once())->method('save')->with($this->orderItemMock)->willReturnSelf();
     $this->orderMock->expects($this->exactly(2))->method('getPayment')->willReturn($this->orderPaymentMock);
     $this->orderPaymentMock->expects($this->once())->method('setParentId')->with('order-id-value')->willReturnSelf();
     $this->orderPaymentMock->expects($this->once())->method('setOrder')->with($this->orderMock)->willReturnSelf();
     $this->orderPaymentResourceMock->expects($this->once())->method('save')->with($this->orderPaymentMock)->willReturnSelf();
     $this->orderMock->expects($this->exactly(2))->method('getStatusHistories')->willReturn([$this->orderStatusHistoryMock]);
     $this->orderStatusHistoryMock->expects($this->once())->method('setParentId')->with('order-id-value')->willReturnSelf();
     $this->orderStatusHistoryMock->expects($this->once())->method('setOrder')->with($this->orderMock)->willReturnSelf();
     $this->statusHistoryResource->expects($this->once())->method('save')->with($this->orderStatusHistoryMock)->willReturnSelf();
     $this->orderMock->expects($this->exactly(2))->method('getRelatedObjects')->willReturn([$this->orderInvoiceMock]);
     $this->orderInvoiceMock->expects($this->once())->method('setOrder')->with($this->orderMock)->willReturnSelf();
     $this->orderInvoiceMock->expects($this->once())->method('save')->willReturnSelf();
     $this->relationProcessor->processRelation($this->orderMock);
 }
Example #13
0
 /**
  * Retrieve tracking variables for an order item
  *
  * @param \Magento\Sales\Model\Order\Item $item The order item
  *
  * @return array
  */
 private function getOrderItemVariables($item)
 {
     $variables = [];
     if (!$item->isDummy()) {
         $itemId = $item->getId();
         $prefix = "order.items.{$itemId}";
         $variables[$prefix . '.sku'] = $item->getSku();
         $variables[$prefix . '.product_id'] = $item->getProductId();
         $variables[$prefix . '.qty'] = $item->getQtyOrdered();
         $variables[$prefix . '.price'] = $item->getBasePrice();
         $variables[$prefix . '.row_total'] = $item->getRowTotal();
         $variables[$prefix . '.label'] = $item->getName();
         $variables[$prefix . '.salesrules'] = $item->getAppliedRuleIds();
         if ($product = $item->getProduct()) {
             $categoriesId = $product->getCategoryIds();
             if (count($categoriesId)) {
                 $variables[$prefix . '.category_ids'] = implode(",", $categoriesId);
             }
         }
     }
     return $variables;
 }
Example #14
0
 public function testCalcRowTotal()
 {
     $this->item->setData(['order_item_id' => 1, 'qty' => 2]);
     $this->item->setInvoice($this->invoiceMock);
     $this->invoiceMock->expects($this->once())->method('getOrder')->willReturn($this->orderMock);
     $this->orderMock->expects($this->once())->method('getItemById')->with(1)->willReturn($this->orderItemMock);
     $this->orderItemMock->expects($this->once())->method('getQtyOrdered')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getRowTotal')->willReturn(2);
     $this->orderItemMock->expects($this->once())->method('getRowInvoiced')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getBaseRowTotal')->willReturn(2);
     $this->orderItemMock->expects($this->once())->method('getBaseRowInvoiced')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getRowTotalInclTax')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getBaseRowTotalInclTax')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getQtyToInvoice')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getQtyInvoiced')->willReturn(0);
     $this->invoiceMock->expects($this->exactly(4))->method('roundPrice')->willReturnMap([[2, 'regular', false, 2], [2, 'base', false, 2], [2, 'including', false, 2], [2, 'including_base', false, 2]]);
     $this->assertEquals($this->item->calcRowTotal(), $this->item);
 }
Example #15
0
 public function testCollect()
 {
     $this->creditmemoMock->expects($this->exactly(2))->method('setDiscountAmount')->willReturnSelf();
     $this->creditmemoMock->expects($this->exactly(2))->method('setBaseDiscountAmount')->willReturnSelf();
     $this->creditmemoMock->expects($this->once())->method('getOrder')->willReturn($this->orderMock);
     $this->creditmemoMock->expects($this->once())->method('getBaseShippingAmount')->willReturn(1);
     $this->orderMock->expects($this->once())->method('getBaseShippingDiscountAmount')->willReturn(1);
     $this->orderMock->expects($this->exactly(2))->method('getBaseShippingAmount')->willReturn(1);
     $this->orderMock->expects($this->once())->method('getShippingAmount')->willReturn(1);
     $this->creditmemoMock->expects($this->once())->method('getAllItems')->willReturn([$this->creditmemoItemMock]);
     $this->creditmemoItemMock->expects($this->atLeastOnce())->method('getOrderItem')->willReturn($this->orderItemMock);
     $this->orderItemMock->expects($this->once())->method('isDummy')->willReturn(false);
     $this->orderItemMock->expects($this->once())->method('getDiscountInvoiced')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getBaseDiscountInvoiced')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getQtyInvoiced')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getDiscountRefunded')->willReturn(1);
     $this->orderItemMock->expects($this->once())->method('getQtyRefunded')->willReturn(0);
     $this->creditmemoItemMock->expects($this->once())->method('isLast')->willReturn(false);
     $this->creditmemoItemMock->expects($this->atLeastOnce())->method('getQty')->willReturn(1);
     $this->creditmemoItemMock->expects($this->exactly(1))->method('setDiscountAmount')->willReturnSelf();
     $this->creditmemoItemMock->expects($this->exactly(1))->method('setBaseDiscountAmount')->willReturnSelf();
     $this->creditmemoMock->expects($this->exactly(2))->method('roundPrice')->willReturnMap([[1, 'regular', true, 1], [1, 'base', true, 1]]);
     $this->assertEquals($this->total, $this->total->collect($this->creditmemoMock));
 }
Example #16
0
 /**
  * @param \Magento\Sales\Model\Order\Item $item
  * @return $this
  */
 public function addItem(\Magento\Sales\Model\Order\Item $item)
 {
     $item->setOrder($this);
     if (!$item->getId()) {
         $this->getItemsCollection()->addItem($item);
     }
     return $this;
 }
Example #17
0
 /**
  * Initialize creation data from existing order Item
  *
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param int $qty
  * @return \Magento\Quote\Model\Quote\Item|string|$this
  */
 public function initFromOrderItem(\Magento\Sales\Model\Order\Item $orderItem, $qty = null)
 {
     if (!$orderItem->getId()) {
         return $this;
     }
     $product = $this->_objectManager->create('Magento\\Catalog\\Model\\Product')->setStoreId($this->getSession()->getStoreId())->load($orderItem->getProductId());
     if ($product->getId()) {
         $product->setSkipCheckRequiredOption(true);
         $buyRequest = $orderItem->getBuyRequest();
         if (is_numeric($qty)) {
             $buyRequest->setQty($qty);
         }
         $item = $this->getQuote()->addProduct($product, $buyRequest);
         if (is_string($item)) {
             return $item;
         }
         if ($additionalOptions = $orderItem->getProductOptionByCode('additional_options')) {
             $item->addOption(new \Magento\Framework\DataObject(['product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($additionalOptions)]));
         }
         $this->_eventManager->dispatch('sales_convert_order_item_to_quote_item', ['order_item' => $orderItem, 'quote_item' => $item]);
         return $item;
     }
     return $this;
 }
 /**
  * Calculate base total amount for the item
  *
  * @param QuoteItem|Item|InvoiceItem|CreditmemoItem $item
  * @return mixed
  */
 public function getBaseTotalAmount($item)
 {
     $baseTotalAmount = $item->getBaseRowTotal() - $item->getBaseDiscountAmount();
     return $baseTotalAmount;
 }
 /**
  * Checks if order item can be shipped.
  *
  * Dummy item can be shipped or with his children or
  * with parent item which is included to shipment.
  *
  * @param \Magento\Sales\Model\Order\Item $item
  * @param array $items
  * @return bool
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 protected function canShipItem($item, array $items = [])
 {
     if ($item->getIsVirtual() || $item->getLockedDoShip()) {
         return false;
     }
     if ($item->isDummy(true)) {
         if ($item->getHasChildren()) {
             if ($item->isShipSeparately()) {
                 return true;
             }
             foreach ($item->getChildrenItems() as $child) {
                 if ($child->getIsVirtual()) {
                     continue;
                 }
                 if (empty($items)) {
                     if ($child->getQtyToShip() > 0) {
                         return true;
                     }
                 } else {
                     if (isset($items[$child->getId()]) && $items[$child->getId()] > 0) {
                         return true;
                     }
                 }
             }
             return false;
         } elseif ($item->getParentItem()) {
             $parent = $item->getParentItem();
             if (empty($items)) {
                 return $parent->getQtyToShip() > 0;
             } else {
                 return isset($items[$parent->getId()]) && $items[$parent->getId()] > 0;
             }
         }
     } else {
         return $item->getQtyToShip() > 0;
     }
 }
Example #20
0
 /**
  * Return the total amount minus discount
  *
  * @param OrderItem|InvoiceItem|CreditMemoItem $item
  * @return mixed
  */
 public function getBaseTotalAmount($item)
 {
     $totalAmount = $item->getBaseRowTotal() - $item->getBaseDiscountAmount() + $item->getBaseTaxAmount() + $item->getBaseHiddenTaxAmount() + $this->weeeHelper->getBaseRowWeeeTaxInclTax($item);
     return $totalAmount;
 }
 /**
  * Check item product availability for reorder
  *
  * @param  \Magento\Sales\Model\Order\Item $orderItem
  * @return boolean
  */
 protected function isItemAvailableForReorder(\Magento\Sales\Model\Order\Item $orderItem)
 {
     try {
         $stockItem = $this->stockRegistry->getStockItem($orderItem->getProduct()->getId(), $orderItem->getStore()->getWebsiteId());
         return $stockItem->getIsInStock();
     } catch (\Magento\Framework\Exception\NoSuchEntityException $noEntityException) {
         return false;
     }
 }
Example #22
0
 /**
  * Declare order item instance
  *
  * @param \Magento\Sales\Model\Order\Item $item
  * @return $this
  */
 public function setOrderItem(\Magento\Sales\Model\Order\Item $item)
 {
     $this->_orderItem = $item;
     $this->setOrderItemId($item->getId());
     return $this;
 }
Example #23
0
 /**
  * Return the total amount minus discount
  *
  * @param OrderItem|InvoiceItem|CreditmemoItem $item
  * @return mixed
  */
 public function getBaseTotalAmount($item)
 {
     $totalAmount = $item->getBaseRowTotal() - $item->getBaseDiscountAmount() + $item->getBaseTaxAmount() + $item->getBaseHiddenTaxAmount();
     return $totalAmount;
 }
Example #24
0
 /**
  * Check if no dummy order item can be refunded
  *
  * @param \Magento\Sales\Model\Order\Item $item
  * @param array $invoiceQtysRefundLimits
  * @return bool
  */
 protected function _canRefundNoDummyItem($item, $invoiceQtysRefundLimits = [])
 {
     if ($item->getQtyToRefund() < 0) {
         return false;
     }
     if (isset($invoiceQtysRefundLimits[$item->getId()])) {
         return $invoiceQtysRefundLimits[$item->getId()] > 0;
     }
     return true;
 }
Example #25
0
 /**
  * Check item product availability for reorder
  *
  * @param  \Magento\Sales\Model\Order\Item $orderItem
  * @return boolean
  */
 public function isItemAvailableForReorder(\Magento\Sales\Model\Order\Item $orderItem)
 {
     if ($orderItem->getProduct()) {
         return $this->stockItemService->getIsInStock($orderItem->getProduct()->getId());
     }
     return false;
 }
 /**
  * Can show price info for item
  *
  * @param \Magento\Sales\Model\Order\Item $item
  * @return bool
  */
 public function canShowPriceInfo($item)
 {
     if ($item->getOrderItem()->getParentItem() && $this->isChildCalculated() || !$item->getOrderItem()->getParentItem() && !$this->isChildCalculated()) {
         return true;
     }
     return false;
 }
Example #27
0
 /**
  * Return the total amount minus discount
  *
  * @param OrderItem|InvoiceItem|CreditmemoItem $item
  * @return mixed
  */
 public function getTotalAmount($item)
 {
     $totalAmount = $item->getRowTotal() + $item->getTaxAmount() + $item->getDiscountTaxCompensationAmount() + $item->getWeeeTaxAppliedRowAmount() - $item->getDiscountAmount();
     return $totalAmount;
 }
Example #28
0
 /**
  * Convert order item to quote item
  *
  * @param \Magento\Sales\Model\Order\Item $orderItem
  * @param true|null $qtyFlag if is null set product qty like in order
  * @return $this
  */
 public function addOrderItem($orderItem, $qtyFlag = null)
 {
     /* @var $orderItem \Magento\Sales\Model\Order\Item */
     if ($orderItem->getParentItem() === null) {
         $storeId = $this->_storeManager->getStore()->getId();
         try {
             $product = $this->productRepository->getById($orderItem->getProductId(), false, $storeId);
         } catch (NoSuchEntityException $e) {
             return $this;
         }
         $info = $orderItem->getProductOptionByCode('info_buyRequest');
         $info = new \Magento\Framework\Object($info);
         if ($qtyFlag === null) {
             $info->setQty($orderItem->getQtyOrdered());
         } else {
             $info->setQty(1);
         }
         $this->addProduct($product, $info);
     }
     return $this;
 }
Example #29
0
 /**
  * @param \Magento\Sales\Model\Order\Item $item
  * @return $this
  */
 public function addItem(\Magento\Sales\Model\Order\Item $item)
 {
     $item->setOrder($this);
     if (!$item->getId()) {
         $this->setItems(array_merge($this->getItems(), [$item]));
     }
     return $this;
 }
Example #30
0
 /**
  * Get the final price in base currency for an ordered item including
  * taxes as discounts.
  *
  * @param Item $item the item model.
  *
  * @return float
  */
 public function getItemFinalPriceInclTax(Item $item)
 {
     return $item->getPriceInclTax() - $item->getBaseDiscountAmount();
 }