refactor: bring back titles on sales transactions and make them optional and visible on purchase transactions (#52633)

* fix: correct wrong PO titles

* refactor: restore title fields to sales transaction doctypes

* refactor: change title fields to optional fields with no default in purchase transactional doctypes

* chore: re-save doctype definitions

- updates modified timestamps
- regenerates type hints

---------

Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
This commit is contained in:
Trusted Computer
2026-04-10 00:39:32 -07:00
committed by GitHub
parent 9bc5a30ea4
commit bd9427623f
20 changed files with 169 additions and 14 deletions

View File

@@ -26,6 +26,8 @@
"due_date",
"amended_from",
"return_against",
"section_break_clmv",
"title",
"accounting_dimensions_section",
"project",
"dimension_col_break",
@@ -1620,12 +1622,24 @@
"fieldname": "auto_repeat_section",
"fieldtype": "Section Break",
"label": "Auto Repeat"
},
{
"fieldname": "section_break_clmv",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"icon": "fa fa-file-text",
"is_submittable": 1,
"links": [],
"modified": "2026-03-02 07:32:47.667810",
"modified": "2026-03-30 12:15:57.253316",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Invoice",

View File

@@ -173,6 +173,7 @@ class POSInvoice(SalesInvoice):
terms: DF.TextEditor | None
territory: DF.Link | None
timesheets: DF.Table[SalesInvoiceTimesheet]
title: DF.Data | None
to_date: DF.Date | None
total: DF.Currency
total_advance: DF.Currency

View File

@@ -27,6 +27,8 @@
"update_billed_amount_in_purchase_receipt",
"apply_tds",
"amended_from",
"section_break_ecfi",
"title",
"supplier_invoice_details",
"bill_no",
"column_break_15",
@@ -209,6 +211,14 @@
"connections_tab"
],
"fields": [
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
},
{
"fieldname": "naming_series",
"fieldtype": "Select",
@@ -1682,6 +1692,10 @@
"fieldname": "automation_section",
"fieldtype": "Section Break",
"label": "Automation"
},
{
"fieldname": "section_break_ecfi",
"fieldtype": "Section Break"
}
],
"grid_page_length": 50,
@@ -1689,7 +1703,7 @@
"idx": 204,
"is_submittable": 1,
"links": [],
"modified": "2026-03-25 11:45:38.696888",
"modified": "2026-03-30 12:16:40.157755",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice",

View File

@@ -204,6 +204,7 @@ class PurchaseInvoice(BuyingController):
taxes_and_charges_deducted: DF.Currency
tc_name: DF.Link | None
terms: DF.TextEditor | None
title: DF.Data | None
to_date: DF.Date | None
total: DF.Currency
total_advance: DF.Currency

View File

@@ -33,6 +33,8 @@
"is_created_using_pos",
"pos_closing_entry",
"has_subcontracted",
"section_break_sgnf",
"title",
"accounting_dimensions_section",
"cost_center",
"dimension_col_break",
@@ -2328,6 +2330,18 @@
"fieldname": "automation_section",
"fieldtype": "Section Break",
"label": "Automation"
},
{
"fieldname": "section_break_sgnf",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"grid_page_length": 50,
@@ -2341,7 +2355,7 @@
"link_fieldname": "consolidated_invoice"
}
],
"modified": "2026-03-09 17:15:30.931929",
"modified": "2026-03-30 12:17:16.201016",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",

View File

@@ -226,6 +226,7 @@ class SalesInvoice(SellingController):
terms: DF.TextEditor | None
territory: DF.Link | None
timesheets: DF.Table[SalesInvoiceTimesheet]
title: DF.Data | None
to_date: DF.Date | None
total: DF.Currency
total_advance: DF.Currency

View File

