60899 Commits

Author SHA1 Message Date
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
Mihir Kandoi
ba593f918a Merge pull request #57335 from aerele/fix/report-date-validation-dry
refactor: reuse shared date range validation across reports
2026-07-23 19:54:34 +05:30
Nabin Hait
50e361e10d Merge pull request #57263 from nabinhait/proforma-invoice
feat(selling): Proforma Invoice against Sales Order
2026-07-23 19:48:44 +05:30
Mihir Kandoi
e6ddb91ce5 Merge pull request #57410 from mihir-kandoi/revert-default-warehouse-names
revert: canonical default warehouse names (#57392, #57409)
2026-07-23 19:41:05 +05:30
Nabin Hait
0b71c943c1 fix(selling): don't email cancelled proformas or copy their PDF
Address review findings:
- send_proforma_email rejects non-issued proformas, and the tab suppresses the
  action for cancelled rows, so a voided document can't be sent to a customer
- mark proforma_pdf as no_copy and disable amendment (a proforma is created
  only from a Sales Order), so a copied proforma can't carry the original's PDF
  and number
2026-07-23 19:17:21 +05:30
Nabin Hait
e4fb5ed3c4 fix(selling): guard proforma against unsubmitted SO and missing PDF
Address review findings:
- make_proforma_invoice: reject a non-submitted Sales Order (the whitelisted
  endpoint was previously only JS-gated on docstatus)
- send_proforma_email: throw a clear error when the attached PDF File is missing
  instead of passing a null fid to sendmail
2026-07-23 18:59:08 +05:30
ervishnucs
170803b041 refactor: reuse shared date range validation across reports 2026-07-23 18:31:50 +05:30
Mihir Kandoi
e4561b1431 Merge pull request #57412 from aerele/customer-pick-list
fix: map pick list customer to delivery note when no sales order
2026-07-23 18:24:19 +05:30
Mihir Kandoi
bf309f65d4 Merge pull request #57413 from aerele/fix-batch-oldest-expiry-typeerror
fix: typeerror in get_batches_by_oldest for mixed batch expiry
2026-07-23 18:23:10 +05:30
pandiyan
62c9f8ee3e fix: typeerror in get_batches_by_oldest for mixed batch expiry
sort on (expiry is none, expiry) so a null expiry_date is never
order-compared against a datetime.date, which raised typeerror in
python 3 when a warehouse held both dated and never-expiring batches.
2026-07-23 17:48:22 +05:30
R-Jayaraman
aff10d3a37 fix: map pick list customer to delivery note when no sales order 2026-07-23 17:41:03 +05:30
Mihir Kandoi
63f6f1808f Revert "Merge pull request #57392 from mihir-kandoi/fix/canonical-default-warehouse-names"
This reverts commit 5fa242ec93, reversing
changes made to a81524ea14.
2026-07-23 17:09:53 +05:30
Mihir Kandoi
a8e74df6f7 Revert "Merge pull request #57409 from mihir-kandoi/chore/drop-warehouse-name-translation-marking"
This reverts commit ab16fd0a98, reversing
changes made to 5fa242ec93.
2026-07-23 17:09:53 +05:30