Merge pull request #14087 from manassolanki/item-fixes

return defaults according to the company
This commit is contained in:
rohitwaghchaure 2018-05-16 17:02:32 +05:30 committed by GitHub
commit 64076730a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 14 deletions

View File

@ -377,7 +377,7 @@ def make_purchase_invoice(source_name, target_doc=None):
item = get_item_defaults(target.item_code, source_parent.company)
target.cost_center = frappe.db.get_value("Project", obj.project, "cost_center") \
or item.buying_cost_center \
or item.get("buying_cost_center") \
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
doc = get_mapped_doc("Purchase Order", source_name, {

View File

@ -499,7 +499,7 @@ def make_delivery_note(source_name, target_doc=None):
if item:
target.cost_center = frappe.db.get_value("Project", source_parent.project, "cost_center") \
or item.selling_cost_center \
or item.get("selling_cost_center") \
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
target_doc = get_mapped_doc("Sales Order", source_name, {
@ -559,8 +559,8 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False):
if source_parent.project:
target.cost_center = frappe.db.get_value("Project", source_parent.project, "cost_center")
if not target.cost_center and target.item_code:
item = get_item_defaults(target.item_code, source_parent.company)
target.cost_center = item.selling_cost_center \
item = get_item_defaults(target.item_code, target.company)
target.cost_center = item.get("selling_cost_center") \
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
doclist = get_mapped_doc("Sales Order", source_name, {

View File

@ -887,7 +887,7 @@ def check_stock_uom_with_bin(item, stock_uom):
_("Default Unit of Measure for Item {0} cannot be changed directly because you have already made some transaction(s) with another UOM. You will need to create a new Item to use a different Default UOM.").format(item))
def get_item_defaults(item, company):
return frappe.db.sql('''
item_defaults = frappe.db.sql('''
select
i.item_name, i.description, i.stock_uom, i.name, i.is_stock_item, i.item_code, i.item_group,
id.expense_account, id.buying_cost_center, id.default_warehouse, id.selling_cost_center
@ -895,4 +895,9 @@ def get_item_defaults(item, company):
`tabItem` i, `tabItem Default` id
where
i.name = id.parent and i.name = %s and id.company = %s
''', (item, company), as_dict=1)
''', (item, company), as_dict=1)
if item_defaults:
return item_defaults[0]
else:
return frappe.db.get_value("Item", item, ["name", "item_name", "description", "stock_uom",
"is_stock_item", "item_code", "item_group"], as_dict=1)

View File

@ -721,7 +721,7 @@ class StockEntry(StockController):
if not self.work_order and not to_warehouse:
# in case of BOM
to_warehouse = item.default_warehouse
to_warehouse = item.get("default_warehouse")
self.add_to_stock_entry_detail({
item.name: {
@ -731,8 +731,8 @@ class StockEntry(StockController):
"item_name": item.item_name,
"description": item.description,
"stock_uom": item.stock_uom,
"expense_account": item.expense_account,
"cost_center": item.buying_cost_center,
"expense_account": item.get("expense_account"),
"cost_center": item.get("buying_cost_center"),
}
}, bom_no = self.bom_no)
@ -807,8 +807,8 @@ class StockEntry(StockController):
"item_name": item.item_name,
"description": item.description,
"stock_uom": item_account_details.stock_uom,
"expense_account": item_account_details.expense_account,
"cost_center": item_account_details.buying_cost_center,
"expense_account": item_account_details.get("expense_account"),
"cost_center": item_account_details.get("buying_cost_center"),
}
})

View File

@ -300,12 +300,12 @@ def get_basic_details(args, item):
def get_default_income_account(args, item):
return (item.income_account
return (item.get("income_account")
or args.income_account
or frappe.db.get_value("Item Group", item.item_group, "default_income_account"))
def get_default_expense_account(args, item):
return (item.expense_account
return (item.get("expense_account")
or args.expense_account
or frappe.db.get_value("Item Group", item.item_group, "default_expense_account"))
@ -319,7 +319,7 @@ def get_default_deferred_revenue_account(args, item):
def get_default_cost_center(args, item):
return (frappe.db.get_value("Project", args.get("project"), "cost_center")
or (item.selling_cost_center if args.get("customer") else item.buying_cost_center)
or (item.get("selling_cost_center") if args.get("customer") else item.get("buying_cost_center"))
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
or args.get("cost_center"))