/**
  * handles the event checkout_type_onepage_save_order to set the currency of the order
  * @param Varien_Event $event
  */
 public function setOrderCurrency($event)
 {
     if (Mage::helper('imagecc')->isActive()) {
         $order = $event->getOrder();
         if ($order && !Mage::helper('imagecc')->isPaypalOrder($order)) {
             if ($this->_useFixedCurrency($order)) {
                 return;
             }
             Mage::helper('imagecc')->log("Using display currency " . $order->getIncrementId());
             $imagecc_preserved_information = array('order_fields' => array(), 'item_fields' => array());
             $_coreHelper = Mage::helper('core');
             foreach ($this->_orderFields as $field) {
                 $field2 = preg_replace('(^base_)', '', $field);
                 $new_v = $order->getData($field2);
                 //$v = $order->getData($field);
                 //$new_v = $_coreHelper->currency($v, false, false);
                 /**
                  * preserve information before change it
                  */
                 if ($field !== $field2) {
                     $imagecc_preserved_information['order_fields'][] = array('field' => $field, 'original_value' => $order->getData($field), 'new_value' => $new_v);
                 }
                 $order->setData($field, $new_v);
                 Mage::helper('imagecc')->log("{$field2} {$field} {$new_v}");
             }
             foreach ($order->getAllItems() as $item) {
                 $arr = $this->_itemFields;
                 $quoteItemId = $item->getData('quote_item_id');
                 $imagecc_preserved_information['item_fields'][$quoteItemId] = array();
                 foreach ($arr as $k) {
                     //$v = $item->getData($k);
                     //$new_v = $_coreHelper->currency($v, false, false);
                     $field2 = preg_replace('(^base_)', '', $k);
                     $new_v = $item->getData($field2);
                     /**
                      * preserve information before change it
                      */
                     if ($k !== $field2) {
                         $imagecc_preserved_information['item_fields'][$quoteItemId][] = array('field' => $k, 'original_value' => $item->getData($k), 'new_value' => $new_v);
                     }
                     $item->setData($k, $new_v);
                     Mage::helper('imagecc')->log("{$field2} {$k} {$new_v}");
                 }
                 //$item->save();
             }
             $store_currency = $order->getData('order_currency_code');
             /**
              * preserve information before change it
              */
             $imagecc_preserved_information['order_fields']['global_currency_code'] = array('original_value' => $order->getData('global_currency_code'), 'field' => 'global_currency_code', 'new_value' => '');
             $imagecc_preserved_information['order_fields']['base_currency_code'] = array('original_value' => $order->getData('base_currency_code'), 'field' => 'base_currency_code', 'new_value' => '');
             $imagecc_preserved_information['order_fields']['store_currency_code'] = array('original_value' => $order->getData('store_currency_code'), 'field' => 'store_currency_code', 'new_value' => '');
             $order->setData('global_currency_code', $store_currency)->setData('base_currency_code', $store_currency)->setData('store_currency_code', $store_currency)->setData('imagecc_preserved_information', json_encode($imagecc_preserved_information));
         }
     }
 }