Breaking Changes
- Adds a Frappe CRM sync toggle in CRM Settings and a Frappe CRM Allowed User list for controlling who can send data from Frappe CRM to ERPNext. Turning the setting on adds the related
crm_dealfields on Quotation and Customer, and turning it off removes them. (#56384)
Features
- Adds an Allow Negative Stock for Batch checkbox on Batch. The system checks this box before the global setting in Stock Settings, so you can allow negative stock for specific batches. (#56091)
- Adds Allocate Full Amount to Stock Items to Purchase Taxes and Charges on Purchase Receipt and Purchase Invoice, and it is on by default, so actual charges are applied only to stock and asset items instead of being shared with non-stock items. When multiple actual charges are entered, each charge is distributed separately so the item values match the charge amounts. (#56222)
- Adds an Alias field to Customer and Supplier, and includes it when searching for these records. (#56297)
- Adds the Project field to Invoices in Opening Invoice Creation Tool. The selected project appears on the invoice line created from that row. (#56401)
Bug Fixes
- The "Stock Ageing" report now keeps items without serial numbers in their existing age ranges when you use Stock Reconciliation. The special reset remains for items with serial numbers. (#56043)
- The Transfer Status on Material Request now counts direct transfers and items moved through transit, so requests that use both show the completed status. (#56049)
- The Budget form now prevents adding or deleting Budget Distribution rows, and each row must include Start Date, End Date, Amount, and Percent. The "Budget Variance Report" now skips Budget Distribution rows with missing Start Date or End Date instead of stopping with an error. (#56084)
- A Journal Entry marked as opening can no longer be saved once a submitted Period Closing Voucher exists for the company. (#56088)
- In Serial No, the Work Order field now excludes cancelled Work Orders from search results. (#56117)
- Unchecks Is Debit Note when creating a sales return from a Sales Invoice, so the return isn't marked as a debit note. (#56115)
- Renaming an Item Attribute value updates existing Item variants that use it. This avoids errors when saving those Item variants. (#56119)
- Fixes Payment Entry tax calculations when entries are created through the API and the payment amount already includes tax. Missing tax amounts are treated as zero, so the tax total and remaining amount are filled in. (#56123)
- Allows users to create Quality Inspection records from Stock Entry forms with purposes other than Manufacture. The system marks the inspection as incoming or outgoing based on the entry's purpose. (#55968)
- Updates Subcontracting Inward Order so the Rate reflects the remaining balance after items are returned or used; it no longer uses the full received quantity. (#56138)
- Bank Guarantee now lets you choose Reference Document Type from Sales Order or Purchase Order. It shows the Customer field for Sales Order and the Supplier field for Purchase Order. (#56159)
- Cancelling a voucher now checks the date through which each company’s accounts are frozen before the cancellation is recorded. This blocks cancellations that would affect locked accounting periods. (#56164)
- Adds a permission check in Exchange Rate Revaluation before it shows Account details. Removes public access from a gross margin report function. (#56194)
- Limits Chart of Accounts Importer to users with the Accounts Manager role and checks that the user can edit the selected Company before it imports a new chart of accounts. The importer deletes related records for that company only when the user has permission. (#56140)
- Discarding a document now changes Status to Cancelled only when the document has a Status field. (#56232)
- Applies the rounding precision used in Stock Entry to additional cost amounts, which helps prevent small rounding differences from appearing in Stock Adjustment entries. (#56201)
- Moves the Allocate Full Amount to Stock Items, Included in Print Rate, and Included in Paid Amount fields into a separate section on the Purchase Taxes and Charges form. The description for Allocate Full Amount to Stock Items now appears only when you click the field. (#56257)
- When Stock Reconciliation is reposted, the system now uses the original Valuation Rate from the linked Stock Reconciliation Item instead of the rounded value already saved. (#56263)
- Allows you to transfer part of the raw materials from a Work Order instead of the full quantity at once. (#56206)
- Profile pictures in project summary emails and project pages now display correctly when the image link contains special characters. (#56271)
- Removes payment entries from non-POS return Sales Invoices when they are saved, so old payment details do not appear in bank reconciliation. (#56171)
- Shows only matching Party Type options in Journal Entry based on the selected account's Account Type, so unrelated party types do not appear. (#56200)
- Adds tests that check only users who can edit an Issue can change its Status. (#56299)
- The item search in Purchase Order now shows items linked to the selected supplier, even when the same item is also linked to another supplier. (#56305)
- Uses the standard Naming Series dialog when naming documents instead of a separate custom dialog. (#56311)
- Adds a Partially Transferred status to Job Card when only some required materials are transferred. The material transfer buttons remain available while some items still need to be transferred. (#56285)
- Adds a Parent Item filter in the Product Bundle list and lets you search by Parent Item and Description. The "Item Where Used" report now shows Product Bundle rows with quantity and unit when available, and hides blank columns. (#56313)
- Passes the current document to regional round-off rules so they can use its details when choosing the round-off account. (#55771)
- When you create purchase documents or a Timesheet from a Project, the new document now uses the Project's Company when it is set, instead of your default company. (#56351)
- The Supplier form has a new field order and updated labels. The Supplier list view shows Status. (#56316)
- Reorganizes the Customer form. Adds Customer Type to the Customer list view so you can see it while browsing customers. (#56317)
- Makes Item Code mandatory in Job Card Item, so each row is linked to an item before the job card is saved. (#56374)
- The Budget error message now explains that a budget cannot be assigned to an account whose Root Type is not Income or Expense. (#56392)
- In Payment Entry, changing the exchange rate keeps the foreign-currency amount you entered unchanged while recalculating the amount in your company currency. (#56398)
- Removes a custom change handler from POS Opening Entry, so edited Opening Amount values stay in the current row instead of resetting to 0. (#56403)
Performance Improvements
- Adds a combined index to Serial and Batch Entry for searches by Serial No and Warehouse, which helps those searches run faster. It also removes older separate indexes from Serial and Batch Entry. (#56166)
Authors: @Shllokkk, @mihir-kandoi, @rohitwaghchaure, @Sudharsanan11, @nishkagosalia, @vorasmit, @barredterra, @Jatin3128, @diptanilsaha, @ljain112, @nareshkannasln, @khushi8112, @ravibharathi656, @Pandiyan5273 For these release notes, we used an LLM (OpenAI gpt-5.4-mini) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
Changes with the following labels were excluded:
Changes with the following types were excluded:
Reviewers: @Shllokkk, @ps173, @ruthra-kumar, @mihir-kandoi, @rohitwaghchaure, @nishkagosalia, @vorasmit, @diptanilsaha, @khushi8112
AI content