diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 7ad9498c88f..3d69614a7b6 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -1592,6 +1592,7 @@ class StockEntry(StockController): pro_doc.set_actual_dates() @frappe.whitelist() +<<<<<<< HEAD def get_item_details(self, args=None, for_update=False): item = frappe.db.sql( """select i.name, i.stock_uom, i.description, i.image, i.item_name, i.item_group, @@ -1603,7 +1604,41 @@ class StockEntry(StockController): and (i.end_of_life is null or i.end_of_life<'1900-01-01' or i.end_of_life > %s)""", (self.company, args.get("item_code"), nowdate()), as_dict=1, +======= + def get_item_details(self, args: ItemDetailsCtx = None, for_update=False): + item = frappe.qb.DocType("Item") + item_default = frappe.qb.DocType("Item Default") + + query = ( + frappe.qb.from_(item) + .left_join(item_default) + .on((item.name == item_default.parent) & (item_default.company == self.company)) + .select( + item.name, + item.stock_uom, + item.description, + item.image, + item.item_name, + item.item_group, + item.has_batch_no, + item.sample_quantity, + item.has_serial_no, + item.allow_alternative_item, + item_default.expense_account, + item_default.buying_cost_center, + ) + .where( + (item.name == args.get("item_code")) + & (item.disabled == 0) + & ( + (item.end_of_life.isnull()) + | (item.end_of_life < "1900-01-01") + | (item.end_of_life > nowdate()) + ) + ) +>>>>>>> 4ef7e6424a (fix: set stock adjustment account in difference account (#45606)) ) + item = query.run(as_dict=True) if not item: frappe.throw( @@ -1646,6 +1681,11 @@ class StockEntry(StockController): if self.purpose == "Material Issue": ret["expense_account"] = item.get("expense_account") or item_group_defaults.get("expense_account") + if self.purpose == "Manufacture": + ret["expense_account"] = frappe.get_cached_value( + "Company", self.company, "stock_adjustment_account" + ) + for company_field, field in { "stock_adjustment_account": "expense_account", "cost_center": "cost_center",