Exemplo n.º 1
0
 /**
  * Recalculate row information for item based on children calculation
  *
  * @param   Mage_Sales_Model_Quote_Item_Abstract $item
  * @return  Mage_Tax_Model_Sales_Total_Quote_Subtotal
  */
 protected function _recalculateParent(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $price = 0;
     $basePrice = 0;
     $rowTotal = 0;
     $baseRowTotal = 0;
     $priceInclTax = 0;
     $basePriceInclTax = 0;
     $rowTotalInclTax = 0;
     $baseRowTotalInclTax = 0;
     foreach ($item->getChildren() as $child) {
         $price += $child->getPrice() * $child->getQty();
         $basePrice += $child->getBasePrice() * $child->getQty();
         $rowTotal += $child->getRowTotal();
         $baseRowTotal += $child->getBaseRowTotal();
         $priceInclTax += $child->getPriceInclTax() * $child->getQty();
         $basePriceInclTax += $child->getBasePriceInclTax() * $child->getQty();
         $rowTotalInclTax += $child->getRowTotalInclTax();
         $baseRowTotalInclTax += $child->getBaseRowTotalInclTax();
     }
     /**
      *
      * Customisation To make the custom price work with configurable items
      *
      **/
     if ($item->getCustomPrice()) {
         $customPrice = $item->getCustomPrice();
         $price = $customPrice;
         $basePrice = $customPrice;
         $rowTotal = $customPrice * $item->getQty();
         $baseRowTotal = $customPrice * $item->getQty();
         $priceInclTax = $customPrice;
         $basePriceInclTax = $customPrice;
         $rowTotalInclTax = $customPrice * $item->getQty();
         $baseRowTotalInclTax = $customPrice * $item->getQty();
     }
     $item->setConvertedPrice($price);
     $item->setPrice($basePrice);
     $item->setRowTotal($rowTotal);
     $item->setBaseRowTotal($baseRowTotal);
     $item->setPriceInclTax($priceInclTax);
     $item->setBasePriceInclTax($basePriceInclTax);
     $item->setRowTotalInclTax($rowTotalInclTax);
     $item->setBaseRowTotalInclTax($baseRowTotalInclTax);
     return $this;
 }
Exemplo n.º 2
0
 /**
  * Recalculate parent item amounts base on children data
  *
  * @param   Mage_Sales_Model_Quote_Item_Abstract $item
  * @return  Mage_Tax_Model_Sales_Total_Quote
  */
 protected function _recalculateParent(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $rowTaxAmount = 0;
     $baseRowTaxAmount = 0;
     foreach ($item->getChildren() as $child) {
         $rowTaxAmount += $child->getTaxAmount();
         $baseRowTaxAmount += $child->getBaseTaxAmount();
     }
     $item->setTaxAmount($rowTaxAmount);
     $item->setBaseTaxAmount($baseRowTaxAmount);
     return $this;
 }
Exemplo n.º 3
0
 /**
  * Returns applied weee taxes
  *
  * @param Mage_Sales_Model_Quote_Item_Abstract $item
  * @return array
  */
 public function getApplied($item)
 {
     if ($item instanceof Mage_Sales_Model_Quote_Item_Abstract) {
         if ($item->getHasChildren() && $item->isChildrenCalculated()) {
             $result = array();
             foreach ($item->getChildren() as $child) {
                 $childData = $this->getApplied($child);
                 if (is_array($childData)) {
                     $result = array_merge($result, $childData);
                 }
             }
             return $result;
         }
     }
     /**
      * if order item data is old enough then weee_tax_applied cab be
      * not valid serialized data
      */
     $data = $item->getWeeeTaxApplied();
     if (empty($data)) {
         return array();
     }
     return unserialize($item->getWeeeTaxApplied());
 }
 /**
  * Recalculate row information for item based on children calculation
  *
  * @param   Mage_Sales_Model_Quote_Item_Abstract $item
  *
  * @return  Mage_Tax_Model_Sales_Total_Quote_Subtotal
  */
 protected function _recalculateParent(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $rowTotal = 0;
     $baseRowTotal = 0;
     $rowTotalInclTax = 0;
     $baseRowTotalInclTax = 0;
     $rowTax = 0;
     $baseRowTax = 0;
     $store = $item->getStore();
     $qty = $item->getQty();
     foreach ($item->getChildren() as $child) {
         $rowTotal += $child->getRowTotal();
         $baseRowTotal += $child->getBaseRowTotal();
         $rowTotalInclTax += $child->getRowTotalInclTax();
         $baseRowTotalInclTax += $child->getBaseRowTotalInclTax();
         $rowTax += $child->getRowTax();
         $baseRowTax += $child->getBaseRowTax();
     }
     $item->setConvertedPrice($store->roundPrice($rowTotal) / $qty);
     $item->setPrice($store->roundPrice($baseRowTotal) / $qty);
     $item->setRowTotal($rowTotal);
     $item->setBaseRowTotal($baseRowTotal);
     $item->setPriceInclTax($store->roundPrice($rowTotalInclTax) / $qty);
     $item->setBasePriceInclTax($store->roundPrice($baseRowTotalInclTax) / $qty);
     $item->setRowTotalInclTax($rowTotalInclTax);
     $item->setBaseRowTotalInclTax($baseRowTotalInclTax);
     $item->setRowTax($rowTax);
     $item->setBaseRowTax($baseRowTax);
     return $this;
 }
 /**
  * Recalculate parent item amounts base on children data
  *
  * @param   Mage_Sales_Model_Quote_Item_Abstract $item
  * @return  Mage_Tax_Model_Sales_Total_Quote
  */
 protected function _recalculateParent(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $calculationPrice = 0;
     $baseCalculationPrice = 0;
     $rowTaxAmount = 0;
     $baseRowTaxAmount = 0;
     $rowTotal = 0;
     $baseRowTotal = 0;
     foreach ($item->getChildren() as $child) {
         $calculationPrice += $child->getCalculationPrice();
         $baseCalculationPrice += $child->getBaseCalculationPrice();
         $rowTaxAmount += $child->getTaxAmount();
         $baseRowTaxAmount += $child->getBaseTaxAmount();
         $rowTotal += $child->getRowTotal();
         $baseRowTotal += $child->getBaseRowTotal();
     }
     $item->setOriginalPrice($calculationPrice);
     $item->setPrice($baseCalculationPrice);
     $item->setTaxAmount($rowTaxAmount);
     $item->setBaseTaxAmount($baseRowTaxAmount);
     $item->setRowTotal($rowTotal);
     $item->setBaseRowTotal($baseRowTotal);
     return $this;
 }
