def test_payment_entry_retrieves_last_exchange_rate(self): from erpnext.setup.doctype.currency_exchange.test_currency_exchange import test_records, save_new_records test_records = test_records save_new_records(test_records) pe = frappe.new_doc("Payment Entry") pe.payment_type = "Pay" pe.company = "_Test Company" pe.posting_date = "2016-01-10" pe.paid_from = "_Test Bank USD - _TC" pe.paid_to = "_Test Bank - _TC" pe.paid_amount = 100 pe.reference_no = "3" pe.reference_date = "2016-01-10" pe.party_type = "Supplier" pe.party = "_Test Supplier USD" pe.setup_party_account_field() pe.set_missing_values() pe.set_exchange_rate() pe.set_amounts() self.assertEqual( pe.source_exchange_rate, 65.1, "{0} is not equal to {1}".format(pe.source_exchange_rate, 65.1) )
def test_payment_entry_retrieves_last_exchange_rate(self): from erpnext.setup.doctype.currency_exchange.test_currency_exchange import test_records, save_new_records save_new_records(test_records) pe = frappe.new_doc("Payment Entry") pe.payment_type = "Pay" pe.company = "_Test Company" pe.posting_date = "2016-01-10" pe.paid_from = "_Test Bank USD - _TC" pe.paid_to = "_Test Bank - _TC" pe.paid_amount = 100 pe.received_amount = 100 pe.reference_no = "3" pe.reference_date = "2016-01-10" pe.party_type = "Supplier" pe.party = "_Test Supplier USD" pe.setup_party_account_field() pe.set_missing_values() pe.set_exchange_rate() pe.set_amounts() self.assertEqual( pe.source_exchange_rate, 65.1, "{0} is not equal to {1}".format(pe.source_exchange_rate, 65.1) )
def test_multi_currency_lcv(self): from erpnext.setup.doctype.currency_exchange.test_currency_exchange import ( save_new_records, test_records, ) save_new_records(test_records) ## Create USD Shipping charges_account usd_shipping = create_account( account_name="Shipping Charges USD", parent_account="Duties and Taxes - TCP1", company="_Test Company with perpetual inventory", account_currency="USD", ) pr = make_purchase_receipt( company="_Test Company with perpetual inventory", warehouse="Stores - TCP1", supplier_warehouse="Stores - TCP1", ) pr.submit() lcv = make_landed_cost_voucher( company=pr.company, receipt_document_type="Purchase Receipt", receipt_document=pr.name, charges=100, do_not_save=True, ) lcv.append( "taxes", { "description": "Shipping Charges", "expense_account": usd_shipping, "amount": 10 }) lcv.save() lcv.submit() pr.load_from_db() # Considering exchange rate from USD to INR as 62.9 self.assertEqual(lcv.total_taxes_and_charges, 729) self.assertEqual(pr.items[0].landed_cost_voucher_amount, 729) gl_entries = frappe.get_all( "GL Entry", fields=["account", "credit", "credit_in_account_currency"], filters={ "voucher_no": pr.name, "account": ("in", [ "Shipping Charges USD - TCP1", "Expenses Included In Valuation - TCP1" ]), }, ) expected_gl_entries = { "Shipping Charges USD - TCP1": [629, 10], "Expenses Included In Valuation - TCP1": [100, 100], } for entry in gl_entries: amounts = expected_gl_entries.get(entry.account) self.assertEqual(entry.credit, amounts[0]) self.assertEqual(entry.credit_in_account_currency, amounts[1])