Makes sense, thanks for clarification Hans Jacques
From: "Hans Bakker" <[email protected]> > Jacques, > > thanks for your review, however this is a provisional purchase payment > which will surely be manually adjusted when the real payment comes in. > Not specifying a date means it will take the latest available conversion > which is fine. > > Regards, > Hans > > On 06/04/2013 03:31 AM, Jacques Le Roux wrote: >> 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"/> >>> >>> >
