mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 17:04:47 +00:00
Merge pull request #47734 from frappe/perf_item_import
perf: speedup item import
This commit is contained in:
@@ -226,7 +226,10 @@ class Item(Document):
|
|||||||
|
|
||||||
def validate_description(self):
|
def validate_description(self):
|
||||||
"""Clean HTML description if set"""
|
"""Clean HTML description if set"""
|
||||||
if cint(frappe.db.get_single_value("Stock Settings", "clean_description_html")):
|
if (
|
||||||
|
cint(frappe.db.get_single_value("Stock Settings", "clean_description_html"))
|
||||||
|
and self.description != self.item_name # perf: Avoid cleaning up a fallback
|
||||||
|
):
|
||||||
self.description = clean_html(self.description)
|
self.description = clean_html(self.description)
|
||||||
|
|
||||||
def validate_customer_provided_part(self):
|
def validate_customer_provided_part(self):
|
||||||
@@ -306,7 +309,7 @@ class Item(Document):
|
|||||||
if self.stock_ledger_created():
|
if self.stock_ledger_created():
|
||||||
frappe.throw(_("Cannot be a fixed asset item as Stock Ledger is created."))
|
frappe.throw(_("Cannot be a fixed asset item as Stock Ledger is created."))
|
||||||
|
|
||||||
if not self.is_fixed_asset:
|
if not self.is_fixed_asset and not self.is_new():
|
||||||
asset = frappe.db.get_all("Asset", filters={"item_code": self.name, "docstatus": 1}, limit=1)
|
asset = frappe.db.get_all("Asset", filters={"item_code": self.name, "docstatus": 1}, limit=1)
|
||||||
if asset:
|
if asset:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
@@ -526,6 +529,9 @@ class Item(Document):
|
|||||||
return self._stock_ledger_created
|
return self._stock_ledger_created
|
||||||
|
|
||||||
def update_item_price(self):
|
def update_item_price(self):
|
||||||
|
if self.is_new():
|
||||||
|
return
|
||||||
|
|
||||||
frappe.db.sql(
|
frappe.db.sql(
|
||||||
"""
|
"""
|
||||||
UPDATE `tabItem Price`
|
UPDATE `tabItem Price`
|
||||||
@@ -722,23 +728,9 @@ class Item(Document):
|
|||||||
if self.item_defaults or not self.item_group:
|
if self.item_defaults or not self.item_group:
|
||||||
return
|
return
|
||||||
|
|
||||||
item_defaults = frappe.db.get_values(
|
item_group = frappe.get_cached_doc("Item Group", self.item_group)
|
||||||
"Item Default",
|
if item_group.item_group_defaults:
|
||||||
{"parent": self.item_group},
|
for item in item_group.item_group_defaults:
|
||||||
[
|
|
||||||
"company",
|
|
||||||
"default_warehouse",
|
|
||||||
"default_price_list",
|
|
||||||
"buying_cost_center",
|
|
||||||
"default_supplier",
|
|
||||||
"expense_account",
|
|
||||||
"selling_cost_center",
|
|
||||||
"income_account",
|
|
||||||
],
|
|
||||||
as_dict=1,
|
|
||||||
)
|
|
||||||
if item_defaults:
|
|
||||||
for item in item_defaults:
|
|
||||||
self.append(
|
self.append(
|
||||||
"item_defaults",
|
"item_defaults",
|
||||||
{
|
{
|
||||||
@@ -759,9 +751,8 @@ class Item(Document):
|
|||||||
if (
|
if (
|
||||||
defaults.get("default_warehouse")
|
defaults.get("default_warehouse")
|
||||||
and defaults.company
|
and defaults.company
|
||||||
and frappe.db.exists(
|
and defaults.company
|
||||||
"Warehouse", {"name": defaults.default_warehouse, "company": defaults.company}
|
== frappe.get_cached_value("Warehouse", defaults.default_warehouse, "company")
|
||||||
)
|
|
||||||
):
|
):
|
||||||
self.append(
|
self.append(
|
||||||
"item_defaults",
|
"item_defaults",
|
||||||
@@ -790,7 +781,10 @@ class Item(Document):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def validate_has_variants(self):
|
def validate_has_variants(self):
|
||||||
if not self.has_variants and frappe.db.get_value("Item", self.name, "has_variants"):
|
if self.is_new():
|
||||||
|
return
|
||||||
|
|
||||||
|
if not self.has_variants and self.has_value_changed("has_variants"):
|
||||||
if frappe.db.exists("Item", {"variant_of": self.name}):
|
if frappe.db.exists("Item", {"variant_of": self.name}):
|
||||||
frappe.throw(_("Item has variants."))
|
frappe.throw(_("Item has variants."))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user