You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Sumit Pandit <su...@hotwaxmedia.com> on 2009/06/19 15:52:00 UTC

Re: 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...

Hi bibryam, 
It might be possible that I am missing something, but I have a doubt - 

Please find inline comment - 
----- bibryam@apache.org wrote:

| 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">





I think in above line check should be there as - if parameters.purposeEnumId is empty. (<if-empty field="parameters.purposeEnumId">) (line#100 of CommonServices.xml)
Otherwise following wouold be happened - 

In CommonServices.xml - @line # 81 it is checked that if uomConversion empty, then get records based on fields - uomId, uomIdTo, purposeEnumId, fromDate<asOfDate and thruDate >= asOfDate OR thruDate = null.
It is okay, but @line# 99/100 it again checked that if uomConversion and parameters.purposeEnumId are empty and get record based same condition given above except - parameters.purposeEnumId

Here  -
if we have value in parameters.purposeEnumId then we get our record in entity-condition @82, in such case we never get in entity-condition @line # 101, due to check @99. And if parameters.purposeEnumId is empty, even though we never enter in block @100.

So here @line#100 either check should be - <if-empty field="parameters.purposeEnumId"> or block will never execute. 

Please let me know if I am wrong.


Thanks And Regards
Sumit Pandit





| +                    <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}"/>

-- 
--
  Thanks and Regards 
  Sumit Pandit 
  Senior Manager, Hotwax Media Inc. 
  +91-9926681124


Re: 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...

Posted by Sumit Pandit <su...@hotwaxmedia.com>.
Resending, In cease -

If this has been missed.
Please look at the inline comments -


On Jun 19, 2009, at 7:22 PM, Sumit Pandit wrote:

> Hi bibryam,
> It might be possible that I am missing something, but I have a doubt -
>
> Please find inline comment -
> ----- bibryam@apache.org wrote:
>
> | 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/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">
>
>
>
>
>
> I think in above line check should be there as - if  
> parameters.purposeEnumId is empty. (<if-empty  
> field="parameters.purposeEnumId">) (line#100 of CommonServices.xml)
> Otherwise following wouold be happened -
>
> In CommonServices.xml - @line # 81 it is checked that if  
> uomConversion empty, then get records based on fields - uomId,  
> uomIdTo, purposeEnumId, fromDate<asOfDate and thruDate >= asOfDate  
> OR thruDate = null.
> It is okay, but @line# 99/100 it again checked that if uomConversion  
> and parameters.purposeEnumId are empty and get record based same  
> condition given above except - parameters.purposeEnumId
>
> Here  -
> if we have value in parameters.purposeEnumId then we get our record  
> in entity-condition @82, in such case we never get in entity- 
> condition @line # 101, due to check @99. And if  
> parameters.purposeEnumId is empty, even though we never enter in  
> block @100.
>
> So here @line#100 either check should be - <if-empty  
> field="parameters.purposeEnumId"> or block will never execute.
>
> Please let me know if I am wrong.
>
>
> Thanks And Regards
> Sumit Pandit
>
>
>
>
>
> | +                    <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}"/>
>
> -- 
> --
>   Thanks and Regards
>   Sumit Pandit
>   Senior Manager, Hotwax Media Inc.
>   +91-9926681124
>