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)
		)
Exemple #2
0
	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])