Commit Graph

60661 Commits

Author SHA1 Message Date
Raffael Meyer
bdf586c670 fix: error message wording (#57495) 2026-07-27 11:15:18 +00:00
Mihir Kandoi
3f93887ec8 Merge pull request #57492 from frappe/production-plan-recalculate-bin
fix: recalculate whole bin in Production Plan reservation patch
2026-07-27 16:01:04 +05:30
Mihir Kandoi
88b02130e7 fix: recalculate whole bin for Production Plan raw material items
projected_qty is derived from every bin quantity, so refreshing only
reserved_qty_for_production_plan leaves it stale wherever another field
had drifted. Call Bin.recalculate_values() instead.

Renamed so the patch re-runs on sites that already applied
recompute_production_plan_reserved_qty.
2026-07-27 15:26:25 +05:30
Raffael Meyer
8b37c52187 fix(crm): align Opportunity status checks with Quotation statuses (#57489) 2026-07-27 09:20:22 +00:00
Mihir Kandoi
70fa8c0c2a Merge pull request #57485 from frappe/stock-ageing-batch-slot-pooling
fix: pool batch slot values on every run, not only when negative
2026-07-27 13:53:23 +05:30
Mihir Kandoi
545262c5d4 test: assert batch pooling preserves the group total on a repeating rate 2026-07-27 13:42:25 +05:30
Mihir Kandoi
cedaaa3a00 fix: pool batch slot values on every run, not only when negative
A batch is one valuation pool, so any per-slot value difference within a
batch is stale detail from the report's own age slots, not real valuation.
The rebalance only ran when consumption had already driven a slot negative,
so a batch whose receipts landed at different rates kept a skewed split
across age buckets (one bucket free, another double-priced) while the total
stayed correct.

Drop the negative-slot precondition and always spread a batch's pooled value
over its slots in proportion to qty. Redistribution preserves group totals,
so buckets still sum to Stock Balance; only the split across ages changes.
2026-07-27 13:37:08 +05:30
pandiyan
5008e6126f fix: stop storing raw title template on subcontracting orders
subcontracting order and subcontracting inward order carry a hidden
title field defaulting to "{supplier_name}" / "{customer_name}", while
their title_field points at supplier_name / customer_name. document.
set_title_field() substitutes the template only when title_field is
"title", so every record stores the placeholder verbatim.

drop the dead default and hidden flags, move title into the other info
tab to match purchase order, and add a patch to repair existing rows.
2026-07-27 13:18:31 +05:30
Mihir Kandoi
273e9f2431 Merge pull request #57463 from aerele/fix/sco-closed-reserved-qty
fix(subcontracting): release raw-material reservation when closing a subcontracting order
2026-07-27 12:08:37 +05:30
ruthra kumar
d3448ef9a2 Merge pull request #57476 from ruthra-kumar/date_configurable_err_reversal
refactor: configurable date in reverse ERR journals
2026-07-27 11:40:32 +05:30
ruthra kumar
1a558ce641 refactor(test): manually submit reverse err journal 2026-07-27 11:18:41 +05:30
Sudharsanan11
e4b8065a69 test(subcontracting): cover reservation release on closing a subcontracting order
close a partially-received sco with a reserve warehouse and assert the
raw-material reservation is released and projected qty recovers.
2026-07-27 11:13:17 +05:30
Sudharsanan11
db91a79d31 fix(subcontracting): release raw-material reservation when closing a subcontracting order
the bin reserved-qty recalc filtered out closed purchase orders but not
closed subcontracting orders, so closing a partially-received sco kept the
reservation for the unreceived qty and left projected qty understated.
apply the same closed-status filter to the subcontracting order path.
2026-07-27 11:13:17 +05:30
ruthra kumar
0be33e4132 refactor: configurable date in reverse ERR journals 2026-07-27 11:11:38 +05:30
rohitwaghchaure
f077d2edc0 fix: GL entries for purchase expense with LCV (#57475) 2026-07-26 23:08:35 +05:30
MochaMind
fd37bc3ff8 chore: update POT file (#57469) 2026-07-26 16:10:52 +02:00
Shllokkk
371ab1db61 Merge pull request #57443 from Shllokkk/rename-ar-ap-report-filters
fix: rename misleading filter labels in AR/AP reports
2026-07-26 17:16:42 +05:30
Shllokkk
be27a918e6 Merge pull request #57320 from Shllokkk/create-payment-entries-from-payable-report
fix: show create payment entries as an inner button on row selection
2026-07-26 17:14:35 +05:30
Shllokkk
e08e119739 test: assert operating cost is propagated to routing operations 2026-07-26 16:15:53 +05:30
Shllokkk
eb9afa40ea fix: update operating cost when propagating workstation hour rate to routing 2026-07-26 16:03:09 +05:30
Shllokkk
c6a16495c0 Merge pull request #57466 from Shllokkk/routing-hour-rate-operating-cost
fix: recalculate operating cost on hour rate change in routing
2026-07-26 14:06:28 +05:30
Shllokkk
598f6f0f4e fix: recalculate operating cost on hour rate change in routing 2026-07-26 13:11:11 +05:30
mergify[bot]
8c24c5bd68 fix: enable the 'Include Zero Stock Items' filter by default to show zero-stock items in the Stock Balance report (backport #57458) (#57459)
fix: enable the 'Include Zero Stock Items' filter by default to show zero-stock items in the Stock Balance report (#57458)

(cherry picked from commit 4e8f5de5cb)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-07-25 08:27:19 +05:30
Nabin Hait
208a07e19e Merge pull request #57452 from nabinhait/fix-child-qty-rate-type-hint
fix: accept list payload for trans_items in update_child_qty_rate
2026-07-24 21:54:18 +05:30
Shllokkk
f13cd00494 fix: migrate stored AR/AP ageing filter to renamed field 2026-07-24 18:45:07 +05:30
Nabin Hait
d73ff0a2bf fix: accept list payload for trans_items in update_child_qty_rate
The whitelisted endpoint declared trans_items as str, so Frappe's typing
validation raised FrappeTypeError when the client sent the items as a
JSON list. ChildItemUpdater.update already handles both via
frappe.parse_json, so widen the wrapper's hint to str | list.
2026-07-24 17:33:58 +05:30
khushi8112
2d731b3232 fix: remove duplicate supplier name in Bordered format
The right-column Custom HTML block re-displayed the vendor name a
second time. In the source Purchase Order design that block was part
of an address card (name + mailing address together); Request for
Quotation has no per-supplier address field, so after dropping the
address the block became a bare, purposeless repeat of the name
already shown at the top of the left column. Classic, Modern, and
Modern with Images each show it once - Bordered now matches.

Addresses the Greptile review comment on this PR.
2026-07-24 17:26:39 +05:30
khushi8112
fe11252a4d feat: add four Request for Quotation print formats built with the print format builder
Request for Quotation has no pricing fields at all (no rate, amount,
grand_total, in_words), so this is a structurally simplified version
of the Bordered/Classic/Modern/Modern with Images designs rather than
a straight field-swap: Sub Total/Discount/Tax/Grand Total/In Words
sections dropped entirely, item table shows Item/Code/Quantity only.
Supplier fields point at the doctype's own `vendor` field (matching
the existing request_for_quotation_with_item_image standard format's
convention), items table bound to Request for Quotation Item, status
field carries the real RFQ status list, no letter head embedded.
2026-07-24 17:20:28 +05:30
khushi8112
8c3e773f89 feat: add four Quotation print formats built with the print format builder
Adapted from the Sales Order formats: customer_name relabeled to
"Party Name" (Quotation supports both Customer and Lead via
quotation_to), delivery_date mapped to valid_till, items table bound
to Quotation Item, status field carries the real Quotation status
list, no letter head embedded.
2026-07-24 17:09:11 +05:30
khushi8112
f9fe407d42 fix: correct supplier_name/in_words field type across all four formats
Both are Data on the Purchase Invoice doctype, not Small Text
(carried over from the Sales Invoice formats these were adapted from,
where Small Text is correct - Sales Invoice's own doctype defines it
that way). No rendering impact: Data.html and Field.vue never branch
on Small Text vs Data. Addresses the Greptile review comment on
purchase_invoice_bordered.json, and applies the same fix to the other
three formats that had the identical issue.
2026-07-24 16:57:38 +05:30
khushi8112
dc5f445bae fix: correct supplier_name/in_words field type on Purchase Order formats
Both are Data on the Purchase Order doctype; carried over as Small
Text from the Sales Order formats these were adapted from. No
rendering impact - caught via a proactive fieldtype audit after a
Greptile comment on a downstream PR flagged the same pattern on
Purchase Invoice.
2026-07-24 16:57:19 +05:30
khushi8112
8ef7e11332 fix: correct customer_name/in_words field type on Delivery Note formats
Both are Data on the Delivery Note doctype; carried over as Small Text
from the Sales Order formats these were adapted from. No rendering
impact - caught via a proactive fieldtype audit after a Greptile
comment on a downstream PR flagged the same pattern on Purchase
Invoice.
2026-07-24 16:56:39 +05:30
khushi8112
f81a70baff fix: correct customer_name/in_words field type on Sales Order formats
Both are Data on the Sales Order doctype; they were carried over as
Small Text from the Sales Invoice formats they were adapted from,
where that type is correct (Sales Invoice defines them as Small Text).
No rendering impact — caught via a proactive fieldtype audit after a
Greptile comment on a downstream PR flagged the same pattern on
Purchase Invoice.
2026-07-24 16:55:23 +05:30
khushi8112
b025a5f8c2 feat: add four POS Invoice print formats built with the print format builder
Adapted from the Sales Invoice formats: nearly identical field shape
(customer_name, address_display, company_address_display, posting_date,
due_date, total, in_words all exist natively on POS Invoice), so only
the items table (bound to POS Invoice Item), status field options, and
title text needed changing. Each format correctly relabels as "Credit
Note" instead of "POS Invoice" when is_return is set. Field types for
customer_name/in_words corrected to Data to match POS Invoice's own
doctype definition (Sales Invoice defines these as Small Text; POS
Invoice does not). No letter head embedded.
2026-07-24 16:54:16 +05:30
khushi8112
a6829f64da feat: add four Purchase Invoice print formats built with the print format builder
Adapted from the Sales Invoice formats for the buying side: customer
fields swapped for supplier fields, items table bound to Purchase
Invoice Item, status field carries the real Purchase Invoice status
list. Each format correctly relabels as "Debit Note" instead of
"Purchase Invoice" when is_return is set, mirroring the Credit Note
labeling on the Sales Invoice formats. No letter head embedded.
2026-07-24 16:44:40 +05:30
khushi8112
273eea8034 feat: add four Purchase Order print formats built with the print format builder
Adapted from the Sales Order formats for the buying side: customer
fields swapped for supplier fields, delivery_date mapped to
schedule_date (Required By), items table bound to Purchase Order
Item, status field carries the real Purchase Order status list, no
letter head embedded.
2026-07-24 16:33:21 +05:30
khushi8112
0dbedbfb25 feat: add four Delivery Note print formats built with the print format builder
Adapted from the Sales Order formats: transaction_date/delivery_date
mapped to Delivery Note's own posting_date and po_no (customer's PO
number), items table bound to Delivery Note Item, status field carries
the real Delivery Note status list, no letter head embedded.
2026-07-24 16:18:35 +05:30
khushi8112
ef50991d18 fix: correct Sales Order print format bindings and tidy the Modern footer
- items table options: Sales Invoice Item -> Sales Order Item (all four formats)
- status field options: replace the Sales Invoice status list with the actual
  Sales Order statuses (Modern, Modern with Images)
- drop the redundant document-number field from the Modern footer; the header
  already shows it
2026-07-24 15:38:21 +05:30
Shllokkk
e99425b7c4 fix: rename misleading filter labels in AR/AP reports 2026-07-24 15:32:51 +05:30
Mihir Kandoi
3e15fe0dfd Merge pull request #57435 from aerele/fix-party-dashboard-user-permission
fix(accounts): respect user permissions in party dashboard company list
2026-07-24 15:00:00 +05:30
khushi8112
df6c98a187 feat: add four Sales Order print formats built with the print format builder
Adapted from the new Sales Invoice Bordered/Classic/Modern/Modern with
Images formats: invoice-specific fields (posting_date, due_date, the
Sales Invoice/Credit Note title) mapped to their Sales Order
equivalents, no letter head embedded.
2026-07-24 13:08:05 +05:30
Deepesh Garg
a04725eb04 Merge pull request #57296 from deepeshgarg007/user_change
fix: Ignore permission while deleting user permission
2026-07-24 12:29:58 +05:30
pandiyan
903c87bcaa fix: respect user permissions in party dashboard company list
use frappe.get_list instead of frappe.get_all in get_dashboard_info so
the company list honors user permissions. previously, a party with
invoices across multiple companies would raise "User don't have
permissions to select/read this account" for users restricted to a
subset of companies, since get_party_account was called for companies
the user could not access.

fixes frappe/erpnext#57428
2026-07-24 12:22:08 +05:30
Deepesh Garg
314796633f Merge branch 'develop' into user_change 2026-07-24 12:14:34 +05:30
khushi8112
15dee35adc fix: address review feedback on new Sales Invoice print formats
- drop dev-site-specific letter_head references so a fresh install picks its own default
- add missing row_condition on Modern with Images' tax repeater
- standardize Sub Total on total (matches summed item amounts) and In Words on the transaction-currency field across all four formats
2026-07-24 11:37:18 +05:30
khushi8112
4c83b7c5f1 feat: add four Sales Invoice print formats built with the print format builder 2026-07-24 10:52:40 +05:30
Khushi Rawat
5bf1c506a5 Merge pull request #57382 from khushi8112/fix/mt940-per-transaction-reference
fix: map MT940 per-transaction reference from :61: customer_reference
2026-07-24 10:36:35 +05:30
Kaushal Shriwas
87a403ae01 test(selling): deactivate leaked sales order workflow before item removal test 2026-07-23 21:19:52 +05:30
Kaushal Shriwas
5b1c4d22e0 test(selling): cover item removal without cancel and delete perms 2026-07-23 20:42:56 +05:30
Kaushal Shriwas
86ba4395fb fix(selling): don't require cancel and delete perms to remove items via Update Items 2026-07-23 20:42:45 +05:30