Пример #1
0
 /**
  * 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);
     }
 }
Пример #2
0
 /**
  * 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();
             }
         }
     }
 }