From ded8d117286d8c4a7756805833ecc2a94dbec93a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 17 Aug 2017 14:05:57 +0530 Subject: [PATCH] Js tests added for write off difference amount --- .../doctype/payment_entry/payment_entry.py | 2 +- .../payment_entry/test_payment_entry.py | 4 +- .../tests/test_payment_entry_write_off.js | 67 +++++++++++++++++++ erpnext/tests/ui/make_fixtures.js | 12 ++++ 4 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 erpnext/accounts/doctype/payment_entry/tests/test_payment_entry_write_off.js diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index e8b383fe74..908e58eeac 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -299,7 +299,7 @@ class PaymentEntry(AccountsController): total_deductions = sum([flt(d.amount) for d in self.get("deductions")]) - self.difference_amount = flt(self.difference_amount - total_deductions, + self.difference_amount = flt(self.difference_amount - total_deductions, self.precision("difference_amount")) def clear_unallocated_reference_document_rows(self): diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py index 1ea767ef3e..60be20dd89 100644 --- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py @@ -288,7 +288,7 @@ class TestPaymentEntry(unittest.TestCase): self.assertEqual(pe.unallocated_amount, 0) self.assertEqual(pe.difference_amount, 0) - + pe.submit() expected_gle = dict((d[0], d) for d in [ @@ -316,7 +316,7 @@ class TestPaymentEntry(unittest.TestCase): self.assertEqual(pe.unallocated_amount, 0) self.assertEqual(pe.difference_amount, 0) - + pe.submit() expected_gle = dict((d[0], d) for d in [ diff --git a/erpnext/accounts/doctype/payment_entry/tests/test_payment_entry_write_off.js b/erpnext/accounts/doctype/payment_entry/tests/test_payment_entry_write_off.js new file mode 100644 index 0000000000..133f136298 --- /dev/null +++ b/erpnext/accounts/doctype/payment_entry/tests/test_payment_entry_write_off.js @@ -0,0 +1,67 @@ +QUnit.module('Payment Entry'); + +QUnit.test("test payment entry", function(assert) { + assert.expect(8); + let done = assert.async(); + frappe.run_serially([ + () => { + return frappe.tests.make('Sales Invoice', [ + {customer: 'Test Customer 1'}, + {company: '_Test Company'}, + {currency: 'INR'}, + {selling_price_list: '_Test Price List'}, + {items: [ + [ + {'qty': 1}, + {'item_code': 'Test Product 1'}, + ] + ]} + ]); + }, + () => frappe.timeout(1), + () => cur_frm.save(), + () => frappe.tests.click_button('Submit'), + () => frappe.tests.click_button('Yes'), + () => frappe.timeout(1.5), + () => frappe.click_button('Close'), + () => frappe.timeout(0.5), + () => frappe.click_button('Make'), + () => frappe.timeout(1), + () => frappe.click_link('Payment'), + () => frappe.timeout(2), + () => cur_frm.set_value("paid_to", "_Test Cash - _TC"), + () => frappe.timeout(0.5), + () => { + assert.equal(frappe.get_route()[1], 'Payment Entry', 'made payment entry'); + assert.equal(cur_frm.doc.party, 'Test Customer 1', 'customer set in payment entry'); + assert.equal(cur_frm.doc.paid_from, 'Debtors - _TC', 'customer account set in payment entry'); + assert.equal(cur_frm.doc.paid_amount, 100, 'paid amount set in payment entry'); + assert.equal(cur_frm.doc.references[0].allocated_amount, 100, + 'amount allocated against sales invoice'); + }, + () => cur_frm.set_value('paid_amount', 95), + () => frappe.timeout(1), + () => { + frappe.model.set_value("Payment Entry Reference", + cur_frm.doc.references[0].name, "allocated_amount", 100); + }, + () => frappe.timeout(.5), + () => { + assert.equal(cur_frm.doc.difference_amount, 5, 'difference amount is 5'); + }, + () => { + frappe.db.set_value("Company", "_Test Company", "write_off_account", "_Test Write Off - _TC"); + frappe.timeout(1); + frappe.db.set_value("Company", "_Test Company", + "exchange_gain_loss_account", "_Test Exchange Gain/Loss - _TC"); + }, + () => frappe.timeout(1), + () => frappe.click_button('Write Off Difference Amount'), + () => frappe.timeout(2), + () => { + assert.equal(cur_frm.doc.difference_amount, 0, 'difference amount is zero'); + assert.equal(cur_frm.doc.deductions[0].amount, 5, 'Write off amount = 5'); + }, + () => done() + ]); +}); \ No newline at end of file diff --git a/erpnext/tests/ui/make_fixtures.js b/erpnext/tests/ui/make_fixtures.js index 0c5b4beebe..f817c6549a 100644 --- a/erpnext/tests/ui/make_fixtures.js +++ b/erpnext/tests/ui/make_fixtures.js @@ -205,6 +205,18 @@ $.extend(frappe.test_data, { {title: "Test Term 2"} ] }, + "Item Price": { + "ITEM-PRICE-00001": [ + {item_code: 'Test Product 1'}, + {price_list: '_Test Price List'}, + {price_list_rate: 100} + ], + "ITEM-PRICE-00002": [ + {item_code: 'Test Product 2'}, + {price_list: '_Test Price List'}, + {price_list_rate: 200} + ] + } });