[ 
http://issues.apache.org/jira/browse/OFBIZ-93?page=comments#action_12457902 ] 
            
Si Chen commented on OFBIZ-93:
------------------------------

Jacopo,

I think it might be nice to move billingAccountId to OrderPaymentPreference so 
multiple billing accounts can be used on an order.  This is not that necessary 
for b2b billing accounts but might be good for store credit billing accounts.  
I believe David had some issues/concerns about this, so let's wait to hear from 
him.

Regarding moving billingAccountId from PaymentApplication to Payment, it's a 
big re-factoring and I'm not so sure it is necessarily worth the amount of 
work.  It might be nice to add billingAccountId to Payment so that it is 
consistent with orders, etc., but then we lose the flexibility of having 
multiple billing accounts on the same order.

We might want to think also about whether billing account can be factored into 
FinAccount, so that it becomes a special type of FinAccount along with Gift 
Cards.  One of the advantages here is that we could really unify the code, and 
the concept of "authorization" could be much more explicit, instead of being 
implicitly done by having orders in a certain state associated with a 
billingAccountId.

Si

> 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