svn commit: r891159 - in /ofbiz/trunk/applications/accounting: script/org/ofbiz/accounting/admin/AcctgAdminServices.xml servicedef/services_admin.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r891159 - in /ofbiz/trunk/applications/accounting: script/org/ofbiz/accounting/admin/AcctgAdminServices.xml servicedef/services_admin.xml

hansbak-2
Author: hansbak
Date: Wed Dec 16 08:46:06 2009
New Revision: 891159

URL: http://svn.apache.org/viewvc?rev=891159&view=rev
Log:
added get exchange rate service

Modified:
    ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml
    ofbiz/trunk/applications/accounting/servicedef/services_admin.xml

Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml?rev=891159&r1=891158&r2=891159&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml Wed Dec 16 08:46:06 2009
@@ -133,4 +133,44 @@
         </if-empty>
         <call-service service-name="createUomConversionDated" in-map-name="createParams"/>
     </simple-method>
+    
+    <!-- Get currency conversion rates in the UomConversionDated entity -->
+    <simple-method method-name="getFXConversion" short-description="Get Foreign Exchange conversion rate">
+        <if-empty field="parameters.asOfTimestamp">
+            <now-timestamp field="asOfTimestamp"/>
+            <else>
+                <set field="asOfTimestamp" from-field="parameters.asOfTimestamp"/>
+            </else>
+        </if-empty>
+        <!-- find the existing exchange rates-->
+        <entity-condition entity-name="UomConversionDated" list="rates" filter-by-date="true">
+            <condition-list combine="and">
+                <condition-expr field-name="uomId" from-field="parameters.uomId"/>
+                <condition-expr field-name="uomIdTo" from-field="parameters.uomIdTo"/>
+                <condition-expr field-name="fromDate" operator="less-equals" from-field="asOfTimestamp"/>
+                <condition-list combine="or">
+                    <condition-expr field-name="thruDate" operator="greater-equals" from-field="asOfTimestamp"/>
+                    <condition-expr field-name="thruDate" operator="equals" from-field="nullField"/>
+                </condition-list>
+            </condition-list>
+            <order-by field-name="-fromDate"/>
+        </entity-condition>
+        
+        <set field="conversionRate" type="BigDecimal" value="1"/>
+        <if-not-empty field="rates">
+            <set field="conversionFactor" from-field="rates[0].conversionFactor"/>
+            <set field="originalValue" type="BigDecimal" value="1"/>
+            
+            <calculate field="conversionRate" type="BigDecimal" decimal-scale="2" rounding-mode="HalfUp">
+                <calcop operator="divide">
+                    <calcop operator="get" field="originalValue"/>
+                    <calcop operator="get" field="conversionFactor"/>
+                </calcop>
+            </calculate>
+            <else>
+                <log level="error" message="Could not find conversion rate"></log>
+            </else>
+        </if-not-empty>
+        <field-to-result field="conversionRate" result-name="conversionRate"/>
+    </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/accounting/servicedef/services_admin.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_admin.xml?rev=891159&r1=891158&r2=891159&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_admin.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_admin.xml Wed Dec 16 08:46:06 2009
@@ -130,4 +130,13 @@
         <description>Accounting Foreign Exchange Permission Checking Logic</description>
         <implements service="permissionInterface"/>
     </service>
+    
+    <service name="getFXConversion" engine="simple"
+        location="component://accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml" invoke="getFXConversion">
+        <description>get the conversion rate</description>
+        <attribute type="String" mode="IN" name="uomId" optional="false"/>
+        <attribute type="String" mode="IN" name="uomIdTo" optional="false"/>
+        <attribute type="Timestamp" mode="IN" name="asOfTimestamp" optional="true"/>
+        <attribute type="BigDecimal" mode="OUT" name="conversionRate" optional="false"/>
+    </service>
 </services>