Commit Graph

56097 Commits

Author SHA1 Message Date
Frappe PR Bot
26f0687834 chore(release): Bumped to Version 15.121.3
## [15.121.3](https://github.com/frappe/erpnext/compare/v15.121.2...v15.121.3) (2026-09-15)

### Bug Fixes

* % Amount Billed exceeds 100% on fully rejected Purchase Receipts ([#58897](https://github.com/frappe/erpnext/issues/58897)) ([c31ae57](c31ae577e4))
* **accounts:** add permission checks on `execute_repost_payment_ledger` (backport [#58980](https://github.com/frappe/erpnext/issues/58980)) ([#58981](https://github.com/frappe/erpnext/issues/58981)) ([85a1529](85a152946e))
* **accounts:** add permission checks on `invoice_discounting.get_invoices` (backport [#58975](https://github.com/frappe/erpnext/issues/58975)) ([#58989](https://github.com/frappe/erpnext/issues/58989)) ([62b9f31](62b9f31297))
* **accounts:** reject disabled price lists in buying and selling ([#58891](https://github.com/frappe/erpnext/issues/58891)) ([47662b9](47662b9af2))
* **accounts:** stop counting received qty on non-stock invoice returns (backport [#58924](https://github.com/frappe/erpnext/issues/58924)) ([#58928](https://github.com/frappe/erpnext/issues/58928)) ([228108a](228108ad4c))
* Backfill `not_applicable` on Item Tax Template Details for German companies (backport [#54682](https://github.com/frappe/erpnext/issues/54682)) (backport [#54686](https://github.com/frappe/erpnext/issues/54686)) ([#58952](https://github.com/frappe/erpnext/issues/58952)) ([f943368](f9433683ec))
* keep a dunning claimable until its interest is paid too ([11c6f0d](11c6f0d02c))
* **manufacturing:** handle empty raw materials in workstation ([#58927](https://github.com/frappe/erpnext/issues/58927)) ([c72bc69](c72bc6925b))
* prevent disabled items from being used in bom ([#58997](https://github.com/frappe/erpnext/issues/58997)) ([7429a26](7429a260f6))
* reset price list fallback when changing parties ([#58893](https://github.com/frappe/erpnext/issues/58893)) ([f981791](f981791012))
* resolve conflicts ([e84a946](e84a94642d))
* resolve conflicts ([00729a8](00729a8d62))
* **selling:** add email permission check on `send_emails` (backport [#58935](https://github.com/frappe/erpnext/issues/58935)) ([#58937](https://github.com/frappe/erpnext/issues/58937)) ([e37ba3f](e37ba3f8cf))
* **selling:** exclude fully billed orders from the invoice picker (backport [#58966](https://github.com/frappe/erpnext/issues/58966)) ([#58968](https://github.com/frappe/erpnext/issues/58968)) ([52ea7ed](52ea7ed606))
* **stock:** distribute additional costs when incoming items have no value ([10987b1](10987b11cc))
* **stock:** do not rebuild the Warehouse tree on an account map miss (backport [#58956](https://github.com/frappe/erpnext/issues/58956)) ([#58972](https://github.com/frappe/erpnext/issues/58972)) ([f59a6ec](f59a6ec882))
* **stock:** guard inventory dimension lookup without reference document ([#58889](https://github.com/frappe/erpnext/issues/58889)) ([7ee54ba](7ee54ba08b))
* **stock:** preserve rates for unsaved mapped rows (backport [#58852](https://github.com/frappe/erpnext/issues/58852)) ([#58898](https://github.com/frappe/erpnext/issues/58898)) ([32d8c35](32d8c359ed))
* **stock:** recalculate billing status of returned delivery notes (backport [#58953](https://github.com/frappe/erpnext/issues/58953)) ([#58986](https://github.com/frappe/erpnext/issues/58986)) ([563615c](563615c77e))
* **stock:** remove empty delivery stops after mapping ([#58896](https://github.com/frappe/erpnext/issues/58896)) ([0099e7e](0099e7ec4f))
* **stock:** set item_name to fetch if empty in packing slip item ([#58925](https://github.com/frappe/erpnext/issues/58925)) ([99afc2e](99afc2e6eb))
* **stock:** set item_name to fetch if empty in packing slip item ([#58925](https://github.com/frappe/erpnext/issues/58925)) ([9ba2159](9ba2159720))
* **stock:** show actual outgoing rate in ledger preview ([#58700](https://github.com/frappe/erpnext/issues/58700)) ([372244e](372244e6b2))
* **subcontracting:** validate project across the subcontracting flow ([#58965](https://github.com/frappe/erpnext/issues/58965)) ([1150d8e](1150d8e9b0))
* user not able to set valuation rate zero in stock reco (backport [#58800](https://github.com/frappe/erpnext/issues/58800)) ([#58821](https://github.com/frappe/erpnext/issues/58821)) ([3bd194e](3bd194e986))
* validate shelf life for automatically created expiring batches ([#58911](https://github.com/frappe/erpnext/issues/58911)) ([00e02f0](00e02f07ac))
v15.121.3
2026-09-15 18:35:09 +00:00
Diptanil Saha
f2cfe30596 Merge pull request #59072 from frappe/version-15-hotfix
chore: release v15
2026-09-16 00:03:25 +05:30
Sudharsanan Ashok
641f8e56a2 Merge pull request #59012 from frappe/mergify/bp/version-15-hotfix/pr-58997
fix: prevent disabled items from being used in BOM (backport #58997)
2026-09-15 22:07:10 +05:30
Sudharsanan Ashok
f6bac4c6ee Merge pull request #59077 from frappe/mergify/bp/version-15-hotfix/pr-58925
fix(stock): set item_name to fetch if empty in packing slip item (backport #58925)
2026-09-15 18:55:46 +05:30
mergify[bot]
112350dd65 fix(regional)!: remove irs_1099_print whitelisted method (backport #58976) (#58991)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-15 18:40:22 +05:30
Afsal Syed
99afc2e6eb fix(stock): set item_name to fetch if empty in packing slip item (#58925)
(cherry picked from commit f130c64530)

# Conflicts:
#	erpnext/stock/doctype/packing_slip_item/packing_slip_item.json
2026-09-15 18:35:56 +05:30
Sudharsanan Ashok
1c576a6f1c Merge pull request #59075 from frappe/revert-58942-mergify/bp/version-15-hotfix/pr-58925
Revert "fix(stock): set item_name to fetch if empty in packing slip item (backport #58925)"
2026-09-15 18:05:44 +05:30
Sudharsanan Ashok
618864a051 Revert "fix(stock): set item_name to fetch if empty in packing slip item (backport #58925)" 2026-09-15 17:47:47 +05:30
Sudharsanan Ashok
d9ea9a5430 Merge pull request #58942 from frappe/mergify/bp/version-15-hotfix/pr-58925
fix(stock): set item_name to fetch if empty in packing slip item (backport #58925)
2026-09-15 17:42:52 +05:30
Afsal Syed
9ba2159720 fix(stock): set item_name to fetch if empty in packing slip item (#58925)
(cherry picked from commit f130c64530)

# Conflicts:
#	erpnext/stock/doctype/packing_slip_item/packing_slip_item.json
2026-09-15 16:38:36 +05:30
Sudharsanan Ashok
602803cce0 Merge pull request #59040 from frappe/mergify/bp/version-15-hotfix/pr-58965
fix(subcontracting): validate project across the subcontracting flow  (backport #58965)
2026-09-13 17:53:20 +05:30
Sudharsanan11
e84a94642d fix: resolve conflicts 2026-09-13 12:12:16 +05:30
Sudharsanan Ashok
1150d8e9b0 fix(subcontracting): validate project across the subcontracting flow (#58965)
(cherry picked from commit fe25746feb)

# Conflicts:
#	erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
#	erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
#	erpnext/subcontracting/doctype/subcontracting_receipt/mapper.py
2026-09-13 06:29:16 +00:00
pandiyan
7429a260f6 fix: prevent disabled items from being used in bom (#58997)
Co-authored-by: Ajish18 <ajishiyappan1@gmail.com>
(cherry picked from commit e6f431a8d6)
2026-09-12 21:58:25 +05:30
mergify[bot]
f9433683ec fix: Backfill not_applicable on Item Tax Template Details for German companies (backport #54682) (backport #54686) (#58952)
* fix: Backfill `not_applicable` on Item Tax Template Details for German companies (backport #54682) (#54686)

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
fix: Backfill `not_applicable` on Item Tax Template Details for German companies (#54682)
(cherry picked from commit a22d773341)

# Conflicts:
#	erpnext/patches.txt

* chore: resolve conflict

* fix: compare zero-rate row count, not just the identifier set

* chore: correct comment on account name uniqueness

* test: cover German `not_applicable` backfill patch

Run the patch against a company seeded from the shipped German defaults:
matching defaults are backfilled, customised templates and templates with a
duplicate account name are left alone, and a rerun changes nothing.

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
2026-09-11 13:21:39 +02:00
mergify[bot]
62b9f31297 fix(accounts): add permission checks on invoice_discounting.get_invoices (backport #58975) (#58989)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-11 04:42:54 +00:00
mergify[bot]
85a152946e fix(accounts): add permission checks on execute_repost_payment_ledger (backport #58980) (#58981)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-11 09:38:50 +05:30
mergify[bot]
563615c77e fix(stock): recalculate billing status of returned delivery notes (backport #58953) (#58986)
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2026-09-11 00:56:26 +02:00
Mihir Kandoi
52ea7ed606 fix(selling): exclude fully billed orders from the invoice picker (backport #58966) (#58968) 2026-09-10 20:51:03 +05:30
mergify[bot]
f59a6ec882 fix(stock): do not rebuild the Warehouse tree on an account map miss (backport #58956) (#58972)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-09-10 13:09:00 +00:00
Sudharsanan Ashok
bb0140ff3f Merge pull request #58946 from frappe/mergify/bp/version-15-hotfix/pr-58927
fix(manufacturing): handle empty raw materials in workstation (backport #58927)
2026-09-10 18:08:52 +05:30
pandiyan
c72bc6925b fix(manufacturing): handle empty raw materials in workstation (#58927)
(cherry picked from commit 3be0c7801a)
2026-09-10 11:44:42 +05:30
mergify[bot]
e37ba3f8cf fix(selling): add email permission check on send_emails (backport #58935) (#58937)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-09 10:58:21 +00:00
Shllokkk
46c792f976 Merge pull request #58934 from frappe/mergify/bp/version-15-hotfix/pr-58897
fix: % Amount Billed exceeds 100% on fully rejected Purchase Receipts (backport #58897)
2026-09-09 15:33:07 +05:30
Shllokkk
c31ae577e4 fix: % Amount Billed exceeds 100% on fully rejected Purchase Receipts (#58897)
* fix: include rejected qty in Purchase Receipt billing base

* test: per billed stays 100% for fully rejected receipt

(cherry picked from commit 79c8e4db7f)
2026-09-09 09:34:29 +00:00
Frappe PR Bot
df8b7f9648 chore(release): Bumped to Version 15.121.2
## [15.121.2](https://github.com/frappe/erpnext/compare/v15.121.1...v15.121.2) (2026-09-09)

### Bug Fixes

* **stock:** preserve rates for unsaved mapped rows (backport [#58852](https://github.com/frappe/erpnext/issues/58852)) (backport [#58898](https://github.com/frappe/erpnext/issues/58898)) ([#58916](https://github.com/frappe/erpnext/issues/58916)) ([0deed27](0deed27cfe))
v15.121.2
2026-09-09 09:24:59 +00:00
mergify[bot]
0deed27cfe fix(stock): preserve rates for unsaved mapped rows (backport #58852) (backport #58898) (#58916)
fix(stock): preserve rates for unsaved mapped rows (backport #58852) (#58898)

* fix: keep each row's own rate under maintain same rate

* test: cover maintain-same-rate rate lock for batch items

(cherry picked from commit 32d8c359ed)

Co-authored-by: Shllokkk <140623894+Shllokkk@users.noreply.github.com>
2026-09-09 14:53:20 +05:30
mergify[bot]
228108ad4c fix(accounts): stop counting received qty on non-stock invoice returns (backport #58924) (#58928)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-09-09 09:20:26 +00:00
Sudharsanan Ashok
75a5d2b766 Merge pull request #58920 from frappe/mergify/bp/version-15-hotfix/pr-58896
fix(stock): remove empty delivery stops after mapping (backport #58896)
2026-09-09 13:33:13 +05:30
Sudharsanan Ashok
27f93a83ef Merge pull request #58914 from frappe/mergify/bp/version-15-hotfix/pr-58911
fix: validate shelf life for automatically created expiring batches (backport #58911)
2026-09-09 13:24:59 +05:30
Sudharsanan Ashok
9822ffc334 Merge pull request #58912 from frappe/mergify/bp/version-15-hotfix/pr-58893
fix: reset price list fallback when changing parties (backport #58893)
2026-09-09 13:24:12 +05:30
Sudharsanan Ashok
fc6791e57b Merge pull request #58903 from frappe/mergify/bp/version-15-hotfix/pr-58889
fix(stock): guard inventory dimension lookup without reference document (backport #58889)
2026-09-09 13:23:46 +05:30
Sudharsanan Ashok
916b581562 Merge pull request #58900 from frappe/mergify/bp/version-15-hotfix/pr-58891
fix(accounts): reject disabled price lists in buying and selling (backport #58891)
2026-09-09 13:23:13 +05:30
Khushi Rawat
63e7c2e44f Merge pull request #58907 from frappe/mergify/bp/version-15-hotfix/pr-58227
fix: keep a dunning claimable until its interest is paid too  (backport #58227)
2026-09-09 13:09:48 +05:30
pandiyan
0099e7ec4f fix(stock): remove empty delivery stops after mapping (#58896)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
(cherry picked from commit 4b23cee2ea)
2026-09-09 13:03:06 +05:30
pandiyan
11c6f0d02c fix: keep a dunning claimable until its interest is paid too
a dunning was resolved as soon as the invoiced sum was settled, because the
status was derived from the invoice outstanding alone. paying an invoice
without the interest and fee therefore closed the dunning and lost the
interest: a fresh dunning finds nothing overdue to charge it on.

the dunning amount is never a receivable, it only reaches the ledger as a
negative deduction on a payment entry made from the dunning. link that row
to the dunning so what has been collected is known, and resolve a dunning
only once the invoiced sum and the dunning amount are both paid. a dunning
resolved by hand keeps its status, so waiving the interest stays possible.

the deduction is a company currency field, so book and measure the dunning
amount through base_dunning_amount instead of the transaction currency one.

an interest-only payment leaves every invoice outstanding untouched, so
update the linked dunnings from the payment entry itself instead of relying
on the outstanding amount to change. such a payment also has to be built
from what is left to collect, not from the totals the dunning was raised
with, which are stale by then.

(cherry picked from commit d5a9d158f9)
2026-09-09 12:39:18 +05:30
pandiyan
da53283659 test: dunning must stay unpaid when only the invoiced sum is paid
paying a dunned invoice without its interest and fee marks the dunning
resolved, and the interest can no longer be collected.

(cherry picked from commit fa89552d10)
2026-09-09 12:39:18 +05:30
Shllokkk
32d8c359ed fix(stock): preserve rates for unsaved mapped rows (backport #58852) (#58898)
* fix: keep each row's own rate under maintain same rate

* test: cover maintain-same-rate rate lock for batch items
2026-09-09 12:38:58 +05:30
Pandiyan P
00e02f07ac fix: validate shelf life for automatically created expiring batches (#58911)
Co-authored-by: Ajish18 <ajishiyappan1@gmail.com>
(cherry picked from commit b2bdeaa672)
2026-09-09 07:07:22 +00:00
Pandiyan P
f981791012 fix: reset price list fallback when changing parties (#58893)
(cherry picked from commit 4c32acf300)
2026-09-09 06:56:26 +00:00
Sudharsanan Ashok
f6870786c5 Merge pull request #58888 from frappe/mergify/bp/version-15-hotfix/pr-58887
fix(stock): distribute additional costs when incoming items have no value (backport #58842) (backport #58887)
2026-09-09 11:14:21 +05:30
Sudharsanan11
00729a8d62 fix: resolve conflicts 2026-09-09 10:38:34 +05:30
Sudharsanan11
10987b11cc fix(stock): distribute additional costs when incoming items have no value
(cherry picked from commit b6035810f0)

# Conflicts:
#	erpnext/stock/doctype/stock_entry/test_stock_entry.py
2026-09-09 10:38:34 +05:30
pandiyan
47662b9af2 fix(accounts): reject disabled price lists in buying and selling (#58891)
(cherry picked from commit f8c2f3440b)
2026-09-09 09:55:37 +05:30
mergify[bot]
3bd194e986 fix: user not able to set valuation rate zero in stock reco (backport #58800) (#58821)
* fix: user not able to set valuation rate zero in stock reco (#58800)

* fix: user not able to set valuation rate zero in stock reco

* fix: wrong difference amount when valuation rate is zero

* fix: blank valuation rate should not be treated as a change

(cherry picked from commit e85e300f8f)

# Conflicts:
#	erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py

* chore: fix conflicts

Removed unused import statements and cleaned up the code.

---------

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-09-09 04:20:51 +00:00
Pandiyan P
7ee54ba08b fix(stock): guard inventory dimension lookup without reference document (#58889)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
(cherry picked from commit afd93cf867)
2026-09-09 02:12:59 +00:00
Sudharsanan Ashok
b6120ea56a Merge pull request #58882 from frappe/mergify/bp/version-15-hotfix/pr-58700
fix(stock): show actual outgoing rate in ledger preview (backport #58700)
2026-09-08 19:32:09 +05:30
Frappe PR Bot
fdc48277a8 chore(release): Bumped to Version 15.121.1
## [15.121.1](https://github.com/frappe/erpnext/compare/v15.121.0...v15.121.1) (2026-09-08)

### Bug Fixes

* **accounts:** reject same-account internal transfers ([#58529](https://github.com/frappe/erpnext/issues/58529)) ([05a1127](05a1127587))
* **accounts:** round journal entry totals to field precision (backport [#58629](https://github.com/frappe/erpnext/issues/58629)) ([#58874](https://github.com/frappe/erpnext/issues/58874)) ([96357b4](96357b4fdc))
* **accounts:** support drop-shipped items in Gross Profit report ([#58686](https://github.com/frappe/erpnext/issues/58686)) ([6c6ee7c](6c6ee7c524))
* add reconciliation after submit logic for bank transactions ([#57330](https://github.com/frappe/erpnext/issues/57330)) ([2ee5f6b](2ee5f6b1c4))
* **batch:** show Expired status only after expiry date has passed ([#58736](https://github.com/frappe/erpnext/issues/58736)) ([cd93007](cd93007780))
* check material request price list permission ([#58740](https://github.com/frappe/erpnext/issues/58740)) ([a348d41](a348d413d0))
* check write permission in whitelisted document methods (backport [#58689](https://github.com/frappe/erpnext/issues/58689)) ([#58702](https://github.com/frappe/erpnext/issues/58702)) ([baa30e7](baa30e703d))
* **crm:** check read permission on lead in add_lead_to_prospect ([4dd56ec](4dd56ec4e6))
* **crm:** validate contact email before saving an email campaign (backport [#58667](https://github.com/frappe/erpnext/issues/58667)) ([#58671](https://github.com/frappe/erpnext/issues/58671)) ([1ea597d](1ea597d6b5))
* fetch accounts by company (backport [#58523](https://github.com/frappe/erpnext/issues/58523)) ([#58878](https://github.com/frappe/erpnext/issues/58878)) ([2c2a3e9](2c2a3e9f10))
* filter cancelled BOMs in BOM Stock Analysis ([#58647](https://github.com/frappe/erpnext/issues/58647)) ([fff2616](fff261680c))
* **gross-profit:** include item_name in export ([#58631](https://github.com/frappe/erpnext/issues/58631)) ([c752bb3](c752bb34a8))
* include payment deductions in sales/purchase register ledger bal… (backport [#58437](https://github.com/frappe/erpnext/issues/58437)) ([#58679](https://github.com/frappe/erpnext/issues/58679)) ([24e7ff5](24e7ff55de))
* persist rendered terms on transaction save ([#58858](https://github.com/frappe/erpnext/issues/58858)) ([24cac30](24cac30aa9))
* **pos:** use company-currency change amount when netting pos gl entries (backport [#58599](https://github.com/frappe/erpnext/issues/58599)) ([#58677](https://github.com/frappe/erpnext/issues/58677)) ([c7d865e](c7d865ef3b))
* resolve conflicts ([95b2030](95b203079a))
* **selling:** fetch orders within billing allowance (backport [#58751](https://github.com/frappe/erpnext/issues/58751)) ([#58822](https://github.com/frappe/erpnext/issues/58822)) ([a64b78d](a64b78d283))
* **setup:** strict permissions for transaction deletion record (backport [#58687](https://github.com/frappe/erpnext/issues/58687)) ([#58722](https://github.com/frappe/erpnext/issues/58722)) ([934c7d8](934c7d833c))
* show cost center for unmatched payments in receivables (backport [#58453](https://github.com/frappe/erpnext/issues/58453)) ([#58880](https://github.com/frappe/erpnext/issues/58880)) ([69f38a0](69f38a04c8))
* skip zero quantity items in production plan material requests ([#58642](https://github.com/frappe/erpnext/issues/58642)) ([3217a69](3217a69fc2))
* **stock:** recalculate delivery note billing after return ([#58869](https://github.com/frappe/erpnext/issues/58869)) ([b409ded](b409ded2f6))

### Reverts

* **manufacturing:** remove material coverage changes on version 15 ([#58715](https://github.com/frappe/erpnext/issues/58715)) ([7cbf8b8](7cbf8b8660))
v15.121.1
2026-09-08 13:48:11 +00:00
Diptanil Saha
8635652c90 Merge pull request #58867 from frappe/version-15-hotfix
chore: release v15
2026-09-08 19:16:20 +05:30
Afsal Syed
372244e6b2 fix(stock): show actual outgoing rate in ledger preview (#58700)
(cherry picked from commit 71f1edeb1c)
2026-09-08 19:11:06 +05:30