mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-14 23:18:40 +00:00
test(stock): add test for partial transfer status from pick list
(cherry picked from commit 6ecbe6fd4b)
# Conflicts:
# erpnext/stock/doctype/pick_list/test_pick_list.py
This commit is contained in:
@@ -10,7 +10,16 @@ from erpnext.selling.doctype.sales_order.sales_order import create_pick_list
|
||||
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
|
||||
from erpnext.stock.doctype.item.test_item import create_item, make_item
|
||||
from erpnext.stock.doctype.packed_item.test_packed_item import create_product_bundle
|
||||
<<<<<<< HEAD
|
||||
from erpnext.stock.doctype.pick_list.pick_list import create_delivery_note, create_dn_for_pick_lists
|
||||
=======
|
||||
from erpnext.stock.doctype.pick_list.pick_list import (
|
||||
create_delivery,
|
||||
create_delivery_note,
|
||||
create_dn_for_pick_lists,
|
||||
create_stock_entry,
|
||||
)
|
||||
>>>>>>> 6ecbe6fd4b (test(stock): add test for partial transfer status from pick list)
|
||||
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt
|
||||
from erpnext.stock.doctype.serial_and_batch_bundle.test_serial_and_batch_bundle import (
|
||||
get_batch_from_bundle,
|
||||
@@ -1016,6 +1025,64 @@ class TestPickList(FrappeTestCase):
|
||||
pl.reload()
|
||||
self.assertEqual(pl.status, "Cancelled")
|
||||
|
||||
def test_pick_list_partial_transfer_status(self):
|
||||
"""Partial Stock Entries from a Pick List should track transferred_qty and drive the
|
||||
Partially Transferred / Completed status, and allow further transfers for the remainder."""
|
||||
from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
|
||||
|
||||
item = make_item(properties={"is_stock_item": 1}).name
|
||||
source_warehouse = "_Test Warehouse - _TC"
|
||||
target_warehouse = create_warehouse("_Test Transfer Target Warehouse")
|
||||
make_stock_entry(item=item, to_warehouse=source_warehouse, qty=10)
|
||||
|
||||
pick_list = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Pick List",
|
||||
"company": "_Test Company",
|
||||
"purpose": "Material Transfer",
|
||||
"pick_manually": 1,
|
||||
"locations": [
|
||||
{
|
||||
"item_code": item,
|
||||
"qty": 10,
|
||||
"stock_qty": 10,
|
||||
"conversion_factor": 1,
|
||||
"warehouse": source_warehouse,
|
||||
"picked_qty": 10,
|
||||
}
|
||||
],
|
||||
}
|
||||
)
|
||||
pick_list.submit()
|
||||
self.assertEqual(pick_list.status, "Open")
|
||||
|
||||
# Transfer 4 of the 10 picked units.
|
||||
se1 = frappe.get_doc(create_stock_entry(pick_list.as_dict()))
|
||||
self.assertEqual(se1.items[0].qty, 10)
|
||||
se1.items[0].qty = 4
|
||||
se1.items[0].t_warehouse = target_warehouse
|
||||
se1.submit()
|
||||
|
||||
pick_list.reload()
|
||||
self.assertEqual(pick_list.locations[0].transferred_qty, 4)
|
||||
self.assertEqual(pick_list.status, "Partially Transferred")
|
||||
|
||||
# The next Stock Entry should only offer the remaining 6 units.
|
||||
se2 = frappe.get_doc(create_stock_entry(pick_list.as_dict()))
|
||||
self.assertEqual(se2.items[0].qty, 6)
|
||||
se2.items[0].t_warehouse = target_warehouse
|
||||
se2.submit()
|
||||
|
||||
pick_list.reload()
|
||||
self.assertEqual(pick_list.locations[0].transferred_qty, 10)
|
||||
self.assertEqual(pick_list.status, "Completed")
|
||||
|
||||
# Cancelling the last entry rolls transferred_qty and status back.
|
||||
se2.cancel()
|
||||
pick_list.reload()
|
||||
self.assertEqual(pick_list.locations[0].transferred_qty, 4)
|
||||
self.assertEqual(pick_list.status, "Partially Transferred")
|
||||
|
||||
def test_pick_list_validation(self):
|
||||
warehouse = "_Test Warehouse - _TC"
|
||||
item = make_item("Test Non Serialized Pick List Item", properties={"is_stock_item": 1}).name
|
||||
|
||||
Reference in New Issue
Block a user