Features
- Adds Proforma Invoice creation from Sales Order, with quantity- or amount-based options, editable line descriptions, and email templates. The PDF reflects the proforma’s amounts and its share of order discounts and charges. (#62152)
- Adds a Group By Item option to "Purchase Order Analysis" that combines quantities and amounts for the same item across purchase orders, while keeping different units and companies separate. When no company is selected, the report uses the default company instead of including orders from every company. (#63042)
- Adds Block Customer and Release Date settings to Customer, allowing users to block Sales Order, Delivery Note, Sales Invoice, and POS Invoice transactions while a hold is active; Quotation transactions remain allowed, and held customers are marked “On Hold” in the customer list. (#63041)
- Adds a non-printing Remarks field to Purchase Order for recording order-specific notes; the notes are not copied when an order is duplicated. (#63040)
- Adds the "Subcontracting Inward Order Summary," "Subcontracted Raw Materials To Be Received," and "Subcontracted Items To Be Delivered" reports to track inward orders and quantities awaiting receipt or delivery. (#63037)
- Allows variant finished goods to use their template item’s default BOM in Subcontracting BOM, Purchase Order, and Subcontracting Order, without requiring a separate BOM for each variant. (#63049)
- Supplier Quotation now shows whether items are partially or fully ordered, and the "Supplier Quotation Comparison" report can be filtered by Order Status. Expired quotations remain marked expired during status updates and cannot be used to create Purchase Orders. (#63046)
- Allows stock to be reserved for individual components in a Product Bundle, including through a Pick List, and carries reserved serial and batch numbers into the Delivery Note or Sales Invoice. (#63048)
- Adds Restrict to Companies and Allowed Companies settings to Item, Customer, and Supplier, so each record can be limited to selected companies. Users with access to specific companies only see records allowed for those companies; transactions cannot use restricted records in other companies, and records linked to hidden masters are also hidden. (#63045)
- Adds an optional snapshot mode for the "Stock Balance" report, using the latest completed stock-ledger sync to calculate balances faster. Ageing columns aren’t available in this mode, and the last displayed digits may differ slightly from the live report. (#63073)
- When creating a Material Request or Pick List from a Work Order, users enter the finished-goods quantity, and the required materials are limited to the matching amount still pending. Work Order items track Requested Qty and Picked Qty, and submission is blocked when a request or pick exceeds the remaining quantity. (#63043)
- Adds a Consider Process Loss option to Production Plan. When enabled, it increases Work Order and Subcontracting Order quantities to account for each BOM’s planned process loss while keeping the displayed quantity at the usable output needed. (#63753)
- When Consider Process Loss is enabled, Production Plan requests the extra raw materials needed to cover production loss for finished goods and exploded sub-assemblies. (#63759)
Bug Fixes
- Updates the price list test data to include the item's UOM and Conversion Factor. (#62875)
- Separates profit or loss from unclosed earlier financial years from the current period’s provisional profit or loss in the "Balance Sheet" report when accumulated values are enabled, and displays a notice when the previous financial year is still open. (#61981)
- Updates Stock Reconciliation to exclude serial numbers with no remaining stock when fetching historical availability, so delivered serials don’t inflate the quantity. (#62565)
- Checks Pricing Rule conditions before choosing which rule takes priority, so a rule that does not match no longer blocks another eligible rule from applying. (#62806)
- Calculates stock adjustment amounts for Purchase Invoice using the full valuation rate instead of a rounded rate, reducing differences between invoice and stock values. (#62936)
- Adds fixes for cases involving stock quantities and batches, manufacturing material transfers, invoice allocations, and links between purchase and sales orders. Also corrects item weights and Timesheet titles, displays linked-record counts in Supplier Scorecard, removes related records when old logs are deleted, and handles user-entered text safely in announcements and project searches. (#60722)
- Displays the Finished Goods Based Operating Cost option on a BOM when With Operations and Is Phantom BOM are off, allowing users to enable the setting and enter an Operating Cost Per BOM Quantity. (#63028)
- Uses accounting dimension defaults and required settings only from the company on the Asset or Asset Value Adjustment, while retaining dimension values explicitly set on the document. (#60086)
- Applies the Price Not UOM Dependent setting in Price List to item rates in sales and purchase transactions and BOM costing: rates stay the same across units when enabled and scale by the unit conversion when disabled. (#60095)
- Applies Asset access restrictions to Asset Activity lists and reports, limiting visible activity to assets each user can access. (#60054)
- Blocks saving an Asset Repair for an Asset with Status set to Capitalized, preventing the repair from changing the asset’s status. (#63088)
- Updates "Trial Balance" and "Account Balance" to apply user permissions and start income and expense balances at each company’s fiscal year; "Cash Flow" excludes opening entries, handles totals across fiscal years, and adds a row for other balance-sheet movements. Corrects the margin basis in "Profit and Loss Statement" and account grouping in "Financial Ratios"; financial statements use closing rates for presentation currency, consolidated statements translate income, expenses, and equity at transaction rates and show currency translation differences, and reports display an error when an exchange rate is missing. (#62209)
- Fixes Appointment slot capacity, time-zone and holiday handling, agent assignment, and calendar events; updates Email Campaign unsubscribe and send timing behavior, and corrects Contract expiry, status, linked-document checks, post-submission signing and checklist updates, and Contract Template text display. Updates sales reports to apply permissions and filters, use opportunity conversion rates and company-based amounts, and include qualifying leads, child territories, lost reasons, partly ordered quotations, and post-conversion activity without duplicate lead rows; grants sales users read access to Market Segment and Sales Stage. (#62163)
- Rejects Share Transfer issues when their share-number ranges overlap shares already issued for the same company and share type, including when a new range contains an existing range. (#62999)
- Splits transaction-currency amounts among the cost centers in a Cost Center Allocation, so the "General Ledger" shows each cost center’s share instead of repeating the full amount. Amounts follow the currency’s decimal precision, with rounding differences carried forward across the split. (#62953)
- Fixes an error when editing a draft POS Invoice that prevented its payment methods from being restored. (#59036)
- Restricts data-changing actions to POST requests; scripts that call them with GET must switch to POST. The "Pay" button on the Sales Order portal page continues to work with the updated request method. (#62519)
- Fixes a migration error that stopped older sites from creating Asset Depreciation Schedule entries; migrated schedules now use the Value After Depreciation recorded in the asset’s finance book. (#60089)
- Updates three older upgrade steps to read the saved account freeze date even when it no longer appears in Accounts Settings, preventing those steps from failing during upgrades. (#60087)
- Skips reporting-currency conversion for GL Entry and Account Closing Balance records when a Company has no reporting currency, allowing entries and closing balances to be processed without a conversion rate. (#60088)
- Updates the "Asset Activity", "Fixed Asset Register", and "Asset Maintenance" reports to follow users’ access to assets; the Fixed Asset Register also shows zero for disposed assets and ignores reversed depreciation. Adds checks for Asset Category accounts and depreciation settings, and corrects maintenance task and log handling, team membership rules, asset location and custodian updates, shift cancellation and default factors, and Location area totals and coordinate checks. (#62166)
- Updates "Update Items" to account for unit conversions when checking edited quantities against quantities already delivered, received, ordered, or purchased in Quotation, Sales Order, and Purchase Order, so valid changes are not blocked just because the units differ. (#63071)
- Excludes components of supplier-delivered bundles from Pick List entries created from a Sales Order, so warehouse staff aren’t asked to pick items shipped directly by the supplier. (#63092)
- Applies company restrictions in the "Items To Be Requested" report and excludes serial numbers and batches linked to restricted items from "Serial No and Batch Traceability." (#63093)
- When creating a Delivery Note or Sales Invoice from a Sales Order, packed bundle components use the warehouse reserved for them on the order. Return documents keep the warehouse selected for the returned items. (#63064)
- When a batch-tracked item is added again in Point of Sale, batch selection opens so it can be added from a different batch instead of increasing the first batch’s quantity. POS Invoice returns release batch reservations for returned stock. (#62949)
- Updates coupon handling in sales documents so changing a coupon recalculates discounts and free items, and each coupon applies its linked Pricing Rule. Gift Card use is restricted to its assigned customer, Quotation checks coupon dates, usage limits, and customer ownership, and generated Coupon Code values omit spaces and avoid existing codes. (#63022)
- Preserves fixed-amount and percentage discounts, along with their discount dates, when payment schedules are fetched from orders or quotations. (#63011)
- Updates Payment Reconciliation to list Employee journal entries as invoices or payments based on the selected account type, and remove fully settled entries from outstanding items. Employee reconciliations now allow both Receivable and Payable accounts, with exchange adjustments posted in the appropriate direction. (#63013)
- Checks combined allocations in Payment Entry against the amount still due on an invoice or payment term, rejecting allocations that exceed the balance. Dunning accounts for earlier payments not assigned to payment terms when calculating the amount still due. (#62951)
- Updates automatic email scheduling in Process Statement Of Accounts so emails start on the configured date, resume after missed runs, and keep their next send date when unrelated fields are edited. Bases the ageing summary on the statement period end date. (#62957)
- Blocks users from opening an Asset Activity record when they lack permission to view its linked Asset. (#62959)
- Fixed-amount taxes are now divided only among items they apply to; if those items have a zero combined net total, the full amount goes to the last applicable item. Taxes calculated from an earlier tax row now use this corrected split. (#63024)
- Prevents the "Create Print Format" action in Cheque Print Template from overwriting an unrelated Print Format with the same name; it updates only formats previously generated for that cheque template. (#62955)
- Requires a submitted Period Closing Voucher and blocks duplicate or repeated processing in Process Period Closing Voucher to prevent duplicate closing entries. Processing remains in progress until the closing entries are posted. (#63058)
- When creating a Sales Invoice from a Sales Order, each line now carries the item's Enable Deferred Revenue setting. (#63149)
- Updates Dunning payments to use the receivable account’s currency and account for earlier payments across overdue installments, so generated payments reflect the remaining amount due when invoice and bank currencies differ. (#62997)
- When items are changed or removed using "Update Items" on a Sales Order, the linked Quotation reflects the updated ordered quantities and status. (#63170)
- Blocks closing a Sales Order while stock is reserved, requiring the stock to be unreserved first. Rate-only changes through "Update Items" leave existing stock reservations intact instead of rebuilding them. (#63158)
- Fixes Stock Reservation Entry validation so a fractional Reserved Qty for a unit that requires whole numbers displays the intended message instead of an error. (#63169)
- Excludes components of supplier-delivered bundles from Pick List entries created from a Sales Order, so warehouse staff aren’t asked to pick items shipped directly by the supplier. (#63159)
- The expiry process now marks only submitted Supplier Quotation records as expired, leaving draft quotations unchanged. (#63167)
- Corrects Item and BOM searches so users can find permitted records when a company or item group name contains
%. (#63161) - Removes the unavailable Item Standard Cost link from the Item dashboard and its related stock-value calculation in Bin, avoiding item connection-count errors caused by the missing record type in version 16. (#63171)
- Updates the "Stock Balance" snapshot report to treat dimensions added after the last sync as blank, rather than failing to load. (#63252)
- Allows POS Closing Entry to create consolidated sales invoices and lets users process returns for customers on hold. Customer holds now end on their release date. (#63243)
- Updates item checks in Purchase Material Requests so items copied from different customers’ Sales Orders aren’t all checked against the same customer’s restrictions. (#63254)
- Exempts Communication records from company restriction checks, allowing emails and call logs linked to records restricted to another company to be saved. (#63260)
- Allows a Pick List created from a Work Order to use serial numbers reserved for that work order, and carries the selected serial and batch details into a Stock Entry created from the Pick List. (#63268)
- Allows variant finished goods without their own bill of materials to use the template’s default in subcontracted Sales Orders and when adding items to Purchase Orders with "Update Items". (#63269)
- Refreshes ordered quantities on Blanket Orders when their rows are removed using "Update Items". (#63267)
- Allows Material Requests, Pick Lists, and related Stock Entries from a Work Order to include the allowance set in Transfer Extra Materials Percentage, instead of limiting quantities to the required amount. (#63256)
- Excludes material requests created from a Job Card from the linked Work Order’s pending-quantity check, so one job card’s request does not block requests from other job cards. (#63257)
- Allows a returned serial number to be reserved again when it was delivered from a partially fulfilled stock reservation. (#63259)
- Corrects quantities when creating a Material Request or Pick List from a Work Order by totaling transferred materials across all rows and rounding partial amounts up to a whole unit, without exceeding the amount still pending. (#63314)
- Limits submitted Material Request quantities to what the linked Job Card requires and keeps the item link on duplicated requests so the same limit applies to copies. (#63321)
- Keeps warehouse assignments for Product Bundle components when transactions are returned or amended, so returned stock goes to the original warehouses and amended documents retain those assignments. (#63323)
- A Pick List now skips serial numbers reserved for other orders when selecting stock, reducing submission failures caused by picking those reserved serials. (#63335)
- Updates "Update Items" to retain the Price List Rate and record the difference from the entered Rate as a discount or margin on new rows in Sales Order, Purchase Order, Quotation, and Supplier Quotation; changing a new row’s UOM also refreshes its price list rate. (#63181)
- Allows users to create a Purchase Invoice from a Purchase Order line when its quantity is fully billed but part of its amount remains, supporting progressive billing for lump-sum services. (#63348)
- Blocks "Update Items" on Supplier Quotation when its status is Ordered, Stopped, or Expired, including requests made through the API. (#63349)
- Fixes an error when adding Additional Costs to Stock Entry, Subcontracting Order, or Subcontracting Receipt by handling the exchange rate in the correct table. (#63394)
- Updates the party label and search on Quotation when Quotation To is set to a type other than Customer or Lead, so those parties can be found in search. (#63392)
- Loads pro forma invoice settings with submitted Sales Order forms, so Sales Users no longer need permission to access Selling Settings just to open an order. (#63391)
- When suppliers create a Purchase Invoice from the portal, rows with a quantity of zero are omitted so the invoice can be saved with the remaining items. (#63390)
- Updates Material Request forms created from a Job Card to include only the quantity still pending, leaving fully requested items out. When Allow Excess Material Transfer is enabled in Manufacturing Settings, the request limit is skipped and the full required quantity is prefilled. (#63395)
- 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. (#63288)
- 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. (#63289)
- 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. (#63290)
- 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. (#63408)
- 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. (#63409)
- 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. (#63410)
- 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. (#63411)
- 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. (#63412)
- 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. (#63413)
- Corrects Pricing Rule behavior when transactions are saved, free items and discounts are applied, and cumulative or mixed-condition rules are calculated. Transaction rules also follow the For Price List setting, and removing rules from transaction items checks user permissions. (#63416)
- 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. (#63415)
- 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. (#63287)
- Restricts changes to POS Settings to System Managers and Accounts Managers, and blocks switching Invoice Type Created via POS to Sales Invoice while submitted POS Invoices remain unconsolidated. Checks required POS Additional Fields when submitting POS Invoice and POS-created Sales Invoice records. (#63291)
- 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. (#63407)
- 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. (#63406)
- 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. (#63418)
- Updates Sales Order handling to apply over-delivery limits to product bundle items, use order details when building delivery schedules, and show returned quantities immediately after a return Delivery Note is submitted without reloading. It also checks that a Sales Order is in a valid state before changing its status. (#63302)
- When a Purchase Order uses an item’s Last Purchase Rate because no submitted purchase is available, it now converts the rate to the item’s selected unit and the order’s currency, including when using "Update Rate as per Last Purchase". (#63265)
- Updates Asset accounting so depreciation is not posted twice, split or revalued assets retain the correct values, and invalid sales, value adjustments, and capitalizations are rejected. Updates Asset Repair and Asset Maintenance so repair stock is recorded on the completion date, asset statuses reflect open work, maintenance due dates respect their end dates, and completed logs remain available. (#62216)
- Uses the system time zone for Timesheet timer start and end times, so differences between browser and system time zones do not distort recorded durations. (#63487)
- Excludes item templates from both the Item filter and results in the "Inactive Sales Items" report. (#63485)
- Corrects status and conversion handling for Lead, Prospect, and Opportunity records, updates campaign pricing and submitted-activity counts in the "Campaign Efficiency" report, and makes the "Lost Opportunity" report use the date the opportunity was lost. Adds party-based access rules to Contract records and updates appointment booking to allow slots without assigned agents while rejecting durations of zero or less and overlapping availability. (#62213)
- “Balance Sheet” and “Profit and Loss” snapshots now follow the selected accumulated-values setting and report view, and use report templates when available. “Trial Balance” snapshots now apply the same company access check as the live report. (#63501)
- The Bank Reconciliation Tool now loads its summary cards before displaying the reconciliation table, so the cards appear when an account is selected while the tool is still loading. (#63500)
- Expands the Invoices and Payments tables in Payment Reconciliation to use the full form width and gives document references and amounts more room to display. (#63423)
- Updates Payment Entry to record payment-term discounts only when they are deducted, so later payments include only the remaining invoice balance. (#63326)
- Updates amount matching and formatting in Bank Reconciliation to use the configured currency precision, so rounding differences don’t mark equal amounts as mismatches and distinct amounts remain distinguishable. (#63324)
- Calculates rejected-item values on Purchase Receipts in the company’s currency, so foreign-currency receipts use the converted amount when valuing rejected stock. (#63238)
- Manufacturing now uses company-currency amounts for non-stock item and operating costs in foreign-currency BOMs, so converted costs are reflected in finished-goods valuation and additional-cost entries. (#63236)
- Limits the portal "Pay" button to submitted Sales Order and Sales Invoice documents with an amount due that the linked customer is authorized to pay; purchase documents and users without the required access no longer see it. Checkout now uses a protected form. (#63232)
- Makes Company Logo and Website optional in the print company details dialog, allowing users to save other company information without providing them. (#63227)
- In Point of Sale, hides the invoice discount control and prevents users from opening its editor when Allow User to Edit Discount is disabled in POS Profile. (#63218)
- Updates delivered quantities in Stock Reservation Entry using serial and batch details from either a Serial and Batch Bundle or the item row, preventing an error when no bundle is attached. (#63363)
- Checks an item's maximum discount for discounts entered as a fixed amount or through a reduced price, as well as a percentage, and rejects sales documents that exceed the limit. (#63211)
- Corrects how valuation deductions are applied to items in Purchase Receipt and stock-updating Purchase Invoice, so item costs and stock values reflect the deductions. (#63212)
- When a Payment Entry references a Journal Entry, it uses the exchange rate recorded in that entry to calculate currency differences instead of looking up a rate for the posting date. (#63216)
- Requires the Increment in numeric Item Attribute settings to be greater than zero; positive fractional increments remain allowed. (#63214)
- Updates Last Purchase Rate in Purchase Order rows to reflect the current unit of measure and conversion factor when the order is saved or its items are updated. (#63555)
- Corrects a misspelled setting in the "General Ledger" report that caused an error when expanding filters. (#63578)
- Allows loyalty points earned on one invoice type to be redeemed on another, including between POS Invoice and Sales Invoice, and deducts the redeemed points from the customer’s balance. (#62451)
- Allows separate Authorization Rule entries to share an approver when their company, customer or item, or approval limit differs, while still blocking exact duplicates. Limits discount rules to 0–100% and checks that the selected customer, item, or item group matches the rule. (#62614)
- Batch prefixes in Stock Settings Naming Series Prefix and serial-number series in Item Serial No Series now replace
{fieldname}placeholders with document values, including for automatically created and work-order serial numbers. Only the text portions of batch prefixes are uppercased, leaving placeholder values unchanged. (#63630) - Requires at least one lost reason before a Quotation can be marked Lost, and lets Sales Users and Sales Managers create Quotation Lost Reason records without granting them permission to edit or delete them. (#62744)
- Saving Global Defaults no longer overwrites the rounding setting in POS Profile records when Disable Rounded Total has not changed. The Disable In Words setting now also hides In Words fields in Payment Entry and Subcontracting Receipt. (#62737)
- Clears Incoterm and Named Place when creating a supplier Purchase Order from a Sales Order, so customer delivery terms are not copied to the supplier order. (#62739)
- Validates that parties in Payment Entry and Journal Entry use a registered Party Type with a matching Account Type, and displays custom parties using their configured title. Accounts Managers and System Managers can create and edit Party Type records, but cannot change Account Type after ledger entries exist. (#62742)
- Updates the State label in the print address dialog to State/Province to distinguish it from workflow states. (#63680)
- Updates BOM material breakdowns to account for process loss in sub-assemblies, so multi-level Work Order and Material Request records include the raw materials needed for the required good quantity. Existing submitted BOMs keep their current breakdown until a child BOM is replaced or a new BOM is created. (#63764)
- Updates Sales Order checks and Work Order Qty to count linked Work Orders by their output after planned or recorded process loss, and adjusts the quantity offered when creating a Work Order. (#63755)
- Updates Work Order Qty on a Sales Order when a linked Work Order’s produced quantity or process loss changes. (#63761)
- Rounds up sub-assembly quantities in Production Plan and Work Order records to whole units when their unit of measure does not allow fractions. (#63757)
- A Sales Invoice with Update Stock now uses serial numbers reserved for its Sales Order, instead of choosing a different serial and leaving the reservation open. (#63352)
- Allows older Cheque Print Template records to update their generated Print Format after layout changes, while protecting customized or unrelated formats. The form refreshes after an update so further edits can be saved without manually reloading. (#63625)
- Updates Point of Sale so repeated clicks on a batch-tracked item increase the existing cart line, and adds an "Add Another Batch" option for selecting another batch. Keeps items with selected serial numbers separate from items awaiting serial selection, so serial scans update the appropriate cart line. (#63644)
- Caps payment-term allocations in Payment Entry at the invoice’s remaining balance when currency rounding would otherwise make them exceed it, allowing affected foreign-currency payments to be saved. (#63629)
- When you amend or duplicate a Bank Transaction, its draft Status now resets to Pending instead of carrying over Cancelled or Reconciled from the original. (#63234)
- Updates over-billing checks for returns: returns that do not increase an order’s billed amount no longer trigger the limit check, while returns that increase it remain subject to the limit. (#63557)
- 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. (#62991)
- Counts transferred materials on Job Card in stock units, so transfers entered in another unit are compared with the required quantity on the same basis. (#63230)
- Updates BOM cost allocation calculations to round the finished-good share and amount to their field precision, and checks allocation totals at that precision so valid fractional percentages are not rejected because of tiny rounding differences. (#63228)
- Allows pre-upgrade Asset Shift Allocation records to be cancelled without changing the asset’s current schedule, restores assigned employees’ access to Appointment records, and lets existing Asset Maintenance Team records be saved when their manager is not listed as a member, provided the manager is unchanged. The default "Fixed Asset Register" now lists depreciating assets that use named finance books when no finance book is selected and the company has no default. (#63607)
- Skips stock valuation reposting when cancelling a Purchase Receipt that did not affect inventory, so receipts containing only non-stock items can be cancelled even when their posting date falls in a closed period. (#62981)
- A Delivery Note created from a Pick List now includes only the undelivered quantities of product bundles, rather than repeating quantities from earlier deliveries. The Pick List asks whether to continue if draft Delivery Notes already exist, before creating another one. (#62979)
- Adds Journal Entry to the connections shown on Payment Entry, making it easier to find linked exchange gain or loss entries. (#62974)
- Moves Cheque/Reference No, Cheque/Reference Date, and Clearance Date beside the payment accounts in Payment Entry, replacing the separate Transaction ID section with Accounts and Transaction Details. (#63647)
- Limits editing POS Settings to Accounts Managers and System Managers; Sales Users and Accounts Users retain read access. Requires fields marked mandatory in POS Settings to contain a value before a POS Invoice can be submitted. (#63622)
- 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. (#63223)
- Posts accounting entries when a zero-priced item changes stock value in a Purchase Receipt or a Purchase Invoice with Update Stock enabled, recording the change in the accounts. (#63805)
- When creating a Delivery Note or Sales Invoice from a Sales Order, packed items now use the warehouse specified on the order, even when stock is not reserved. (#63795)
- Updates the source document’s Reserved Qty and reservation status when reserved stock is handed off to another document. (#63828)
- When a Work Order is disassembled more than once, earlier returns are deducted from available batch quantities so the same material isn’t returned twice. Batch quantities are rounded to the allowed precision, and batches with no usable quantity are skipped. (#63039)
- Allows a Payment Request for the last payment term when rounded schedule amounts slightly exceed the document total by limiting the request to the remaining balance. (#63830)
- Records cash change in the company currency when users collect an outstanding amount on a POS Invoice, so it carries over to the consolidated Sales Invoice; an upgrade update also fills in this amount on affected existing invoices. (#63831)
- Uses configured item-specific inventory accounts for Consumed Stock Items in Asset Capitalization when Enable Item-wise Inventory Account is enabled. (#63838)
- Recalculates grand-total discounts after a shipping rule changes the shipping charge, so totals reflect the updated charge, including on documents without taxes. (#63851)
- When a transaction created from another document changes currency, it fetches the corresponding exchange rate; loading the transaction or changing its date keeps the source rate. (#63852)
- Allows Sales Orders to remove a rate Pricing Rule that no longer applies when an item has no saved price; if no replacement price is available, the current rate is kept. (#63840)
- 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. (#63837)
- Sales returns for product bundles now use serial and batch numbers from Delivery Note records without a Serial and Batch Bundle and value returned stock using the original delivery rate. When a new document is created from an existing one, packed components keep their serial and batch details with the correct bundle item. (#62883)
- Rounds Unallocated Amount in Payment Entry after converting it to the party account’s currency, using that currency’s decimal precision. It also includes transaction-currency values when updating an existing deduction to the Round Off account, preventing mismatches between company- and transaction-currency balances. (#63205)
- Marks earlier Dunning notices as resolved when a later payment covers their charges, preventing those fees or interest from being collected again. Cancelling the payment reopens notices that were resolved automatically. (#63627)
- Updates Customer credit-limit handling to retain customer and customer-group limits when Sales Order checks are bypassed, reject duplicate company limits, and correct credit-limit alert recipients and amounts. Adds checks for customer names, group-name conflicts, contact and address links, and loyalty-program access; excludes disabled customers from internal-customer checks, uses primary contact and address details when mapping customers, and includes nested territories and customer groups in automatic loyalty enrollment. (#63891)
- Cancelling either a submitted Asset Capitalization or its linked Asset now cancels the other and restores consumed assets; assets in maintenance can still receive due depreciation while keeping their maintenance status. When no number on a Contact is marked primary, its first listed number now fills the linked Lead’s Phone and Mobile No fields. (#63885)
- Creating a Master Production Schedule from a Sales Forecast now pre-fills Select Items and loads matching demand from existing Sales Order and Material Request records. If no actual demand is available yet, a message directs users to "View MRP" to review forecast demand. (#63564)
- Prevents negative Re-order Level and Re-order Qty values from being saved in Item reorder settings. (#63942)
- Prevents saving an Asset Maintenance Team when its manager is removed from the member list. Updates Appointment sharing to include assigned users whose tasks are closed, while excluding cancelled tasks. (#63926)
- 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. (#62542)
- Updates Manufacturer and Manufacturer Part No in Material Request rows when the selected item changes, replacing details from the previous item. (#63932)
- 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. (#63969)
- Requires Frappe
16.55.0or later because company-based access restrictions for Item, Customer, and Supplier records rely on features added in that version. (#63977) - Limits stock reservations from Purchase Receipt entries linked to a Production Plan to the plan’s remaining material needs. Serial and batch items are limited to the quantity being reserved. (#63504)
- 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. (#64002)
- 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. (#63988)
- Allows Item search indexing on SQLite 3.34–3.44 and finds accented item names even when searches omit accents. Global Defaults blocks Enable Item Search Index on older SQLite versions that lack the required search support. (#63939)
- When creating a Purchase Order from a Material Request using supplier selection, fetches the selected supplier’s price for unpriced rows instead of leaving them at zero. (#63989)
- 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. (#63986)
- Shows Company Bank Account below Mode of Payment in Payment Entry for Pay and Receive entries, even when no party is selected. (#64024)
- Updates Paid From and Paid To in Payment Entry when you change Company Bank Account, even if the selected Mode of Payment has a different default account. (#63642)
Performance Improvements
- When saving Serial and Batch Bundle, Total Qty is calculated without a separate database update, and available quantities are read from bundle entries without an additional stock ledger lookup. (#62971)
- The "Warehouse Wise Stock Balance" report calculates warehouse levels and parent balances in fewer passes, reducing processing time for large warehouse lists. (#63220)
- Speeds up Repost Item Valuation by reusing already loaded stock entries and avoiding repeated reordering as related items are added, while keeping the same processing order. (#63668)
- When stock entries are reposted, Stock Reconciliation refreshes only the affected row instead of every row, reducing processing for reconciliations with many items. (#63671)
Authors: @nabinhait, @diptanilsaha, @khushi8112, @mihir-kandoi, @krishna-254, @nishkagosalia, @Sudharsanan11, @Afsalsyed, @kwyj1bo, @Pandiyan5273, @Shllokkk, @harisansari008, @ervishnucs, @barredterra, @rohitwaghchaure 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: @nabinhait, @frappe-pr-review[bot], @diptanilsaha, @khushi8112, @mihir-kandoi, @nareshkannasln, @github-code-quality[bot], @Pandiyan5273, @rohitwaghchaure
AI content