/** * NOTE: This code is 1.4/1.5 specific - do not overwrite with 1.3 code * @param unknown_type $request * @return number */ private function setTotalPrice($request, $discounted, $taxed) { $totalPrice = 0; $totalWeight = 0; $totalQty = 0; $temp = ''; $includeVirtual = false; $useParent = true; $cartFreeShipping = false; $useBase = false; $items = $request->getAllItems(); if (is_array($items)) { foreach ($items as $item) { $price = 0; $weight = 0; $qty = 0; if ($item->getProduct()->isVirtual()) { if (!Mage::helper('wsacommon/shipping')->getVirtualItemTotals($item, $weight, $qty, $price, $useParent, $request->getIgnoreFreeItems(), $temp, $discounted, $cartFreeShipping, $useBase, $taxed, $includeVirtual)) { continue; } } else { if (!Mage::helper('wsacommon/shipping')->getItemTotals($item, $weight, $qty, $price, $useParent, $request->getIgnoreFreeItems(), $temp, $discounted, $cartFreeShipping, $useBase, $taxed)) { continue; } } $totalPrice += $price; $totalQty += $qty; $totalWeight += $weight; } if (Mage::helper('wsalogger')->isDebug('Webshopapps_Premiumrate')) { Mage::helper('wsalogger/log')->postDebug('premiumrate', 'Original Package Weight', $request->getPackageWeight()); Mage::helper('wsalogger/log')->postDebug('premiumrate', 'Original Package Value', $request->getPackageValue()); Mage::helper('wsalogger/log')->postDebug('premiumrate', 'Original Package Qty', $request->getPackageQty()); Mage::helper('wsalogger/log')->postDebug('premiumrate', 'New Package Weight', $totalWeight); Mage::helper('wsalogger/log')->postDebug('premiumrate', 'New Package Value', $totalPrice); Mage::helper('wsalogger/log')->postDebug('premiumrate', 'New Package Qty', $totalQty); } if (Mage::helper('core')->isModuleEnabled('Webshopapps_Dropship') && Mage::getStoreConfig('carriers/dropship/active') && Mage::getStoreConfig('carriers/dropship/use_cart_price')) { $request->setPackageValue($request->getCartValue()); } else { $request->setPackageValue($totalPrice); } $request->setPackageWeight($totalWeight); $request->setPackageQty($totalQty); } }
/** * Re-add the order items to the stock to balance the incorrect stock management before a payment is completed * * @param unknown_type $order */ public function addOrderedItemsToStock($order) { $nVersion = Mage::getModel('cardsaveonlinepayments/direct')->getVersion(); $isCustomStockManagementEnabled = Mage::getModel('cardsaveonlinepayments/direct')->getConfigData('customstockmanagementenabled'); if ($isCustomStockManagementEnabled) { $items = $order->getAllItems(); foreach ($items as $itemId => $item) { // ordered quantity of the item from stock $quantity = $item->getQtyOrdered(); $productId = $item->getProductId(); $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId); $stockManagement = $stock->getManageStock(); if ($stockManagement) { $stock->setQty($stock->getQty() + $quantity); $stock->save(); } } } }