fix: set stock adjustment account in difference account

This commit is contained in:
Bhavan23
2025-03-13 17:01:55 +05:30
parent bad744194f
commit 6f0c67a242

View File

@@ -1349,17 +1349,38 @@ class StockEntry(StockController):
@frappe.whitelist()
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,
i.has_batch_no, i.sample_quantity, i.has_serial_no, i.allow_alternative_item,
id.expense_account, id.buying_cost_center
from `tabItem` i LEFT JOIN `tabItem Default` id ON i.name=id.parent and id.company=%s
where i.name=%s
and i.disabled=0
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,
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())
)
)
)
item = query.run(as_dict=True)
if not item:
frappe.throw(
@@ -1404,6 +1425,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",