@@ -23,6 +23,8 @@
"is_subcontracted",
"has_unit_price_items",
"supplier_warehouse",
"section_break_zymg",
"title",
"accounting_dimensions_section",
"cost_center",
"dimension_col_break",
@@ -171,6 +173,14 @@
"fieldtype": "Section Break",
"options": "fa fa-user"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
},
{
"fieldname": "naming_series",
"fieldtype": "Select",
@@ -1309,6 +1319,10 @@
"fieldname": "auto_repeat_section",
"fieldtype": "Section Break",
"label": "Auto Repeat"
},
{
"fieldname": "section_break_zymg",
"fieldtype": "Section Break"
}
],
"grid_page_length": 50,
@@ -1316,7 +1330,7 @@
"idx": 105,
"is_submittable": 1,
"links": [],
"modified": "2026-03-25 11:46:18.748951",
"modified": "2026-03-30 12:17:43.342204",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Order",

View File

@@ -160,6 +160,7 @@ class PurchaseOrder(BuyingController):
taxes_and_charges_deducted: DF.Currency
tc_name: DF.Link | None
terms: DF.TextEditor | None
title: DF.Data | None
to_date: DF.Date | None
total: DF.Currency
total_net_weight: DF.Float

View File

@@ -16,6 +16,8 @@
"status",
"has_unit_price_items",
"amended_from",
"section_break_trpf",
"title",
"suppliers_section",
"suppliers",
"items_section",
@@ -371,6 +373,18 @@
"fieldtype": "Text Editor",
"label": "Shipping Address Details",
"read_only": 1
},
{
"fieldname": "section_break_trpf",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"grid_page_length": 50,
@@ -378,7 +392,7 @@
"index_web_pages_for_search": 1,
"is_submittable": 1,
"links": [],
"modified": "2026-03-19 15:27:56.730649",
"modified": "2026-03-30 12:18:08.451201",
"modified_by": "Administrator",
"module": "Buying",
"name": "Request for Quotation",
@@ -448,5 +462,6 @@
"show_name_in_global_search": 1,
"sort_field": "creation",
"sort_order": "DESC",
"states": []
"states": [],
"title_field": "company"
}

View File

@@ -64,6 +64,7 @@ class RequestforQuotation(BuyingController):
suppliers: DF.Table[RequestforQuotationSupplier]
tc_name: DF.Link | None
terms: DF.TextEditor | None
title: DF.Data | None
transaction_date: DF.Date
use_html: DF.Check
vendor: DF.Link | None

View File

@@ -9,7 +9,6 @@
"engine": "InnoDB",
"field_order": [
"supplier_section",
"title",
"naming_series",
"supplier",
"supplier_name",
@@ -21,6 +20,8 @@
"quotation_number",
"has_unit_price_items",
"amended_from",
"section_break_wwao",
"title",
"accounting_dimensions_section",
"cost_center",
"dimension_col_break",
@@ -127,10 +128,9 @@
"options": "fa fa-user"
},
{
"default": "{supplier_name}",
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"hidden": 1,
"label": "Title",
"no_copy": 1,
"print_hide": 1,
@@ -940,6 +940,10 @@
"fieldname": "auto_repeat_section",
"fieldtype": "Section Break",
"label": "Auto Repeat"
},
{
"fieldname": "section_break_wwao",
"fieldtype": "Section Break"
}
],
"grid_page_length": 50,
@@ -948,7 +952,7 @@
"index_web_pages_for_search": 1,
"is_submittable": 1,
"links": [],
"modified": "2026-02-27 18:05:50.121391",
"modified": "2026-03-30 12:18:35.777574",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Quotation",
@@ -1016,5 +1020,5 @@
"sort_order": "DESC",
"states": [],
"timeline_field": "supplier",
"title_field": "title"
"title_field": "supplier_name"
}

View File

@@ -470,6 +470,7 @@ erpnext.patches.v16_0.add_portal_redirects
erpnext.patches.v16_0.update_order_qty_and_requested_qty_based_on_mr_and_po
erpnext.patches.v16_0.complete_onboarding_steps_for_older_sites #2
erpnext.patches.v16_0.enable_serial_batch_setting
erpnext.patches.v16_0.correct_po_titles
erpnext.patches.v16_0.co_by_product_patch
erpnext.patches.v16_0.update_requested_qty_packed_item
erpnext.patches.v16_0.remove_payables_receivables_workspace

View File

