General
Bug Fixes (18)
- Fixes internal transfer validation so it uses the rate rules and override permissions configured in Accounts Settings. (#62061)
- Keeps customer and customer-group credit limits in effect when a sales order bypasses its usual check, prevents duplicate company entries in Customer Credit Limit, and corrects credit-limit notification recipients and amounts. Updates Customer checks for required and conflicting names and valid contact and address links, adjusts loyalty checks for customer access, groups, and nested territories, and excludes disabled customers from internal customer checks. (#63945)
- Email, import, account-merging, and other processing actions can no longer be triggered by opening a link, and queued work starts only after the related document is saved. Cancelling a Quotation now clears its Lost Reasons. (#64150)
- When Enable Stock Reservation is off in Stock Settings, Work Order, Production Plan, Subcontracting Order, and Sales Order ignore a previously selected Reserve Stock option and do not create stock reservations on submission. (#64141)
- Corrects the Finnish appointment-time validation message so it displays without causing a formatting error. (#64307)
- Adds a common date-range check to reports, flagging when From Date is later than To Date instead of showing empty or misleading results. (#64235)
- The setup wizard now sets How Often Should Sales Data Be Updated in Company/Project? to Daily in Selling Settings, rather than updating sales totals with each transaction. (#64201)
- Updates "Support Hour Distribution" to count issues created through midnight, makes "Issue Summary" and "Issue Analytics" count only issues the user can access, averages only recorded metrics in "Issue Summary", and includes all periods through the selected end date in "Issue Analytics"; "First Response Time for Issues" now measures elapsed calendar time, and splitting an Issue preserves the original’s resolution metrics while opening the new issue. Updates Communication Medium call popups so disabled methods do not trigger them and the Catch All group receives them when no time slot applies, allows existing Incoming Call Settings schedules to be saved again, updates the matching Video with YouTube statistics, and makes Rename Tool use and remove the selected file after each run. (#63470)
- Filters Invoice Discounting to unpaid Sales Invoice records for the selected company and checks account access before loading entries in Bank Clearance. In Production Plan, sales order details are limited to submitted orders the user can access, and warehouse stock lookups respect warehouse permissions. (#64647)
- Updates Lead and Opportunity status handling, prevent leads from being converted into multiple customers or added to multiple Prospect records, and adjust the "Campaign Efficiency" and "Lost Opportunity" reports to reflect relevant order activity and the date an opportunity is lost. Also corrects appointment slot availability, access to Contract records, and item quantities copied to Request for Quotation documents. (#63558)
- Creating a Purchase Return after a partial return from a rejected warehouse now shows the correct Qty and Rejected Qty. The system no longer displays misleading values (e.g., -7 instead of -10), so the remaining quantities to be returned are accurately reflected. (#64805)
- Updates Asset sales, returns, repairs, and value changes to use the asset’s recorded value, and restricts sales or splits when an asset is not eligible. Asset Depreciation Schedule retains booked entries without posting them again, while Asset Maintenance updates task due dates and asset status as maintenance tasks change. (#63521)
- Corrects "Asset Depreciations and Balances" and "Asset Depreciation Ledger" figures for finance books, depreciation reversals, asset value changes, and disposal dates, and applies user access and the Cost Center filter; "Budget Variance Report" excludes period-closing entries, limits actuals to the default finance book, and shows only dimensions the user can access. "Consolidated Financial Statement" translates income and expenses at transaction-date rates and shows foreign-currency translation differences; reports using a presentation currency flag missing exchange rates instead of treating them as 1. (#63479)
- Filters account choices in Supplier and Customer default account entries by Billing Currency, showing accounts in the company’s currency when no billing currency is set. (#65038)
- Adds validation for a Company’s default accounts, cost centers, and warehouses, and blocks changes to perpetual inventory or currency when posted stock or ledger entries are affected. It also cleans up some linked records and blocks deletion when linked BOM or Employee records remain, restricts manual default tax-template creation to System Managers and Accounts Managers, keeps provisional-expense details visible when any company needs them, and excludes opening invoices from monthly sales totals. (#65513)
- Updates Email Digest emails to show each recipient’s personal items, use company-currency totals, and exclude draft transactions and expired quotations. Financial summaries and lists respect recipients’ access, links open the correct records, and a failed scheduled email does not stop later sends. (#65518)
- Adds whole-number quantity checks, including for stock-unit quantities, in Purchase Order, Subcontracting Order, Subcontracting Receipt, Material Request, Supplier Quotation, Request for Quotation, and Pick List. Rejects disabled units of measure on Item records and transactions, and blocks unit merges that would create duplicate conversion entries on an Item. (#65524)
- Restricts access to date ranges used by reports to signed-in users. (#65924)
Performance Improvements (2)
- Reduces repeated data lookups during Sales Invoice, Delivery Note, Sales Order, Material Request, Work Order, and BOM processing, and avoids recalculating transfer costs for every row. The "Stock Ageing" report skips its negative-batch check when no batches are negative. (#60764)
- Reduces repeated data lookups when saving or submitting Payment Entry and Sales Invoice; it also avoids a cause of deadlocks when new Payment Entry records are created at the same time. (#64655)
Accounts
Features (1)
- Adds the Convert at Reporting Date Exchange Rate option to the "General Ledger" report for accounts that share a foreign currency, showing company-currency amounts in that account currency using the rate on To Date. (#65031)
Bug Fixes (44)
- Distributes rounding differences across item amounts when tax is included in prices, reducing discrepancies between the tax breakdown and document total, including when a grand-total discount is applied. (#63221)
- Clears outdated cached fiscal year information when a Fiscal Year is added, changed, or deleted, so the Accounting dashboard picks up the current fiscal year after reload. (#62541)
- Batches Account Closing Balance records during period closing, reducing database writes when many account and dimension combinations are involved and helping avoid transaction write limits. (#63971)
- Keeps the required rounding adjustment when a rounded-up foreign-currency advance is fully allocated through Payment Reconciliation or the Advances section of Sales Invoice, preventing reconciliation from failing because the payment is unbalanced. (#63836)
- Keeps the unpaid Payment Amount in Outstanding for payment schedule rows with a zero Invoice Portion in Sales Invoice and Purchase Invoice, so those amounts can be allocated in Payment Entry. (#62990)
- Updates Payment Request to include existing requests and credit notes when checking amounts due, and to record payments confirmed by a payment gateway. It also respects user permissions when replacing open requests, restricts loyalty-point use, and takes party details from the linked document. (#64111)
- Allows overdue opening Sales Invoice records to be included in Dunning without a Payment Schedule, validating the Due Date and Outstanding Amount against the invoice. (#64231)
- Blocks the same Asset from appearing in multiple rows of a non-return Sales Invoice, preventing its disposal value from being recorded more than once; duplicate assets remain allowed on returns. (#64229)
- Updates Currency Exchange to use the requested buying or selling rate, prefer records for that side, and use the reverse-direction rate when no direct rate is available. It locks Date, From Currency, To Currency, For Buying, and For Selling after creation so the record name stays aligned with those values, while keeping Exchange Rate editable. (#64336)
- Updates Dunning to deduct payments not assigned to payment terms from overdue balances and interest calculations when the invoice and receivable account use different currencies. (#64576)
- Adds a Dunning option to the "Create" menu for overdue opening Sales Invoice records, using the invoice’s Due Date when no payment schedule is present. (#64570)
- Corrects bank reports so payments, taxes, and foreign-currency transactions appear with the right amounts and direction, and updates ledger and payment reports to reflect refunds, report filters, and user permissions. Corrects totals and included transactions in sales, purchase, billing, and tax-withholding reports, including POS sales, credit notes, advances, and different withholding rates. (#63476)
- Uses posting dates to age supplier invoices without a bill date and updates payment-term allocations and ageing totals in "Accounts Payable" and "Accounts Receivable". Corrects currency conversions, balances, and access filtering in "Purchase Register", "Sales Register", and "Sales Payment Summary"; separates tax columns by account in "Item-wise Sales Register" and "Item-wise Purchase Register"; and limits "Tax Withholding Details" and "TDS Computation Summary" to customers and suppliers the user can access. (#63469)
- Assigns a no-expiry date to loyalty points earned from a Sales Invoice when Expiry Duration (in days) is zero or blank, so they do not expire the next day. (#64112)
- When a slab is removed from a Promotional Scheme, its Pricing Rule is deleted or disabled if a document links to it. The scheme now rejects enabled slabs that overlap on quantity and amount at the same Priority, unless both have Apply Multiple Pricing Rules enabled. (#64124)
- Corrects calculations and filters across financial reports, including profit and balance figures for closed or unclosed years, finance-book selection, and access to accounts and parties; “Gross Profit” also uses relevant invoice and delivery costs. It keeps customers and suppliers with the same name separate in “General Ledger” and flags ledger entries allocated to cancelled vouchers in “Invalid Ledger Entries.” (#63474)
- Updates Cost Center Allocation so split amounts add up to the original amount, and rejects zero or negative percentages and cost centers that are disabled, groups, or belong to another company. It also prevents duplicate allocations with the same Main Cost Center and Valid From; when duplicates already exist, it uses the most recently created allocation. (#64132)
- Updates Period Closing Voucher checks to block a new closing when an earlier period remains open or incomplete, reject unusable closing accounts, and display posting failures. It also handles periods with no net profit or loss and foreign-currency balances, uses the period end date for immutable-ledger reversals, and limits access to period dates to users who can view the voucher. (#64228)
- Allows a new Period Closing Voucher when the previous one has no GL Entry Processing Status; previous vouchers marked “In Progress” or “Failed” still block the next closing. (#64878)
- Payment Order keeps its own numbering series when created from a Payment Entry and accepts only submitted Payment Requests and Payment Entries that are not already included in another submitted Payment Order; paid requests are not accepted. Cancelling an order restores each Payment Request status based on its unpaid amount, and submitting or cancelling a related Journal Entry updates the request to reflect the amount paid. (#64118)
- Prevents adding new purchase tax rows with Add/Deduct Tax set to Deduct and Category set to Valuation in Purchase Taxes and Charges Template and purchase transactions, while allowing the same tax on the same account when it carries over from a linked document. (#64120)
- Updates Sales Invoice consolidation in POS Invoice Merge Log to include redeemed loyalty amounts, change, and write-offs from the original POS Invoice records. Cancelling a POS Closing Entry cancels all its consolidated credit notes, and merges by Customer Group reject invoices from customers outside the selected group and its child groups. (#64420)
- Corrects opening balances, date-range and accumulated totals in the "Cash Flow" report, and includes other balance-sheet movements in net cash change. Updates currency handling and subsidiary totals in the "Consolidated Financial Statement", and corrects fiscal-year balances in "Account Balance", margin percentages in "Profit and Loss Statement", company access checks in "Trial Balance", and presentation-currency conversions across financial statements. (#63477)
- Corrects the opening and closing balances in the "Cash Flow" report when Accumulated Values is enabled, so earlier periods’ movements aren’t counted again in later periods. (#64940)
- Updates POS Invoice stock checks to count the same item across separate rows and exclude stock reserved for Sales Orders. Recalculates Paid Amount, Change Amount, and Loyalty Amount, counts write-offs toward payment totals, updates the original invoice status after returns, and checks that collected balances are positive and use a payment method from the POS Profile. (#64234)
- Updates POS Closing Entry to check that all invoices from a POS session are included before submission or retry, and allows cancellation of entries with 10 or more invoices. Limits "Retry" to failed entries and preserves the appropriate status when submission or cancellation fails. (#64550)
- Limits who can open a POS Opening Entry to users in the POS Profile’s Applicable for Users list when it contains users and has no blank entries. Rejects negative Opening Amount values and duplicate Mode of Payment entries, and shows each payment mode only once when entering opening balances. (#64552)
- Updates the "Cash Flow" report so Accumulated Values use the selected date range’s start date for balance sheet rows, matching the dates used for profit and expense totals. (#64952)
- Updates Item Tax Template tax-row selection to use the latest applicable Valid From date and retain undated rows when needed, including on backdated transactions. It also rejects group Account records and prevents transactions from using disabled templates or templates from another company. (#64215)
- Adds checks in Account and Ledger Merge to prevent merging ledger accounts with different Account Type values or balances that violate the target’s Balance Must Be, and to prevent merging a group into one of its descendants. It also restricts account moves to parents with the same report type when ledger entries exist, prevents changes to Company, checks account names and numbers, limits child-company account renames to the parent company, and applies the same frozen-entry permission rule when saving and syncing accounts. (#64128)
- Adds account-currency amount checks to the daily ledger health check and two corresponding columns to the "General and Payment Ledger Comparison" report; "Voucher-wise Balance" checks vouchers separately by type and number. The daily check keeps one Ledger Health record per voucher and check, updates Checked On when a mismatch remains, and removes the record when a later check finds no mismatch. (#64218)
- Keeps the Payment Request linked to an advance payment when it is allocated to a Sales Invoice, so cancelling the payment returns the request to Requested and restores its outstanding amount. (#64626)
- Allows Accounts Managers without the System Manager role to start or continue Process Payment Reconciliation and Period Closing Voucher processing, with job status checks limited to the current site. (#64261)
- Adds an Exchange Rate check to Purchase Invoice entries created from a Purchase Order when related Purchase Receipt items exist, rejecting mismatches instead of marking the receipts as fully billed. (#64237)
- When creating a Dunning from a Sales Invoice, uses recalculated unpaid balances for each installment and excludes fully paid installments, so partially paid foreign-currency invoices show the amount still due. (#65274)
- Allows Accounts User to read Dunning Type records and submit, cancel, and amend Dunning records; Accounts Manager can also amend Dunning records. (#65385)
- Adds checks to Customer Group records that reject duplicate accounts or credit limits for a company, invalid receivable or advance accounts, names already used by a Customer, and changing a leaf group with linked customers into a group. When group defaults are fetched for a Customer, the Advance Account and Bypass Credit Limit Check settings are copied too. (#62745)
- Updates access checks in "Trial Balance", "Trial Balance for Party", "Customer Ledger Summary", "Supplier Ledger Summary", and "Profitability Analysis" so Company permissions limited to other document types do not block users from running these reports. (#65651)
- When an allocated advance is unlinked from a Sales Invoice, its Payment Request stays paid while the funds remain unallocated on the Payment Entry. (#65673)
- Updates rounding for foreign-currency Sales Invoice and Purchase Invoice records so company-currency totals include the rounding adjustment and align with the amounts posted to accounting. (#65330)
- On Address, only System Managers and Accounts Managers can set Is Your Company Address or change Company links; other users can edit existing company addresses without changing their Company links. (#65332)
- When creating a Payment Entry from a multi-currency Payment Request, uses the referenced document’s exchange rate to calculate the bank-account amount instead of reusing the party-account amount. (#65616)
- Sales Invoice returns created before deferred revenue is recognized now debit the deferred revenue account instead of the sales account, and later recognition excludes the returned amount. (#65278)
- Statement emails from Process Statement Of Accounts are now processed through a form submission, matching the form’s behavior. (#65956)
Selling
Bug Fixes (9)
- Updates maximum-discount checks on Sales Order and other selling documents to account for item price rounding, so discounts within an item's limit are accepted. (#63958)
- Fixes published Sales Partner pages that fail to display address and phone details, and refreshes sales commissions when the selected partner changes or is cleared. Rejects empty or negative Sales Partner targets and displays a clear message when a website route conflicts with another partner’s route. (#64334)
- Fixes published Sales Partner pages that fail to load by retrieving addresses through their linked address records. (#64467)
- Allows website visitors to view published Sales Partner pages; unpublished partners remain unavailable. (#64494)
- Displays a description on a Sales Partner page only when one is provided, so pages with no description do not show “None.” (#64588)
- Validates sales team changes on submitted Sales Order, Delivery Note, Sales Invoice, and POS Invoice records, recalculates allocations and commissions, and applies current commission rates to new or changed assignments. Rejects duplicate, disabled, or grouped sales people and invalid contribution percentages, prevents disabling a Sales Person linked to unfinished sales, and counts only submitted transactions in the Sales Person heatmap. (#64329)
- Limits the website list of published Sales Partner records to public-facing details, hiding commission rates and other internal fields. (#64749)
- Reports Sales Person as a required field when a Sales Team row is missing it, instead of showing a server error. (#65512)
- Allows a disabled Sales Person carried over from a source document to remain on a related return, amendment, or invoice against a Delivery Note, while still checking sales people added to the new document. (#65327)
Point of Sale
Bug Fixes
- Shows Invoice Type as plain text in the "POS Register" report, allowing users without System Manager access to view invoice rows while keeping the invoice links clickable. (#64765)
Buying
Bug Fixes (5)
- In the supplier portal, “Make Purchase Invoice” now submits a form instead of opening a link, so visiting a URL alone no longer creates a Purchase Invoice. (#64145)
- Validates payable and advance account mappings in Supplier Group, rejecting duplicate company entries and accounts that are disabled, belong to another company, are group accounts, or aren’t marked for suppliers. Requires Supplier records to use a Supplier Group with no subgroups, while keeping the group optional. (#64331)
- Corrects the missing-BOM message in the old subcontracting flow for Purchase Order to show the item code instead of repeating the row number. (#65226)
- Replaces existing tax rows in a Purchase Order with the tax rows from the Supplier Quotation when items are brought over, preventing duplicate taxes and inflated totals. (#65418)
- Corrects the over-billing calculation so a Purchase Invoice at exactly the Over Billing Allowance for a Purchase Receipt is accepted; validation messages also show the excess percentage rounded. (#65485)
Stock
Bug Fixes (142)
- Prevents negative Re-order Level and Re-order Qty values from being saved in Item reorder settings. (#63941)
- Updates Manufacturer and Manufacturer Part No in Material Request rows when the selected item changes, replacing details from the previous item. (#63931)
- Item records without their own tax rows no longer automatically copy tax rows from their Item Group, so transactions can use the group’s current tax settings. (#63987)
- Shows the Inventory Dimension name in serial number errors instead of “None.” (#64088)
- Fixes returns of bundled items on Sales Invoice credit notes so they reuse the original batch and serial numbers instead of receiving new ones. (#63905)
- Fixes serialized-item Stock Entry submissions when ending transit by using the transit stock’s inventory dimensions and treating blank dimensions as unset during serial-number checks. (#64100)
- When a Repost Item Valuation job times out, reposting stops before starting the next entry so unfinished entries can be retried on the next scheduled run. (#64147)
- Treats missing FIFO stock rates as zero in the "Stock Ledger Invariant Check" and "Stock Ledger Variance" reports, so affected entries no longer cause these reports to fail. (#64103)
- Rejects negative Valuation Rate values on Item records, even when no opening stock is entered. (#64097)
- Keeps rejected material in Subcontracting Receipt at zero value when stock valuation is recalculated, rather than assigning it the accepted material’s rate. (#64490)
- Batch quantity calculations filter POS Invoice reservations by the requested warehouse and batch, excluding reservations from other warehouses or batches. (#64488)
- Counts a batch reserved by a POS Invoice only once when an item has both a Batch No and a Serial and Batch Bundle, so the available batch quantity is not reduced twice. (#64486)
- Prevents Item records from being saved with negative No of Months (Revenue) or No of Months (Expense) values, which can create invalid service periods on invoices. (#64574)
- When valuing stock issued while inventory is negative, Stock Ledger Entry now uses a fallback rate based on stock records dated before the issue, rather than later-dated records. (#64053)
- Putaway rules keep selected serial and batch details when they redirect or split stock rows, so transfers and receipts retain the chosen stock instead of selecting different items. (#64522)
- Prevents a Batch from having a Manufacturing Date later than its Expiry Date. (#64373)
- When a cancellation or backdated stock transaction changes quantities in later Stock Ledger Entry records, ERPNext also updates their Stock Value and Valuation Rate so transactions posted before a valuation repost runs use the adjusted values. (#63529)
- Prevents users from deleting the Warehouse Type
Transit, which the system needs for transit warehouses and company setup. (#64041) - The "Available Serial No" report includes serial numbers already in stock before the selected start date in its balances and shows no rows when there are no serial-numbered items to report. (#64043)
- Limits derived unit conversions to units in the same UOM Category, so a shared unit no longer creates conversions between unrelated categories. (#64044)
- Updates Putaway Rule allocations to retain rejected quantities, assign serial numbers according to stock quantities, and share available warehouse space across stock rows. It also uses the item’s unit conversion when checking warehouse capacity and rejects enabled rules for group or disabled warehouses and non-stock items. (#64048)
- Updates the "COGS By Item Group" report to count stock movements only when their Expense Account is the company’s default Cost of Goods Sold account. (#64049)
- The "Incorrect Serial and Batch Bundle" report no longer lists bundles from submitted POS Invoice records awaiting consolidation. "Fix SABB Entry" leaves draft bundles unchanged and only updates submitted or cancelled bundles when their stock records match the report’s correction cases. (#64115)
- The "Item Price Stock" report now requires permission to view Item Price. It lists only prices valid today and shows the Price UOM, Stock UOM, Customer, and Supplier for each price. (#64119)
- Updates the "Item Prices" report to show Last Purchase Rate per stock unit. Price-list entries show their unit of measure and any associated customer, supplier, or batch, and only prices valid today appear. (#64122)
- Updates the "Item Variant Details" report so Open Sales Orders counts only orders with undelivered variant items, and average prices include only current prices in the company’s currency and stock unit that are not tied to a specific customer or supplier. Current Stock reflects only warehouses the user is permitted to access, and average prices appear in the currency used for the calculation. (#64125)
- Excludes disabled items from the "Items To Be Requested" report. (#64127)
- Updates Serial and Batch Bundle checks to block standalone bundles without a matching stock movement, duplicate serial numbers within one transaction, and batches belonging to a different item. For serial-and-batch items, expiry-based picking now prioritizes batches with earlier expiry dates. (#64130)
- Updates the "Itemwise Recommended Reorder Level" report to include stock items delivered through Product Bundles, exclude supplier returns from consumption, and count raw materials used in subcontracting as consumed. Corrects the date warning when From Date is later than To Date. (#64131)
- Updates the "Material Requests for which Supplier Quotations are not created" report to list each Material Request item without a submitted Supplier Quotation; draft or cancelled quotations, and quotations for other items, do not hide it. (#64133)
- Updates Quick Stock Balance to include stock movements through the end of the selected day and to add up quantities across the individual warehouses in a group. (#64223)
- Rejects invalid Quality Inspection Template entries, including formula-based criteria without a formula, numeric ranges where the minimum exceeds the maximum, non-numeric criteria without an expected value, and repeated parameters. (#64225)
- Updates the "Product Bundle Balance" report to apply the selected Date and use the most recently added stock entry when entries share a posting date and time. (#64244)
- Updates the "Requested Items To Be Transferred" report to calculate requested and remaining quantities in the stock unit, and adds a Stock UOM column so requests entered in other units show the outstanding stock quantity correctly. (#64245)
- Adds transferred and consumed quantities to the "Reserved Stock" report and updates Available Qty to Reserve to reflect current stock minus reserved stock. (#64249)
- The "Item Price Stock" report runs for users who can view item prices but lack permission to read Currency. (#64761)
- The "Serial and Batch Summary" report includes stock from warehouses under the selected Warehouse and always shows a Qty column. The Serial No and Batch No filters show results only to users with access to those records. (#64251)
- Updates the "Serial No Warranty Expiry" report to show Customer and Warranty Expiry Date instead of Description and AMC Expiry Date, sort by earliest warranty expiry, and list only delivered serial numbers. (#64253)
- Updates the "Stock Ageing" report to match purchase returns with the stock they return and show only warehouses the user can access. When Ageing Range is blank, the report uses 30-, 60-, and 90-day ranges, and it sorts custom ranges in ascending order. (#64257)
- Updates the "Stock Analytics" report to show opening stock in periods without transactions, place transactions in the correct week, and include periods through the selected end date. It also limits results to warehouses the user is allowed to view. (#64392)
- The "Stock Balance" report applies Warehouse Type alongside Warehouse, so results match both filters. (#64396)
- The "Stock Ledger Invariant Check" report now includes incorrect Valuation Rate entries and FIFO queue value mismatches under Show Incorrect Entries, while rounding FIFO values before comparing them. (#64399)
- Flags an emptied FIFO queue on the affected stock entry in the "Stock Ledger Variance" report, including when filtering for quantity differences. (#64402)
- Updates Landed Cost Voucher to reject Stock and group accounts as charge accounts, and manual Applicable Charges whose sign conflicts with the purchase or return row. Rounding differences are assigned to eligible rows instead of return rows. (#64405)
- Updates the "Stock Ledger" report to show correct opening balances for warehouse, batch, project, and date filters, while respecting users’ warehouse and item access. It also corrects unit conversions, batch rates, and stock reconciliation changes shown in the report. (#64413)
- Prevents duplicate manufacturer and part number entries in Item Manufacturer when records are edited, and clears an Item’s default manufacturer when its default entry changes or is removed. Changing an Item’s default manufacturer now requires write permission on that Item. (#64414)
- Updates the status sync in the "Stock Qty vs Serial No Count" report to check sub-warehouses, correct serial numbers whose status conflicts with stock movements, and reactivate those that remain in stock. (#64421)
- Updates the "Total Stock Summary" report to limit stock totals to warehouses covered by the user’s permissions, without applying permissions intended for other document types. (#64422)
- Updates the "Warehouse wise Item Balance Age and Value" report to show only warehouses the user can access, exclude group warehouses from columns, display fractional quantities, and filter out only items with a zero total quantity. (#64547)
- Updates the "Warehouse Wise Stock Balance" report to include stock from disabled warehouses in parent and company totals, keep stocked warehouses in the correct place in the hierarchy, and hide empty disabled warehouses unless Show Disabled Warehouses is selected. (#64548)
- Updates the "Batch Item Expiry Status" report to filter and sort batches by expiry date instead of creation date, exclude batches without expiry dates, and set the default end date to 30 days from today. For users with warehouse permissions, quantities include only stock in permitted warehouses, and batches with no stock in those warehouses are omitted. (#64046)
- Updates the "FIFO Queue vs Qty After Transaction Comparison" report to skip entries that do not maintain a FIFO queue and check only entries within the selected From Posting Date and To Posting Date range. (#64050)
- The "Incorrect Balance Qty After Transaction" report now flags smaller quantity differences, checks Stock Reconciliation entries against the quantity they set, and suggests warehouses for the selected company in the Warehouse filter. (#64054)
- Allows Stock Managers to create and edit Shipment Parcel Template records and use them in Shipment records. It rejects templates with Length, Width, Height, or Weight values of zero or less. (#64219)
- Adds checks to Warehouse to prevent company changes when stock records exist, disabling warehouses that hold stock, and converting warehouses to groups when stock, open quantities, or item defaults depend on them; group-status changes are also checked on every save. It validates that warehouse accounts are Stock accounts, parent warehouses are groups in the same company, and the Default In-Transit Warehouse is a transit warehouse for that company. (#64258)
- Changing an abbreviation in Item Attribute renames only variants whose item codes were generated from the previous abbreviation, leaving custom item codes unchanged. Item Attribute blocks enabling Numeric Values when variants use the attribute and prevents removing values assigned to existing items, while still allowing those values to be renamed when Allow Rename Attribute Value is enabled. (#64419)
- Keeps Serial No records inactive when a Stock Reconciliation is cancelled or a serial is returned to a supplier, without assigning a warranty date to returned serials. Restricts changes to stock-managed serial details to stock transactions. (#64539)
- Item merges preserve reserved stock and open-order quantities, while enabling Maintain Stock after a submitted purchase invoice and changing Default Unit of Measure while stock is reserved are blocked. The system also validates variant attributes, UPC-A barcodes, company links, and reorder settings, and creates Standard Selling Rate prices in the relevant selling price list and currency. (#64545)
- Updates Stock Reposting Settings to compare reposting windows as times, allowing overnight windows to extend past midnight. Clicking "Start Reposting" on Repost Item Valuation outside the configured window no longer reports that reposting has started and instead explains when it can begin. (#64113)
- Saving an Item template preserves existing variants’ units of measure when Allow Different UOM is enabled. Item Variant Settings rejects Attributes, Has Variants, and Variant Of as fields to copy to variants. (#64116)
- Updates the "Incorrect Stock Value Report" to require an Account and compare each entry’s Balance Stock Value with the accumulated stock value for its item and warehouse, including later entries on the same day and entries dated today. The report checks only warehouses linked to the selected account, and From Date defaults to the start of the month. (#64117)
- Fixes an error that hides filters when the second of the "Stock Ledger Variance" and "Stock Ledger Invariant Check" reports is opened in a session. (#64831)
- Rounds the converted Standard Selling Rate to the price list currency’s precision when creating an Item Price in another currency. (#64874)
- Updates Pick List to check picks against each sales order row’s quantity and allowed over-picking, use eligible warehouses, move on when a location cannot supply a whole unit, and reject expired batches. When creating a Delivery Note or Stock Entry from a pick list, it uses only selected and undelivered items, separates orders with different delivery details, and checks transferred quantities and warehouses against the pick. (#64546)
- Fixes Stock Reconciliation so batch balances reflect the selected posting time, quantities and rates entered in "Reconcile All" are retained, and blank rates can use an available item valuation rate. It also rejects stock accounts as the Difference Account and opening-stock entries that conflict with earlier transactions, and restores permission checks for stock balance lookups. (#64679)
- In Delivery Settings, Delay between Delivery Stops must be zero or greater, and Dispatch Attachment only accepts print formats for Delivery Note. (#64217)
- Return documents now reject accepted or rejected quantities that were not present on the original item row. (#64886)
- Validates that each Packing Slip row matches an item on its Delivery Note and that combined packed quantities do not exceed the referenced rows’ quantities; calculates net weight using the Delivery Note’s unit conversion and keeps packed bundle rows linked when the Delivery Note is edited. Blocks cancellation of a Packing Slip when its Delivery Note is submitted. (#64248)
- Creating a Shipment from a Delivery Note now adds one entry at the note’s full total, and invalid, duplicate, already-used, or return notes are rejected. Shipment validation also checks parties, linked addresses and contacts, pickup times, and parcel counts and dimensions, restricts access to company contact details, and makes Delivery Contact optional for company destinations. (#64411)
- Item Price prioritizes customer-, supplier-, and batch-specific prices over newer general prices, and uses a packing-unit price only when the ordered quantity fits that pack size. It also rejects prices with the same Valid From date as duplicates even when Valid Upto differs, and prevents using a batch from a different item. (#64410)
- Skips POS Invoice, Stock Reservation Entry, and Pick List reservations for unavailable batches when calculating available batch quantities, so expired batches don’t create entries without a batch number. (#64942)
- Allows Stock Entry to accept valid fractional quantities from a Pick List by rounding converted quantities before comparing them with the picked amount. (#64919)
- Stock Entry now assigns costs according to BOM quantities and outputs, and checks disassembly, transit, and component-return quantities against their source records and Work Order limits. It also blocks unsupported manufacturing outputs and cancellations that would leave a Work Order with fewer items made than disassembled; expired-batch and disassembly lookups now check user access. (#64553)
- Updates Delivery Trip handling so Delivery Note links are released correctly, existing transport details are preserved, and billed notes can be added while notes already assigned to another trip or cancelled notes are rejected. Corrects route ETAs and distance totals, allows delivery staff to use trip forms, and sends rendered dispatch emails only for submitted trips and to the stop’s customer contact. (#64678)
- A Pick List created from a Sales Order or Material Request retains the unit conversion recorded on the source row when the units match, so later changes to the Item do not change the quantity to pick. (#64967)
- Validates alternative items in Work Order stock entries against the work order’s settings and Item Alternative records, while allowing alternatives already transferred to be consumed or returned. Makes Item Code and Alternative Item Code mandatory in Item Alternative. (#64214)
- Standard Stock Entry Type records can no longer have Add to Transit enabled or be deleted, and the setting is cleared from existing standard types. Stock-in entries created from transit transfers are marked as non-transit. (#64224)
- Adds permission for users with the Stock User role to view, create, and update Batch records used in stock tasks. (#64983)
- Updates only the affected quantities in Bin, preventing unrelated stock movements from being overwritten, and recalculates projected quantity during stock reposting. The "Recalculate Values" action now works for users with edit access to Repost Item Valuation and is hidden from users without that access. (#64250)
- Updates the "Stock Projected Qty" report to account for POS-reserved stock when calculating shortages and leaves converted figures blank when an item has no conversion for the selected unit. Applies the selected unit conversion to opening balances in the "Stock Ledger" report. (#64418)
- Updates Stock Settings so stock valuation uses the relevant company’s method, a zero global over-delivery allowance does not clear the assigned role, and barcode visibility changes apply only to stock transactions. Automatic item-price updates leave unrelated customer, supplier, or batch prices unchanged, and Stock Entry rejects units without a conversion rate defined for the item when the relevant setting is enabled. (#64397)
- Updates Inventory Dimension handling so required dimensions stay mandatory, their conditions are applied, and backdated stock issues are checked against later stock balances. Deleting a dimension removes only its related custom fields and is blocked while stock transactions use it; Stock Managers can create dimensions, and System Managers can delete them. (#64549)
- Blocks component returns in Stock Entry until the linked Work Order is Completed or Closed. (#64863)
- Updates Stock Entry to load the Sample Retention Warehouse without requiring access to Stock Settings, so Stock Users can use the form without that permission error while the warehouse remains excluded from source warehouse options. (#64992)
- Updates Repost Item Valuation so backdated entries remain queued during an active repost, only failed reposts can be restarted, and reposts respect Allow Zero Rate, stock freeze dates, and closed accounting periods. Prevents Closing Stock Balance from being submitted or generated while pending reposts dated on or before its To Date could affect the balance. (#64121)
- Updates Material Request quantity tracking across Sales Order, Production Plan, and Work Order, and accounts for stock already transferred when creating follow-up documents. It adjusts automatic reorder quantities, includes subcontracting requests in stock needs, restricts customer-provided requests to eligible items, and prevents stopped requests or fully ordered rows from being mapped; reorder emails go to relevant company managers and show quantities in stock units. (#64551)
- Updates Purchase Receipt billing so accepted returns and rejected quantities are handled correctly when creating a Purchase Invoice or allocating a Purchase Order invoice across receipts. It also corrects stock and accounting entries for rejected and returned goods, values assets using the purchase unit, blocks invoices for closed receipts and partial asset returns that leave extra linked assets, and updates quantities on inter-company Delivery Notes to account for accepted returns. (#64540)
- Uses the receipt posting date as the Manufacturing Date for automatically created Batch records, so the Expiry Date is based on that date; split batches retain their source batch’s dates, supplier, valuation, and parent link. Blocks expired or disabled batches from outgoing stock transactions and prevents disabled batches from being consumed as raw materials in Subcontracting Receipt. (#64401)
- Prevents changing the currency of a Price List with Item Price entries and blocks Buying or Selling settings that conflict with defaults on Customer, Customer Group, or Supplier records. Selling transactions now check that the billing address country is included in the Price List’s Applicable for Countries setting. (#64408)
- Reads the serial and batch selector setting from session defaults, so Stock Users don’t see a Stock Settings permission message when opening Stock Entry or other transaction forms. (#65027)
- Skips disabled- and expired-batch checks on Sales Invoice and Purchase Invoice documents when Update Stock is off, and avoids repeating these checks on consolidated Sales Invoice documents created during POS Closing Entry submission. Batches are still checked when stock is moved or a POS Invoice is submitted. (#65092)
- Prevents items on a Delivery Note created from an invoice from being invoiced again, limits return credit notes to quantities billed and not already credited, and blocks invoicing a closed Delivery Note. Internal-transfer Purchase Receipt handling accounts for returned quantities and bundled items, preserves the delivery’s Target Warehouse on returns, and no longer copies transport details when a Delivery Note is duplicated. (#64393)
- Checks that a Quality Inspection matches the document, item, and batch row it is linked to, and prevents it from replacing another inspection already assigned to a row. Updates the inspection status when it is cancelled, blocks cancellation while a submitted document still uses it, and checks access when looking up a Job Card for inspection item selection. (#64557)
- Updates returns from Purchase Receipt and Subcontracting Receipt so rows referring to the same original row use different available serial numbers and only the remaining batch quantity. (#65120)
- Updates Pick List handling for product bundles that list the same component more than once, keeping packed rows separate and counting their quantities together when calculating how many bundles are picked. (#65090)
- When a Pick List, Delivery Note, or return is created from a Sales Order, calculates bundle quantities using the component quantities packed on the order rather than the component’s current unit conversion factor. (#65029)
- Product bundle returns from a Delivery Note now use the component quantities recorded on that delivery, rather than recalculating them from current unit conversions. (#65093)
- Copies Driver and Driver Name from a Delivery Note to the Delivery Trip created from it. (#65170)
- Updates batch stock checks to lock entries before totaling quantities, preventing a PostgreSQL error when posting stock transactions for the same batch. (#65167)
- On Purchase Receipt, rejected quantities are valued only for stock items, allowing receipts for non-stock items to be submitted when rejected-material valuation is enabled. (#65149)
- When creating a Pick List from a Sales Order, calculates what remains for each product bundle component based on what has already been picked or delivered, and leaves out components with nothing remaining. (#65207)
- Updates Pick List allocations to remove assigned serial numbers from remaining stock and count picked quantities only once across locations. (#65193)
- Skips batch checks only for invoices consolidated by POS Invoice Merge Log; other documents still check for disabled or expired batches even when submitted data includes
is_consolidated. (#65182) - Updates Pick List creation to use the full quantity of product bundle components when a Sales Order uses a unit other than the bundle’s default. (#65238)
- Updates Sales Order Picked Qty to count complete product bundles when their components are picked across separate Pick Lists. (#65239)
- Counts disabled batches when checking stock levels, allowing Purchase Receipt returns to recognize quantities still on hand; disabled batches remain unavailable for new outgoing transactions. (#65234)
- For Stock Reconciliation documents with more than 100 items, saves the current version as a draft before queuing background submission so newly created or edited documents are processed with their current contents. (#65229)
- When a product bundle repeats a component, each row on a Delivery Note now uses its corresponding Pick List row for warehouse, batch, and serial details. (#65154)
- Limits Batch quantity lookups to warehouses a user can access: requests for restricted warehouses are blocked, and lookups across warehouses exclude their stock. (#65100)
- Allows partial returns from Purchase Receipt and Purchase Invoice when the remaining purchase quantity covers active assets; returns that exceed the available quantity are still blocked. (#64536)
- Updates Pick List serial-number allocation so each row gets distinct serial numbers, with later rows receiving the oldest remaining numbers. (#65268)
- Corrects bundle quantities on Delivery Note documents created from a Pick List when the sales order uses a different unit of measure, so the delivered quantity matches the order instead of being overstated. (#65283)
- Updates Delivery Note serial number assignment so packed rows for repeated serialized components in a product bundle use different serial numbers when Use Serial / Batch Fields is off, avoiding duplicate assignments that can block submission. (#65298)
- When automatically selecting batches for a Delivery Note, each packed row now accounts for quantities already assigned to other rows, so repeated batched components don’t overdraw the same batch. (#65355)
- On MariaDB, checks for the next Stock Reconciliation against the latest committed entries, so a concurrent backdated stock entry does not change its counted quantity. (#65400)
- Updates Pick List so serial numbers and batch quantities match Picked Qty; short-picked items carry only their picked quantities into a Delivery Note. (#65412)
- A Delivery Note created from a partly delivered Pick List now includes only serial numbers that have not already been delivered. (#65414)
- A Stock Entry created from a partially transferred Pick List now includes only serial numbers that have not already been transferred. (#65425)
- A follow-up Delivery Note from a partly delivered Pick List now copies only serial numbers still in the warehouse, not those already delivered. (#65423)
- The "Serial and Batch Summary" report and valuation stock-lot calculations exclude submitted Pick List bundles from stock-out totals; the report still shows them when filtered by Pick List. (#65421)
- For outward stock transactions, automatic serial and batch assignment now skips serial numbers and quantities already held by draft selections on other rows of the same document, preventing duplicate assignments. (#65410)
- When Use Serial / Batch Fields is enabled, automatic batch selection accounts for quantities already assigned to earlier rows in a bundled item, so later rows don’t overdraw the same batch. It also avoids counting a POS Invoice’s own reserved batch quantities twice. (#65398)
- Updates automatic batch selection to account for quantities already assigned to other rows, preventing it from assigning more stock from a batch than is available. (#65427)
- Validates company-specific defaults in Item, Item Group, and Brand, rejecting duplicate company entries, links to another company’s records, and inventory accounts that aren’t stock accounts. Applies inherited deferred-account, cost-variance, and price-list defaults, and uses the Item’s actual group or brand for purchase expense accounts. (#62615)
- When saving a Delivery Note, serial numbers from packed items in removed rows are no longer treated as in use and remain available to the other rows. (#65487)
- When creating a Delivery Note from a partly delivered Pick List, the copied bundle now includes only serial numbers and batch quantities not already used in submitted Delivery Note or Sales Invoice transactions. (#65479)
- When creating a Delivery Note from a Pick List, already-delivered items without a Sales Order are skipped so the remaining items can still be delivered. (#65481)
- Allows partial delivery of serialized Product Bundle items from a Pick List, keeping the selected serial numbers on the Delivery Note and leaving the rest for later deliveries. (#65489)
- Makes error messages in Serial and Batch Bundle and Stock Ledger Entry translatable, including messages about batch availability and reserved stock. (#65562)
- Adds search indexes for Pick List Item on Delivery Note Item, Sales Invoice Item, and Stock Entry Detail, and for Against Pick List on Sales Invoice Item, reducing the records searched when updating pick-list quantities and connections. (#65560)
- Blocks Recreate Stock Ledgers in Repost Item Valuation for vouchers with serial- or batch-tracked items, even when their stock ledger entries are missing. (#65555)
- Checks users’ permission to create a Stock Entry before the operation can create a Serial and Batch Bundle, Serial No, or Batch records. (#65553)
- Uses the Pick List entry with quantity still to deliver to assign a bundle component’s warehouse and serial or batch details to the next Delivery Note. (#65550)
- Allows Delivery Notes created from Pick Lists to submit packed items using the serial and batch numbers selected during picking when Use Serial / Batch Fields is off. (#65603)
- The "Serial and Batch Summary" report and stock lot calculations exclude POS Invoice quantities until the invoice is consolidated, so open POS sales are not counted as stock out. (#65641)
- Creates system-generated Batch records without requiring the submitting user to have permission to create them, allowing Purchase and Manufacturing users to submit Purchase Receipt and Work Order documents that generate batches. (#65483)
- When Disable Serial No and Batch Selector or Sample Retention Warehouse changes in Stock Settings, clears users’ cached startup data so they see the updated setting without logging in again. (#65471)
- Back-dated stock entries now update later quantity and value balances across batch-based Stock Reconciliation entries that do not include the affected batches, so the "Stock Ledger" report and stock availability checks reflect the change before valuation reposting. (#65704)
- The serial and batch selector now follows Pick Serial / Batch Based On in Stock Settings instead of defaulting to FIFO; changes to this setting take effect after saving. (#65508)
- Rounds the allowed quantity in negative-stock messages for reserved stock, so decimal quantities no longer display extra floating-point digits. (#65714)
- Limits the serial numbers carried over from a Pick List to a Delivery Note to the remaining quantity, so the delivery does not include more serial numbers than its quantity. (#65712)
- Counts delivered quantities for serialized Product Bundle components on a Pick List even when the delivered serial numbers differ from those picked, so the list reflects what is delivered. (#65710)
Performance Improvements (3)
- Speeds up negative batch-stock checks in Serial and Batch Bundle by totaling earlier transactions together and checking later transactions individually, reducing processing time and avoiding locks on unrelated batches. (#64395)
- Speeds up lookups of Serial and Batch Bundle records by Voucher No and Voucher Type. (#64544)
- Combines queued stock valuation reposts for the same company into one chronological pass, avoiding repeated recalculation of shared stock entries. (#64681)
Manufacturing
Bug Fixes (43)
- Work Order records created from a BOM now receive the company’s default Work-in-Progress Warehouse and Scrap Warehouse even when Target Warehouse is already filled, so they can be saved. (#64001)
- Disassembly from a Work Order now returns raw materials in the batches used during manufacture, even when they go to a different warehouse, and selects finished goods and serial numbers from the warehouse being disassembled. (#63985)
- Allows partial disassembly of batched finished goods in Stock Entry without counting the quantity in the current disassembly as already used. (#64081)
- Recalculates Amount from Rate and Required Qty when a Work Order is saved, and updates the rate for newly added or changed items using the BOM’s costing rules. (#64134)
- Updates how transferred materials are allocated across partial Stock Entry records for a Work Order, accounting for the materials each record consumes and for process loss so less material is left in work in progress after production. (#64199)
- When creating variant BOMs and Work Orders from a template, keeps each material’s unit of measure on the BOM and converts its required quantity to the stock unit for the Work Order. (#64481)
- Updates downstream operation targets in Work Order to account for process loss recorded earlier, so they can be completed against the remaining quantity without recording the same loss again. (#64695)
- Operations that specify only a Workstation Type now use an enabled Workstation and report an error if none are available. Changes to a type’s operating costs update workstations that still use those costs, while leaving workstations with custom costs unchanged. (#64042)
- The Shop Floor board lists and counts only Work Orders the user is allowed to view. Plant Floor stock summaries include items in child Item Groups when filtered by a parent group, and reject group warehouses or warehouses belonging to another company. (#64047)
- Requires the selected BOM in a Work Order or Production Plan to produce the chosen item, rather than merely using it as a raw material. (#64690)
- Corrects cost calculations in BOM records for price-list currencies, sub-assemblies, process loss, and item quantities; "Update Cost" now refreshes costs without saving other unsaved changes. Variant BOM records retain the template’s per-unit quantities, another active BOM becomes the default when the current default is cancelled or deactivated, and the system blocks activating a BOM with inactive sub-assemblies or deactivating one used by another BOM. (#64220)
- Fixes the sub-assembly count in the "BOM Operations Time" report so each submitted, active parent BOM counts once and the count appears on every operation row. (#64227)
- Updates the "BOM Variance Report" to list produced Work Orders and calculate required material quantities based on output and planned process loss. Applies user permissions to the report and Work Order filter, hiding restricted orders and their material rows. (#64240)
- The "Exponential Smoothing Forecasting" report carries the latest forecast forward for future periods when actual figures are unavailable. It applies document access permissions to the report and requires read access to the selected document type. (#64246)
- Updates the "Issued Items Against Work Order" report to show returned materials as negative quantities and amounts, and to list materials consumed directly from their source warehouse when a work order skips the transfer to the work-in-progress warehouse. (#64254)
- The "Production Analytics" report now applies user permissions when counting Work Order records, so its totals exclude work orders users cannot access. (#64256)
- Updates the "Production Plan Summary" report to subtract recorded process loss from pending quantities on Work Order, finished-item, and sub-assembly rows; replacement orders are accounted for so lost units ordered again are not deducted twice. (#64394)
- Updates the "Production Planning Report" to show Required Qty in the item's stock unit, check each material in its own warehouse, and plan only pending quantities for sales orders, material requests, and work orders. Arrival Quantity now includes open quantities from submitted Purchase Orders, shown in the stock unit. (#64400)
- Updates the "Quality Inspection Summary" report to exclude draft inspections, count only Accepted and Rejected inspections in the chart, and apply users’ permissions to both the listed inspections and chart totals. (#64406)
- Fixes the "Work Order Summary" report so it includes Work Orders scheduled to start later or end on the selected final date, and its charts count only orders the user can access. Updates the charts so new orders appear in the first age range, completed orders are left out of age charts, and completed, closed, or stopped orders are not counted as pending. (#64415)
- Counts process loss toward the target in the "Work Orders in Progress" report, so completed Work Orders with process loss no longer appear as in progress. (#64417)
- Updates Routing to refresh a row’s Hour Rate and Operating Cost when its Workstation changes, while preserving a manually changed rate. Blocks a newly selected disabled Routing from being used on a BOM. (#64045)
- BOM cost updates in the BOM Update Log now complete when there are no eligible leaf BOMs, and parent costs update even when a child BOM is inactive. Replacing a BOM now checks that the new one is submitted, active, and in the same company and currency, recalculates affected parent costs, and handles operation links; replacements are blocked when a semi-finished-goods operation needs to be amended. (#64126)
- Updates Job Card scheduling to use enabled shifts in time order, move jobs into the next available shift, and skip holidays; starting or completing a job requires a draft card for that workstation. Stock Entry valuation uses the operating cost recorded on the Work Order, and Shop Floor OEE counts process loss once and only for work done today. (#64123)
- Updates the "Work Order Consumed Materials" report to show returned quantities in the stock unit and exclude them from consumed totals. Adds closed Work Order records to the report and its status filters. (#64412)
- Fixes Production Plan handling so matching Sales Order items are consolidated correctly and quantities already covered by plans or requests are not planned again. It also uses each raw material’s correct warehouse and unit, avoids duplicate drafts and document creation from closed plans, and tracks ordered and requested quantities correctly. (#64416)
- Checks that each sub-assembly BOM in a Production Plan matches its listed item and rejects plans with mismatched BOMs. (#64969)
- Downtime Entry now rejects downtime periods that overlap another entry for the same workstation. "Downtime Analysis" includes entries that overlap the selected date range but counts only downtime within that range, and rejects a From Date later than To Date. (#64051)
- Updates Work Order quantity handling: produced amounts count toward Sales Orders, BOMs created from orders use the produced quantity (or the order quantity before production), and draft materials and operations refresh when the quantity or BOM changes. It also corrects planned quantities and lead-time recording, blocks new stock entries against closed orders, allows only stop, resume, or close actions on submitted orders, rejects negative batch sizes, reuses serial and batch numbers when amending cancelled orders, and checks access before creating stock entries. (#64242)
- Updates BOM Creator to keep sub-assemblies and materials correctly linked when rows change, and to calculate costs using each row’s materials, currency, and selected warehouse. BOM creation uses the saved creator details, including material BOMs and unit conversions, and can be retried after an error or top-level BOM cancellation. (#64241)
- Updates Manufacturing Settings so Time Between Operations (Mins) can be 0 and Capacity Planning For (Days) uses 30 when set to 0. Also allows transfers above the BOM quantity when that BOM backflushes materials on transfer, even when per-BOM quantity validation is enabled. (#64052)
- When For Warehouse is blank, Production Plan uses the item's company-specific default warehouse for items requested without a BOM. (#65006)
- Adds checks when creating or updating a Sales Order or Purchase Order against a Blanket Order, including matching the order type and customer or supplier, checking validity dates and remaining quantities, and accounting for item-unit conversions. Applies the Blanket Order rate using the relevant unit conversion, warns when an order row has a different rate, and keeps delivered or received quantities counted when an order is closed. (#64129)
- Recalculates Planned Operating Cost and Total Operating Cost when a draft Work Order reloads operations from a changed BOM. (#65025)
- Updates Job Card tracking so completed quantities, work time and costs, material transfers, and requested supplies reflect the work recorded for each operation. It also blocks invalid production steps, overlapping employee or workstation schedules, and actions users lack permission to perform. (#64255)
- Adds a UOM column beside Required Qty in the Production Plan file from "Download Required Materials" and combines purchase and transfer quantities in the displayed unit. (#65104)
- Allows a Job Card to be submitted when fractional material quantities are fully transferred, even if rounding makes the recorded amount slightly lower than the calculated requirement; incomplete transfers remain blocked. (#65169)
- Updates the “Download Required Materials” file in Production Plan so other-warehouse values appear under the correct columns and Planned Qty is filled for item and warehouse rows. (#65151)
- Rounds Required Qty on Job Card records to the configured precision, allowing material transfers to match fractional quantities and updating existing open Job Cards. (#65231)
- Updates Production Plan to subtract transferred materials from the shortage before rounding the amount to purchase units, avoiding requests for an extra purchase unit. (#65227)
- Updates how raw materials are divided among Job Card entries, assigning rounding remainders so the transfers add up to the required amount and avoid rounding-related shortages during manufacturing. (#65303)
- Rounds transfer quantities up to whole stock units when a Production Plan draws materials from other warehouses, allowing items that require whole quantities to be included in a Material Request without fractions. (#65296)
- When a Work Order has pending raw materials but no remaining transferable quantity, "Start" opens a Stock Entry to transfer those materials directly instead of showing a zero-quantity prompt. (#65963)
Subcontracting
Bug Fixes (21)
- When a Subcontracting Receipt is revalued, supplied materials are updated before finished goods, so changes in material costs are reflected in the finished goods’ stock value. (#64143)
- Values raw materials returned through Subcontracting Receipt at the rate used when they were consumed, or at the standard rate for standard-cost items, instead of zero when batch stock is depleted. (#64174)
- When Set Valuation Rate for Rejected Materials is off, rejected batched finished goods on a Subcontracting Receipt are recorded without the accepted goods’ value. (#64170)
- For Subcontracting Receipt returns with recorded consumption details, returns the raw material batches and serial numbers the receipt used at their consumed rates, and blocks returns that exceed the remaining quantities. (#64205)
- Returns of rejected items in Subcontracting Receipt exclude service costs while the items remain in the rejected warehouse, avoiding incorrect Stock Adjustment and expense entries; service costs apply again if the items move to an accepted warehouse. (#64297)
- Uses the original Subcontracting Receipt rate to value returned finished goods under LIFO, rather than the rate of the most recent stock batch. (#64389)
- Uses the returned receipt’s rate to value finished goods in Subcontracting Receipt returns, rather than the warehouse’s current stock rate. (#64483)
- Filters Subcontracting Receipt return rates by warehouse, so returned accepted goods use the accepted warehouse’s rate rather than a rejected-stock entry. (#64686)
- Updates the raw material value in Subcontracting Receipt returns during stock reposting to match the rate at which the original receipt consumed the materials. (#64684)
- Uses the returned Subcontracting Receipt’s rate to value finished goods on returns, rather than an unrelated stock layer. (#64786)
- Returns from Subcontracting Receipt now use the batch and serial numbers from the receipt being returned, including the correct numbers for items from a rejected warehouse. Returns from Subcontracting Receipt, Purchase Receipt, and Purchase Invoice skip batches or serial numbers that have left the warehouse when enough stock remains to cover the return. (#64788)
- Prevents Subcontract Return entries from exceeding the accepted or rejected quantities recorded on the Subcontracting Receipt. (#64790)
- When returning rejected quantities from a Subcontracting Receipt, the return uses the serial and batch numbers recorded for that receipt instead of selecting them by warehouse stock order. (#64794)
- During stock reposting, existing Subcontracting Receipt returns keep their booked raw-material values, while new returns can still be revalued; reposting also skips a separate lookup for each supplied item. (#64872)
- A return of rejected items from a Subcontracting Receipt no longer adds raw materials to the supplier warehouse when those materials were not consumed. (#64864)
- Updates Subcontracting Receipt returns so a row counts as rejected only when Return Qty from Rejected Warehouse is selected and it remains in the rejected warehouse; accepted returns use the original receipt’s rates for supplied items and finished goods and include the service cost. (#64971)
- Updates Subcontracting Receipt returns to record batch and serial details for each supplied-item row and apply them on submission, so changing a draft return’s consumed quantity no longer leaves automatically generated tracking details at the old quantity. (#65122)
- Uses the original consumed rates for each batch or serial number when valuing supplied-item returns in a Subcontracting Receipt, including when stock values are reposted. (#65118)
- For supplied-item returns in a Subcontracting Receipt, each batch or serial number receives the rate at which it was consumed, rather than the row’s average rate. (#65178)
- Requires returns in Subcontracting Receipt to use the same Supplier Warehouse as the original receipt; use a Stock Entry to move materials to another warehouse. (#65176)
- Changes Subcontracting Receipt quantity checks so fractional quantities on BOM-generated scrap, by-product, and co-product rows no longer block submission; finished-good quantities still must be whole numbers. (#65697)
Assets
Bug Fixes (6)
- Restoring a scrapped Asset now keeps already-posted depreciation periods and continues the schedule after them, rather than listing those periods again. (#64030)
- Updates the "Fixed Asset Register" to respect users’ access permissions, show zero value when an asset is disposed within the reporting period while retaining its value in periods before disposal, and account correctly for finance books and reversed depreciation. Blocks changes to existing company account settings in Asset Category while active assets use them, corrects location and custodian tracking in Asset Movement, and requires positive shift factors and a default factor for shift-based depreciation in Asset Shift Factor. (#63513)
- Requires a Finance Book when creating an Asset Value Adjustment for an Asset with finance books configured. When an asset is split, its value adjustments are divided between the resulting assets and reflected in their disposal values; each share appears in the read-only Value Adjustment Amount field, and pre-split adjustments can no longer be cancelled. (#63552)
- Requires users to select a Task before saving an Asset Maintenance Log; logs without a task are rejected. (#65108)
- Updates Asset Depreciation Schedule to use the asset’s company fiscal year when calculating depreciation, rather than another company’s fiscal year. (#65614)
- Checks that users can access the selected Asset Maintenance Team before showing its members in the maintenance team picker. (#65932)
Projects
Bug Fixes
- Speeds up stock entry processing for projects by adding an index to the Project field in Stock Ledger Entry and Stock Entry Detail. (#64654)
CRM
Bug Fixes
- When the CRM app is installed, checks that users can edit the destination record before adding Contact or Address details, and checks access before using an existing Customer. Contact and address saves also follow users’ normal permissions instead of bypassing them. (#64648)
- Updates Appointment booking to respect available slots, holidays, capacity, and agent availability; Email Campaign now includes unsubscribe links, skips opted-out recipients, and sends messages when campaigns start or their schedules change. Updates Contract status based on start dates and fulfilment deadlines and prevents replacing a submitted checklist; revises "Lead Conversion Time", "Sales Pipeline Analytics", "Opportunity Summary by Sales Stage", "Campaign Efficiency", "Prospects Engaged But Not Converted", "Lost Opportunity", and "Lead Details" to correct reported dates, amounts, campaign activity, access, and territory results. (#63598)
Regional
Bug Fixes
- Fixes Italian Import Supplier Invoice imports so line details and credit notes are handled correctly, duplicate files are skipped, and a bad file does not stop the rest; it also corrects payment totals in the "IRS 1099" report. Updates Lower Deduction Certificate supplier matching and rate and limit checks, Plaid Settings account matching and sync error handling, and bulk transaction retries to avoid recreating records that already exist. (#63472)
- Updates the "UAE VAT 201" and "VAT Audit Report" to account for debit and credit notes, reverse-charge transactions, and VAT entered as a fixed amount. The "UAE VAT 201" includes standard-rated sales without a VAT Emirate and counts only purchase lines with VAT; both reports check access to the selected company, and the "VAT Audit Report" also follows invoice permissions. (#63473)
Setup
Bug Fixes (8)
- The Disable In Words setting in Global Defaults no longer changes whether In Words appears in prints for Payment Entry and Subcontracting Receipt; their print settings control its visibility. Removes system-generated print overrides for these fields while preserving user customizations. (#63843)
- Allows root Supplier Group, Customer Group, Territory, and Sales Person records to save without being set as their own parent. (#64496)
- Updates Authorization Rule checks so approval limits apply to recurring Sales Invoice submissions and item changes made through "Update Items"; discount checks also account for free items, foreign-currency discounts, and manually entered rates. Customer-specific rules now match the selected customer while retaining their user or role restrictions, and user-specific rules without an approval basis no longer block submissions. (#62611)
- Terms and Conditions now checks that terms apply before they’re used, excludes disabled terms from choices, and preserves saved terms on submitted transactions. Template rendering is limited to data the user can access, and validation works without HRMS installed. (#64338)
- Updates Transaction Deletion Record so "Delete All Transactions" limits deletion to records linked through the selected Company field and preserves shared records and company setup data. It also recalculates stock balances, cleans up related records and attachments, and clarifies that naming series are not reset. (#65520)
- Rejects Department parents that are not groups or belong to another company, prevents changing Company after a department is created, and appends the company abbreviation to renamed departments. Prevents assigning a disabled Department to an Employee when creating or changing Department; existing assignments remain valid if unchanged. (#65515)
- Rejects zero, negative, duplicate, inverse, and same-unit entries in UOM Conversion Factor. Item details now flag missing conversions instead of assuming a factor of 1, and conversion lookups ignore existing zero or negative values. (#65522)
- Removes an inapplicable Terms and Conditions template when creating a Quotation or inter-company sales or purchase document from its counterpart, allowing the new document to be saved. (#65678)
Full Changelog: v15.124.5...v15.125.0
Authors: @Shllokkk, @mihir-kandoi, @khushi8112, @rohitwaghchaure, @Sudharsanan11, @barredterra, @kwyj1bo, @Pandiyan5273, @diptanilsaha, @ervishnucs, @sanjay141986, @nabinhait, @krishna-254 For these release notes, we used an LLM (OpenAI gpt-6-luna) 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: @mihir-kandoi, @khushi8112, @Pandiyan5273, @diptanilsaha, @barredterra
AI content