Commit Graph

1250 Commits

Author SHA1 Message Date
Mihir Kandoi
59ad76c21e fix(postgres): satisfy strict GROUP BY in asset depreciation query
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 16:08:24 +05:30
Nabin Hait
ddbd61b2a2 refactor(journal_entry): point erpnext imports at mapper, trim re-exports
Update erpnext's own importers (asset depreciation, invoice discounting and the
JE tests) to import the builders from mapper.py directly. Drop
make_inter_company_journal_entry and make_reverse_journal_entry from the
backward-compat re-export in journal_entry.py -- they are not part of the
custom-app call surface; only the payment-entry builders remain re-exported.
2026-06-09 16:59:27 +05:30
Nabin Hait
b447cbc3c1 refactor(stock): move GL-building helpers onto BaseStockGLComposer
Relocate get_voucher_details, check_expense_account and get_debit_field_precision
from StockController to BaseStockGLComposer, where they are only used (by compose()
and AssetCapitalizationGLComposer). Call sites flipped from doc.X to self.X.

Inventory-account resolution (get_inventory_account_map/_dict, etc.) stays on the
controller: it is a doc-contract method called as doc.X from non-stock-composer code
(PI controller/composer, accounts/utils, repost_accounting_ledger), so it cannot fold
into BaseStockGLComposer. make_gl_entries / make_gl_entries_on_cancel / add_gl_entry
likewise stay (contract entry points).

Behaviour-preserving: ledger snapshots, subcontracting receipt and asset
capitalization suites stay green.
2026-06-04 15:50:32 +05:30
Nabin Hait
ef8cc166c1 ci: move nosemgrep to def line for asset_repair.on_cancel
frappe-modifying-but-not-comitting anchors on the method definition, so the
suppression must sit on the def line (matching the convention used elsewhere
in the codebase); inner-line comments did not suppress it.
2026-06-03 17:57:24 +05:30
Nabin Hait
5adeca44da fix: linter issue 2026-06-03 17:45:47 +05:30
Nabin Hait
4c6f33000b ci: silence false-positive semgrep findings on relocated code
Both patterns are unchanged from develop but newly appear in the diff
because the refactoring relocated them:

- purchase_order/mapper.make_purchase_invoice_from_portal: portal flow
  needs commit before redirect (matches develop behaviour)
- asset_repair.on_cancel: ignore_linked_doctypes is a runtime cancel flag,
  not a persisted field
2026-06-03 16:23:30 +05:30
Nabin Hait
04443ae29e Merge upstream/develop into erpnext-refactoring
Resolve 4 conflicts from Phase 7 service/mapper extraction vs upstream:
- asset.py: take extraction; repoint dangling make_asset_movement JS to mapper
- job_card: port upstream field_no_map(naming_series) into mapper.make_subcontracting_po
- sales_order: port upstream rows-index fix into mapper.make_delivery_note
- sales_invoice (Phase 7): take service delegations; port upstream SQL->QB/ORM
  changes for get_warehouse, get_all_mode_of_payments, get_discounting_status,
  clear_unallocated_mode_of_payments, and set_pos_fields(POS DN skip) into services
