[ http://issues.apache.org/jira/browse/OFBIZ-93?page=comments#action_12457955 ] Si Chen commented on OFBIZ-93: ------------------------------
Jacopo - Those sound like just odd bugs rather than the need of a re-design. We recently did quite a bit of work with billing accounts but unfortunately the check out sequence was quite customized so not all of it could be moved back to the project. Still, I probably remember some of the solutions we came up, so I'll try to help out as I can. :) > 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
