You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by bi...@apache.org on 2008/11/28 12:16:11 UTC
svn commit: r721431 - in /ofbiz/trunk:
applications/accounting/script/org/ofbiz/accounting/admin/
applications/accounting/servicedef/ applications/accounting/widget/
framework/common/data/ framework/common/entitydef/
framework/common/script/org/ofbiz/c...
Author: bibryam
Date: Fri Nov 28 03:16:07 2008
New Revision: 721431
URL: http://svn.apache.org/viewvc?rev=721431&view=rev
Log:
Added purposeEnumId field to UomConversionDated entity. This will allow having different currency exchange rates for different on purposea.
Also extended convertUom service to search rates by purpose. If a rate with specified purposeEnumId is not found, then the conversion is done based on rates w/o purpose.
Modified:
ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/admin/AcctgAdminServices.xml
ofbiz/trunk/applications/accounting/servicedef/services_admin.xml
ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml
ofbiz/trunk/framework/common/data/CommonTypeData.xml
ofbiz/trunk/framework/common/entitydef/entitymodel.xml
ofbiz/trunk/framework/common/script/org/ofbiz/common/CommonServices.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=721431&r1=721430&r2=721431&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 Fri Nov 28 03:16:07 2008
@@ -112,10 +112,13 @@
</if-empty>
<!-- find the existing exchange rates for this currency pair -->
- <entity-and entity-name="UomConversionDated" list-name="uomConversions" filter-by-date="true">
- <field-map env-name="parameters.uomId" field-name="uomId"/>
- <field-map env-name="parameters.uomIdTo" field-name="uomIdTo"/>
- </entity-and>
+ <entity-condition entity-name="UomConversionDated" list-name="uomConversions" filter-by-date="true">
+ <condition-list>
+ <condition-expr field-name="uomId" operator="equals" env-name="parameters.uomId" />
+ <condition-expr field-name="uomIdTo" operator="equals" env-name="parameters.uomIdTo" />
+ <condition-expr field-name="purposeEnumId" operator="equals" env-name="parameters.purposeEnumId" ignore-if-empty="true"/>
+ </condition-list>
+ </entity-condition>
<!-- expire all of them -->
<iterate list-name="uomConversions" entry-name="uomConversion">
Modified: ofbiz/trunk/applications/accounting/servicedef/services_admin.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_admin.xml?rev=721431&r1=721430&r2=721431&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_admin.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_admin.xml Fri Nov 28 03:16:07 2008
@@ -70,6 +70,7 @@
<attribute type="String" mode="IN" name="uomId" optional="false"/>
<attribute type="String" mode="IN" name="uomIdTo" optional="false"/>
<attribute type="Double" mode="IN" name="conversionFactor" optional="false"/>
+ <attribute type="String" mode="IN" name="purposeEnumId" optional="true"/>
<attribute type="Timestamp" mode="IN" name="asOfTimestamp" optional="true"/>
</service>
Modified: ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml?rev=721431&r1=721430&r2=721431&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml Fri Nov 28 03:16:07 2008
@@ -307,6 +307,7 @@
odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
<field name="uomId" title="${uiLabelMap.CommonFrom} ${uiLabelMap.CommonCurrency}"><display/></field>
<field name="uomIdTo" title="${uiLabelMap.CommonTo} ${uiLabelMap.CommonCurrency}"><display/></field>
+ <field name="purposeEnumId" title="${uiLabelMap.CommonPurpose}"><display-entity entity-name="Enumeration" key-field-name="enumId" description="${description}"/></field>
<field name="conversionFactor"><display/></field>
<field name="fromDate" title="${uiLabelMap.CommonFrom}"><display/></field>
<field name="thruDate" title="${uiLabelMap.CommonThru}"><display/></field>
@@ -331,6 +332,14 @@
</entity-options>
</drop-down>
</field>
+ <field name="purposeEnumId" title="${uiLabelMap.CommonPurpose}">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="Enumeration" description="${description}" key-field-name="enumId">
+ <entity-constraint name="enumTypeId" operator="equals" value="CONVERSION_PURPOSE"/>
+ <entity-order-by field-name="sequenceId"/>
+ </entity-options>
+ </drop-down>
+ </field>
<field name="conversionFactor"><text/></field>
<field name="submitButton" title="${uiLabelMap.AccountingUpdateFX}"><submit/></field>
</form>
Modified: ofbiz/trunk/framework/common/data/CommonTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/CommonTypeData.xml?rev=721431&r1=721430&r2=721431&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/data/CommonTypeData.xml (original)
+++ ofbiz/trunk/framework/common/data/CommonTypeData.xml Fri Nov 28 03:16:07 2008
@@ -116,4 +116,9 @@
<VisualThemeResource visualThemeId="DEFAULT" resourceTypeEnumId="VT_FTR_TMPLT_LOC" resourceValue="component://common/webcommon/includes/footer.ftl" sequenceId="01"/>
<VisualThemeResource visualThemeId="DEFAULT" resourceTypeEnumId="VT_SCREENSHOT" resourceValue="/images/default-screenshot.gif" sequenceId="01"/>
+ <!-- Uom Conversion Purposes -->
+ <EnumerationType enumTypeId="CONVERSION_PURPOSE" description="Conversion Purpose"/>
+ <Enumeration enumId="INTERNAL_CONVERSION" enumTypeId="CONVERSION_PURPOSE" enumCode="INTERNAL" sequenceId="10" description="Internal Conversion"/>
+ <Enumeration enumId="EXTERNAL_CONVERSION" enumTypeId="CONVERSION_PURPOSE" enumCode="EXTERNAL" sequenceId="20" description="External Conversion"/>
+
</entity-engine-xml>
Modified: ofbiz/trunk/framework/common/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/entitydef/entitymodel.xml?rev=721431&r1=721430&r2=721431&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/common/entitydef/entitymodel.xml Fri Nov 28 03:16:07 2008
@@ -458,6 +458,7 @@
<field name="customMethodId" type="id-ne"></field>
<field name="decimalScale" type="numeric"></field>
<field name="roundingMode" type="id"></field>
+ <field name="purposeEnumId" type="id"></field>
<prim-key field="uomId"/>
<prim-key field="uomIdTo"/>
<prim-key field="fromDate"/>
@@ -470,6 +471,9 @@
<relation type="one" fk-name="UOMD_CUSTOM_METHOD" title="uomCustomMethod" rel-entity-name="CustomMethod">
<key-map field-name="customMethodId" rel-field-name="customMethodId"/>
</relation>
+ <relation type="one" fk-name="UOMD_PURPOSE_ENUM" title="Purpose" rel-entity-name="Enumeration">
+ <key-map field-name="purposeEnumId" rel-field-name="enumId"/>
+ </relation>
</entity>
<entity entity-name="UomType"
package-name="org.ofbiz.common.uom"
Modified: ofbiz/trunk/framework/common/script/org/ofbiz/common/CommonServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/script/org/ofbiz/common/CommonServices.xml?rev=721431&r1=721430&r2=721431&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/CommonServices.xml (original)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/CommonServices.xml Fri Nov 28 03:16:07 2008
@@ -83,6 +83,7 @@
<condition-list combine="and">
<condition-expr field-name="uomId" env-name="parameters.uomId"/>
<condition-expr field-name="uomIdTo" env-name="parameters.uomIdTo"/>
+ <condition-expr field-name="purposeEnumId" operator="equals" env-name="parameters.purposeEnumId" ignore-if-empty="true"/>
<condition-expr field-name="fromDate" operator="less-equals" env-name="asOfDate"/>
<condition-list combine="or">
<condition-expr field-name="thruDate" operator="greater-equals" env-name="asOfDate"/>
@@ -93,6 +94,25 @@
<order-by field-name="-fromDate"/>
</entity-condition>
<first-from-list list-name="uomConversions" entry-name="uomConversion"/>
+
+ <!-- if no conversion found with specified purpose, try w/o purpose -->
+ <if-empty field="uomConversion">
+ <if-not-empty field="parameters.purposeEnumId">
+ <entity-condition entity-name="UomConversionDated" list-name="uomConversions" use-cache="true">
+ <condition-list combine="and">
+ <condition-expr field-name="uomId" env-name="parameters.uomId"/>
+ <condition-expr field-name="uomIdTo" env-name="parameters.uomIdTo"/>
+ <condition-expr field-name="fromDate" operator="less-equals" env-name="asOfDate"/>
+ <condition-list combine="or">
+ <condition-expr field-name="thruDate" operator="greater-equals" env-name="asOfDate"/>
+ <condition-expr field-name="thruDate" operator="equals" env-name="nullField"/>
+ </condition-list>
+ </condition-list>
+ <order-by field-name="-fromDate"/>
+ </entity-condition>
+ <first-from-list list-name="uomConversions" entry-name="uomConversion"/>
+ </if-not-empty>
+ </if-empty>
</if-empty>
<log level="verbose" message="using conversion factor=${uomConversion.conversionFactor}"/>