fix(item_defaults): Item name was overwriting by child name

This commit is contained in:
Nabin Hait 2018-08-13 17:45:17 +05:30
parent ddbf3aaccb
commit 3b5f18231a
3 changed files with 15 additions and 10 deletions

View File

@ -4,6 +4,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe import frappe
import urllib import urllib
import copy
from frappe.utils import nowdate, cint, cstr from frappe.utils import nowdate, cint, cstr
from frappe.utils.nestedset import NestedSet from frappe.utils.nestedset import NestedSet
from frappe.website.website_generator import WebsiteGenerator from frappe.website.website_generator import WebsiteGenerator
@ -180,6 +181,8 @@ def get_item_group_defaults(item, company):
for d in item_group.item_group_defaults or []: for d in item_group.item_group_defaults or []:
if d.company == company: if d.company == company:
return d.as_dict() row = copy.deepcopy(d.as_dict())
row.pop("name")
return row
return frappe._dict() return frappe._dict()

View File

@ -7,6 +7,7 @@ import itertools
import json import json
import erpnext import erpnext
import frappe import frappe
import copy
from erpnext.controllers.item_variant import (ItemVariantExistsError, from erpnext.controllers.item_variant import (ItemVariantExistsError,
copy_attributes_to_variant, get_variant, make_variant_item_code, validate_item_variant_attributes) copy_attributes_to_variant, get_variant, make_variant_item_code, validate_item_variant_attributes)
from erpnext.setup.doctype.item_group.item_group import (get_parent_item_groups, invalidate_cache_for) from erpnext.setup.doctype.item_group.item_group import (get_parent_item_groups, invalidate_cache_for)
@ -933,8 +934,9 @@ def get_item_defaults(item_code, company):
for d in item.item_defaults: for d in item.item_defaults:
if d.company == company: if d.company == company:
out.update(d.as_dict()) row = copy.deepcopy(d.as_dict())
row.pop("name")
out.update(row)
return out return out
def set_item_default(item_code, company, fieldname, value): def set_item_default(item_code, company, fieldname, value):

View File

@ -320,12 +320,6 @@ class TestPurchaseReceipt(unittest.TestCase):
'asset_category': asset_category, 'serial_no_series': 'ABC.###'}) 'asset_category': asset_category, 'serial_no_series': 'ABC.###'})
asset_item = item_data.item_code asset_item = item_data.item_code
if not frappe.db.exists('Location', 'Test Location'):
frappe.get_doc({
'doctype': 'Location',
'location_name': 'Test Location'
}).insert()
pr = make_purchase_receipt(item_code=asset_item, qty=3) pr = make_purchase_receipt(item_code=asset_item, qty=3)
asset = frappe.db.get_value('Asset', {'purchase_receipt': pr.name}, 'name') asset = frappe.db.get_value('Asset', {'purchase_receipt': pr.name}, 'name')
asset_movement = frappe.db.get_value('Asset Movement', {'reference_name': pr.name}, 'name') asset_movement = frappe.db.get_value('Asset Movement', {'reference_name': pr.name}, 'name')
@ -348,6 +342,12 @@ def get_gl_entries(voucher_type, voucher_no):
order by account desc""", (voucher_type, voucher_no), as_dict=1) order by account desc""", (voucher_type, voucher_no), as_dict=1)
def make_purchase_receipt(**args): def make_purchase_receipt(**args):
if not frappe.db.exists('Location', 'Test Location'):
frappe.get_doc({
'doctype': 'Location',
'location_name': 'Test Location'
}).insert()
frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1) frappe.db.set_value("Buying Settings", None, "allow_multiple_items", 1)
pr = frappe.new_doc("Purchase Receipt") pr = frappe.new_doc("Purchase Receipt")
args = frappe._dict(args) args = frappe._dict(args)
@ -388,5 +388,5 @@ def make_purchase_receipt(**args):
return pr return pr
test_dependencies = ["BOM", "Item Price"] test_dependencies = ["BOM", "Item Price", "Location"]
test_records = frappe.get_test_records('Purchase Receipt') test_records = frappe.get_test_records('Purchase Receipt')