Example #1
0
 /**
  * Log refund transaction to Warehouse Transaction
  * 
  * @param Varien_Object $dataObject
  * @return \Magestore_Inventoryplus_Helper_Refund
  */
 public function logTransaction($dataObject)
 {
     if (!Mage::helper('core')->isModuleEnabled('Magestore_Inventorywarehouse')) {
         return $this;
     }
     $creditmemo = $dataObject->getCreditmemoObject();
     $order = $dataObject->getOrder();
     $stockMovementData = $dataObject->getStockMovementData();
     if (!count($stockMovementData)) {
         return $this;
     }
     $adminUser = Mage::helper('inventoryplus')->getCurrentUser();
     foreach ($stockMovementData as $warehouseId => $moveProducts) {
         $totalProducts = 0;
         $transData = array();
         foreach ($moveProducts as $productId => $qty) {
             $totalProducts += abs($qty);
         }
         if ($totalProducts == 0) {
             continue;
         }
         $transData['total_products'] = $totalProducts;
         $transData['warehouse_id_from'] = $warehouseId;
         $transData['warehouse_name_from'] = $this->_getWarehouse($warehouseId)->getWarehouseName();
         $transData['warehouse_id_to'] = $warehouseId;
         $transData['warehouse_id_to'] = $order->getCustomerId();
         $transData['warehouse_name_to'] = $order->getCustomerName();
         $transData['created_at'] = now();
         $transData['created_by'] = $adminUser;
         $transData['reason'] = Mage::helper('inventoryplus')->__('Return stock when customer refunds - Creditmemo #' . $creditmemo->getIncrementId());
         $transData['type'] = Magestore_Inventorywarehouse_Model_Transaction::TYPE_REFUND_STOCK;
         /* create new transaction */
         $transaction = Mage::getModel('inventorywarehouse/transaction')->setData($transData)->save();
         $products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('name')->addFieldToFilter('entity_id', array('in' => array_keys($moveProducts)));
         /* log products in transaction */
         foreach ($products as $product) {
             if ($moveProducts[$product->getId()] == 0) {
                 continue;
             }
             Mage::getModel('inventorywarehouse/transaction_product')->setData('product_id', $product->getId())->setData('product_name', $product->getName())->setData('product_sku', $product->getSku())->setData('qty', $moveProducts[$product->getId()])->setData('warehouse_transaction_id', $transaction->getId())->save();
         }
     }
 }