当前位置: 首页>>代码示例>>PHP>>正文


PHP DataObject::getAllItems方法代码示例

本文整理汇总了PHP中Magento\Framework\DataObject::getAllItems方法的典型用法代码示例。如果您正苦于以下问题:PHP DataObject::getAllItems方法的具体用法?PHP DataObject::getAllItems怎么用?PHP DataObject::getAllItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Magento\Framework\DataObject的用法示例。


在下文中一共展示了DataObject::getAllItems方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _initSubtotal

 /**
  * @return $this
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 protected function _initSubtotal()
 {
     $store = $this->getStore();
     $parent = $this->getParentBlock();
     $subtotal = $parent->getTotal('subtotal');
     if (!$subtotal) {
         return $this;
     }
     if ($this->_config->displaySalesSubtotalBoth($store)) {
         $subtotal = (double) $this->_source->getSubtotal();
         $baseSubtotal = (double) $this->_source->getBaseSubtotal();
         $subtotalIncl = (double) $this->_source->getSubtotalInclTax();
         $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax();
         if (!$subtotalIncl || !$baseSubtotalIncl) {
             // Calculate the subtotal if it is not set
             $subtotalIncl = $subtotal + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount();
             $baseSubtotalIncl = $baseSubtotal + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount();
             if ($this->_source instanceof Order) {
                 // Adjust for the discount tax compensation
                 foreach ($this->_source->getAllItems() as $item) {
                     $subtotalIncl += $item->getDiscountTaxCompensationAmount();
                     $baseSubtotalIncl += $item->getBaseDiscountTaxCompensationAmount();
                 }
             }
         }
         $subtotalIncl = max(0, $subtotalIncl);
         $baseSubtotalIncl = max(0, $baseSubtotalIncl);
         $totalExcl = new \Magento\Framework\DataObject(['code' => 'subtotal_excl', 'value' => $subtotal, 'base_value' => $baseSubtotal, 'label' => __('Subtotal (Excl.Tax)')]);
         $totalIncl = new \Magento\Framework\DataObject(['code' => 'subtotal_incl', 'value' => $subtotalIncl, 'base_value' => $baseSubtotalIncl, 'label' => __('Subtotal (Incl.Tax)')]);
         $parent->addTotal($totalExcl, 'subtotal');
         $parent->addTotal($totalIncl, 'subtotal_excl');
         $parent->removeTotal('subtotal');
     } elseif ($this->_config->displaySalesSubtotalInclTax($store)) {
         $subtotalIncl = (double) $this->_source->getSubtotalInclTax();
         $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax();
         if (!$subtotalIncl) {
             $subtotalIncl = $this->_source->getSubtotal() + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount();
         }
         if (!$baseSubtotalIncl) {
             $baseSubtotalIncl = $this->_source->getBaseSubtotal() + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount();
         }
         $total = $parent->getTotal('subtotal');
         if ($total) {
             $total->setValue(max(0, $subtotalIncl));
             $total->setBaseValue(max(0, $baseSubtotalIncl));
         }
     }
     return $this;
 }
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:53,代码来源:Tax.php

示例2: collectRatesByAddress

 /**
  * Collect rates by address
  *
  * @param \Magento\Framework\DataObject $address
  * @param null|bool|array $limitCarrier
  * @return $this
  */
 public function collectRatesByAddress(\Magento\Framework\DataObject $address, $limitCarrier = null)
 {
     /** @var $request \Magento\Quote\Model\Quote\Address\RateRequest */
     $request = $this->_shipmentRequestFactory->create();
     $request->setAllItems($address->getAllItems());
     $request->setDestCountryId($address->getCountryId());
     $request->setDestRegionId($address->getRegionId());
     $request->setDestPostcode($address->getPostcode());
     $request->setPackageValue($address->getBaseSubtotal());
     $request->setPackageValueWithDiscount($address->getBaseSubtotalWithDiscount());
     $request->setPackageWeight($address->getWeight());
     $request->setFreeMethodWeight($address->getFreeMethodWeight());
     $request->setPackageQty($address->getItemQty());
     $request->setStoreId($this->_storeManager->getStore()->getId());
     $request->setWebsiteId($this->_storeManager->getStore()->getWebsiteId());
     $request->setBaseCurrency($this->_storeManager->getStore()->getBaseCurrency());
     $request->setPackageCurrency($this->_storeManager->getStore()->getCurrentCurrency());
     $request->setLimitCarrier($limitCarrier);
     $request->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax());
     return $this->collectRates($request);
 }
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:28,代码来源:Shipping.php

示例3: isMessagesAllowed

 /**
  * Check if giftmessages is allowed for specified entity.
  *
  * @param string $type
  * @param \Magento\Framework\DataObject $entity
  * @param \Magento\Store\Model\Store|int|null $store
  * @return bool|string|null
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 public function isMessagesAllowed($type, \Magento\Framework\DataObject $entity, $store = null)
 {
     if ($type == 'items') {
         $items = $entity->getAllItems();
         if (!is_array($items) || empty($items)) {
             return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store);
         }
         if ($entity instanceof \Magento\Quote\Model\Quote) {
             $_type = $entity->getIsMultiShipping() ? 'address_item' : 'item';
         } else {
             $_type = 'order_item';
         }
         foreach ($items as $item) {
             if ($item->getParentItem()) {
                 continue;
             }
             if ($this->isMessagesAllowed($_type, $item, $store)) {
                 return true;
             }
         }
     } elseif ($type == 'item') {
         return $this->_getDependenceFromStoreConfig($entity->getProduct()->getGiftMessageAvailable(), $store);
     } elseif ($type == 'order_item') {
         return $this->_getDependenceFromStoreConfig($entity->getGiftMessageAvailable(), $store);
     } elseif ($type == 'address_item') {
         $storeId = is_numeric($store) ? $store : $this->_storeManager->getStore($store)->getId();
         if (!$this->isCached('address_item_' . $entity->getProductId())) {
             try {
                 $giftMessageAvailable = $this->productRepository->getById($entity->getProductId(), false, $storeId)->getGiftMessageAvailable();
             } catch (\Magento\Framework\Exception\NoSuchEntityException $noEntityException) {
                 $giftMessageAvailable = null;
             }
             $this->setCached('address_item_' . $entity->getProductId(), $giftMessageAvailable);
         }
         return $this->_getDependenceFromStoreConfig($this->getCached('address_item_' . $entity->getProductId()), $store);
     } else {
         return $this->scopeConfig->getValue(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store);
     }
     return false;
 }
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:49,代码来源:Message.php


注:本文中的Magento\Framework\DataObject::getAllItems方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。