chore: use flt for currency
diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
index 2fe1f61..87459dc 100644
--- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
@@ -1070,6 +1070,7 @@
Validate Allocation on Payment Entry based on Payment Schedule. Upon overallocation, validation error must be thrown.
"""
+ customer = create_customer()
create_payment_terms_template()
# Validate allocation on base/company currency
@@ -1082,7 +1083,7 @@
# Allocated amount should be according to the payment schedule
for idx, schedule in enumerate(si1.payment_schedule):
with self.subTest(idx=idx):
- self.assertEqual(schedule.payment_amount, pe.references[idx].allocated_amount)
+ self.assertEqual(flt(schedule.payment_amount), flt(pe.references[idx].allocated_amount))
pe.save()
# Overallocation validation should trigger
@@ -1110,7 +1111,7 @@
# Allocated amount should be according to the payment schedule
for idx, schedule in enumerate(si2.payment_schedule):
with self.subTest(idx=idx):
- self.assertEqual(schedule.payment_amount, pe.references[idx].allocated_amount)
+ self.assertEqual(flt(schedule.payment_amount), flt(pe.references[idx].allocated_amount))
pe.save()
# Overallocation validation should trigger
@@ -1123,9 +1124,9 @@
si2.delete()
# Validate allocation in base/company currency on a foreign currency document
- # when invoice is made is foreign currency, but posted to base/company currency account
+ # when invoice is made is foreign currency, but posted to base/company currency debtors account
si3 = create_sales_invoice(
- customer="_Test Customer USD",
+ customer=customer,
currency="USD",
conversion_rate=80,
do_not_save=1,
@@ -1138,17 +1139,17 @@
# Allocated amount should be according to the payment schedule
for idx, schedule in enumerate(si3.payment_schedule):
with self.subTest(idx=idx):
- self.assertEqual(schedule.payment_amount, pe.references[idx].allocated_amount)
+ self.assertEqual(flt(schedule.base_payment_amount), flt(pe.references[idx].allocated_amount))
pe.save()
# Overallocation validation should trigger
- pe.paid_amount = 400
- pe.references[0].allocated_amount = 200
- pe.references[1].allocated_amount = 200
+ pe.paid_amount = 16000
+ pe.references[0].allocated_amount = 8000
+ pe.references[1].allocated_amount = 8000
self.assertRaises(frappe.ValidationError, pe.save)
- # pe.delete()
- # si3.cancel()
- # si3.delete()
+ pe.delete()
+ si3.cancel()
+ si3.delete()
def create_payment_entry(**args):
@@ -1239,3 +1240,17 @@
def create_payment_term(name):
if not frappe.db.exists("Payment Term", name):
frappe.get_doc({"doctype": "Payment Term", "payment_term_name": name}).insert()
+
+
+def create_customer(name="_Test Customer 2 USD", currency="USD"):
+ customer = None
+ if frappe.db.exists("Customer", name):
+ customer = name
+ else:
+ customer = frappe.new_doc("Customer")
+ customer.customer_name = name
+ customer.default_currency = currency
+ customer.type = "Individual"
+ customer.save()
+ customer = customer.name
+ return customer