test: add test case

This commit is contained in:
Mihir Kandoi
2025-12-22 21:50:00 +05:30
parent 4b07d4a1b9
commit 6ac88f9bbf
2 changed files with 73 additions and 4 deletions

View File

@@ -1248,10 +1248,10 @@ def create_delivery_note(source_name, target_doc=None):
group_key = lambda so: ( # noqa
so["customer"],
so["company_address"],
so["dispatch_address_name"],
so["shipping_address_name"],
so["customer_address"],
so["company_address"] or "",
so["dispatch_address_name"] or "",
so["shipping_address_name"] or "",
so["customer_address"] or "",
)
for key, rows in groupby(sorted(sales_orders, key=group_key), key=group_key):
sales_dict[key] = {row.sales_order for row in rows}

View File

@@ -1525,3 +1525,72 @@ class TestPickList(IntegrationTestCase):
pick_list.cancel()
sales_order.cancel()
stock_entry.cancel()
def test_creating_dn_from_so_with_different_addresses(self):
warehouse = "_Test Warehouse - _TC"
item1 = make_item().name
item2 = make_item().name
item3 = make_item().name
customer_shipping_address_1 = frappe.get_doc(
{
"doctype": "Address",
"address_title": "Customer Shipping Address",
"address_type": "Shipping",
"address_line1": "123, ABC Street",
"city": "Mumbai",
"country": "India",
"links": [{"link_doctype": "Customer", "link_name": "_Test Customer"}],
"is_shipping_address": 1,
}
).insert()
sales_order1 = make_sales_order(item_code=item1, qty=1)
make_stock_entry(item=item1, to_warehouse=warehouse, qty=1)
sales_order2 = make_sales_order(item_code=item2, qty=1)
make_stock_entry(item=item2, to_warehouse=warehouse, qty=1)
sales_order3 = make_sales_order(item_code=item3, qty=1, do_not_submit=True)
customer_shipping_address_2 = frappe.get_doc(
{
"doctype": "Address",
"address_title": "Customer Shipping Address",
"address_type": "Shipping",
"address_line1": "123, ABC Street",
"city": "Mumbai",
"country": "India",
"links": [{"link_doctype": "Customer", "link_name": "_Test Customer"}],
}
).insert()
sales_order3.shipping_address_name = customer_shipping_address_2.name
sales_order3.submit()
make_stock_entry(item=item3, to_warehouse=warehouse, qty=1)
from json import dumps
from frappe.model.mapper import map_docs
pick_list = frappe.new_doc("Pick List")
map_docs(
"erpnext.selling.doctype.sales_order.sales_order.create_pick_list",
dumps([sales_order1.name, sales_order2.name, sales_order3.name]),
pick_list,
)
pick_list.submit()
create_delivery_note(pick_list.name)
delivery_notes = frappe.get_all(
"Delivery Note Item", filters={"against_pick_list": pick_list.name}, pluck="parent", distinct=True
)
self.assertEqual(len(delivery_notes), 2)
for delivery_note in delivery_notes:
doc = frappe.get_doc("Delivery Note", delivery_note)
if len(doc.items) == 1:
self.assertEqual(doc.items[0].item_code, item3)
self.assertEqual(doc.shipping_address_name, customer_shipping_address_2.name)
else:
self.assertEqual(doc.shipping_address_name, customer_shipping_address_1.name)
item_codes = [item.item_code for item in doc.items]
self.assertTrue(item1 in item_codes)
self.assertTrue(item2 in item_codes)