2026-06-03 11:05:01 +05:30
Mihir Kandoi
78f9434d14 refactor: resolve regression-safe CodeQL code-quality findings (#55531)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 08:25:32 +05:30
Nabin Hait
530e587bf2 refactor: use mapper paths directly, drop re-export shims
Repoint all JS method strings and Python imports for mapper functions
across 18 doctypes from the doctype module to its mapper module, and
remove the now-unused re-export shims from each doctype file (keeping
only names used internally).
2026-06-01 18:17:56 +05:30
Nabin Hait
61da2302ba refactor(asset): move mapping functions to mapper.py 2026-05-29 13:38:00 +05:30
Nabin Hait
0a02727638 fix: move ignore_linked_doctypes assignment to on_cancel in AssetRepair
Semgrep rule frappe-modifying-but-not-comitting-other-method flags
setting self.ignore_linked_doctypes inside make_gl_entries() instead
of in the calling on_cancel method. Follows the same pattern used by
AssetCapitalization.
2026-05-29 04:03:30 +05:30
Nabin Hait
cba6a31497 refactor(accounts): extract get_gl_dict and add_gl_entry into gl_entry_builder.py
Move the get_gl_dict/add_gl_entry logic from AccountsController/StockController
into free functions in accounts/services/gl_entry_builder.py with doc as first arg.
BaseGLComposer gains get_gl_dict and add_gl_entry methods that delegate to the free
functions — GL composers now call self.get_gl_dict/self.add_gl_entry directly
without going through the doc. AccountsController and StockController keep thin
shims for backward compatibility with unrefactored callers.

Also move update_gl_dict_with_regional_fields and update_gl_dict_with_app_based_fields
to gl_entry_builder.py, re-exporting them from accounts_controller.py to avoid a
circular import.
2026-05-27 21:46:16 +05:30
Nabin Hait
8783689ec5 refactor(accounts): GL composer pattern for SCR, AssetCapitalization, AssetRepair
Extracts get_gl_entries logic from SubcontractingReceipt,
AssetCapitalization, and AssetRepair into dedicated GL composer classes
under each doctype's services/ package. Each composer follows the
established BaseGLComposer / BaseStockGLComposer pattern, and the
original get_gl_entries becomes a 3-line shim.

- SubcontractingReceiptGLComposer(BaseStockGLComposer): moves
  make_item_gl_entries and make_item_gl_entries_for_lcv
- AssetCapitalizationGLComposer(BaseStockGLComposer): moves
  get_gl_entries_for_consumed_{stock,asset,service}_items and
  get_gl_entries_for_target_item; inventory_account_map/sle_map/precision
  become composer instance attributes
- AssetRepairGLComposer(BaseGLComposer): moves
  get_gl_entries_for_repair_cost and get_gl_entries_for_consumed_items
  (AR inherits AccountsController, not StockController)

All 29 GL snapshot tests and existing doctype test suites (32 SCR,
5 AC, 18 AR) pass.
2026-05-27 15:34:54 +05:30
Khushi Rawat
631a4a67ba Merge pull request #55126 from khushi8112/asset-scrap-flow
fix: asset scrap flow related changes
2026-05-25 15:45:03 +05:30
khushi8112
98dae6e43a fix: don't reset net_purchase_amount for Composite Asset if already set 2026-05-21 17:04:33 +05:30
khushi8112
21bb8fe979 fix: asset scrap flow related changes 2026-05-21 12:14:08 +05:30
rohitwaghchaure
d22cd7b856 Merge pull request #54403 from aerele/fix/support-#64052
fix(stock): ignore fetching warehouse account for asset items
2026-05-15 13:15:11 +05:30
khushi8112
88b82383f5 fix: skip rescheduling only for asset being disposed 2026-04-30 02:11:57 +05:30
khushi8112
c4155b6c81 fix: skip depreciation rescheduling when asset is fully depreciated on sale 2026-04-30 02:01:57 +05:30
Sudharsanan11
8cf4402823 test(stock): add test to create pr for asset item without checking the stock account 2026-04-27 18:02:10 +05:30
ruthra kumar
b16dd3f2dd refactor(test): remove explicit sql delete calls 2026-04-22 10:33:25 +05:30
ravibharathi656
4a004a2a82 fix: preserve asset movement field properties after save 2026-04-07 16:54:44 +05:30
Khushi Rawat
b4be235bbf Merge pull request #53394 from aerele/fix-asset-filter
fix: remove null from link_filters
2026-04-07 12:29:44 +05:30
ruthra kumar
fd2b76a4d2 refactor(test): move location creation to bootstrap in asset movement 2026-03-24 17:21:31 +05:30
ruthra kumar
2c53cf3902 refactor(test): make asset capitalization deterministic 2026-03-24 17:21:31 +05:30
ervishnucs
a518a735f3 fix: remove null from link_filters 2026-03-24 15:43:20 +05:30
ruthra kumar
ed76d6699a refactor(test): move commits inside test guard clause 2026-03-24 11:57:02 +05:30
Mihir Kandoi
91da450a31 chore: remove unused imports (#53722) 2026-03-23 16:39:55 +00:00
ruthra kumar
da8fcde4a8 refactor(test): make location determinisitic 2026-03-18 20:59:38 +05:30
ruthra kumar
cb693e05bf refactor(test): tax rule; removed setUpClass, tearDownClass 2026-03-18 20:59:38 +05:30
ruthra kumar
12ae84401a refactor(test): remove redundant tearDown, tearDownClass and rollback 2026-03-18 20:59:37 +05:30
ruthra kumar
7da61621cc refactor(test): make asset repair deterministic 2026-03-18 20:59:37 +05:30
ruthra kumar
075fe3f668 refactor(test): make asset deterministic 2026-03-18 20:59:37 +05:30
ruthra kumar
379f12daee refactor(test): make asset repair tests deterministic 2026-03-18 20:59:35 +05:30
ruthra kumar
253fbc2a70 refactor: replace all IntegrationTestCase -> ERPNextTestSuite 2026-03-18 20:59:35 +05:30
ruthra kumar
33f4791698 refactor: replace IntegrationTestCase with ERPNextTestCase repo-wide
- import ERPNextTestSuite
 - use it on test class
2026-03-18 20:59:35 +05:30
ruthra kumar
002b4fb048 chore: delete all test_records.json 2026-03-18 20:59:34 +05:30
khushi8112
6219a9e6f0 fix: update label on company change 2026-03-13 00:27:43 +05:30
khushi8112
b4c82c0f1a refactor: show company currency in purchase amount label 2026-03-13 00:27:43 +05:30
khushi8112
ac124bdc7e fix: move show_general_ledger to Asset Repair form events 2026-03-12 13:18:00 +05:30
Nabin Hait
9cf529215f fix: set default list view columns and filters for sales, purchase and accounts module 2026-03-09 17:20:52 +05:30
diptanilsaha
b4fb74c84d refactor(asset): added type annotations on get_depreciation_rate 2026-03-07 15:00:28 +05:30
diptanilsaha
616bae1f84 refactor: type annotations for whitelisted methods 2026-03-07 11:42:16 +05:30
Rohit Waghchaure
82c3da5b1e feat: option to enable serial / batch features 2026-03-06 11:47:53 +05:30
Rohit Waghchaure
1cdf439e38 fix: broekn link of docs in asset onboarding 2026-02-26 10:47:56 +05:30
Rohit Waghchaure
d90ec49241 fix: patch to complete onboarding stpes for existing records 2026-02-25 17:23:57 +05:30
Rohit Waghchaure
792a1a7ab7 feat: module onboarding 2026-02-24 11:45:31 +05:30
khushi8112
eb17284711 fix: args must be wrapped under a ctx 2026-02-18 12:35:29 +05:30
khushi8112
beffc016da refactor: Optimize asset depreciation schedule retrieval with type hints 2026-02-18 12:22:55 +05:30
khushi8112
36dcf8b2a5 fix: type hint in make depreciation entry function 2026-02-18 11:33:12 +05:30