You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Martin Kreidenweis (Created) (JIRA)" <ji...@apache.org> on 2011/10/25 17:42:32 UTC

[jira] [Created] (OFBIZ-4513) Make customer refunds possible for billing account payments

Make customer refunds possible for billing account payments
-----------------------------------------------------------

                 Key: OFBIZ-4513
                 URL: https://issues.apache.org/jira/browse/OFBIZ-4513
             Project: OFBiz
          Issue Type: Improvement
          Components: accounting
    Affects Versions: SVN trunk
            Reporter: Martin Kreidenweis


We at [Lusini|http://www.lusini.de/] made customer refunds possible for billing account payments. The following changes were done:

* changed BillingAccountWorker 
** now considers refunded payments in balance
** handling cancelled and voided payment correctly when calculating the billing account unapplied payment sum
*** factored out new method getUnappliedPaymentSum()

* fixed PaymentWorker.getPaymentApplied() to ignore billling-account-only applications
** according to http://demo-trunk.ofbiz.apache.org/cmssite/cms/APACHE_OFBIZ_HTML#N20B07
*** "A billing account does not change the flow of the normal Invoice and Payment processes. It simply allows for a more structured organisation of Invoices and Payments."
*** so the method should simply ignore payment applications to billing accounts

* improving Billing Account and accounting interface
** added form screen to facilitate the creation also outgoing payments for a billing account
** adding link to payment from payment list
** show link to payment in payment applications

* InvoiceServices
** fixed InvoiceServices#checkInvoicePaymentApplications and InvoiceWorker#getInvoiceApplied to distinguish between receipts and disbursements
*** only auto-applying payments to sales invoices if payment direction matches invoice type
*** moved duplicate code to new methods in InvoiceWorker, consider applications in "unconfirmed" status correctly
** removePaymentApplication does not actually remove the PaymentApplication entity any more when removing the invoice-to-payment application and the PaymentApplication also stores the application to a billing account
** createInvoiceForOrder only automatically applies incoming payments to sales invoices and outgoing payments to purchase invoices

* PaymentServices#createPaymentApplication
** when trying to create a payment application with an amount that is higher than the payment amount, use the payment amount instead
** when trying to apply an amount to an invoice/payment that is higher than the invoice/payment amount, use the invoice/payment amount instead
** validating the invoice type
*** incoming payments can only be applied to sales invoices and outgoing payments to purchase invoices
** preventing creation of payment applications with 0 or negative amount
** fixing payment type validation that was added by hansbak in r1186102
*** compared the right entity fields
*** added missing check-errors call

* NOTE: you have to make sure that for billing account payments you use the captureBillingAccountPayments service instead of the createPaymentApplication service for applying a payment to an invoice
** only the captureBillingAccountPayments correctly splits the payment application (split is necessary if payment amount applied to billing account is different than the one applied to the invoice)
*** This is a side effect of the practice to use the same PaymentApplication record to both apply the payment to the billing account and to an invoice or another payment. We kept this behavior. It is problematic though:
**** One issue we did not yet address here is applying payments to other payments. There is no equivalent of captureBillingAccountPayments when applying payments to payments; so no payment application split is done here.

* PaymentGatewayServices
** making sure that invoices are not applied to canceled payment when capturing from the billing account
** fixed missing accounting transaction for invoice payment application with billing account payment
*** now triggering createAcctgTransAndEntriesForPaymentApplication directly from captureBillingAccountPayments as this service modifies the PaymentApplication records directly instead of calling the createPaymentApplication service -- so the usual SECAs cannot be triggered here
** fixing if statements in test processors

* preserve billingAccountId on PaymentApplications when cancelling invoices
** not deleting PaymentApplication entites any more when un-applying them from an invoice if they apply the payment to a billing account


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (OFBIZ-4513) Make customer refunds possible for billing account payments

Posted by "Martin Kreidenweis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OFBIZ-4513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Kreidenweis updated OFBIZ-4513:
--------------------------------------

    Attachment: OFBIZ-4513.patch

the patch as described above
                
> Make customer refunds possible for billing account payments
> -----------------------------------------------------------
>
>                 Key: OFBIZ-4513
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4513
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: accounting
>    Affects Versions: SVN trunk
>            Reporter: Martin Kreidenweis
>         Attachments: OFBIZ-4513.patch
>
>
> We at [Lusini|http://www.lusini.de/] made customer refunds possible for billing account payments. The following changes were done:
> * changed BillingAccountWorker 
> ** now considers refunded payments in balance
> ** handling cancelled and voided payment correctly when calculating the billing account unapplied payment sum
> *** factored out new method getUnappliedPaymentSum()
> * fixed PaymentWorker.getPaymentApplied() to ignore billling-account-only applications
> ** according to http://demo-trunk.ofbiz.apache.org/cmssite/cms/APACHE_OFBIZ_HTML#N20B07
> *** "A billing account does not change the flow of the normal Invoice and Payment processes. It simply allows for a more structured organisation of Invoices and Payments."
> *** so the method should simply ignore payment applications to billing accounts
> * improving Billing Account and accounting interface
> ** added form screen to facilitate the creation also outgoing payments for a billing account
> ** adding link to payment from payment list
> ** show link to payment in payment applications
> * InvoiceServices
> ** fixed InvoiceServices#checkInvoicePaymentApplications and InvoiceWorker#getInvoiceApplied to distinguish between receipts and disbursements
> *** only auto-applying payments to sales invoices if payment direction matches invoice type
> *** moved duplicate code to new methods in InvoiceWorker, consider applications in "unconfirmed" status correctly
> ** removePaymentApplication does not actually remove the PaymentApplication entity any more when removing the invoice-to-payment application and the PaymentApplication also stores the application to a billing account
> ** createInvoiceForOrder only automatically applies incoming payments to sales invoices and outgoing payments to purchase invoices
> * PaymentServices#createPaymentApplication
> ** when trying to create a payment application with an amount that is higher than the payment amount, use the payment amount instead
> ** when trying to apply an amount to an invoice/payment that is higher than the invoice/payment amount, use the invoice/payment amount instead
> ** validating the invoice type
> *** incoming payments can only be applied to sales invoices and outgoing payments to purchase invoices
> ** preventing creation of payment applications with 0 or negative amount
> ** fixing payment type validation that was added by hansbak in r1186102
> *** compared the right entity fields
> *** added missing check-errors call
> * NOTE: you have to make sure that for billing account payments you use the captureBillingAccountPayments service instead of the createPaymentApplication service for applying a payment to an invoice
> ** only the captureBillingAccountPayments correctly splits the payment application (split is necessary if payment amount applied to billing account is different than the one applied to the invoice)
> *** This is a side effect of the practice to use the same PaymentApplication record to both apply the payment to the billing account and to an invoice or another payment. We kept this behavior. It is problematic though:
> **** One issue we did not yet address here is applying payments to other payments. There is no equivalent of captureBillingAccountPayments when applying payments to payments; so no payment application split is done here.
> * PaymentGatewayServices
> ** making sure that invoices are not applied to canceled payment when capturing from the billing account
> ** fixed missing accounting transaction for invoice payment application with billing account payment
> *** now triggering createAcctgTransAndEntriesForPaymentApplication directly from captureBillingAccountPayments as this service modifies the PaymentApplication records directly instead of calling the createPaymentApplication service -- so the usual SECAs cannot be triggered here
> ** fixing if statements in test processors
> * preserve billingAccountId on PaymentApplications when cancelling invoices
> ** not deleting PaymentApplication entites any more when un-applying them from an invoice if they apply the payment to a billing account

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira