From 5314445d58f36e7abb527911e3446ebf909edcc6 Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Mon, 7 Jun 2021 08:02:11 +0530 Subject: [PATCH] fix(Purchase Receipt): Add test for exchange rate difference handling --- .../purchase_receipt/test_purchase_receipt.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index 2586a0fc0cb..0ce4c3a6694 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -1051,6 +1051,28 @@ class TestPurchaseReceipt(unittest.TestCase): self.assertEqual(len(item_two_gl_entry), 1) frappe.db.set_value('Company', company, 'enable_perpetual_inventory_for_non_stock_items', before_test_value) + def test_purchase_receipt_with_exchange_rate_difference(self): + from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice as create_purchase_invoice + + pi = create_purchase_invoice(currency = "USD", conversion_rate = 70) + + create_warehouse("_Test Warehouse for Valuation", company="_Test Company with perpetual inventory", + properties={"account": '_Test Account Stock In Hand - TCP1'}) + pr = make_purchase_receipt(warehouse = '_Test Warehouse for Valuation - TCP1', + company="_Test Company with perpetual inventory", currency = "USD", conversion_rate = 80, + do_not_save = "True") + + for item in pr.items: + item.purchase_invoice = pi.name + + pr.insert() + pr.submit() + + # fetching the latest GL Entry with 'Exchange Gain/Loss - TCP1' account + gl_entries = frappe.get_all('GL Entry', filters = {'account': 'Exchange Gain/Loss - TCP1'}) + voucher_no = frappe.get_value('GL Entry', gl_entries[0]['name'], 'voucher_no') + + self.assertEqual(pr.name, voucher_no) def get_sl_entries(voucher_type, voucher_no): return frappe.db.sql(""" select actual_qty, warehouse, stock_value_difference