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

Reply via email to