Thanks Jacques, I think one ticket for all should be fine. I’ll open one soon.
Regards Vikas On Jun 23, 2014, at 1:51 AM, Jacques Le Roux <jacques.le.r...@les7arts.com> wrote: > Hi Vikas, > > I'd prefer to fix the 3 issues and open 1 or 3(?) Jira for them... > > Jacques > > Le 02/06/2014 17:14, Vikas Mayur a écrit : >> Hi Devs, >> >> I’m testing the order fulfillment on ofbiz release branch 12.04 for a >> scenario when payment gateway decline the payments. I’m using OOTB service >> 'alwaysDeclineCCProcessor’ to decline the payments which are earlier >> authorized by the service ‘alwaysApproveCCProcessor’. Once I create a sales >> order I click on the link ‘Pack Shipment For Ship Group’ to pack the order, >> the link is under the shipping information block on the order detail page. >> After packing the items, I click on ‘Complete’ button to complete the >> packing. >> >> The order packing is initiated and completed by a main service completePack >> which do a lot of things. It creates shipment, packages, issue items to >> shipment (which in turns also change the item status to complete), apply >> items to packages etc. and update the shipment status to PACKED. We have a >> following eca, which triggers services that creates invoice and capture the >> payments. >> >> <eca service="updateShipment" event="commit"> >> <condition-field field-name="statusId" operator="not-equals" >> to-field-name="oldStatusId"/> >> <condition field-name="statusId" operator="equals" >> value="SHIPMENT_PACKED"/> >> <condition field-name="shipmentTypeId" operator="equals" >> value="SALES_SHIPMENT"/> >> <action service="createInvoicesFromShipment" mode=“sync" >> run-as-user="system"/> >> <action service="setInvoicesToReadyFromShipment" mode="sync" >> run-as-user="system"/> >> </eca> >> >> I see few issues noted below while processing the order fulfillment. I >> believe the same issue exists on ofbiz trunk since that code around the >> packing & payment gateway service remains unchanged. >> >> 1. The service processCaptureResult (PaymentGatewayServices) contains a >> piece of code that creates payment and apply the payment to invoice but it >> does not check the status of the capture result. This leads to a invoice to >> PAID status even though the payments are declined. >> >> 2. The order status remains complete even though the payments are declined >> and is not rolled back to approved (preferably hold). >> >> 3. The order status ‘complete’ triggers an email to the customer through an >> eca defined on the service ‘changeOrderStatus’ in the order component. >> >> I think If we add an attribute ignore-error="false" to the <action service >> ...> element it will roll-back the global transaction started by the service >> completePack() and hence will revert the oder back to its initial state >> (status) where we started packing the order but it will also rollback every >> changes done by the service completePack. >> >> Should we fix all three issues above or just do a global rollback (which >> takes you back where you started)? >> >> Regards >> Vikas >> >> >> >> > > --