mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 17:04:47 +00:00
Merge pull request #50878 from frappe/mergify/bp/version-15-hotfix/pr-50808
fix(stock entry): use fg item expense account for direct manufacturing entry (backport #50808)
This commit is contained in:
@@ -462,6 +462,7 @@ class StockEntry(StockController):
|
|||||||
"project": self.project,
|
"project": self.project,
|
||||||
"uom": item.uom,
|
"uom": item.uom,
|
||||||
"s_warehouse": item.s_warehouse,
|
"s_warehouse": item.s_warehouse,
|
||||||
|
"is_finished_item": item.is_finished_item,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
for_update=True,
|
for_update=True,
|
||||||
@@ -491,6 +492,9 @@ class StockEntry(StockController):
|
|||||||
flt(item.qty) * flt(item.conversion_factor), self.precision("transfer_qty", item)
|
flt(item.qty) * flt(item.conversion_factor), self.precision("transfer_qty", item)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self.purpose == "Manufacture":
|
||||||
|
item.set("expense_account", item_details.get("expense_account"))
|
||||||
|
|
||||||
def validate_fg_completed_qty(self):
|
def validate_fg_completed_qty(self):
|
||||||
item_wise_qty = {}
|
item_wise_qty = {}
|
||||||
if self.purpose == "Manufacture" and self.work_order:
|
if self.purpose == "Manufacture" and self.work_order:
|
||||||
@@ -1774,7 +1778,9 @@ class StockEntry(StockController):
|
|||||||
if self.purpose == "Material Issue":
|
if self.purpose == "Material Issue":
|
||||||
ret["expense_account"] = item.get("expense_account") or item_group_defaults.get("expense_account")
|
ret["expense_account"] = item.get("expense_account") or item_group_defaults.get("expense_account")
|
||||||
|
|
||||||
if self.purpose == "Manufacture" or not ret.get("expense_account"):
|
if (self.purpose == "Manufacture" and not args.get("is_finished_item")) or not ret.get(
|
||||||
|
"expense_account"
|
||||||
|
):
|
||||||
ret["expense_account"] = frappe.get_cached_value(
|
ret["expense_account"] = frappe.get_cached_value(
|
||||||
"Company", self.company, "stock_adjustment_account"
|
"Company", self.company, "stock_adjustment_account"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1267,6 +1267,7 @@ class TestStockEntry(FrappeTestCase):
|
|||||||
frappe._dict(item_code="_Test FG Item", qty=4, t_warehouse="_Test Warehouse 1 - _TC"),
|
frappe._dict(item_code="_Test FG Item", qty=4, t_warehouse="_Test Warehouse 1 - _TC"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
frappe.db.set_value("Company", "_Test Company", "stock_adjustment_account", "Stock Adjustment - _TC")
|
||||||
# SE must have atleast one FG
|
# SE must have atleast one FG
|
||||||
self.assertRaises(FinishedGoodError, se.save)
|
self.assertRaises(FinishedGoodError, se.save)
|
||||||
|
|
||||||
@@ -1284,6 +1285,9 @@ class TestStockEntry(FrappeTestCase):
|
|||||||
self.assertEqual(se.value_difference, 0.0)
|
self.assertEqual(se.value_difference, 0.0)
|
||||||
self.assertEqual(se.total_incoming_value, se.total_outgoing_value)
|
self.assertEqual(se.total_incoming_value, se.total_outgoing_value)
|
||||||
|
|
||||||
|
self.assertEqual(se.items[0].expense_account, "Stock Adjustment - _TC")
|
||||||
|
self.assertEqual(se.items[1].expense_account, "_Test Account Cost for Goods Sold - _TC")
|
||||||
|
|
||||||
@change_settings("Stock Settings", {"allow_negative_stock": 0})
|
@change_settings("Stock Settings", {"allow_negative_stock": 0})
|
||||||
def test_future_negative_sle(self):
|
def test_future_negative_sle(self):
|
||||||
# Initialize item, batch, warehouse, opening qty
|
# Initialize item, batch, warehouse, opening qty
|
||||||
|
|||||||
Reference in New Issue
Block a user