mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-04 22:18:27 +00:00
Merge pull request #47742 from frappe/mergify/bp/version-15-hotfix/pr-47697
refactor: Fetch party name for contract (backport #47697)
This commit is contained in:
@@ -29,4 +29,10 @@ frappe.ui.form.on("Contract", {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
party_name: function (frm) {
|
||||||
|
let field = frm.doc.party_type.toLowerCase() + "_name";
|
||||||
|
frappe.db.get_value(frm.doc.party_type, frm.doc.party_name, field, (r) => {
|
||||||
|
frm.set_value("party_full_name", r[field]);
|
||||||
|
});
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
"party_user",
|
"party_user",
|
||||||
"status",
|
"status",
|
||||||
"fulfilment_status",
|
"fulfilment_status",
|
||||||
|
"party_full_name",
|
||||||
"sb_terms",
|
"sb_terms",
|
||||||
"start_date",
|
"start_date",
|
||||||
"cb_date",
|
"cb_date",
|
||||||
@@ -244,11 +245,18 @@
|
|||||||
"fieldname": "authorised_by_section",
|
"fieldname": "authorised_by_section",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"label": "Authorised By"
|
"label": "Authorised By"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "party_full_name",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Party Full Name",
|
||||||
|
"read_only": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"grid_page_length": 50,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2020-12-07 11:15:58.385521",
|
"modified": "2025-05-23 13:54:03.346537",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "CRM",
|
"module": "CRM",
|
||||||
"name": "Contract",
|
"name": "Contract",
|
||||||
@@ -315,9 +323,10 @@
|
|||||||
"write": 1
|
"write": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"row_format": "Dynamic",
|
||||||
"show_name_in_global_search": 1,
|
"show_name_in_global_search": 1,
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
"track_changes": 1,
|
"track_changes": 1,
|
||||||
"track_seen": 1
|
"track_seen": 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class Contract(Document):
|
|||||||
fulfilment_terms: DF.Table[ContractFulfilmentChecklist]
|
fulfilment_terms: DF.Table[ContractFulfilmentChecklist]
|
||||||
ip_address: DF.Data | None
|
ip_address: DF.Data | None
|
||||||
is_signed: DF.Check
|
is_signed: DF.Check
|
||||||
|
party_full_name: DF.Data | None
|
||||||
party_name: DF.DynamicLink
|
party_name: DF.DynamicLink
|
||||||
party_type: DF.Literal["Customer", "Supplier", "Employee"]
|
party_type: DF.Literal["Customer", "Supplier", "Employee"]
|
||||||
party_user: DF.Link | None
|
party_user: DF.Link | None
|
||||||
@@ -59,10 +60,17 @@ class Contract(Document):
|
|||||||
self.name = _(name)
|
self.name = _(name)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
self.set_missing_values()
|
||||||
self.validate_dates()
|
self.validate_dates()
|
||||||
self.update_contract_status()
|
self.update_contract_status()
|
||||||
self.update_fulfilment_status()
|
self.update_fulfilment_status()
|
||||||
|
|
||||||
|
def set_missing_values(self):
|
||||||
|
if not self.party_full_name:
|
||||||
|
field = self.party_type.lower() + "_name"
|
||||||
|
if res := frappe.db.get_value(self.party_type, self.party_name, field):
|
||||||
|
self.party_full_name = res
|
||||||
|
|
||||||
def before_submit(self):
|
def before_submit(self):
|
||||||
self.signed_by_company = frappe.session.user
|
self.signed_by_company = frappe.session.user
|
||||||
|
|
||||||
|
|||||||
@@ -405,3 +405,4 @@ erpnext.patches.v15_0.rename_group_by_to_categorize_by
|
|||||||
execute:frappe.db.set_single_value("Accounts Settings", "receivable_payable_fetch_method", "Buffered Cursor")
|
execute:frappe.db.set_single_value("Accounts Settings", "receivable_payable_fetch_method", "Buffered Cursor")
|
||||||
erpnext.patches.v14_0.set_update_price_list_based_on
|
erpnext.patches.v14_0.set_update_price_list_based_on
|
||||||
erpnext.patches.v15_0.rename_group_by_to_categorize_by_in_custom_reports
|
erpnext.patches.v15_0.rename_group_by_to_categorize_by_in_custom_reports
|
||||||
|
erpnext.patches.v14_0.update_full_name_in_contract
|
||||||
|
|||||||
15
erpnext/patches/v14_0/update_full_name_in_contract.py
Normal file
15
erpnext/patches/v14_0/update_full_name_in_contract.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import frappe
|
||||||
|
from frappe import qb
|
||||||
|
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
con = qb.DocType("Contract")
|
||||||
|
for c in (
|
||||||
|
qb.from_(con)
|
||||||
|
.select(con.name, con.party_type, con.party_name)
|
||||||
|
.where(con.party_full_name.isnull())
|
||||||
|
.run(as_dict=True)
|
||||||
|
):
|
||||||
|
field = c.party_type.lower() + "_name"
|
||||||
|
if res := frappe.db.get_value(c.party_type, c.party_name, field):
|
||||||
|
frappe.db.set_value("Contract", c.name, "party_full_name", res)
|
||||||
Reference in New Issue
Block a user