Author: jleroux
Date: Sat Sep 28 21:47:10 2013 New Revision: 1527254 URL: http://svn.apache.org/r1527254 Log: A modified patch from Karl Beecher for "Updating EFT Account address resurrects out-of-date EFT Accounts" https://issues.apache.org/jira/browse/OFBIZ-5193 When you update the address that an EFT Acccount is linked to, all expired EFT accounts are "resurrected", which can mean multiple out-of-date copies of an EFT account are displayed in the Payment Method Information. To reproduce (with OFBiz demo data): * Go to DemoSupplier profile page and click Create EFT Account * Enter details of a new account, making sure the account is linked to the DemoSupplier postal address. * Click Save and then click Cancel/Done. * Back on the profile page, Update for this new EFT account. * Change at least one field of the account. * Click Save (now there are two EFT account records in the database; one of which is expired). Click Cancel/Done. * Now click Update for the DemoSupplier's postal address. * Update at least one field. Click Save. * Go back to the DemoSupplier profile page. You should see that the old expired EFT accounts are listed in the Payment Method Information. We avoid this bug by altering PaymentMethodServices.xml#setPaymentMethodAddress, so that out-of-date EFT Accounts are filtered out. jleroux: I applied changes by hand because the patch did not work. I also removed the useless line setting a now var. Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentMethodServices.xml Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentMethodServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentMethodServices.xml?rev=1527254&r1=1527253&r2=1527254&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentMethodServices.xml (original) +++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentMethodServices.xml Sat Sep 28 21:47:10 2013 @@ -63,11 +63,14 @@ under the License. <find-by-and entity-name="EftAccount" map="lookupMap" list="eftAccounts"/> <iterate entry="eftAccount" list="eftAccounts"> - <set-service-fields service-name="updateEftAccount" map="eftAccount" to-map="ueaMap"/> - <set field="ueaMap.contactMechId" from-field="parameters.contactMechId"/> - <set field="ueaMap.partyId" from-field="parameters.partyId"/> - <!-- use the service so it will expire the old account and create a new one; don't break on error since this is a background process, just get whatever we can done... --> - <call-service service-name="updateEftAccount" in-map-name="ueaMap" break-on-error="false"/> + <get-related-one relation-name="PaymentMethod" to-value-field="paymentMethod" value-field="eftAccount"/> + <if-empty field="paymentMethod.thruDate"> + <set-service-fields service-name="updateEftAccount" map="eftAccount" to-map="ueaMap"/> + <set field="ueaMap.contactMechId" from-field="parameters.contactMechId"/> + <set field="ueaMap.partyId" from-field="parameters.partyId"/> + <!-- use the service so it will expire the old account and create a new one; don't break on error since this is a background process, just get whatever we can done... --> + <call-service service-name="updateEftAccount" in-map-name="ueaMap" break-on-error="false"/> + </if-empty> </iterate> </simple-method> <!--CreateCreditCardTypeGlAccount methods --> |
Free forum by Nabble | Edit this page |