Skip to content

Commit

Permalink
chore: fixed test cases related to Internal Transfer (#37659)
Browse files Browse the repository at this point in the history
(cherry picked from commit 72d32a4)

# Conflicts:
#	erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
#	erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
  • Loading branch information
rohitwaghchaure authored and mergify[bot] committed Oct 24, 2023
1 parent 92cbe58 commit d245165
Show file tree
Hide file tree
Showing 2 changed files with 167 additions and 0 deletions.
49 changes: 49 additions & 0 deletions erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -2537,7 +2537,42 @@ def test_inter_company_transaction_without_default_warehouse(self):

# tear down
frappe.local.enable_perpetual_inventory["_Test Company 1"] = old_perpetual_inventory
<<<<<<< HEAD
frappe.db.set_single_value("Stock Settings", "allow_negative_stock", old_negative_stock)
=======
frappe.db.set_value("Stock Settings", None, "allow_negative_stock", old_negative_stock)

def test_sle_for_target_warehouse(self):
se = make_stock_entry(
item_code="138-CMS Shoe",
target="Finished Goods - _TC",
company="_Test Company",
qty=1,
basic_rate=500,
)

si = frappe.copy_doc(test_records[0])
si.customer = "_Test Internal Customer 3"
si.update_stock = 1
si.set_warehouse = "Finished Goods - _TC"
si.set_target_warehouse = "Stores - _TC"
si.get("items")[0].warehouse = "Finished Goods - _TC"
si.get("items")[0].target_warehouse = "Stores - _TC"
si.insert()
si.submit()

sles = frappe.get_all(
"Stock Ledger Entry", filters={"voucher_no": si.name}, fields=["name", "actual_qty"]
)

# check if both SLEs are created
self.assertEqual(len(sles), 2)
self.assertEqual(sum(d.actual_qty for d in sles), 0.0)

# tear down
si.cancel()
se.cancel()
>>>>>>> 72d32a4901 (chore: fixed test cases related to Internal Transfer (#37659))

def test_internal_transfer_gl_entry(self):
si = create_sales_invoice(
Expand Down Expand Up @@ -3662,6 +3697,20 @@ def create_internal_parties():
allowed_to_interact_with="_Test Company with perpetual inventory",
)

create_internal_customer(
customer_name="_Test Internal Customer 3",
represents_company="_Test Company",
allowed_to_interact_with="_Test Company",
)

account = create_account(
account_name="Unrealized Profit",
parent_account="Current Liabilities - _TC",
company="_Test Company",
)

frappe.db.set_value("Company", "_Test Company", "unrealized_profit_loss_account", account)

create_internal_supplier(
supplier_name="_Test Internal Supplier",
represents_company="Wind Power LLC",
Expand Down
118 changes: 118 additions & 0 deletions erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
Original file line number Diff line number Diff line change
Expand Up @@ -957,6 +957,124 @@ def test_make_purchase_invoice_from_pr_with_returned_qty_duplicate_items(self):
pr1.reload()
pr1.cancel()

<<<<<<< HEAD
=======
def test_stock_transfer_from_purchase_receipt(self):
from erpnext.stock.doctype.delivery_note.delivery_note import make_inter_company_purchase_receipt
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note

prepare_data_for_internal_transfer()

customer = "_Test Internal Customer 2"
company = "_Test Company with perpetual inventory"

pr1 = make_purchase_receipt(
warehouse="Stores - TCP1", company="_Test Company with perpetual inventory"
)

dn1 = create_delivery_note(
item_code=pr1.items[0].item_code,
company=company,
customer=customer,
cost_center="Main - TCP1",
expense_account="Cost of Goods Sold - TCP1",
qty=5,
rate=500,
warehouse="Stores - TCP1",
target_warehouse="Work In Progress - TCP1",
)

pr = make_inter_company_purchase_receipt(dn1.name)
pr.items[0].from_warehouse = "Work In Progress - TCP1"
pr.items[0].warehouse = "Stores - TCP1"
pr.submit()

gl_entries = get_gl_entries("Purchase Receipt", pr.name)
sl_entries = get_sl_entries("Purchase Receipt", pr.name)

self.assertFalse(gl_entries)

expected_sle = {"Work In Progress - TCP1": -5, "Stores - TCP1": 5}

for sle in sl_entries:
self.assertEqual(expected_sle[sle.warehouse], sle.actual_qty)

pr.cancel()
pr1.cancel()

def test_stock_transfer_from_purchase_receipt_with_valuation(self):
from erpnext.stock.doctype.delivery_note.delivery_note import make_inter_company_purchase_receipt
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note

prepare_data_for_internal_transfer()

create_warehouse(
"_Test Warehouse for Valuation",
company="_Test Company with perpetual inventory",
properties={"account": "_Test Account Stock In Hand - TCP1"},
)

pr1 = make_purchase_receipt(
warehouse="Stores - TCP1",
company="_Test Company with perpetual inventory",
)

customer = "_Test Internal Customer 2"
company = "_Test Company with perpetual inventory"

dn1 = create_delivery_note(
item_code=pr1.items[0].item_code,
company=company,
customer=customer,
cost_center="Main - TCP1",
expense_account="Cost of Goods Sold - TCP1",
qty=5,
rate=50,
warehouse="Stores - TCP1",
target_warehouse="_Test Warehouse for Valuation - TCP1",
)

pr = make_inter_company_purchase_receipt(dn1.name)
pr.items[0].from_warehouse = "_Test Warehouse for Valuation - TCP1"
pr.items[0].warehouse = "Stores - TCP1"

pr.append(
"taxes",
{
"charge_type": "On Net Total",
"account_head": "_Test Account Shipping Charges - TCP1",
"category": "Valuation and Total",
"cost_center": "Main - TCP1",
"description": "Test",
"rate": 9,
},
)

pr.submit()

gl_entries = get_gl_entries("Purchase Receipt", pr.name)
sl_entries = get_sl_entries("Purchase Receipt", pr.name)

expected_gle = [
["Stock In Hand - TCP1", 272.5, 0.0],
["_Test Account Stock In Hand - TCP1", 0.0, 250.0],
["_Test Account Shipping Charges - TCP1", 0.0, 22.5],
]

expected_sle = {"_Test Warehouse for Valuation - TCP1": -5, "Stores - TCP1": 5}

for sle in sl_entries:
self.assertEqual(expected_sle[sle.warehouse], sle.actual_qty)

for i, gle in enumerate(gl_entries):
self.assertEqual(gle.account, expected_gle[i][0])
self.assertEqual(gle.debit, expected_gle[i][1])
self.assertEqual(gle.credit, expected_gle[i][2])

pr.cancel()
pr1.cancel()

>>>>>>> 72d32a4901 (chore: fixed test cases related to Internal Transfer (#37659))
def test_po_to_pi_and_po_to_pr_worflow_full(self):
"""Test following behaviour:
- Create PO
Expand Down

0 comments on commit d245165

Please sign in to comment.