Commit Graph

61034 Commits

Author SHA1 Message Date
Mihir Kandoi
83dea1a24e test: prevent update_doctypes from exporting files (#58589) 2026-08-31 07:31:41 +00:00
Aarol D'Souza
6d445d94ee Merge pull request #58586 from AarDG10/patch-erpnext
fix(sms_settings): add patch to pre-fill roles into SMS Settings Role Table
2026-08-31 12:27:32 +05:30
Aarol D'Souza
05e5e50a6f Merge branch 'develop' into patch-erpnext 2026-08-31 11:51:59 +05:30
AarDG10
3501beb2bd fix(sms_settings): add patch to pre-fill roles into SMS Settings Roles Table 2026-08-31 11:38:47 +05:30
Nishka Gosalia
7af1af35cd Merge pull request #58325 from Shllokkk/project-duplicate-read-permission-check
fix(projects): check read permission on source in create_duplicate_project
2026-08-31 11:14:40 +05:30
Mihir Kandoi
86852d954e test: narrow shared fixture hardening (#58581) 2026-08-31 05:26:28 +00:00
Diptanil Saha
d5df40986d fix(timesheet): scoping whitelisted methods output to projects and timesheets that are acccessible to users (#58267) 2026-08-30 23:16:32 +05:30
MochaMind
1cedd1421d chore: update POT file (#58566) 2026-08-30 13:00:36 +02:00
Mihir Kandoi
db56080285 fix(manufacturing): use packed row delivery date (#58568) 2026-08-30 10:44:23 +00:00
Pandiyan P
8b43394533 fix(stock): load available serial no report (#58558) 2026-08-29 20:24:58 +05:30
Diptanil Saha
caf8a36bdb fix(accounts): added permission checks on multiple payment entry whitelisted methods (#58555) 2026-08-29 18:06:25 +05:30
Diptanil Saha
a59792a605 refactor(stock): remove dead warehouse_condition branch on get_stock_ledger_entries (#58552) 2026-08-29 11:39:11 +00:00
Shllokkk
6d13e4a633 Merge pull request #58324 from Shllokkk/crm-note-edit-note-permission-check
fix(crm): check write permission in edit_note
2026-08-28 20:34:38 +05:30
Mihir Kandoi
90ac7db704 test: restore ERPNext test coverage (#58542) 2026-08-28 20:09:03 +05:30
Shllokkk
eb49f51d29 fix(crm): check write permission in edit_note 2026-08-28 17:17:04 +05:30
rohitwaghchaure
0223223385 feat: batch split operation to produce child batches per piece (#58530)
* feat: batch split operation to produce child batches per piece

* fix: single input validation, weight conserving lineage, cancel cleanup and naming race for batch split

* fix: delete cancelled batch split bundle along with unused child batches

* fix: retain all child batches when any sibling of a split bundle is in use

* fix: run batch split cancel cleanup only for batch split entries

* fix: make batch split flag read only on stock entry type

* fix: restrict cancel cleanup to child batches minted by the cancelled entry

* refactor: name child batches from item batch series and retain them on cancel

* feat: batch split tree report for parent to child batch traceability

* refactor: source each piece wholly from a single parent batch

* fix: weight per piece sizes the child batches instead of scaling raw material consumption

* fix: apportion child batch lineage proportionally to parent batch quantities

* fix: cap child batch lineage at the whole piece capacity of each parent batch

* fix: exclude batches of cancelled split entries from the batch split tree
2026-08-28 17:11:02 +05:30
Diptanil Saha
ca49de633f fix(stock): auto-select batch no before saving transaction records (#58536) 2026-08-28 17:01:23 +05:30
Soham Kulkarni
64186f229f Merge pull request #58476 from sokumon/module-sidebars
feat: erpnext sidebars and workspaces
2026-08-28 16:13:20 +05:30
Afsal Syed
074c84e880 fix: persist redistributed additional costs during stock entry repost (#58433)
* fix: persist redistributed additional costs during stock entry repost

* test: cover additional cost persistence on stock entry recalculation
2026-08-28 15:51:51 +05:30
rohitwaghchaure
1f7f8cd9d3 feat: alternative finished goods conversion against work order (#58479)
* feat: alternative finished goods conversion against work order

* fix: tighten validations for finished goods conversion

* fix: postgres compatible lock and qty checks post transfer qty for fg conversion

* fix: default single alternative item and hide Change Finished Item button without alternatives
2026-08-28 12:56:06 +05:30
Mihir Kandoi
9160182727 test: improve ERPNext test isolation and runtime (#58507) 2026-08-28 10:41:22 +05:30
sokumon
0985451276 fix: remove the conf file 2026-08-28 02:27:14 +05:30
sokumon
987408f203 chore: some more fixtures 2026-08-28 02:27:14 +05:30
sokumon
2a14b5d953 feat: ship new erpnext workspaces 2026-08-28 02:27:14 +05:30
Diptanil Saha
9018573179 fix(accounts): set pos profile on invoices respecting user permissions (#58508) 2026-08-27 22:06:36 +05:30
Raffael Meyer
e95ca2444c fix: translate doctype in map msg (#58515) 2026-08-27 16:14:49 +00:00
Raffael Meyer
971b6fd49d fix(manufacturing): classify MRP items without a BOM as Purchase (#58509) 2026-08-27 17:55:08 +02:00
rohitwaghchaure
457283f2b0 Revert "refactor(stock): use db.count for the empty ledger check" (#58506)
Revert "refactor(stock): use db.count for the empty ledger check (#58486)"

This reverts commit 2866be2816.
2026-08-27 13:51:49 +00:00
Mihir Kandoi
0849f187e7 fix(projects): ignore cancelled invoices in timesheet portal (#58501) 2026-08-27 12:52:30 +00:00
Pandiyan P
a8ba713f80 fix(selling): check sales order permission before work order creation (#58492) 2026-08-27 12:05:43 +00:00
Pandiyan P
5f99a3418d fix(selling): check quotation write permission before marking lost (#58493) 2026-08-27 12:04:27 +00:00
Mihir Kandoi
b90e3d4656 fix(manufacturing): preserve job card qty in mr transfer (#58482) 2026-08-27 17:26:17 +05:30
Sudharsanan Ashok
2866be2816 refactor(stock): use db.count for the empty ledger check (#58486)
Align the existence check in `reset_bin_without_stock_ledger_entries()` with
the version-15-hotfix backport in #58434, per review feedback there.
2026-08-27 11:07:09 +00:00
Abdeali Chharchhodawala
6842ebb186 fix: improve message formatting and translation for validation issues (#58425) 2026-08-27 12:56:49 +02:00
Pandiyan P
4d4cf034b5 fix: clarify duplicate internal party messages (#58469) 2026-08-27 07:38:25 +00:00
Shllokkk
62e6e23581 fix: validate items against source Sales Order in Material Request (#58443) 2026-08-27 12:14:36 +05:30
Pandiyan P
0d90608bc1 fix(manufacturing): account for pending job card qty (#58466) 2026-08-27 12:12:46 +05:30
Pandiyan P
dd033cbc10 fix(stock): guard serial batch editor grid lookup (#58464) 2026-08-27 11:28:02 +05:30
Henil Maru
d6956790d8 fix: Work Order picks wrong Delivery Date when Sales Order has the same item in multiple rows (#58448) 2026-08-26 20:41:14 +05:30
MochaMind
4def9ed20a fix: sync translations from crowdin (develop) (#58458)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2026-08-26 13:13:08 +00:00
Diptanil Saha
b2489eaf1c ci: ignore python tests on update of **.po (#58457) 2026-08-26 18:29:57 +05:30
MochaMind
88948bab42 fix: sync translations from crowdin (#58349) 2026-08-26 14:44:17 +02:00
Diptanil Saha
98be36ef12 ci: use release token for crowdin translation push (#58454) 2026-08-26 12:16:49 +00:00
Diptanil Saha
687bb9c839 ci: fix crowdin branch (#58452) 2026-08-26 11:38:01 +00:00
rohitwaghchaure
731f03e2f2 feat: option to skip delivery note for service items in sales order (#58297)
* feat: option to skip delivery note for service items in sales order

* fix: reset stale skip delivery flags when setting is disabled

* fix: clear stale skip delivery note flag for non-sales order types

* fix: reset auto skip delivery flags on switch to maintenance order

* refactor: replace sales order skip_delivery_note with item level skip_delivery

* chore: drop skip delivery migration patch

* fix: honor legacy skip_delivery_note flag instead of data migration
2026-08-26 16:28:31 +05:30
Diptanil Saha
fd2057befa ci: crowdin actions (#58447)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 16:26:38 +05:30
Jatin3128
4cfa42921f fix(accounts): resolve subscription plans for any reference doctype in Payment Request (#58438)
fix(accounts): resolve subscription plans for any reference doctype and require read permission

get_subscription_details() was hardcoded to only resolve plans for
Sales Invoice, but is_a_subscription in make_payment_request() was set
for any reference doctype with a `subscription` field. Since Purchase
Invoice also has this field (supplier-side subscriptions), creating a
Payment Request against a subscription-linked Purchase Invoice set
is_a_subscription=1 with an empty subscription_plans table.

get_subscription_details() is also whitelisted with no permission
check, letting any logged-in user query which Subscription/plan/qty is
linked to an arbitrary Sales Invoice or Purchase Invoice.

Make plan resolution generic (guarded by Meta.has_field so doctypes
without a subscription field never hit a nonexistent column), derive
is_a_subscription from the resolved plans so the two can't disagree,
and add a frappe.has_permission read check before returning any data.
2026-08-26 16:16:40 +05:30
Jatin3128
8d2aa69e61 feat(accounts): split bank charges from exchange gain/loss on multi-currency transfers (#58071)
In a multi-currency Internal Transfer, the paid-vs-received difference was
booked entirely to Exchange Gain/Loss, so a bank charge entered as a deduction
pushed the Difference Amount non-zero and blocked submission. The exchange
gain/loss row now absorbs only the residual after user-entered deductions,
letting a Bank Charges row and the Exchange Gain/Loss row coexist and net to
zero.
2026-08-26 13:16:24 +05:30
Sudharsanan Ashok
3f29cdf8d2 feat(analytics): filter sales and purchase analytics by entity (#58402)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-26 13:02:59 +05:30
Aarol D'Souza
ccc19f2554 Merge pull request #58351 from AarDG10/better-err-msg
fix(company): throw if linked to demo_company field
2026-08-26 12:53:01 +05:30