Commit Graph

58295 Commits

Author SHA1 Message Date
Mihir Kandoi
53ebfc7dc8 Merge pull request #55815 from frappe/mergify/bp/version-16-hotfix/pr-55813
fix(bom): fetch routing operations when Routing is selected (backport #55813)
2026-06-11 20:31:21 +05:30
Rohit Waghchaure
c10a331a22 fix: multiple issues related to BOM Creator
(cherry picked from commit daf3f2e142)

# Conflicts:
#	erpnext/manufacturing/doctype/bom_creator/bom_creator.py
2026-06-11 14:16:15 +00:00
rohitwaghchaure
34cfc049fd Merge pull request #55821 from rohitwaghchaure/fixed-github-55757
fix: create_raw_materials_supplied method not found
2026-06-11 15:43:00 +05:30
Rohit Waghchaure
d51ad0d19f fix: create_raw_materials_supplied method not found 2026-06-11 14:54:45 +05:30
ruthra kumar
0850a53642 Merge pull request #55567 from frappe/mergify/bp/version-16-hotfix/pr-55491
fix: remove ignore_permissions from get_party_details signature (backport #55491)
2026-06-11 13:44:34 +05:30
ruthra kumar
7e3be8c8c0 chore: resolve conflict 2026-06-11 13:25:35 +05:30
mergify[bot]
c06046df8f fix: added doctype filter validation for sales person wise transaction summary report (backport #55812) (#55818)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
fix: added doctype filter validation for sales person wise transaction summary report (#55812)
2026-06-11 07:12:27 +00:00
Shllokkk
b2e7fd7957 fix: remove ignore_permissions from get_party_details signature (#55491)
(cherry picked from commit efb8336bf8)
2026-06-11 12:39:53 +05:30
ruthra kumar
75ee0ca2d2 Merge pull request #55696 from kaulith/fix/ar-report-user-permissions-v16
fix: apply user permissions to receivable/payable reports
2026-06-11 12:27:45 +05:30
ruthra kumar
9c987724d5 Merge pull request #55731 from frappe/mergify/bp/version-16-hotfix/pr-55487
fix: add validations in accounts whitelisted methods (backport #55487)
2026-06-11 12:25:19 +05:30
Mohammad Umair Sayed
f3caed378b fix(bom): fetch routing operations when Routing is selected (#55813)
fix(bom): fetch routing operations when routing is selected

frm.doc.operations is always an array in Frappe, so !frm.doc.operations
was always false (empty array [] is truthy in JS), causing get_routing()
to never fire when a Routing is selected on a BOM with no existing
operations.

Changed the guard to !frm.doc.operations.length so the fetch triggers
correctly when the operations table is empty.

Also wired the same fetch into the with_operations handler so that
enabling the checkbox after a Routing is already set will populate
operations without requiring the user to re-select the Routing.

Co-authored-by: Umair Sayed <umairsayed@Umairs-MacBook-Air-2.local>
(cherry picked from commit 9249fa89aa)
2026-06-11 06:25:53 +00:00
Mihir Kandoi
07bb633c13 Merge pull request #55805 from mihir-kandoi/product-bundle-disabled-v16
feat(selling): surface and respect disabled Product Bundles (backport #55791)
2026-06-10 21:58:33 +05:30
Mihir Kandoi
dbc62276d6 refactor: drop redundant disabled filter on child query
`parent_items` already comes from the disabled-filtered parent query,
and on v16 an item has at most one bundle, so the child query cannot
reach a disabled bundle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 21:38:27 +05:30
Mihir Kandoi
65ee57849a Merge pull request #55772 from frappe/mergify/bp/version-16-hotfix/pr-55769
fix: show inactive product bundles in item where used (backport #55769)
2026-06-10 19:48:56 +05:30
Mihir Kandoi
b1895e9a9a fix: adapt Product Bundle queries to v16 schema
On version-16-hotfix, Product Bundle has no `is_active` field and is not
submittable (docstatus is always 0), so the backported queries crashed
with "Unknown column 'is_active'" and would otherwise have matched no
rows. Keep v16's `docstatus: 0` and derive activity from `disabled`, as
the surrounding build_row calls already do.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:29:42 +05:30
Mihir Kandoi
0c1a5082bd feat(selling): surface and respect disabled Product Bundles (backport #55791)
Partial backport of frappe/erpnext#55791 to version-16-hotfix. On v16,
Product Bundle is neither submittable nor versioned and every resolution
path (packing, POS, item details, selling controller) already filters
`disabled: 0`, so only the user-facing gaps are backported:

- the "Get Items from Product Bundle" dialog no longer offers disabled
  bundles
- list view indicator: Disabled (grey) / Active (green)
- Product Bundle Balance report excludes disabled bundles
- `disabled` field gets a description, standard filter and no_copy (a
  copied bundle starts enabled)

The develop-only parts (un-deprecating the field, `is_active`/docstatus
handling, the version picker filter and the disabled-version validation
on transaction rows) have no v16 equivalent and are intentionally
dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 19:28:29 +05:30
Nabin Hait
9c8fff648f Merge pull request #55795 from frappe/mergify/bp/version-16-hotfix/pr-55789
fix: prefetch batchwise valuations before streaming SLEs in stock ageing (backport #55789)
2026-06-10 12:14:33 +05:30
Nabin Hait
1bfb0c8e5a Merge pull request #55676 from frappe/mergify/bp/version-16-hotfix/pr-55674
fix: updated role based permission for terms and conditions doctype (backport #55674)
2026-06-10 12:13:45 +05:30
Nabin Hait
9dd0a9fd90 Merge pull request #55680 from frappe/mergify/bp/version-16-hotfix/pr-55679
fix: set options Email for customer_email field in appointment (backport #55679)
2026-06-10 11:44:49 +05:30
Mihir Kandoi
018f06d8d1 fix: prefetch batchwise valuations before streaming SLEs in stock ageing
Stock Ageing iterates stock ledger entries through an unbuffered
(streaming) cursor. _get_batchwise_valuation() lazily queried
Batch.use_batchwise_valuation from inside that loop whenever a row
carried the legacy batch_no field, and the nested query invalidated
the active streaming result set — crashing the report (or silently
dropping the remaining rows, depending on the driver version).

Resolve the valuation flags in a single query before entering the
unbuffered cursor block; the lazy lookup now only serves callers that
pass stock ledger entries in directly, where no streaming is active.

Fixes https://github.com/frappe/erpnext/issues/55786

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 060a5c4eeb)
2026-06-10 06:08:03 +00:00
Nabin Hait
4fe7e958bf Merge pull request #55721 from frappe/mergify/bp/version-16-hotfix/pr-55627
fix(inactive_customers): add allowlist for doctype filter and migrate… (backport #55627)
2026-06-10 11:27:24 +05:30
Mihir Kandoi
8e25189d7d chore: resolve conflicts 2026-06-10 10:14:23 +05:30
Frappe PR Bot
054b20a2ae chore(release): Bumped to Version 16.22.0
# [16.22.0](https://github.com/frappe/erpnext/compare/v16.21.1...v16.22.0) (2026-06-10)

### Bug Fixes

* **accounts:** include asset items in purchase receipt validation ([#55150](https://github.com/frappe/erpnext/issues/55150)) ([0984c86](0984c86583))
* Add authorization checks on internal functions (backport [#55709](https://github.com/frappe/erpnext/issues/55709)) ([#55726](https://github.com/frappe/erpnext/issues/55726)) ([2ae6451](2ae6451f10))
* add company filter to Budget Against dimension options ([bfc6f44](bfc6f44fb0))
* add custom dimensions filters in Gross and Net profit report (backport [#55110](https://github.com/frappe/erpnext/issues/55110)) ([#55584](https://github.com/frappe/erpnext/issues/55584)) ([5d7e69d](5d7e69d8cf))
* Add likely missing escapes (backport [#55574](https://github.com/frappe/erpnext/issues/55574)) ([#55581](https://github.com/frappe/erpnext/issues/55581)) ([6a503f8](6a503f834c))
* aggregate child cost center data in Budget Variance Report ([4f2611c](4f2611cbe8))
* allow specific methods to run ([c9a5b00](c9a5b0026e))
* bypass project permission check when updating consumed material … (backport [#55645](https://github.com/frappe/erpnext/issues/55645)) ([#55707](https://github.com/frappe/erpnext/issues/55707)) ([4471666](4471666c8c))
* **cheque_print_template:** print format creation from cheque print template requires system manager (backport [#55708](https://github.com/frappe/erpnext/issues/55708)) ([#55712](https://github.com/frappe/erpnext/issues/55712)) ([38dd298](38dd2982f3))
* disallow BOM finished good item in secondary items table (backport [#55710](https://github.com/frappe/erpnext/issues/55710)) ([#55719](https://github.com/frappe/erpnext/issues/55719)) ([ecd3a19](ecd3a19912))
* do not allow to make changes in SABB after submit ([a03e3bf](a03e3bfe9f))
* don't allow to submit job card with hold status ([b4c850d](b4c850da1c))
* drop ignore_permissions handling from add_ac ([c0cf9aa](c0cf9aa1a7))
* duplicating a Customer/Supplier shouldn't inherit the source's primary contact and address (backport [#55421](https://github.com/frappe/erpnext/issues/55421)) ([#55609](https://github.com/frappe/erpnext/issues/55609)) ([808e51d](808e51db19))
* handle multi-select stock ageing filters ([#55775](https://github.com/frappe/erpnext/issues/55775)) ([e48ffe6](e48ffe6ef0))
* handle separator rows in financial statement formatter ([d8afc00](d8afc00ab5))
* include CRM Deal in `quotation to` filters ([f7e6542](f7e6542bcd))
* item report view ([7dfae51](7dfae51044))
* **item:** format integer numeric variant attributes without decimals (backport [#55561](https://github.com/frappe/erpnext/issues/55561)) ([#55564](https://github.com/frappe/erpnext/issues/55564)) ([fffba84](fffba84868))
* linter issue ([dd83705](dd837052ef))
* minor fixes in report print formats ([#55151](https://github.com/frappe/erpnext/issues/55151)) ([80f7aff](80f7aff3f9))
* move Company filter at the start ([3fb6437](3fb6437d26))
* naming series issue ([6eecf07](6eecf0701e))
* prevent double rounding in inclusive tax calculations (backport [#52512](https://github.com/frappe/erpnext/issues/52512)) ([#55570](https://github.com/frappe/erpnext/issues/55570)) ([37b61f0](37b61f06ae))
* prevent leakage of party-derived fields in cross doctype transactions (backport [#55336](https://github.com/frappe/erpnext/issues/55336)) ([#55579](https://github.com/frappe/erpnext/issues/55579)) ([7904385](7904385b90))
* prevent negative amounts in common party JE on return invoices (backport [#55034](https://github.com/frappe/erpnext/issues/55034)) ([#55064](https://github.com/frappe/erpnext/issues/55064)) ([9eb0e3c](9eb0e3c82e))
* prevent selling items from sample retention warehouse (backport [#55613](https://github.com/frappe/erpnext/issues/55613)) ([#55634](https://github.com/frappe/erpnext/issues/55634)) ([84d205f](84d205f553))
* **process statement of accounts:** validate pdf_name and validate permission before triggering send_auto_email (backport [#55781](https://github.com/frappe/erpnext/issues/55781)) ([#55783](https://github.com/frappe/erpnext/issues/55783)) ([e15879a](e15879acd1))
* **profit-and-loss-statement-report:** margin calculation the report showing null% for empty cell ([04fe76b](04fe76bf83))
* **profit-and-loss-statement:** margin calculation the report showing null% for empty cell ([b3d3f13](b3d3f13fc5))
* **profit-loss-report:** handle zero base values and prevent null% display ([90ac065](90ac065930))
* remove item name from update items dialog item code column (backport [#55718](https://github.com/frappe/erpnext/issues/55718)) ([#55723](https://github.com/frappe/erpnext/issues/55723)) ([497c3a5](497c3a5e83))
* restrict already invoiced qty in intercompany purchase invoice ([#55768](https://github.com/frappe/erpnext/issues/55768)) ([e90a6ec](e90a6ecf1c))
* **selling:** consider delivered qty (backport [#55597](https://github.com/frappe/erpnext/issues/55597)) ([#55607](https://github.com/frappe/erpnext/issues/55607)) ([142ab3c](142ab3ce2a))
* simplify New Zealand sales accounts ([93de14c](93de14c421))
* skip empty spacer rows in compute_growth_view_data (P&L growth view) ([18afcf0](18afcf0c01))
* spelling of Payment Reconciliation in sidebar (backport [#55599](https://github.com/frappe/erpnext/issues/55599)) ([#55602](https://github.com/frappe/erpnext/issues/55602)) ([40cf77e](40cf77e7f0))
* sql injection ([02a29a8](02a29a85a7))
* Stock Reservation blocks Subcontracting operation within the same Work Order ([1c0dace](1c0dace3d6))
* **stock:** add validation for work order seial nos and batch nos (backport [#55604](https://github.com/frappe/erpnext/issues/55604)) ([#55605](https://github.com/frappe/erpnext/issues/55605)) ([7de77a8](7de77a8916))
* **stock:** change valuation rate column label in stock ledger entry/report (backport [#55323](https://github.com/frappe/erpnext/issues/55323)) ([#55394](https://github.com/frappe/erpnext/issues/55394)) ([c6560be](c6560be58d))
* **stock:** set stock received but not billed account for purchase ([#55149](https://github.com/frappe/erpnext/issues/55149)) ([90667b2](90667b2de2))
* **subscription:** bill on creation and keep status in sync with invoices (backport [#55615](https://github.com/frappe/erpnext/issues/55615)) ([#55701](https://github.com/frappe/erpnext/issues/55701)) ([0f069e1](0f069e13da))
* **subscription:** correct billing/deferred bugs and tighten guards (backport [#55554](https://github.com/frappe/erpnext/issues/55554)) ([#55610](https://github.com/frappe/erpnext/issues/55610)) ([dee7bd8](dee7bd8d64))
* **taxes:** add category and add_deduct_tax fields to tax entries (backport [#55753](https://github.com/frappe/erpnext/issues/55753)) ([#55773](https://github.com/frappe/erpnext/issues/55773)) ([9a6fae9](9a6fae9fdd))
* update add_total_row_account to control blank row addition ([e8a6933](e8a6933ff3))
* update formatter to handle blank rows in financial statements ([f657503](f657503ea3))
* update items respects workflow "Only Allow Edit For" role ([#55667](https://github.com/frappe/erpnext/issues/55667)) ([76b9b6a](76b9b6a34e))
* use new_doc with field allowlist in CRM integration endpoints ([d941ccf](d941ccfe3c))
* **UX:** Accounts settings cleanup (backport [#55470](https://github.com/frappe/erpnext/issues/55470)) ([#55603](https://github.com/frappe/erpnext/issues/55603)) ([3917415](3917415368))
* **UX:** stock settings form cleanup ([f6f542f](f6f542fadc))
* validate fg and materials qty in the disassemble entry ([4453c10](4453c1072a))
* work order status should be in process if material transfer is skipped (backport [#55641](https://github.com/frappe/erpnext/issues/55641) to version-16-hotfix) ([#55642](https://github.com/frappe/erpnext/issues/55642)) ([32011c3](32011c3364))

### Features

* add item where used report ([#55714](https://github.com/frappe/erpnext/issues/55714)) ([8f85cce](8f85cce4cf))
* add New Zealand chart of accounts ([107a446](107a446d98))
* added cost of goods sold (backport [#54974](https://github.com/frappe/erpnext/issues/54974)) ([#55552](https://github.com/frappe/erpnext/issues/55552)) ([20af709](20af7093ac))
* create sales invoice from pick list (backport [#55594](https://github.com/frappe/erpnext/issues/55594)) ([#55635](https://github.com/frappe/erpnext/issues/55635)) ([743afc9](743afc972d))
* item prices list view ([#54853](https://github.com/frappe/erpnext/issues/54853)) ([12c1940](12c1940e0b))
* show non stock items and secondary items in work order (backport [#55631](https://github.com/frappe/erpnext/issues/55631)) ([#55636](https://github.com/frappe/erpnext/issues/55636)) ([3f983c9](3f983c9e4d))

### Performance Improvements

* batch status check for on-hold/closed documents, remove N+1 queries (backport [#54798](https://github.com/frappe/erpnext/issues/54798)) ([#55573](https://github.com/frappe/erpnext/issues/55573)) ([0274afe](0274afe560))
* **transaction:** exit early before backend query (backport [#55556](https://github.com/frappe/erpnext/issues/55556)) ([#55558](https://github.com/frappe/erpnext/issues/55558)) ([6a1c384](6a1c384f9b))
v16.22.0
2026-06-10 00:25:19 +00:00
Mihir Kandoi
03f6b7a50e Merge pull request #55764 from frappe/version-16-hotfix 2026-06-10 05:53:43 +05:30
mergify[bot]
e15879acd1 fix(process statement of accounts): validate pdf_name and validate permission before triggering send_auto_email (backport #55781) (#55783)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
fix(process statement of accounts): validate pdf_name and validate permission before triggering send_auto_email (#55781)
2026-06-09 19:11:44 +00:00
rohitwaghchaure
01e90830f1 Merge pull request #55766 from rohitwaghchaure/fixed-github-55621-v16
fix: Stock Reservation blocks Subcontracting operation within the same work order
2026-06-09 20:00:20 +05:30
Rohit Waghchaure
1c0dace3d6 fix: Stock Reservation blocks Subcontracting operation within the same Work Order 2026-06-09 19:40:45 +05:30
Mihir Kandoi
e48ffe6ef0 fix: handle multi-select stock ageing filters (#55775) 2026-06-09 13:52:32 +00:00
MochaMind
8ff6fc5fea chore: sync translations to version-16-hotfix (#55739) 2026-06-09 13:19:55 +00:00
Pandiyan P
e90a6ecf1c fix: restrict already invoiced qty in intercompany purchase invoice (#55768) 2026-06-09 13:16:22 +00:00
mergify[bot]
9a6fae9fdd fix(taxes): add category and add_deduct_tax fields to tax entries (backport #55753) (#55773)
Co-authored-by: Lakshit Jain <ljain112@gmail.com>
fix(taxes): add category and add_deduct_tax fields to tax entries (#55753)
2026-06-09 12:59:13 +00:00
mergify[bot]
7904385b90 fix: prevent leakage of party-derived fields in cross doctype transactions (backport #55336) (#55579)
Co-authored-by: Nabin Hait <nabinhait@gmail.com>
Co-authored-by: Lakshit Jain <ljain112@gmail.com>
fix: prevent leakage of party-derived fields in cross doctype transactions (#55336)
2026-06-09 18:03:26 +05:30
Mihir Kandoi
2bea9ae2a5 fix: show inactive product bundles in item where used (#55769)
(cherry picked from commit 6201fefdfb)

# Conflicts:
#	erpnext/stock/report/item_where_used/item_where_used.py
2026-06-09 12:29:19 +00:00
rohitwaghchaure
f0e51b35a6 Merge pull request #55762 from frappe/mergify/bp/version-16-hotfix/pr-55760
fix: don't allow to submit job card with hold status (backport #55760)
2026-06-09 15:15:39 +05:30
rohitwaghchaure
60a270acd4 chore: fix conflicts
Removed validation for completed quantity matching in job card.
2026-06-09 14:56:39 +05:30
Rohit Waghchaure
b4c850da1c fix: don't allow to submit job card with hold status
(cherry picked from commit 9c23229cbf)

# Conflicts:
#	erpnext/manufacturing/doctype/job_card/job_card.py
2026-06-09 09:01:09 +00:00
ruthra kumar
9b1cdd0e8f Merge pull request #55729 from frappe/mergify/bp/version-16-hotfix/pr-55486
Validations in CRM-api endpoints (backport #55486)
2026-06-09 10:31:49 +05:30
rohitwaghchaure
26a19bf372 Merge pull request #55752 from frappe/mergify/bp/version-16-hotfix/pr-55748
fix: sql injection (backport #55748)
2026-06-09 09:49:00 +05:30
rohitwaghchaure
10cfac865e chore: fix conflicts 2026-06-09 09:48:38 +05:30
Rohit Waghchaure
02a29a85a7 fix: sql injection
(cherry picked from commit bd0acf4413)
2026-06-09 03:58:34 +00:00
rohitwaghchaure
6e7a96eae9 Merge pull request #55744 from frappe/mergify/bp/version-16-hotfix/pr-55737
fix: allow specific methods to run (backport #55737)
2026-06-09 09:27:46 +05:30
Rohit Waghchaure
dd837052ef fix: linter issue 2026-06-08 23:17:29 +05:30
rohitwaghchaure
95818ec71d chore: fix conflicts
Removed redundant quantity assignments and completion time logging from job card processing.
2026-06-08 20:08:16 +05:30
rohitwaghchaure
3d1327cfe5 chore: fix conflicts 2026-06-08 20:06:44 +05:30
rohitwaghchaure
b617f1302d chore: fix conflicts 2026-06-08 20:05:46 +05:30
Rohit Waghchaure
c9a5b0026e fix: allow specific methods to run
(cherry picked from commit 8db1eb0d27)

# Conflicts:
#	erpnext/manufacturing/doctype/job_card/job_card.py
2026-06-08 14:18:26 +00:00
rohitwaghchaure
c5434e39d8 Merge pull request #55740 from rohitwaghchaure/fixed-support-67770-3-v16
fix: validate fg and materials qty in the disassemble entry
2026-06-08 19:30:34 +05:30
Rohit Waghchaure
4453c1072a fix: validate fg and materials qty in the disassemble entry 2026-06-08 17:42:04 +05:30
MochaMind
8e930d0ef1 chore: update POT file (#55691) 2026-06-08 11:15:28 +00:00
rohitwaghchaure
e6f6f2c173 Merge pull request #55735 from frappe/mergify/bp/version-16-hotfix/pr-55716
fix: do not allow to make changes in SABB after submit (backport #55716)
2026-06-08 16:02:51 +05:30