mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-19 19:37:56 +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.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.item.test_item import create_item, make_item
|
||||||
from erpnext.stock.doctype.packed_item.test_packed_item import create_product_bundle
|
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_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.purchase_receipt.test_purchase_receipt import make_purchase_receipt
|
||||||
from erpnext.stock.doctype.serial_and_batch_bundle.test_serial_and_batch_bundle import (
|
from erpnext.stock.doctype.serial_and_batch_bundle.test_serial_and_batch_bundle import (
|
||||||
get_batch_from_bundle,
|
get_batch_from_bundle,
|
||||||
@@ -1016,6 +1025,64 @@ class TestPickList(FrappeTestCase):
|
|||||||
pl.reload()
|
pl.reload()
|
||||||
self.assertEqual(pl.status, "Cancelled")
|
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):
|
def test_pick_list_validation(self):
|
||||||
warehouse = "_Test Warehouse - _TC"
|
warehouse = "_Test Warehouse - _TC"
|
||||||
item = make_item("Test Non Serialized Pick List Item", properties={"is_stock_item": 1}).name
|
item = make_item("Test Non Serialized Pick List Item", properties={"is_stock_item": 1}).name
|
||||||
|
|||||||
Reference in New Issue
Block a user