@@ -0,0 +1,15 @@
import frappe
def execute():
"""
This patch corrects the titles of purchase orders that were set to
the text string "{supplier_name}" instead of the actual supplier name.
"""
purchase_order = frappe.qb.DocType("Purchase Order")
(
frappe.qb.update(purchase_order)
.set(purchase_order.title, purchase_order.supplier_name)
.where(purchase_order.title == "{supplier_name}")
).run()

View File

@@ -22,6 +22,8 @@
"company",
"has_unit_price_items",
"amended_from",
"section_break_cojf",
"title",
"currency_and_price_list",
"currency",
"conversion_rate",
@@ -1130,13 +1132,25 @@
"fieldname": "auto_repeat_section",
"fieldtype": "Section Break",
"label": "Auto Repeat"
},
{
"fieldname": "section_break_cojf",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"icon": "fa fa-shopping-cart",
"idx": 82,
"is_submittable": 1,
"links": [],
"modified": "2026-03-09 17:15:31.941114",
"modified": "2026-03-30 12:19:04.589592",
"modified_by": "Administrator",
"module": "Selling",
"name": "Quotation",

View File

@@ -113,6 +113,7 @@ class Quotation(SellingController):
tc_name: DF.Link | None
terms: DF.TextEditor | None
territory: DF.Link | None
title: DF.Data | None
total: DF.Currency
total_net_weight: DF.Float
total_qty: DF.Float

View File

@@ -26,6 +26,8 @@
"has_unit_price_items",
"is_subcontracted",
"amended_from",
"section_break_umok",
"title",
"accounting_dimensions_section",
"cost_center",
"dimension_col_break",
@@ -1742,6 +1744,18 @@
"no_copy": 1,
"print_hide": 1,
"read_only": 1
},
{
"fieldname": "section_break_umok",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"grid_page_length": 50,
@@ -1749,7 +1763,7 @@
"idx": 105,
"is_submittable": 1,
"links": [],
"modified": "2026-03-04 18:04:05.873483",
"modified": "2026-03-30 12:19:27.522646",
"modified_by": "Administrator",
"module": "Selling",
"name": "Sales Order",

View File

@@ -181,6 +181,7 @@ class SalesOrder(SellingController):
tc_name: DF.Link | None
terms: DF.TextEditor | None
territory: DF.Link | None
title: DF.Data | None
to_date: DF.Date | None
total: DF.Currency
total_commission: DF.Currency

View File

@@ -22,6 +22,8 @@
"is_return",
"issue_credit_note",
"return_against",
"section_break_bxkw",
"title",
"accounting_dimensions_section",
"cost_center",
"column_break_18",
@@ -1450,13 +1452,25 @@
"fieldname": "auto_repeat_section",
"fieldtype": "Section Break",
"label": "Auto Repeat"
},
{
"fieldname": "section_break_bxkw",
"fieldtype": "Section Break"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
}
],
"icon": "fa fa-truck",
"idx": 146,
"is_submittable": 1,
"links": [],
"modified": "2026-03-09 17:15:27.932956",
"modified": "2026-03-30 12:19:56.889644",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note",

View File

@@ -146,6 +146,7 @@ class DeliveryNote(SellingController):
tc_name: DF.Link | None
terms: DF.TextEditor | None
territory: DF.Link | None
title: DF.Data | None
total: DF.Currency
total_commission: DF.Currency
total_net_weight: DF.Float

View File

@@ -25,6 +25,8 @@
"apply_putaway_rule",
"is_return",
"return_against",
"section_break_zwvg",
"title",
"accounting_dimensions_section",
"cost_center",
"dimension_col_break",
@@ -170,6 +172,14 @@
"print_width": "50%",
"width": "50%"
},
{
"allow_on_submit": 1,
"fieldname": "title",
"fieldtype": "Data",
"label": "Title",
"no_copy": 1,
"print_hide": 1
},
{
"fieldname": "naming_series",
"fieldtype": "Select",
@@ -1285,6 +1295,10 @@
{
"fieldname": "column_break_ugyv",
"fieldtype": "Column Break"
},
{
"fieldname": "section_break_zwvg",
"fieldtype": "Section Break"
}
],
"grid_page_length": 50,