# ERPNext v16.29.0 - Product: ERPNext (https://whatsnew.fyi/product/erpnext) - Vendor: Frappe - Date: 2026-07-22 - Version: v16.29.0 - Original notes: https://github.com/frappe/erpnext/releases/tag/v16.29.0 - Permalink: https://whatsnew.fyi/product/erpnext/releases/v16.29.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add an "On hold" option to the Status field in Project - **added** — Automatically link a matching Contact to a Customer or Supplier when a portal user is added - **added** — Add missing stock quantity sort options to Stock Summary report - **added** — Add Reserved Stock column to the Stock Projected Qty report - **changed** — Rename "Recalculate Bin Qty" button to "Recalculate Values" in Bin form and update Valuation Rate and Stock Value from latest stock record - **fixed** — Add missing currency setting to Supplier Quotation Item Net Rate field - **fixed** — Make Job Card field in Purchase Order Item read-only and exclude it from copied and printed records - **fixed** — Allow Delivery Note submission when the same batch is reserved by more than one Sales Order if enough stock remains for other reservations - **fixed** — Allow people added to a Project to access that project without the Projects User role - **fixed** — Open accounting and stock ledger previews without loading every detail first to avoid permission errors - **fixed** — Make Production Plan purchase and transfer flow respect Consider Minimum Order Qty when stock comes from multiple warehouses - **fixed** — Recalculate remaining value of items in Stock Ageing using moving average at current rate and newest stock first for LIFO items - **fixed** — Strip leading and trailing spaces from Account Number in Chart of Accounts Importer - **fixed** — Prevent Dunning Type from being saved when selected Income Account or Cost Center does not belong to the same company or is disabled - **fixed** — Limit Process Statement of Accounts templates to standard placeholders when generating email subject, message, and PDF name - **fixed** — Auto-fill Material Request Buying Price List only with accessible Price Lists and clear field if selected Price List is not a buying price list - **fixed** — Fix parallel stock reposting to start the next pending task after one finishes - **fixed** — Auto-fill Material Request Date in Production Plan Material Request from Transaction Date of linked Material Request - **fixed** — Prevent Transferred Qty from Work Order from being copied into Pick List - **fixed** — Fix misspelled allow_negative_stock option in Stock and Account Value Comparison and Stock Ledger Invariant Check reports ##### Features * Adds an "On hold" option to the _Status_ field in **Project**. Projects marked "On hold" stay in that status when their progress changes. (https://github.com/frappe/erpnext/pull/57173) * Automatically links a matching **Contact** to a **Customer** or **Supplier** when a portal user is added, so the portal user can see the related records. Existing links stay unchanged, so duplicate links are not created. (https://github.com/frappe/erpnext/pull/57211) * Adds the missing stock quantity sort options to "Stock Summary", so items with stock only in those quantities still appear when you sort by them. Adds the _Reserved Stock_ column to the "Stock Projected Qty" report. (https://github.com/frappe/erpnext/pull/57304) * The **Bin** form renames the "Recalculate Bin Qty" button to "Recalculate Values" and now also updates _Valuation Rate_ and _Stock Value_ from the latest stock record. For items using Standard Cost, _Stock Value_ follows the standard rate, and those fields reset to zero when there is no stock record. (https://github.com/frappe/erpnext/pull/57302) ##### Bug Fixes * Adds the missing `currency` setting to **Supplier Quotation Item** _Net Rate_, so the field shows the correct currency symbol in multi-currency supplier quotations. (https://github.com/frappe/erpnext/pull/57168) * Makes the _Job Card_ field in **Purchase Order Item** read-only and keeps it out of copied and printed records. (https://github.com/frappe/erpnext/pull/57166) * Allows a **Delivery Note** to be submitted when the same batch is reserved by more than one **Sales Order**, as long as enough stock remains for the other reservations. It still blocks deliveries when the batch would not have enough stock left for those reservations. (https://github.com/frappe/erpnext/pull/57170) * People added to a **Project** can now access that project even without the Projects User role. (https://github.com/frappe/erpnext/pull/57181) * Opens the accounting and stock ledger previews without loading every detail first, which avoids permission errors in some cases. (https://github.com/frappe/erpnext/pull/57184) * The **Production Plan** purchase and transfer flow now respects _Consider Minimum Order Qty_ when some stock comes from other warehouses and the rest is purchased. The amount left to buy does not fall below the item's _Minimum Order Qty_. (https://github.com/frappe/erpnext/pull/57208) * "Stock Ageing" now recalculates the remaining value of items using moving average at the current rate. It also uses the newest stock first for LIFO items, so the report shows stock value and average age based on each item's valuation method. (https://github.com/frappe/erpnext/pull/57017) * Strips leading and trailing spaces from _Account Number_ in **Chart of Accounts Importer** before adding it to the account name. Imported account names do not include unwanted spaces from the number. (https://github.com/frappe/erpnext/pull/57219) * Prevents **Dunning Type** from being saved when the selected _Income Account_ or _Cost Center_ does not belong to the same company or is disabled, and only one **Dunning Type** can be set as the default for each company. It also blocks duplicate _Language_ entries in the letter text, lets only one language be set as the default, and checks _Body Text_ and _Closing Text_ for template errors. (https://github.com/frappe/erpnext/pull/57227) * Limits **Process Statement of Accounts** templates to standard placeholders when generating the email subject, message, and PDF name. (https://github.com/frappe/erpnext/pull/57232) * **Material Request** now auto-fills the _Buying Price List_ only with a **Price List** you have access to, and it clears the field if the selected **Price List** is not a buying price list. Changing the _Buying Price List_ refreshes the item prices and totals for items with a matching price. (https://github.com/frappe/erpnext/pull/57247) * Fixes parallel stock reposting so it starts the next pending task after one finishe _[Truncated at 4000 characters — full notes: https://github.com/frappe/erpnext/releases/tag/v16.29.0]_