[ 
http://issues.apache.org/jira/browse/OFBIZ-93?page=comments#action_12455724 ] 
            
Leon Torres commented on OFBIZ-93:
----------------------------------

It looks like everything's been committed except for one line in 
PaymentGatewayServices.java:

@@ -951,10 +994,13 @@
                 }
 
                 // create any splits which are needed
-                if (authAmount.doubleValue() > amountThisCapture) {
+                // we need to add up the amount that has been captured from 
both credit card and the billing account
+                BigDecimal totalAmountCaptured = new 
BigDecimal(amountThisCapture);
+                totalAmountCaptured = 
totalAmountCaptured.add(billingAccountCaptureAmount).setScale(decimals, 
rounding);
+                if (authAmount.doubleValue() > 
totalAmountCaptured.doubleValue()) {

The line where billingAccountCaptureAmount is added to totalAmountCaptured  is 
missing in SVN Ofbiz (the other lines are there).  Hence, I don't know if #4 on 
Si's most recent list is working correctly from initial inspection.

- Leon

> Support BillingAcct + PaymentMethod for Payment
> -----------------------------------------------
>
>                 Key: OFBIZ-93
>                 URL: http://issues.apache.org/jira/browse/OFBIZ-93
>             Project: OFBiz (The Open for Business Project)
>          Issue Type: Improvement
>          Components: accounting
>            Reporter: Si Chen
>         Assigned To: Si Chen
>         Attachments: ofbiz-93.patch
>
>
> The requirement is that a customer be able to use a billing account plus 
> another form of payment, such as a credit card, for payment on an order.  The 
> billing account is to be used first.
> This would require the following changes:
> 1.  In PaymentGatewayServices.java captureOrderPayments method, if the 
> billing account has a positive balance, then first create a Payment of the 
> EXT_BILL_ACT type, then a PaymentApplication of amountApplied = min(billing 
> account balance, amount to capture.)  This PaymentApplication MUST have an 
> invoiceId which is already supplied as a parameter of the service.  
> (Otherwise, the billing account balance will go down by the 
> PaymentApplication.amountApplied)  If there is an amount left over to 
> capture, then amountToCapture = amountToCapture - billingAccountBalance.  We 
> can then loop through the OrderPaymentPreference to try to capture the 
> remaining amount.
> 2.   In BillingAccountWorker.getBillingAccountBalance, we need to replace 
> current code which just loops through all invoices which are not PAID or 
> CANCELLED and adds up their unpaid balances with new code which would find 
> all PaymentApplication for which there is a billingAccountId and add up the 
> amountApplied.  This must be done because otherwise, once an invoice has been 
> marked PAID, there would be no way to record that a portion of the billing 
> account has been used to pay that invoice and hence permanently decrease its 
> amount.
> On the mailing list we had discussed making the order of payment capture 
> configurable.  I can't think of an easy way to do this, however, with the 
> current data model.  I propose that for now we have PaymentGatewayServices 
> basically capture billing account first, then other payment methods, which is 
> a standard B2C process.  If you have a B2B customer who wants to pay with a 
> credit card, then use the accounting module to record a Credit Card payment 
> and apply it to the Billing Account to bring down its balance.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to