Commit Graph

58420 Commits

Author SHA1 Message Date
Rohit Waghchaure
8db1eb0d27 fix: allow specific methods to run 2026-06-08 16:06:16 +05:30
Ankush Menat
ba936eefab fix: Add authorization checks on internal functions (#55709) 2026-06-08 14:49:32 +05:30
Mihir Kandoi
5eb9461cfd fix: remove item name from update items dialog item code column (#55718)
Co-authored-by: Abdullah <frappe@LAPTOP-4E788RM4.localdomain>
2026-06-08 13:54:42 +05:30
Nabin Hait
e1e588e416 Merge pull request #55627 from Shllokkk/inact-cust-report
fix(inactive_customers): add allowlist for doctype filter and migrate…
2026-06-08 13:20:09 +05:30
Mihir Kandoi
00880eb657 fix: disallow BOM finished good item in secondary items table (#55710)
The FG item produced by a BOM should not also appear as a secondary
item (Co-Product/By-Product/Scrap/Additional Finished Good). When an
Additional Finished Good shared the main FG's item code, the resulting
Stock Entry ended up with two rows of the same item carrying different
valuation rates. Validate against it instead, exempting legacy rows so
migrated BOMs can still be re-saved.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 07:47:32 +00:00
Mihir Kandoi
ae6aef91bd feat: add item where used report (#55660) 2026-06-08 07:42:37 +00:00
Diptanil Saha
faf92b1368 fix(cheque_print_template): print format creation from cheque print template requires system manager (#55708) 2026-06-08 07:23:26 +00:00
Mihir Kandoi
a52c8fdaea feat: make Product Bundle submittable and versioned (#55702)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 12:19:42 +05:30
rohitwaghchaure
030e1a77e6 Merge pull request #55645 from aerele/fix/support-70407
fix: bypass project permission check when updating consumed material …
2026-06-08 12:06:20 +05:30
Pandiyan P
d2306b1b29 fix: restrict already invoiced qty in intercompany purchase invoice (#55639) 2026-06-08 11:59:11 +05:30
Nabin Hait
601f39dda7 test(inactive_customers): remove non-positive days test case 2026-06-08 11:55:32 +05:30
kaulith
047e4faa90 fix: update items respect workflow "Only Allow Edit For" role (#55662) 2026-06-08 11:53:12 +05:30
Nabin Hait
8d7edafc99 refactor(inactive_customers): rename sales alias to sales_doctype 2026-06-08 11:52:56 +05:30
Nabin Hait
8f15dd4d5d refactor(inactive_customers): use descriptive aliases and add tests
Rename single-letter query-builder aliases (C, DT) to readable names
(customer, sales) and add report tests covering the column contract,
validation guards, and the days-since-last-order threshold.
2026-06-08 11:45:34 +05:30
ruthra kumar
bf769a52c0 Merge pull request #55665 from Shllokkk/add-ac-ignore-permissions-fix
fix: drop ignore_permissions handling from add_ac
2026-06-08 11:44:23 +05:30
MochaMind
1e238678d8 chore: update POT file (#55692) 2026-06-07 23:28:33 +00:00
Jatin3128
bb36e956ac fix(subscription): bill on creation and keep status in sync with invoices (#55615) 2026-06-08 04:24:56 +05:30
Raffael Meyer
5641f37381 ci: add review comments on gettext files (#55699) 2026-06-07 22:11:45 +00:00
Nabin Hait
577a79471b Merge pull request #55688 from nabinhait/pi-services
refactor(accounts): extract Purchase Invoice services
2026-06-07 23:28:11 +05:30
Nabin Hait
c2e472b03c refactor(accounts): extract Purchase Invoice BillingStatusService
Move PR billing sync and provisional-entry cancellation into
accounts/doctype/purchase_invoice/services/billing_status.py:

- update_billing_status_in_pr, get_pr_details_billed_amt and
  cancel_provisional_entries move into the service (internal-only;
  on_submit/on_cancel and make_gl_entries repointed)
- the service imports the shared allocation helpers from
  purchase_receipt/services/billing_status.py (PR owns the shared
  buying billing logic)
- also repoints the validate_expense_account call in
  validate_for_repost missed in the ExpenseAccountService commit

No behaviour change.
2026-06-07 23:02:43 +05:30
Nabin Hait
e5f9698055 refactor(accounts): extract Purchase Invoice ExpenseAccountService
Move expense-account resolution into
accounts/doctype/purchase_invoice/services/expense_account.py:

- set_expense_account stays as a controller delegator (dispatched from
  accounts_controller.py) and force_set_against_expense_account stays
  (called by repost_accounting_ledger)
- validate_expense_account and set_against_expense_account move into the
  service; validate() repointed (the unused force kwarg on
  set_against_expense_account is dropped with the method)

Pre-existing raw SQL (SRBNB-booked-in-PR check) moved verbatim.
No behaviour change.
2026-06-07 23:02:43 +05:30
Nabin Hait
e45b027a22 Merge pull request #55687 from nabinhait/pr-services
refactor(stock): extract Purchase Receipt services
2026-06-07 22:40:31 +05:30
Nabin Hait
78cc06f127 Merge pull request #55101 from Abdeali099/fix-blank-cell-period-column
fix: handle blank rows in financial statement formatter
2026-06-07 22:27:50 +05:30
Nabin Hait
00646b7ed3 Merge pull request #54684 from AhmedAbokhatwa/profit-loss-report
fix(profit-loss-report): handle zero base values and prevent null% display
2026-06-07 22:25:57 +05:30
Nabin Hait
9267bd9eea Merge pull request #55686 from nabinhait/po-services
refactor(buying): extract Purchase Order services
2026-06-07 22:20:31 +05:30
Nabin Hait
298d3d9016 Merge pull request #55685 from nabinhait/dn-services
refactor(stock): extract Delivery Note services
2026-06-07 22:17:47 +05:30
Nabin Hait
a9f0ec83a4 Merge pull request #55684 from nabinhait/so-services
refactor(selling): extract Sales Order services
2026-06-07 22:16:24 +05:30
Nabin Hait
f33de37da0 refactor(stock): extract Purchase Receipt StockReservationService
Move stock reservation on PR submission into
stock/doctype/purchase_receipt/services/stock_reservation.py:

- reserve_stock, reserve_stock_for_sales_order,
  reserve_stock_for_production_plan and get_production_plan_references
  move into the service (internal-only; on_submit repointed)
- delegates to the Sales Order controller contract
  (create_stock_reservation_entries) and the shared StockReservation
  class

No behaviour change.
2026-06-07 09:55:15 +05:30
Nabin Hait
2a6d9be18a refactor(stock): extract Purchase Receipt ProvisionalAccountingService
Move provisional accounting for non-stock items into
stock/doctype/purchase_receipt/services/provisional_accounting.py:

- add_provisional_gl_entry stays as a controller delegator (called as a
  doc method by both the PR and PI GL composers)
- validate_provisional_expense_account moves into the service;
  validate() repointed

No behaviour change.
2026-06-07 09:54:28 +05:30
Nabin Hait
d1765e85aa refactor(stock): extract Purchase Receipt BillingStatusService
Move PR↔PI billed-amount allocation into
stock/doctype/purchase_receipt/services/billing_status.py. Purchase
Receipt owns the shared buying billing logic; Purchase Invoice imports
from the service module:

- update_billing_status stays as a controller delegator (called by
  Purchase Invoice flows and v13 patches)
- the module-function family moves verbatim:
  update_billed_amount_based_on_po, update_billing_percentage,
  get_billed_amount_against_pr/_po,
  get_purchase_receipts_against_po_details,
  get_billed_qty_amount_against_purchase_receipt/_order,
  adjust_incoming_rate_for_pr, get_item_wise_returned_qty
- imports repointed in purchase_invoice.py (top-level + lazy) and
  patches/v15_0/recalculate_amount_difference_field.py

No behaviour change.
2026-06-07 09:53:37 +05:30
Nabin Hait
3df8e7bfe6 refactor(buying): extract Purchase Order StatusService
Move status transitions and receiving progress into
buying/doctype/purchase_order/services/status.py:

- update_status (module-level whitelisted wrapper + list view) and
  update_receiving_percentage (called by child_item_update) stay as
  controller delegators
- check_modified_date moves into the service (internal to update_status)

No behaviour change.
2026-06-07 09:46:28 +05:30
Nabin Hait
f7460f7be3 refactor(buying): extract Purchase Order DropShipService
Move drop-ship item handling into
buying/doctype/purchase_order/services/drop_ship.py:

- update_dropship_received_qty stays as a whitelisted controller
  delegator (called from purchase_order.js)
- update_delivered_qty_in_sales_order, has_drop_ship_item and
  set_received_qty_to_zero_for_drop_ship_items move into the service
  (internal-only; on_cancel and the module-level update_status wrapper
  repointed)

No behaviour change.
2026-06-07 09:45:38 +05:30
Nabin Hait
920abdc0e2 refactor(buying): extract Purchase Order SubcontractingService
Move subcontracting integration into
buying/doctype/purchase_order/services/subcontracting.py:

- set_service_items_for_finished_goods (called by production plan
  work-order planning) and can_update_items (onload + child_item_update)
  stay as controller delegators
- validate_fg_item_for_subcontracting, auto_create_subcontracting_order
  and update_subcontracting_order_status move into the service;
  validate(), on_submit and update_status repointed

No behaviour change.
2026-06-07 09:44:59 +05:30
Nabin Hait
e0e3dcc8bf refactor(stock): extract Delivery Note PackingService
Move packing slip / product bundle handling into
stock/doctype/delivery_note/services/packing.py:

- validate_packed_qty stays as a controller delegator (called via
  hasattr contract in accounts/utils.py); has_unpacked_items stays
  for onload/JS
- get_product_bundle_list and cancel_packing_slips move into the
  service (internal-only; on_cancel repointed)

Pre-existing raw SQL in cancel_packing_slips moved verbatim.
No behaviour change.
2026-06-07 09:34:21 +05:30
Nabin Hait
9d020365e0 refactor(stock): extract Delivery Note BillingStatusService
Move billing status tracking and return invoicing into
stock/doctype/delivery_note/services/billing_status.py:

- update_status and update_billing_status stay as controller delegators
  (whitelisted update_delivery_note_status wrapper, v13 patches and
  Sales Invoice call them)
- make_return_invoice moves into the service (internal to on_submit)
- the update_billed_amount_based_on_so module function moves to the
  service module; the sales_invoice.py import is repointed
- drops stale Document/DocType/Abs imports

Pre-existing raw SQL in update_billed_amount_based_on_so moved verbatim.
No behaviour change.
2026-06-07 09:33:57 +05:30
Nabin Hait
0f876c10aa refactor(selling): extract Sales Order SubcontractingService
Move subcontracting (inward) integration into
selling/doctype/sales_order/services/subcontracting.py:

- can_update_items stays as a controller delegator (onload data +
  child_item_update.py caller)
- validate_fg_item_for_subcontracting and
  update_subcontracting_order_status move into the service; validate()
  and StatusService.update_status repointed

No behaviour change.
2026-06-06 23:13:52 +05:30
Nabin Hait
7f3ddfb3a1 refactor(selling): extract Sales Order DeliveryScheduleService
Move delivery schedule management into
selling/doctype/sales_order/services/delivery_schedule.py:

- get_delivery_schedule and create_delivery_schedule stay as whitelisted
  controller delegators (called from sales_order.js)
- update_delivery_date_based_on_schedule, delete_delivery_schedule_items
  and delete_removed_delivery_schedule_items move into the service
  (internal-only; on_submit/on_cancel repointed)

No behaviour change.
2026-06-06 23:13:12 +05:30
Nabin Hait
268d98d5f7 refactor(selling): extract Sales Order StatusService
Move status computation and progress tracking into
selling/doctype/sales_order/services/status.py:

- update_status, update_delivery_status, update_picking_status and
  set_indicator stay as controller delegators (whitelisted wrapper,
  purchase_order/pick_list/child_item_update callers, portal contract)
- check_modified_date moves into the service (internal to update_status)
- the billing/delivery/advance status defaults in validate() move to
  StatusService.set_default_statuses()

No behaviour change.
2026-06-06 23:12:28 +05:30
Nabin Hait
1be84112a7 refactor(selling): extract Sales Order StockReservationService
Move stock reservation logic out of the Sales Order controller into
selling/doctype/sales_order/services/stock_reservation.py:

- validate_reserved_stock, enable_auto_reserve_stock and the
  get_unreserved_qty module function move into the service (internal-only,
  callers repointed; stock_reservation_entry.py import updated)
- has_unreserved_stock, create/cancel_stock_reservation_entries and
  update_reserved_qty stay on the controller as thin delegators
  (whitelisted/JS-reachable or called from selling_controller and
  child_item_update)

No behaviour change.
2026-06-06 23:08:03 +05:30
Nabin Hait
fcff212eec Merge pull request #55679 from nabinhait/email-options-in-appointment
fix: set options Email for customer_email field in appointment
2026-06-06 21:11:53 +05:30
Nabin Hait
9b1157c914 fix: set options Email for customer_email field in appointment 2026-06-06 20:41:16 +05:30
Diptanil Saha
0ba2961103 fix: updated role based permission for terms and conditions doctype (#55674) 2026-06-06 11:44:08 +00:00
Shllokkk
37d2adc74b fix: drop ignore_permissions handling from add_ac 2026-06-05 20:49:17 +05:30
rohitwaghchaure
859d4caae4 Merge pull request #55661 from rohitwaghchaure/fixed-naming-series-issue
fix: naming series issue
2026-06-05 20:43:15 +05:30
Rohit Waghchaure
3a50056968 fix: naming series issue 2026-06-05 18:52:18 +05:30
rohitwaghchaure
e1f6bb70bc Merge pull request #55651 from rohitwaghchaure/fixed-rename-files
refactor: rename files
2026-06-05 15:56:37 +05:30
Nabin Hait
734fe874f2 Merge pull request #55647 from nabinhait/stock-controller-refactoring
refactor(stock): extract StockController into focused services
2026-06-05 15:52:00 +05:30
Khushi Rawat
5aab5502f0 feat: add side-by-side defaults comparison view in item defaults grid (#55017)
* feat: add side-by-side defaults comparison view in item defaults grid

* fix: coderabbit suggested changes

* fix: change label of the fields

* fix: description design
2026-06-05 15:43:57 +05:30
Khushi Rawat
5873f55cf0 feat: item prices list view (#54853)
* feat: add item prices tab to Item doctype

* feat: item form pricing tab

* fix: remove action button for edit item price

* fix: prevent stale item price rendering after form navigation

* fix: remove stale call to deleted edit_prices_button function

* fix: item price list fixes

* fix: show filtered price list

* fix: show filtered price list
2026-06-05 15:42:18 +05:30
Mihir Kandoi
df03524b19 [codex] Show in-transit status for add-to-transit Stock Entries (#55644) 2026-06-05 10:08:22 +00:00