erpnext icon indicating copy to clipboard operation
erpnext copied to clipboard

ERPNext only checks Sales/Purchase invoices for negatives

Open dboobisMF opened this issue 7 years ago • 18 comments

https://discuss.erpnext.com/t/correct-way-to-refund-a-customer-payment/33914/6

Customers make proforma payment against a sales order, then cancel the order before delivery. Currently the process for resolving this is convoluted:

  1. Issue dummy sales invoice
  2. Reconcile this invoice against the open payment to clear off the ledger
  3. Issue return/credit for dummy invoice
  4. Issue payment to Customer with reference to this credit

I can't cancel the payment as there needs to be record of the funds entering and leaving the bank account.

I would like ERPNext to also check received customer Payment Entries for outstanding balances and allow you to issue a payment against them. This maintains logical consistency as open payments display as negative balances on the ledger.

Given a customer makes proforma payment against a sales order When they cancel the order Then ERPNext should allow payment to be made to the Customer linked to the initial (open) payment received

dboobisMF avatar Feb 19 '18 12:02 dboobisMF

Basically, ERPNext needs a neat, simple, and logical way to refund payments that have been received from Customers via the Payment Entry form

Currently, as can be understood from the forum thread referenced above, a payment received through the Payment Entry document cannot be refunded in a straightforward manner because:

a) Payment Entry does not have the option of refund b) Using Journal Entry returns the payment in the ledgers but doesn't update the information in the original Payment Entry document. This causes the unallocated value in that payment entry to still show up when pulling advances against that Customer

Thanks

Olawale1 avatar Feb 23 '18 13:02 Olawale1

Was this somehow corrected? We are having the same problem; customer overpaid and there's no correct way to keep track of the return that was transferred to the customer.

ofcaah avatar Mar 30 '18 10:03 ofcaah

Here's how I dealt with our problem, which I believe is the correct way to deal with this:

There's a "feature" in payment_entry.py, which incorrectly prevents entering the factually correct information. After correcting the function validate_allocated_amount to 'pass', things worked as intended. I've allocated the factually correct overpayment made by customer, which put the invoice in negative balance, and then entered the factually correct wiretransfer back to the customer and referenced the invoice, which brought it's balance to 0. No errors, no problems.

Why is this correct behavior being prevented is beyond me. :)

ofcaah avatar Mar 30 '18 14:03 ofcaah

I don't believe this has been fixed yet, no. With regards your fix, are you over-allocating the payment on the invoice? Interesting solution, hopefully someone with more experience can confirm this works without breaking anything and release it to core.

dboobisMF avatar Apr 03 '18 09:04 dboobisMF

@dboobisMF yes. Actually I look at it this way: in this case it's the customer who over-allocated the funds. There are laws here that say you need to obey customer's reference in regards to what they are paying for instead of allocating to whatever you wish/oldest invoice.

But I agree, someone from ERPNext should definitely look at it and:

  1. determine if the aforementioned "feature" is even needed, or was it just someone being trigger-happy;
  2. determine if there are no hidden problems with such a "fix".

ofcaah avatar Apr 03 '18 11:04 ofcaah

Facing the same problem when the Customer incorrectly deposited into our account and we need to refund back the money.

No sales invoice involved.

aakvatech avatar Sep 26 '19 17:09 aakvatech

We're experiencing the same issue; refunds issued via journal entry are still appearing in our accounts receivable summary reports. This is an issue which was originally brought up in the community discussions back in November 2017. When can we expect a fix for this?

mobentec avatar Nov 20 '19 02:11 mobentec

Agreed, this should be a rather simple process, it happens in our company quite often.

marekzada avatar Jun 30 '20 13:06 marekzada

Any update on this issue, this seems like a logical request of a very basic functionality ... We are facing this quite often and we have no direct easy way to refund an advance payment from a customer.
Why has this issue gone stale?

zbisho avatar Feb 20 '21 04:02 zbisho

