test: PE from SI with early payment discount amount & PE assertions in discount % test
This commit is contained in:
parent
2ae5834290
commit
c217bb2018
@ -260,6 +260,14 @@ class TestPaymentEntry(FrappeTestCase):
|
|||||||
si.submit()
|
si.submit()
|
||||||
|
|
||||||
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC")
|
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC")
|
||||||
|
|
||||||
|
self.assertEqual(pe.references[0].payment_term, "30 Credit Days with 10% Discount")
|
||||||
|
self.assertEqual(pe.references[0].allocated_amount, 236.0)
|
||||||
|
self.assertEqual(pe.paid_amount, 212.4)
|
||||||
|
self.assertEqual(pe.deductions[0].amount, 20.0) # Loss on Income
|
||||||
|
self.assertEqual(pe.deductions[1].amount, 3.6) # Loss on Tax
|
||||||
|
self.assertEqual(pe.deductions[1].account, "_Test Account Service Tax - _TC")
|
||||||
|
|
||||||
pe.submit()
|
pe.submit()
|
||||||
si.load_from_db()
|
si.load_from_db()
|
||||||
|
|
||||||
@ -269,6 +277,46 @@ class TestPaymentEntry(FrappeTestCase):
|
|||||||
self.assertEqual(si.payment_schedule[0].outstanding, 0)
|
self.assertEqual(si.payment_schedule[0].outstanding, 0)
|
||||||
self.assertEqual(si.payment_schedule[0].discounted_amount, 23.6)
|
self.assertEqual(si.payment_schedule[0].discounted_amount, 23.6)
|
||||||
|
|
||||||
|
def test_payment_entry_against_payment_terms_with_discount_amount(self):
|
||||||
|
si = create_sales_invoice(do_not_save=1, qty=1, rate=200)
|
||||||
|
|
||||||
|
si.payment_terms_template = "Test Discount Amount Template"
|
||||||
|
create_payment_terms_template_with_discount(
|
||||||
|
name="30 Credit Days with Rs.50 Discount",
|
||||||
|
discount_type="Amount",
|
||||||
|
discount=50,
|
||||||
|
template_name="Test Discount Amount Template",
|
||||||
|
)
|
||||||
|
frappe.db.set_value("Company", si.company, "default_discount_account", "Write Off - _TC")
|
||||||
|
|
||||||
|
si.append(
|
||||||
|
"taxes",
|
||||||
|
{
|
||||||
|
"charge_type": "On Net Total",
|
||||||
|
"account_head": "_Test Account Service Tax - _TC",
|
||||||
|
"cost_center": "_Test Cost Center - _TC",
|
||||||
|
"description": "Service Tax",
|
||||||
|
"rate": 18,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
si.save()
|
||||||
|
si.submit()
|
||||||
|
|
||||||
|
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC")
|
||||||
|
self.assertEqual(pe.references[0].allocated_amount, 236.0)
|
||||||
|
self.assertEqual(pe.paid_amount, 186)
|
||||||
|
self.assertEqual(pe.deductions[0].amount, 42.37) # Loss on Income
|
||||||
|
self.assertEqual(pe.deductions[1].amount, 7.63) # Loss on Tax
|
||||||
|
self.assertEqual(pe.deductions[1].account, "_Test Account Service Tax - _TC")
|
||||||
|
|
||||||
|
pe.submit()
|
||||||
|
si.load_from_db()
|
||||||
|
|
||||||
|
self.assertEqual(si.payment_schedule[0].payment_amount, 236.0)
|
||||||
|
self.assertEqual(si.payment_schedule[0].paid_amount, 186)
|
||||||
|
self.assertEqual(si.payment_schedule[0].outstanding, 0)
|
||||||
|
self.assertEqual(si.payment_schedule[0].discounted_amount, 50)
|
||||||
|
|
||||||
def test_payment_against_purchase_invoice_to_check_status(self):
|
def test_payment_against_purchase_invoice_to_check_status(self):
|
||||||
pi = make_purchase_invoice(
|
pi = make_purchase_invoice(
|
||||||
supplier="_Test Supplier USD",
|
supplier="_Test Supplier USD",
|
||||||
@ -839,24 +887,27 @@ def create_payment_terms_template():
|
|||||||
).insert()
|
).insert()
|
||||||
|
|
||||||
|
|
||||||
def create_payment_terms_template_with_discount():
|
def create_payment_terms_template_with_discount(
|
||||||
|
name=None, discount_type=None, discount=None, template_name=None
|
||||||
|
):
|
||||||
|
create_payment_term(name or "30 Credit Days with 10% Discount")
|
||||||
|
template_name = template_name or "Test Discount Template"
|
||||||
|
|
||||||
create_payment_term("30 Credit Days with 10% Discount")
|
if not frappe.db.exists("Payment Terms Template", template_name):
|
||||||
|
frappe.get_doc(
|
||||||
if not frappe.db.exists("Payment Terms Template", "Test Discount Template"):
|
|
||||||
payment_term_template = frappe.get_doc(
|
|
||||||
{
|
{
|
||||||
"doctype": "Payment Terms Template",
|
"doctype": "Payment Terms Template",
|
||||||
"template_name": "Test Discount Template",
|
"template_name": template_name,
|
||||||
"allocate_payment_based_on_payment_terms": 1,
|
"allocate_payment_based_on_payment_terms": 1,
|
||||||
"terms": [
|
"terms": [
|
||||||
{
|
{
|
||||||
"doctype": "Payment Terms Template Detail",
|
"doctype": "Payment Terms Template Detail",
|
||||||
"payment_term": "30 Credit Days with 10% Discount",
|
"payment_term": name or "30 Credit Days with 10% Discount",
|
||||||
"invoice_portion": 100,
|
"invoice_portion": 100,
|
||||||
"credit_days_based_on": "Day(s) after invoice date",
|
"credit_days_based_on": "Day(s) after invoice date",
|
||||||
"credit_days": 2,
|
"credit_days": 2,
|
||||||
"discount": 10,
|
"discount_type": discount_type or "Percentage",
|
||||||
|
"discount": discount or 10,
|
||||||
"discount_validity_based_on": "Day(s) after invoice date",
|
"discount_validity_based_on": "Day(s) after invoice date",
|
||||||
"discount_validity": 1,
|
"discount_validity": 1,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user