Commit Graph

724 Commits

Author SHA1 Message Date
Mihir Kandoi
94a0c102a3 Merge pull request #56446 from aerele/fix/support-#72225
fix: support quality inspection for stock entry by purpose
2026-06-30 22:37:26 +05:30
Sudharsanan11
847fd8aa33 fix(stock): exclude consumption from outgoing quality inspection
The QI-by-purpose check required an inspection on every outgoing
(s_warehouse) row for any purpose that was not incoming. Material
Consumption for Manufacture rows are source-only and the Work Order
mapper copies inspection_required from the BOM, so this silently
blocked submission. An inspection_required BOM inspects the finished
good, not each consumed raw material.

Replace the "anything not incoming" fallthrough with an explicit
QI_OUTGOING_PURPOSES allow-list (mirrored in transaction.js) so a new
purpose cannot silently start requiring a QI. Consumption and Return
Raw Material to Customer now need no QI; Issue, Transfer, Transfer for
Manufacture, Send to Subcontractor, Subcontracting Delivery and
Disassemble keep their outgoing checks. Scope item_query to the same
set and add a regression test.
2026-06-30 21:32:30 +05:30
Sudharsanan11
1202e79a16 fix(stock): fix tests 2026-06-30 12:31:14 +05:30
Diptanil Saha
485e9041de chore: removing controllers from pre-commit eslint hooks exclude list (#56575)
* chore: removed `controllers` from exclude list on `.pre-commit-config.yaml`

* chore: fix `transactions.js` eslint issues

* chore: fix `taxes_and_totals.js` eslint issue

* chore: fix `accounts.js` eslint issue
2026-06-27 00:42:34 +05:30
Mihir Kandoi
8cd420953c chore: rewrite user-facing JS messages in Public module
Conservative cleanup of frappe.throw/msgprint messages per the message style
guide; meaning, severity, and .format() arguments are unchanged:

- index bare {} placeholders as {0}/{1}/... so translators can reorder
- move f-strings / .format() / concatenation out of _() (they break gettext
  extraction and never translate)
- wrap translatable dynamic values (DocType/Select labels) in _()
- fix grammar and colloquialisms
- drop no-op _() wrapping runtime-built strings

Part of #53976.
2026-06-25 17:44:14 +05:30
Smit Vora
cb0689bd1e fix: rewrite item rate calculation (#56315)
Co-authored-by: Harsh Patadia <harsh@Harshs-MacBook-Air.local>
Co-authored-by: Sagar Vora <16315650+sagarvora@users.noreply.github.com>
2026-06-25 14:49:11 +05:30
Sudharsanan11
2373db06ec fix: support quality inspection for stock entry by purpose
Fetch QI items by warehouse direction per inspection_type, require QI on
the correct rows per stock entry purpose (finished good for Manufacture,
inward goods for Receipt/Repack, outgoing rows for issue/transfer), and
show the QI field only on those rows.
2026-06-25 12:22:28 +05:30
Raffael Meyer
13f9130d42 fix: hide redundant company currency fields on transactions (#54691) 2026-06-22 15:37:29 +02:00
Nabin Hait
817c5007d9 Merge pull request #55899 from nabinhait/fix/margin-currency-rate-refresh
fix: don't convert item margin on exchange rate refresh
2026-06-19 12:42:21 +05:30
Sudharsanan11
dceb9a3c6c fix(stock): enable quality inspection for all Stock Entry purposes
- Remove `depends_on` restriction from `inspection_required` field so it
  is visible for all Stock Entry purposes, not just Manufacture
- Fix `check_item_quality_inspection` to return items for Stock Entry
  (was returning [] for unknown doctypes, blocking QI creation flow)
- Fix `inspection_type` in transaction.js to be purpose-aware: Manufacture
  and Material Receipt → "Incoming"; all other purposes → "Outgoing"
2026-06-16 12:34:55 +05:30
Nabin Hait
6f9a8ff101 fix: don't convert item margin on exchange rate refresh
Changing the transaction/posting date re-triggers the `currency` handler,
which fetches a fresh exchange rate and, whenever it differs from the
current one, divided every Amount-type item margin and Actual tax charge
by the new rate. `margin_rate_or_amount` is an amount in the transaction
currency, so dividing it is only meaningful when the document actually
switches currency; on a mere rate refresh it silently shrinks the margin
every time.

Track the currency the rendered document is denominated in and convert
margins/actual charges only on a real currency change, while still
updating `conversion_rate` so base amounts recalculate correctly.

Also remove the duplicated `currency()` override in quotation.js: it
re-ran the same fetch-and-convert block after `super.currency()` (double
converting margins) and lacked the `load_after_mapping` guard. The base
handler already covers Quotation via `transaction_date`.

Fixes #45210
2026-06-14 20:32:56 +05:30
Mihir Kandoi
cf37478870 feat(selling): allow disabling a Product Bundle
Un-deprecate the `disabled` checkbox: it is now editable (also after
submit) and parks a bundle version without ceding its active slot, so
re-enabling restores it without re-activation.

- `get_active_product_bundle` (the single resolution entry point) skips
  disabled bundles, so every consumer stops treating the item as a bundle
  while it is disabled
- the version pickers on transaction item rows and the buying "Get Items
  from Product Bundle" dialog filter out disabled bundles
- an explicitly selected disabled version blocks the transaction with a
  validation error instead of silently re-packing another version
- Product Bundle Balance report excludes disabled bundles
- list view indicator: Disabled (grey) / Active (green), falling back to
  docstatus for drafts, cancelled and inactive submitted versions

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 10:57:48 +05:30
Nabin Hait
6a7c9f616e refactor(journal_entry): extract document builders into mapper.py
Move the Payment Entry / Journal Entry builders (get_payment_entry and its
against-order/against-invoice helpers, make_inter_company_journal_entry,
make_reverse_journal_entry) into mapper.py. The whitelisted builders are
re-exported from journal_entry.py so existing call paths -- including custom
apps -- keep working, and the erpnext client calls now point at the mapper
path. get_payment_entry imports the exchange-rate/bank-account helpers lazily
to avoid a circular import with the re-export.
2026-06-09 16:59:27 +05:30
Mihir Kandoi
08f6af867a feat: record and select Product Bundle version on transactions (#55738)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 13:15:20 +05:30
Raffael Meyer
e94bd51764 perf(transaction): exit early before backend query (#55556) 2026-06-02 20:24:10 +02:00
Sudharsanan11
e003fe4de0 fix(stock): add warning message to notify the user to configure the inspection 2026-06-01 10:37:29 +05:30
Sudharsanan11
c6a88ab1d2 fix(stock): allow to create quality inspection after purchase/delivery 2026-06-01 10:37:25 +05:30
Jatin3128
06477119d1 fix: corrected the pricing rule taking the wrong value (#54894) 2026-05-21 12:04:45 +05:30
Mihir Kandoi
907a809f3f fix: incorrect validation thrown for drop shipped PI (#54751) 2026-05-06 05:30:14 +00:00
Mihir Kandoi
a68769565b refactor: remove old subcontracting flow (#54717) 2026-05-04 14:06:59 +05:30
Raffael Meyer
c120cc7ed1 fix: add missing fields in set_currency_labels (#54689) 2026-05-01 03:54:14 +02:00
nishkagosalia
eb89903dec fix: Table row in dialog should not have delete row option 2026-04-17 15:16:40 +05:30
Jatin3128
8ec15b537e feat(Payment Request): Added a toggle for using the payment schedule 2026-03-30 18:05:42 +05:30
diptanilsaha
086fea7cf0 fix(payment_schedule): using show_alert instead of msgprint for non-selection of payment schedule (#53623) 2026-03-19 12:29:28 +05:30
Mihir Kandoi
f1ac0376fb feat: co product by product support (#52979) 2026-03-11 14:46:36 +05:30
ruthra kumar
cd7845124c fix: allow payment_request to be created in draft (#53160) 2026-03-09 20:21:33 +05:30
Rohit Waghchaure
82c3da5b1e feat: option to enable serial / batch features 2026-03-06 11:47:53 +05:30
SowmyaArunachalam
99ed1c34f3 fix: fetch payment terms from quotation 2026-03-04 21:47:41 +05:30
ervishnucs
24825a16e0 fix: allow payment_request to be created in draft 2026-03-04 16:25:30 +05:30
kavin-114
74def423ed fix(stock): pass company to avoid document naming rule issue in QI
When a Document Naming Rule is configured in QI with a condition based on the company,
the system was not passing the company value properly. As a result, the naming rule
condition was skipped and the document name was generated using the default series.

This fix ensures that the company is passed correctly so that the configured
Document Naming Rule is evaluated and applied as expected.
2026-02-28 13:10:30 +05:30
Jatin3128
e476dff842 feat(payment request): create payment request as per payment schedules 2026-02-24 07:04:16 +00:00
Rohit Waghchaure
000af2bc96 fix: remove currency label for rounding adjustment 2026-02-06 13:29:23 +05:30
Deepesh Garg
e08fe10f31 fix: Currency fields label 2026-02-05 12:54:48 +05:30
Deepesh Garg
1770d92ea6 Merge branch 'develop' into erpnext_form_cleanups 2026-02-05 09:50:22 +05:30
Deepesh Garg
efc4c900f3 chore: linting issues 2026-02-04 17:55:06 +05:30
Rohit Waghchaure
f3ea1863ae refactor: Cleanup buying module forms 2026-02-04 17:07:25 +05:30
Rohit Waghchaure
d1cba1073f fix: batch selector not working if Use Legacy (Client side) Reactivity disabled 2026-02-02 19:54:27 +05:30
Sudharsanan11
3f8a0a4833 fix: autofill warehouse for packed items 2026-01-22 12:54:51 +05:30
Rohit Waghchaure
56e58ef301 fix: qty with serial no count 2026-01-19 15:13:08 +05:30
Pandiyan5273
f959b2c59a fix(stock): resolve quantity issue when adding items via barcode scan 2026-01-16 15:12:28 +05:30
diptanilsaha
8b445e04e5 fix(transaction.js): use flt instead of cint for plc_conversion_rate 2026-01-14 01:36:15 +05:30
Mihir Kandoi
ca568a01f5 fix: autofixes by semgrep 2026-01-01 21:56:12 +05:30
Lakshit Jain
c66f78c784 feat: Introduce tax withholding entry 2025-12-23 20:47:53 +05:30
Navin-S-R
c28f6f1856 refactor: standardize cost_center updation across transactions 2025-12-12 14:25:08 +05:30
Rohit Waghchaure
29f2ecbd6f fix: cost center not reset 2025-12-02 21:49:03 +05:30
diptanilsaha
079218ffbf fix: exchange_rate field visibility on invoice currency change 2025-11-26 14:20:05 +05:30
Logesh Periyasamy
5e58e344b2 feat(accounting-dimension): add dynamic triggers for custom accounting dimensions (#50621)
* feat: add dynamic triggers for custom accounting dimensions

* feat: add accounting dimension trigger call in setup event

* chore: ignore cur_frm semgrep rules

* chore: move function to transaction.js
2025-11-25 10:21:17 +05:30
Kavin
827f9cc6ef fix: pass UOM null to update when item changes 2025-11-11 13:52:23 +05:30
Diptanil Saha
a82c0c20f0 Merge pull request #49939 from aerele/retain-address
fix: preserve address if present
2025-10-09 11:09:08 +05:30
ruthra kumar
4672c2c383 Merge pull request #49848 from Jaswanth-Sriram-Veturi/perf/transaction-set-dynamic-labels
perf: avoid unnecessary set_dynamic_labels updates
2025-10-09 10:15:01 +05:30