From 0f1b8ec8cd32bdf597c756b058503900567944a7 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Fri, 4 Jun 2010 12:26:02 +0000
Subject: [PATCH] call expensive newTempSimulationMovement only if it is
 required.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35991 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Legacy/Document/InvoiceTransactionRule.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/product/ERP5Legacy/Document/InvoiceTransactionRule.py b/product/ERP5Legacy/Document/InvoiceTransactionRule.py
index 620ed08fa0..0731c6e5f1 100644
--- a/product/ERP5Legacy/Document/InvoiceTransactionRule.py
+++ b/product/ERP5Legacy/Document/InvoiceTransactionRule.py
@@ -218,10 +218,7 @@ class InvoiceTransactionRule(Rule, PredicateMatrix):
     return 1
 
   def _getCurrencyRatioAndPrecisionByArrow(self, arrow, prevision_line):
-    from Products.ERP5Type.Document import newTempSimulationMovement
     prevision_currency = prevision_line.get('resource', None)
-    temporary_movement = newTempSimulationMovement(self.getPortalObject(),
-        '1', **prevision_line)
     exchange_ratio = None
     precision = None
     section = prevision_line.get(arrow, None)
@@ -231,6 +228,9 @@ class InvoiceTransactionRule(Rule, PredicateMatrix):
     else:
       currency_url = None
     if currency_url is not None and prevision_currency != currency_url:
+      from Products.ERP5Type.Document import newTempSimulationMovement
+      temporary_movement = newTempSimulationMovement(self.getPortalObject(),
+                                                     '1', **prevision_line)
       precision = section.getPriceCurrencyValue() \
           .getQuantityPrecision()
       exchange_ratio = self.restrictedTraverse(currency_url).getPrice(
-- 
2.30.9