fix: UOM was not fetching in purchase invoice (#19732)
* fix: UOM was not fetching in purchase invoice
* fix: Changes requested
Co-authored-by: Marica <maricadsouza221197@gmail.com>
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index e4e2c7b..d7e64cf 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -330,23 +330,6 @@
frm: cur_frm
})
},
-
- item_code: function(frm, cdt, cdn) {
- var row = locals[cdt][cdn];
- if(row.item_code) {
- frappe.call({
- method: "erpnext.assets.doctype.asset_category.asset_category.get_asset_category_account",
- args: {
- "item": row.item_code,
- "fieldname": "fixed_asset_account",
- "company": frm.doc.company
- },
- callback: function(r, rt) {
- frappe.model.set_value(cdt, cdn, "expense_account", r.message);
- }
- })
- }
- }
});
cur_frm.script_manager.make(erpnext.accounts.PurchaseInvoice);
diff --git a/erpnext/assets/doctype/asset_category/asset_category.py b/erpnext/assets/doctype/asset_category/asset_category.py
index 2a42894..fc08841 100644
--- a/erpnext/assets/doctype/asset_category/asset_category.py
+++ b/erpnext/assets/doctype/asset_category/asset_category.py
@@ -29,7 +29,8 @@
account=None
if not account:
- asset_category, company = frappe.db.get_value("Asset", asset, ["asset_category", "company"])
+ asset_details = frappe.db.get_value("Asset", asset, ["asset_category", "company"])
+ asset_category, company = asset_details or [None, None]
account = frappe.db.get_value("Asset Category Account",
filters={"parent": asset_category, "company_name": company}, fieldname=fieldname)
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 9f47edc..55f4be1 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -254,6 +254,12 @@
args['material_request_type'] = frappe.db.get_value('Material Request',
args.get('name'), 'material_request_type', cache=True)
+ expense_account = None
+
+ if args.get('doctype') == 'Purchase Invoice' and item.is_fixed_asset:
+ from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account
+ expense_account = get_asset_category_account(fieldname = "fixed_asset_account", item = args.item_code, company= args.company)
+
#Set the UOM to the Default Sales UOM or Default Purchase UOM if configured in the Item Master
if not args.uom:
if args.get('doctype') in sales_doctypes:
@@ -271,7 +277,7 @@
"image": cstr(item.image).strip(),
"warehouse": warehouse,
"income_account": get_default_income_account(args, item_defaults, item_group_defaults, brand_defaults),
- "expense_account": get_default_expense_account(args, item_defaults, item_group_defaults, brand_defaults),
+ "expense_account": expense_account or get_default_expense_account(args, item_defaults, item_group_defaults, brand_defaults) ,
"cost_center": get_default_cost_center(args, item_defaults, item_group_defaults, brand_defaults),
'has_serial_no': item.has_serial_no,
'has_batch_no': item.has_batch_no,