* fix: incorrect batch-wise valuation rate for entries with same posting datetime The tie-breaker in get_batch_no_ledgers compared the bundle's creation against the SLE's creation. These are different timelines - a bundle can be created (drafted) much before its SLE (created at submission). For entries sharing a posting datetime (backdated / amended vouchers), this mis-ordered the entries against the ledger's replay order (SLE creation), causing double counting or omission of batch qty / value and runaway outgoing rates that no repost could heal. Now the tie is broken using the creation of the bundle's own SLE (same timeline on both sides). When the valuation runs through the bundle before its SLE exists, the entry is by definition last in its timestamp group, so all same-timestamp entries already in the ledger precede it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * test: batch-wise valuation ordering for same posting datetime entries Covers both tie-breaking branches of get_batch_no_ledgers: - submission (pre-insertion) branch: same-timestamp inward at a different rate plus a multi-row outward voucher (same item and warehouse), at submission and after a backdated repost - existing-SLE branch: a bundle created after its sibling's SLE, the ordering must follow the SLE creation and not the bundle creation Both tests fail with the previous parent.creation < sle.creation tie-breaker and pass with the fix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
ERPNext as a monolith includes the following areas for managing businesses:
- Accounting
- Warehouse Management
- CRM
- Sales
- Purchase
- HRMS
- Project Management
- Support
- Asset Management
- Quality Management
- Manufacturing
- Website Management
- Customize ERPNext
- And More
ERPNext is built on the Frappe Framework, a full-stack web app framework built with Python & JavaScript.
Installation
Login for the PWD site: (username: Administrator, password: admin)
Containerized Installation
Use docker to deploy ERPNext in production or for development of Frappe apps. See https://github.com/frappe/frappe_docker for more details.
Manual Install
The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details.
New passwords will be created for the ERPNext "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt).
Learning and community
- Frappe School - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
- Official documentation - Extensive documentation for ERPNext.
- Discussion Forum - Engage with community of ERPNext users and service providers.
- Telegram Group - Get instant help from huge community of users.
Contributing
License
GNU/General Public License (see license.txt)
The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappe Technologies Pvt Ltd (Frappe) and Contributors.
By contributing to ERPNext, you agree that your contributions will be licensed under its GNU General Public License (v3).
Logo and Trademark Policy
Please read our Logo and Trademark Policy.