While reviewning this commit I stumbled upon similar calls to convertUom service

<call-service service-name="convertUom" in-map-name="convertUomInMap">

I noticed this TODO for others 

<!-- TODO: set the optional asOfDate input parameter -->

Should not the change below address the same concern, at least with a TODO for 
now?

The idea is otherwise the convertUom takes will always use <now-timestamp /> 
(as fallback, when asOfDate is missing). 
But in some case we would want to use the currencies rates conversion of the 
time the order was done, which is not necessary the time the order is paid.

Jacques


From: <[email protected]>
> Author: hansbak
> Date: Sun Jun  2 09:57:32 2013
> New Revision: 1488656
> 
> URL: http://svn.apache.org/r1488656
> Log:
> create payment in home currency when order was in foreign currency
> 
> Modified:
>    
> ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
> 
> Modified: 
> ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml?rev=1488656&r1=1488655&r2=1488656&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
>  (original)
> +++ 
> ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml
>  Sun Jun  2 09:57:32 2013
> @@ -896,6 +896,7 @@ under the License.
>                 <field-map field-name="agreementTypeId" 
> value="PURCHASE_AGREEMENT"/>
>             </entity-and>
>             <set field="parameters.paymentTypeId" value="VENDOR_PAYMENT"/>
> +            <set field="organizationPartyId" 
> from-field="orderRoleFrom.partyId"/>
>             <else>
>                <entity-and list="agreementList" entity-name="Agreement" 
> filter-by-date="true">
>                     <field-map field-name="partyIdFrom" 
> from-field="orderRoleFrom.partyId"/>
> @@ -903,6 +904,7 @@ under the License.
>                     <field-map field-name="agreementTypeId" 
> value="SALES_AGREEMENT"/>
>                 </entity-and>
>                 <set field="parameters.paymentTypeId" 
> value="CUSTOMER_PAYMENT"/>
> +                <set field="organizationPartyId" 
> from-field="orderRoleTo.partyId"/>
>             </else>
>         </if-compare>
>         <first-from-list entry="agreement" list="agreementList"/>
> @@ -924,10 +926,31 @@ under the License.
>         <if-empty field="parameters.effectiveDate">
>             <now-timestamp field="parameters.effectiveDate"/>
>         </if-empty>
> +        
> +        <!-- check currency and when required convert-->
> +        <set field="partyAccountingPreferencesMap.organizationPartyId" 
> from-field="organizationPartyId"/>
> +        <call-service service-name="getPartyAccountingPreferences" 
> in-map-name="partyAccountingPreferencesMap">
> +             <result-to-field result-name="partyAccountingPreference" 
> field="partyAcctgPreference"/>
> +        </call-service>
> +        <if-compare-field to-field="partyAcctgPreference.baseCurrencyUomId" 
> operator="equals" field="orderHeader.currencyUom">
> +            <set field="parameters.currencyUomId" 
> from-field="orderHeader.currencyUom"/>
> +            <set field="parameters.amount" 
> from-field="orderHeader.grandTotal"/>
> +            <else>
> +                <set field="convertUomInMap.originalValue" 
> from-field="orderHeader.grandTotal"/>
> +                <set field="convertUomInMap.uomId" 
> from-field="orderHeader.currencyUom"/>
> +                <set field="convertUomInMap.uomIdTo" 
> from-field="partyAcctgPreference.baseCurrencyUomId"/>
> +                <call-service service-name="convertUom" 
> in-map-name="convertUomInMap">
> +                    <result-to-field result-name="convertedValue" 
> field="parameters.amount"/>
> +                </call-service>
> +                <set field="parameters.actualCurrencyAmount" 
> from-field="orderHeader.grandTotal"/>
> +                <set field="parameters.actualCurrencyUomId" 
> from-field="orderHeader.currencyUom"/>
> +                <set field="parameters.currencyUomId" 
> from-field="partyAcctgPreference.baseCurrencyUomId"/>
> +                <set field="parameters.actualCurrencyUomId" 
> from-field="orderHeader.currencyUom"/>
> +            </else>
> +        </if-compare-field>
> +        
>         <set field="parameters.partyIdFrom" 
> from-field="orderRoleFrom.partyId"/>
>         <set field="parameters.partyIdTo" from-field="orderRoleTo.partyId"/>
> -        <set field="parameters.amount" from-field="orderHeader.grandTotal"/>
> -        <set field="parameters.currencyUomId" 
> from-field="orderHeader.currencyUom"/>
>         <set field="parameters.paymentMethodTypeId" value="COMPANY_ACCOUNT"/>
>         <set field="parameters.statusId" value="PMNT_NOT_PAID"/>
>         <set-service-fields service-name="createPayment" 
> to-map="createPayment" map="parameters"/>
> 
>

Reply via email to