fix: incorrect backflush qty in manufacture entry
This commit is contained in:
parent
52514a30d7
commit
fa842e8774
@ -193,6 +193,42 @@ class TestWorkOrder(unittest.TestCase):
|
|||||||
self.assertEqual(cint(bin1_on_end_production.projected_qty),
|
self.assertEqual(cint(bin1_on_end_production.projected_qty),
|
||||||
cint(bin1_on_end_production.projected_qty))
|
cint(bin1_on_end_production.projected_qty))
|
||||||
|
|
||||||
|
def test_backflush_qty_for_overpduction_manufacture(self):
|
||||||
|
cancel_stock_entry = []
|
||||||
|
allow_overproduction("overproduction_percentage_for_work_order", 30)
|
||||||
|
wo_order = make_wo_order_test_record(planned_start_date=now(), qty=100)
|
||||||
|
ste1 = test_stock_entry.make_stock_entry(item_code="_Test Item",
|
||||||
|
target="_Test Warehouse - _TC", qty=120, basic_rate=5000.0)
|
||||||
|
ste2 = test_stock_entry.make_stock_entry(item_code="_Test Item Home Desktop 100",
|
||||||
|
target="_Test Warehouse - _TC", qty=240, basic_rate=1000.0)
|
||||||
|
|
||||||
|
cancel_stock_entry.extend([ste1.name, ste2.name])
|
||||||
|
|
||||||
|
s = frappe.get_doc(make_stock_entry(wo_order.name, "Material Transfer for Manufacture", 60))
|
||||||
|
s.submit()
|
||||||
|
cancel_stock_entry.append(s.name)
|
||||||
|
|
||||||
|
s = frappe.get_doc(make_stock_entry(wo_order.name, "Manufacture", 60))
|
||||||
|
s.submit()
|
||||||
|
cancel_stock_entry.append(s.name)
|
||||||
|
|
||||||
|
s = frappe.get_doc(make_stock_entry(wo_order.name, "Material Transfer for Manufacture", 60))
|
||||||
|
s.submit()
|
||||||
|
cancel_stock_entry.append(s.name)
|
||||||
|
|
||||||
|
s1 = frappe.get_doc(make_stock_entry(wo_order.name, "Manufacture", 50))
|
||||||
|
s1.submit()
|
||||||
|
cancel_stock_entry.append(s1.name)
|
||||||
|
|
||||||
|
self.assertEqual(s1.items[0].qty, 50)
|
||||||
|
self.assertEqual(s1.items[1].qty, 100)
|
||||||
|
cancel_stock_entry.reverse()
|
||||||
|
for ste in cancel_stock_entry:
|
||||||
|
doc = frappe.get_doc("Stock Entry", ste)
|
||||||
|
doc.cancel()
|
||||||
|
|
||||||
|
allow_overproduction("overproduction_percentage_for_work_order", 0)
|
||||||
|
|
||||||
def test_reserved_qty_for_stopped_production(self):
|
def test_reserved_qty_for_stopped_production(self):
|
||||||
test_stock_entry.make_stock_entry(item_code="_Test Item",
|
test_stock_entry.make_stock_entry(item_code="_Test Item",
|
||||||
target= self.warehouse, qty=100, basic_rate=100)
|
target= self.warehouse, qty=100, basic_rate=100)
|
||||||
|
@ -57,7 +57,7 @@ class TestDeliveryNote(unittest.TestCase):
|
|||||||
|
|
||||||
sle = frappe.get_doc("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.name})
|
sle = frappe.get_doc("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.name})
|
||||||
|
|
||||||
self.assertEqual(sle.stock_value_difference, -1*stock_queue[0][1])
|
self.assertEqual(sle.stock_value_difference, flt(-1*stock_queue[0][1]))
|
||||||
|
|
||||||
self.assertFalse(get_gl_entries("Delivery Note", dn.name))
|
self.assertFalse(get_gl_entries("Delivery Note", dn.name))
|
||||||
|
|
||||||
|
@ -1115,7 +1115,10 @@ class StockEntry(StockController):
|
|||||||
for d in backflushed_materials.get(item.item_code):
|
for d in backflushed_materials.get(item.item_code):
|
||||||
if d.get(item.warehouse):
|
if d.get(item.warehouse):
|
||||||
if (qty > req_qty):
|
if (qty > req_qty):
|
||||||
qty-= d.get(item.warehouse)
|
qty = (qty/trans_qty) * flt(self.fg_completed_qty)
|
||||||
|
|
||||||
|
if cint(frappe.get_cached_value('UOM', item.stock_uom, 'must_be_whole_number')):
|
||||||
|
qty = frappe.utils.ceil(qty)
|
||||||
|
|
||||||
if qty > 0:
|
if qty > 0:
|
||||||
self.add_to_stock_entry_detail({
|
self.add_to_stock_entry_detail({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user