Exemplo n.º 6
0
 /**
  * Recalculate row information for item based on children calculation
  *
  * @param   Mage_Sales_Model_Quote_Item_Abstract $item
  * @return  Mage_Tax_Model_Sales_Total_Quote_Subtotal
  */
 protected function _recalculateParent(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $price = 0;
     $basePrice = 0;
     $rowTotal = 0;
     $baseRowTotal = 0;
     $priceInclTax = 0;
     $basePriceInclTax = 0;
     $rowTotalInclTax = 0;
     $baseRowTotalInclTax = 0;
     foreach ($item->getChildren() as $child) {
         $price += $child->getOriginalPrice();
         $basePrice += $child->getBaseOriginalPrice();
         $rowTotal += $child->getRowTotal();
         $baseRowTotal += $child->getBaseRowTotal();
         $priceInclTax += $child->getPriceInclTax();
         $basePriceInclTax += $child->getBasePriceInclTax();
         $rowTotalInclTax += $child->getRowTotalInclTax();
         $baseRowTotalInclTax += $child->getBaseRowTotalInclTax();
     }
     $item->setOriginalPrice($price);
     $item->setPrice($basePrice);
     $item->setRowTotal($rowTotal);
     $item->setBaseRowTotal($baseRowTotal);
     $item->setPriceInclTax($priceInclTax);
     $item->setBasePriceInclTax($basePriceInclTax);
     $item->setRowTotalInclTax($rowTotalInclTax);
     $item->setBaseRowTotalInclTax($baseRowTotalInclTax);
     return $this;
 }
 /**
  * Get quote item id from a passed in sales/quote_item instance. Ensure
  * that if the passed in quote item has child product that it's the child quote
  * item id that get returned.
  *
  * @param  Mage_Sales_Model_Quote_Item_Abstract
  * @return int
  */
 protected function getQuoteItemId(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     $children = $item->getChildren() ?: [];
     foreach ($children as $childItem) {
         return $childItem->getId();
     }
     return $item->getId();
 }
 /**
  * Get the product the item represents.
  *
  * @param Mage_Sales_Model_Quote_Item_Abstract
  * @return Mage_Catalog_Model_Product
  */
 protected function getItemProduct(Mage_Sales_Model_Quote_Item_Abstract $item)
 {
     // When dealing with configurable items, need to get tax data from
     // the child product and not the parent.
     if ($item->getProductType() === Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
         $sku = $item->getSku();
         $children = $item->getChildren();
         if ($children) {
             foreach ($children as $childItem) {
                 $childProduct = $childItem->getProduct();
                 // If the SKU of the child product matches the SKU of the
                 // item, the simple product being ordered was found and should
                 // be used.
                 if ($childProduct->getSku() === $sku) {
                     return $childProduct;
                 }
             }
         }
     }
     return $item->getProduct() ?: Mage::getModel('catalog/product')->load($item->getProductId());
 }