I will submit a PR soon that will put Stripe's charge ID into the Reference No. field since we need this. We'll be adding a quick button for "Stripe Refund" on the Credit Note's page

kevinpthorne avatar Apr 22 '21 18:04 kevinpthorne

the same Problem "cannot pay to the customer without any negative outstanding invoice" when pay refund to the customer even we create a Reterun / Credit Note

yasser1248 avatar Sep 26 '21 13:09 yasser1248

the same problem here, is there anyway to solve this the right way

Thanks

Ghaiman avatar Nov 13 '21 15:11 Ghaiman

the same problem here, is there anyway to solve this the right way

Thanks

The current way of solving this is using Journal Entry to mark the refund.

So you'd credit the bank account and debit the account receivable of the same amount. To link to customer, you need to select the partner on that account receivable line (party type = customer, party = customer name/account)

bynicolas avatar Nov 20 '21 16:11 bynicolas

the same problem here, is there anyway to solve this the right way Thanks

The current way of solving this is using Journal Entry to mark the refund.

So you'd credit the bank account and debit the account receivable of the same amount. To link to customer, you need to select the partner on that account receivable line (party type = customer, party = customer name/account)

Will this resolve the Accounts Receivable report? It generally shows 2 transactions, Payment Entry and then Journal Entry

aakvatech avatar Nov 24 '21 03:11 aakvatech

This issue has been automatically marked as inactive because it has not had recent activity and it wasn't validated by maintainer team. It will be closed within a week if no further activity occurs.

stale[bot] avatar Jan 23 '22 04:01 stale[bot]

This cannot be closed as there are business transactions that violate the book keeping rules and if using JE it creates incorrect report into Accounts Receivable.

aakvatech avatar Jan 30 '22 06:01 aakvatech

+1 for this issue to be solved. Much needed.

OMNERP avatar May 25 '22 06:05 OMNERP

This cannot be closed as there are business transactions that violate the book keeping rules and if using JE it creates incorrect report into Accounts Receivable.

@aakvatech can you please explain what is incorrect if Credit Note is made via Journal Entry

deepeshgarg007 avatar Sep 15 '22 13:09 deepeshgarg007

@deepeshgarg007, @aakvatech my suggestion here would be to add a field, "is_advance" in payment entry doc and if the payment entry "is_advance" then the function "validate_payment_against_negative_invoice" can be skipped and the GL entries to be modified accordingly.

Request your feedback.

harshpwctech avatar Nov 22 '22 06:11 harshpwctech

Has there been any development on this? A great suggestion by @harshpwctech. In general refunding prepayments is a common use-case for all webshops. In general any Payment needs to be refundable that has not been recorded with a Sales Invoice/Purchase Invoice, as the against document does not hit the books. A journal entry is pretty error-prone and hence not very user-friendly.

Libermentix avatar Mar 21 '23 16:03 Libermentix

any update here?

mincerray1 avatar Apr 12 '23 10:04 mincerray1

any update on this issue , why cannot we allow paying to customer/receivable account?!

Sendipad avatar May 05 '23 14:05 Sendipad

erpnext payment entry must allow pay to customer with adding a check on custiomer master that enable paying to that special customer and only allow some role to enable it It is really top required and most annoying problem we faced .

Thanks

Sendipad avatar May 05 '23 15:05 Sendipad

any update?

mincerray1 avatar Sep 08 '23 07:09 mincerray1

If you take advance money against sales order, then 'cancel' the sales order from upper right corner. It will give an error message like the following one:

Cannot delete or cancel because Sales Order [SAL-ORD-2023-0008] is linked with Payment Entry [ACC-PAY-2023-00011] at Row: 1

Then click to link of payment entry. Cancel this payment entry from upper right corner. After that go back to sales order and cancel it. There will be no effect of journal or cash balance.

wait4train avatar Sep 10 '23 14:09 wait4train

Looks like https://github.com/frappe/erpnext/pull/37828 closes this issue.

dj12djdjs avatar Dec 07 '23 20:12 dj12djdjs