Commit Graph

58462 Commits

Author SHA1 Message Date
Loic Oberle
d4f8c033fc refactor(account): Replace the SQL queries with qb and the frappe ORM (#55396) 2026-05-29 13:33:02 +05:30
Loic Oberle
3e9c4aefaf refactor(sales_invoice): replace sql with qb in validate_proj_cust (#55382) 2026-05-29 13:30:45 +05:30
Loic Oberle
f846c55c01 refactor(sales_invoice): replace sql with qb in get_warehouse (#55381) 2026-05-29 13:29:10 +05:30
Nabin Hait
35ac7155e8 refactor(subcontracting_receipt): move mapping functions to mapper.py 2026-05-29 13:28:37 +05:30
Nabin Hait
28c3d24b86 refactor(lead): move mapping functions to mapper.py 2026-05-29 13:26:31 +05:30
Nabin Hait
9b85773757 refactor(opportunity): move mapping functions to mapper.py 2026-05-29 13:23:56 +05:30
Nabin Hait
341fad04c9 refactor(job_card): move mapping functions to mapper.py 2026-05-29 13:20:50 +05:30
Nabin Hait
0a4fa5e35e refactor(work_order): move mapping functions to mapper.py 2026-05-29 13:11:38 +05:30
Nabin Hait
f9d67ebb1e refactor(purchase_invoice): move mapping functions to mapper.py 2026-05-29 13:04:08 +05:30
Nabin Hait
7b456c6405 refactor(sales_invoice): move mapping functions to mapper.py 2026-05-29 13:01:38 +05:30
Nishka Gosalia
03a7e5b6a3 Merge pull request #55400 from nishkagosalia/gh-55292
fix: Make Distributed Discount Amount field read only
2026-05-29 12:59:31 +05:30
Nabin Hait
92983255b3 refactor(pick_list): move mapping functions to mapper.py 2026-05-29 12:45:32 +05:30
Nabin Hait
7b9f61e058 refactor(material_request): move mapping functions to mapper.py 2026-05-29 12:41:44 +05:30
Nishka Gosalia
2e97f36f61 Merge pull request #55399 from nishkagosalia/gh-55104-fix
fix: over order allowance setting fix
2026-05-29 12:37:27 +05:30
Nabin Hait
0968adafc8 refactor(purchase_receipt): move mapping functions to mapper.py 2026-05-29 12:36:08 +05:30
Nabin Hait
220b6fe572 refactor(delivery_note): re-export make_inter_company_transaction 2026-05-29 12:33:42 +05:30
Nabin Hait
8192d70f83 refactor(delivery_note): move mapping functions to mapper.py 2026-05-29 12:32:57 +05:30
Nabin Hait
2cf51a0367 refactor(request_for_quotation): move mapping functions to mapper.py 2026-05-29 12:26:55 +05:30
nishkagosalia
512c95529e fix: Make Distributed Discount Amount field read only 2026-05-29 12:24:47 +05:30
Nabin Hait
01e7224210 refactor(supplier_quotation): move mapping functions to mapper.py 2026-05-29 12:23:31 +05:30
Nabin Hait
18d1a88a64 refactor(purchase_order): move mapping functions to mapper.py 2026-05-29 12:22:17 +05:30
Nabin Hait
cfd37f22db refactor(customer): move mapping functions to mapper.py 2026-05-29 12:19:09 +05:30
Nabin Hait
cfff10463c refactor(quotation): move mapping functions to mapper.py 2026-05-29 12:16:53 +05:30
Nabin Hait
25e3d6042a refactor(sales_order): move mapping functions to mapper.py
Separates all make_*/create_* document-creation functions from the
SalesOrder controller into a dedicated mapper.py for better separation
of concerns. Re-exports from sales_order.py preserve backward compat.
2026-05-29 12:14:27 +05:30
nishkagosalia
30011963bc fix: over order allowance setting fix 2026-05-29 12:09:19 +05:30
MochaMind
5d9ec20dff chore: update POT file (#55352) 2026-05-29 11:01:44 +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
khushi8112
69ee7e93d8 fix: item master list view UI cleanup 2026-05-29 02:25:38 +05:30
Nabin Hait
a12d666037 refactor: extract child item update cluster into ChildItemUpdater service
accounts/services/child_item_update.py:
- ChildItemUpdater class with update() entry point encapsulating all
  the logic from the old update_child_qty_rate free function; nested
  closures (check_doc_permissions, validate_workflow_conditions,
  validate_quantity_and_rate, validate_fg_item_for_subcontracting)
  become private methods on the class
- update_child_qty_rate kept as @frappe.whitelist() thin wrapper;
  re-exported from accounts_controller.py so the JS whitelist path
  "erpnext.controllers.accounts_controller.update_child_qty_rate"
  and test imports continue to work
- Free functions: set_order_defaults, validate_child_on_delete,
  update_bin_on_delete, validate_and_delete_children, get_allow_zero_qty,
  get_child_item_change_state, is_child_item_unchanged,
  update_child_item_rate_and_discount, update_child_item_uom_and_weight,
  check_if_child_table_updated

accounts_controller.py drops from ~2356 to ~1796 lines.
2026-05-28 20:38:25 +05:30
Nabin Hait
c7b4806117 refactor: extract party validation and inter-company logic into service classes
- accounts/services/party_validation.py: PartyValidator class with
  single validate() entry point covering party frozen/disabled check,
  party accounts, currency, party account currency, address/contact,
  and company-linked addresses. AccountsController.get_party() kept
  as a shim (called by advances and payment_schedule services).

- accounts/services/internal_transfer.py: InternalTransferService
  class with validate() (reference + transaction rate + pricing/tax
  disablers), set_account() for unrealized P&L, is_internal_transfer(),
  process_common_party_accounting(), and get_common_party_link().
  Shims retained on AccountsController for the three methods called
  by selling/buying/stock controllers and GL composers.

accounts_controller.py drops from ~2722 to ~2356 lines.
2026-05-28 20:10:45 +05:30
Khushi Rawat
fd7a97f424 Merge pull request #55385 from frappe/revert-55360-validate-pe-cancel-on-bank-reconciliation
Revert "fix: block cancellation if reconciled with a Bank Transaction"
2026-05-28 17:45:54 +05:30
rohitwaghchaure
15d71ccc0b Merge pull request #55302 from rohitwaghchaure/fixed-stock-entry-bom-issue
fix: 'NoneType' object has no attribute 'material_transferred_for_manufacturing'
2026-05-28 17:18:56 +05:30
Nabin Hait
6c1ac51d7a refactor: convert payment schedule and billing validation to service objects
Introduce PaymentScheduleService and BillingValidationService classes so
call sites read PaymentScheduleService(doc).set_payment_schedule() instead
of the opaque self.set_payment_schedule() shim. Removes 15 shim methods
from AccountsController and updates all 11 call sites across the codebase.
2026-05-28 17:13:23 +05:30
Nabin Hait
8aaa3a72ef refactor: convert tax cluster to TaxService class in taxes.py
Replaces the shim+free-function pattern with a TaxService class so
callers like TaxService(self).set_taxes() make the source location
explicit. Class lives in taxes.py above the existing free functions.
Deletes the intermediate tax_service.py. Updates AccountsController,
sales_invoice, pos_invoice, subscription, and both GL composers to
call TaxService directly.
2026-05-28 16:53:03 +05:30
rohitwaghchaure
feee40b30a Merge pull request #55323 from aerele/fix/support-#68170
fix(stock): change valuation rate column label in stock ledger entry/report
2026-05-28 16:46:09 +05:30
archielister
e7c695e0ac fix(stock): get_actual_qty during cancellations (#55388) 2026-05-28 16:45:50 +05:30
Rohit Waghchaure
f4516a2a7c fix: 'NoneType' object has no attribute 'material_transferred_for_manufacturing' 2026-05-28 16:45:32 +05:30
Loic Oberle
e1bfffb72c refactor(sales_invoice): replace sql with qb in get_discounting_status (#55378) 2026-05-28 16:43:17 +05:30
Loic Oberle
ead0c14a12 refactor(sales_invoice): replace sql with qb in check_if_reutrn_invoi… (#55374) 2026-05-28 16:36:46 +05:30
Khushi Rawat
75e9cd9e8f Revert "fix: block cancellation if reconciled with a Bank Transaction" 2026-05-28 15:19:42 +05:30
Nishka Gosalia
774756c3f4 Merge pull request #55367 from nishkagosalia/gh-55050
fix(UX): Move title field to More Info
2026-05-28 15:08:54 +05:30
Mihir Kandoi
10384b3b2e fix: new bom version should not recalculate operations through routing (#55370) 2026-05-28 09:29:37 +00:00
nishkagosalia
34c24b86fa fix(UX): Move title field to More Info 2026-05-28 14:38:08 +05:30
Loïc Oberle
2c0f6c50df refactor(sales_invoice): replace sql with qb in get_mode_of_payment_info
Replace sql with query builder to ensure compatibility with postgres

Contribution made on behalf of Orange SA
2026-05-28 10:52:46 +02:00
Nishka Gosalia
acb10299db Merge pull request #55340 from nishkagosalia/gh-55106
feat: over order allowance setting
2026-05-28 14:18:33 +05:30
nishkagosalia
355d71dbd2 feat: over order allowance setting 2026-05-28 12:54:45 +05:30
Nabin Hait
0ee0d6f0c5 refactor: extract tax cluster from AccountsController into services/taxes.py
Moves set_taxes, is_pos_profile_changed, set_taxes_and_charges,
append_taxes_from_master, append_taxes_from_item_tax_template,
get_tax_row, set_other_charges, validate_enabled_taxes_and_charges,
validate_tax_account_company, get_tax_map, get_amount_and_base_amount,
get_tax_amounts, and make_discount_gl_entries into free functions in
accounts/services/taxes.py. AccountsController retains thin shims.
Removes now-unused parse_json import.
2026-05-28 12:32:04 +05:30
Khushi Rawat
49567bff78 Merge pull request #55360 from khushi8112/validate-pe-cancel-on-bank-reconciliation
fix: block cancellation if reconciled with a Bank Transaction
2026-05-28 11:26:22 +05:30
khushi8112
63ff92cb7c fix: test case 2026-05-28 01:49:56 +05:30
khushi8112
6f5852eabf fix: block cancellation if reconciled with a Bank Transaction 2026-05-28 01:27:05 +05:30