Get item defaults from item group (#15089)

This commit is contained in:
KanchanChauhan 2018-08-06 14:29:14 +05:30 committed by Nabin Hait
parent 733433c91e
commit 7fb8540b70
2 changed files with 23 additions and 12 deletions

View File

@ -687,14 +687,6 @@ $.extend(erpnext.item, {
}
});
frappe.ui.form.on("Item", {
setup: function(frm) {
// #13478 : Default Accounts in Item from Item Group
cur_frm.add_fetch('item_group', 'default_expense_account', 'expense_account');
cur_frm.add_fetch('item_group', 'default_income_account', 'income_account');
},
});
frappe.ui.form.on("UOM Conversion Detail", {
uom: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];

View File

@ -121,15 +121,13 @@ class Item(WebsiteGenerator):
self.validate_fixed_asset()
self.validate_retain_sample()
self.validate_uom_conversion_factor()
self.update_defaults_from_item_group()
if not self.get("__islocal"):
self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
self.old_website_item_groups = frappe.db.sql_list("""select item_group
from `tabWebsite Item Group`
where parentfield='website_item_groups' and parenttype='Item' and parent=%s""", self.name)
elif not self.item_defaults:
self.append("item_defaults", {"company": frappe.defaults.get_defaults().company})
def on_update(self):
invalidate_cache_for_item(self)
@ -662,6 +660,27 @@ class Item(WebsiteGenerator):
template_item.flags.ignore_permissions = True
template_item.save()
def update_defaults_from_item_group(self):
"""Get defaults from Item Group"""
if self.item_group and not self.item_defaults:
item_defaults = frappe.db.get_values("Item Default", {"parent": self.item_group},
['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('item_defaults', {
'company': item.company,
'default_warehouse': item.default_warehouse,
'default_price_list': item.default_price_list,
'buying_cost_center': item.buying_cost_center,
'default_supplier': item.default_supplier,
'expense_account': item.expense_account,
'selling_cost_center': item.selling_cost_center,
'income_account': item.income_account
})
else:
self.append("item_defaults", {"company": frappe.defaults.get_defaults().company})
def update_variants(self):
if self.flags.dont_update_variants or \
frappe.db.get_single_value('Item Variant Settings', 'do_not_update_variants'):
@ -946,4 +965,4 @@ def get_uom_conv_factor(uom, stock_uom):
if uom_stock.from_uom == uom_row.from_uom:
value = flt(uom_stock.value) * 1/flt(uom_row.value)
return value
return value