frappe / erpnext

Free and Open Source Enterprise Resource Planning (ERP)
https://erpnext.com
GNU General Public License v3.0
21.76k stars 7.31k forks source link

Invoice on Account/Advance Invoice #34467

Open marination opened 1 year ago

marination commented 1 year ago

Proposal:

In ERPNext, all Sales Invoice behave like a Partial/Final Invoice, meaning that they sell actual quantities of an item or service at a certain rate.

What we need in addition to Sales Invoice, is something called Invoice on Account. This is basically just a document telling the customer “for all the (unfinished) work I did so far, please pay me a lump sum X in advance.” The receipt of this amount should be recorded as an advance payment against the Sales Order. After the job (or some clearly separable part of it) is finished, the user crates a Sales Invoice (Partial/Final) and fetches any advance payments to be deducted from the total.

Payment Entry against the Sales Order should be created from the Invoice On Account.

So the flow for advance payment could be (optionally): Sales Order > Invoice On Account > Payment Entry

All craftsmen in Germany currently need this. This can also be fashioned as an Advance Receipt Voucher in India perhaps (https://www.teachoo.com/6361/1947/What-is-Receipt-Voucher-in-GST/category/GST-Invoice-Format/) with regional custom fields for GSTIN, etc.

Ref: https://www.deskera.com/blog/advance-invoice/

screencapture-dach-dev-8001-app-invoice-on-account-ACC-INVACC-2023-00002-2023-03-16-12_09_41

Alternatives considered:

Proforma Invoice does not work with Lump Sum amounts (item and qty is required), neither does it show exactly how much advance is being requested

Further Reading

digitalrevisor commented 1 year ago

Important feature for all business as well

nakul80 commented 3 months ago

Very Important to get this feature. If I give a service PO, its almost guaranteed that there would be RA (running ac) bills. These are tax invoices requiring to be registered and accounted for taxation setoff etc. System doesnt allow this. I tried to set new UOM called Job which doesnt have to be a whole number. This way I can register supplier invoice partially to achieve this result. It works but not the cleanest method.