* feat: Filter out alternative item rows in taxes and totals for Quotation - Added a Quotation Item field `is_alternative_item` - Use filtered rows for taxes and totals computation (cherry picked from commit91982d1e4f) # Conflicts: # erpnext/selling/doctype/quotation_item/quotation_item.json * feat: Consider filtered items table in JS for totals computation - Set `_items` as filtered rows if quotation else the entire table. Set at entry point of JS API - Use `_items` instead of `items` to compute taxes and charges. Exclude alternative item rows (cherry picked from commitf19eadab9a) * feat: Dialog to select alternative item before creating Sales order - Users can leave the row blank in the dialog if original item is to be used - Else users can select an alternative item against an original item - In the document, users must check `Is Alternative Item` if needed and also specify which item it is an altenrative to since there are no documented mappings (cherry picked from commitcef7dfd0b4) # Conflicts: # erpnext/selling/doctype/quotation/quotation.js # erpnext/selling/doctype/quotation_item/quotation_item.json * feat: Filter rows to be mapped on server side mapping function - Pass dialog selections to `make_sales_order` - Map either original item or its alternative depending on mapping - Only qty check for simple rows (without alternatives and not an alternative itself) (cherry picked from commit94cacb60de) * chore: Validate 'alternative_to' field values, must be a valid non-alterntaive item from table (cherry picked from commitfa9b327501) * fix: Iterate over list instead of map's output and formatting (cherry picked from commitece6358e60) * fix: Consider only ordered alternative/original item for Quotation status - The original and its alternatives make a set of items where one is chosen - While setting order status of Quotation, check if the chosen item from the set is fully ordered or not - Filter out unselected items from the set - Create a map containing the set of items and if they were ordered or not for ease of grouping - The simple items will work as it used to (cherry picked from commitb3fe7c6dad) * chore: Code simplification - Map is not required, avoid filter multiple times, use single loop instead - Better variable name - Reduce LOC (cherry picked from commit03321f5f13) * refactor: Order based alternative items mapping - Alternatives must be followed by a non-alternative item row - On submit, store non-alternative rows in hidden checkbox to avoid recomputation - Check for valid/mappable rows by row name - UI: Select from table rows.Add single row for original/alternative item in dialog - UI: Indicator for alternative items in dialog grid - UI: Indicator legend and description of table - DB: Added check field 'Has Alternative Item' not to be confused with 'Has Alternative' in Mfg (cherry picked from commitdb2076db69) # Conflicts: # erpnext/selling/doctype/quotation_item/quotation_item.json * test: Alternative items in Quotation - Taxes and totals, mapping, back updation (cherry picked from commit74fab53e28) * fix: Use block variable Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com> (cherry picked from commit3c96791d52) * fix: Handle `Get Items From` in Sales Order - Map all non alternatives from Quotation to SO if no selected items - Show disclaimer mentioning that Qtns with alternatives must be mapped to SO from the Qtn form (cherry picked from commit19456127cf) * fix: Map only non alternative items from Quotation in Sales Invoice - Since there's no item selection, only Quotation selection :/ (cherry picked from commit6b789e2f04) * fix: Merge conflicts --------- Co-authored-by: marination <maricadsouza221197@gmail.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.