fix(defaults): apply discount and provisonal defaults from item group and brand if available (#37466)
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 8c6fd84..a8eb777 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -330,8 +330,12 @@
),
"expense_account": expense_account
or get_default_expense_account(args, item_defaults, item_group_defaults, brand_defaults),
- "discount_account": get_default_discount_account(args, item_defaults),
- "provisional_expense_account": get_provisional_account(args, item_defaults),
+ "discount_account": get_default_discount_account(
+ args, item_defaults, item_group_defaults, brand_defaults
+ ),
+ "provisional_expense_account": get_provisional_account(
+ args, item_defaults, item_group_defaults, brand_defaults
+ ),
"cost_center": get_default_cost_center(
args, item_defaults, item_group_defaults, brand_defaults
),
@@ -686,12 +690,22 @@
)
-def get_provisional_account(args, item):
- return item.get("default_provisional_account") or args.default_provisional_account
+def get_provisional_account(args, item, item_group, brand):
+ return (
+ item.get("default_provisional_account")
+ or item_group.get("default_provisional_account")
+ or brand.get("default_provisional_account")
+ or args.default_provisional_account
+ )
-def get_default_discount_account(args, item):
- return item.get("default_discount_account") or args.discount_account
+def get_default_discount_account(args, item, item_group, brand):
+ return (
+ item.get("default_discount_account")
+ or item_group.get("default_discount_account")
+ or brand.get("default_discount_account")
+ or args.discount_account
+ )
def get_default_deferred_account(args, item, fieldname=None):