* refactor: `split_invoices_based_on_payment_terms` - Invoices were in the wrong order due to the logic. The invoices with payment terms were added first and the rest after. - Overly long function with unnecessary loops (reduced to one main loop) and complexity - The split row as per payment terms was not ordered. So the second installment was allocated first (cherry picked from commit 6bd56d2d5f62814eb2f777934ed894bc5709e947) * test: `get_outstanding_reference_documents` (triggered via UI) (cherry picked from commit 162c0497d1db69e3af5f142459e3a875f03962af) # Conflicts: # erpnext/accounts/doctype/payment_entry/test_payment_entry.py * fix: Alert message and make sure invoice due dates are different for effective test - Make invoice due dates are different so that the invoice with the earliest due date is allocated first in the test - Translate voucher type, simplify alert message. The invoice could be "split" into 1 row, no. of rows in the message seems unnecessary. (cherry picked from commit 56ac3424d22b68bbc551913133803686431d1694) * style: Remove spaces introduced via merge conflict (cherry picked from commit 4b4b176fcf99241bf17067989ebc850b2de24bcb) # Conflicts: # erpnext/accounts/doctype/payment_entry/test_payment_entry.py * fix: Re-add no.of rows split in alert message (cherry picked from commit 1fc5844025d97de150195b94070b0c4061378992) * fix: Merge conflicts in tests --------- Co-authored-by: marination <maricadsouza221197@gmail.com>
Accounts module contains masters and transactions to manage a traditional double entry accounting system.
Accounting heads are called "Accounts" and they can be groups in a tree like "Chart of Accounts"
Entries are:
- Journal Entries
- Sales Invoice (Itemised)
- Purchase Invoice (Itemised)
All accounting entries are stored in the General Ledger
Payment Ledger
Transactions on Receivable and Payable Account types will also be stored in Payment Ledger
. This is so that payment reconciliation process only requires update on this ledger.
Key Fields
Field | Description |
---|---|
account_type |
Receivable/Payable |
account |
Accounting head |
party |
Party Name |
voucher_no |
Voucher No |
against_voucher_no |
Linked voucher(secondary effect) |
amount |
can be +ve/-ve |
Design
debit
and credit
have been replaced with account_type
and amount
. against_voucher_no
is populated for all entries. So, outstanding amount can be calculated by summing up amount only using against_voucher_no
.
Ex:
- Consider an invoice for ₹100 and a partial payment of ₹80 against that invoice. Payment Ledger will have following entries.
voucher_no | against_voucher_no | amount |
---|---|---|
SINV-01 | SINV-01 | 100 |
PAY-01 | SINV-01 | -80 |
- Reconcile a Credit Note against an invoice using a Journal Entry
An invoice for ₹100 partially reconciled against a credit of ₹70 using a Journal Entry. Payment Ledger will have the following entries.
voucher_no | against_voucher_no | amount |
---|---|---|
SINV-01 | SINV-01 | 100 |
CR-NOTE-01 | CR-NOTE-01 | -70 |
JE-01 | CR-NOTE-01 | +70 |
JE-01 | SINV-01 | -70 |