tests and test fixes
fixes test case: make sales invoice using customer that does not have credit_days_based_on 'Last Day Of Next Month' so that it doesn't conflict with payment term due date fix test case: create purchase invoice with new supplier with credit_days_based_on "Fixed Days" as the default "Last Day of Month" does not apply when using payment terms
This commit is contained in:
parent
be1b871c53
commit
c7f46218d7
@ -6,7 +6,7 @@ from __future__ import unicode_literals
|
|||||||
import unittest
|
import unittest
|
||||||
import frappe, erpnext
|
import frappe, erpnext
|
||||||
import frappe.model
|
import frappe.model
|
||||||
from frappe.utils import cint, flt, today, nowdate
|
from frappe.utils import cint, flt, today, nowdate, getdate, add_days
|
||||||
import frappe.defaults
|
import frappe.defaults
|
||||||
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory, \
|
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory, \
|
||||||
test_records as pr_test_records
|
test_records as pr_test_records
|
||||||
@ -551,6 +551,38 @@ class TestPurchaseInvoice(unittest.TestCase):
|
|||||||
#check outstanding after advance cancellation
|
#check outstanding after advance cancellation
|
||||||
self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total + pi.total_advance))
|
self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total + pi.total_advance))
|
||||||
|
|
||||||
|
def test_gl_entry_based_on_payment_schedule(self):
|
||||||
|
pi = make_purchase_invoice(do_not_save=True, supplier="_Test Supplier P")
|
||||||
|
pi.append("payment_schedule", {
|
||||||
|
"due_date": add_days(nowdate(), 15),
|
||||||
|
"payment_amount": 100
|
||||||
|
})
|
||||||
|
pi.append("payment_schedule", {
|
||||||
|
"due_date": add_days(nowdate(), 45),
|
||||||
|
"payment_amount": 150
|
||||||
|
})
|
||||||
|
|
||||||
|
pi.save()
|
||||||
|
pi.submit()
|
||||||
|
|
||||||
|
gl_entries = frappe.db.sql("""select account, debit, credit, due_date
|
||||||
|
from `tabGL Entry` where voucher_type='Purchase Invoice' and voucher_no=%s
|
||||||
|
order by account asc, debit asc""", pi.name, as_dict=1)
|
||||||
|
self.assertTrue(gl_entries)
|
||||||
|
|
||||||
|
expected_gl_entries = sorted([
|
||||||
|
[pi.credit_to, 0.0, 100.0, add_days(nowdate(), 15)],
|
||||||
|
[pi.credit_to, 0.0, 150.0, add_days(nowdate(), 45)],
|
||||||
|
["_Test Account Cost for Goods Sold - _TC", 250.0, 0.0, None]
|
||||||
|
])
|
||||||
|
|
||||||
|
for i, gle in enumerate(sorted(gl_entries, key=lambda gle: gle.account)):
|
||||||
|
self.assertEquals(expected_gl_entries[i][0], gle.account)
|
||||||
|
self.assertEquals(expected_gl_entries[i][1], gle.debit)
|
||||||
|
self.assertEquals(expected_gl_entries[i][2], gle.credit)
|
||||||
|
self.assertEquals(getdate(expected_gl_entries[i][3]), getdate(gle.due_date))
|
||||||
|
|
||||||
|
|
||||||
def unlink_payment_on_cancel_of_invoice(enable=1):
|
def unlink_payment_on_cancel_of_invoice(enable=1):
|
||||||
accounts_settings = frappe.get_doc("Accounts Settings")
|
accounts_settings = frappe.get_doc("Accounts Settings")
|
||||||
accounts_settings.unlink_payment_on_cancellation_of_invoice = enable
|
accounts_settings.unlink_payment_on_cancellation_of_invoice = enable
|
||||||
|
|||||||
@ -1273,7 +1273,7 @@ class TestSalesInvoice(unittest.TestCase):
|
|||||||
return si
|
return si
|
||||||
|
|
||||||
def test_gl_entry_based_on_payment_schedule(self):
|
def test_gl_entry_based_on_payment_schedule(self):
|
||||||
si = create_sales_invoice(do_not_save=True)
|
si = create_sales_invoice(do_not_save=True, customer="_Test Customer P")
|
||||||
si.append("payment_schedule", {
|
si.append("payment_schedule", {
|
||||||
"due_date": add_days(nowdate(), 15),
|
"due_date": add_days(nowdate(), 15),
|
||||||
"payment_amount": 20
|
"payment_amount": 20
|
||||||
|
|||||||
@ -1,4 +1,10 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"doctype": "Supplier",
|
||||||
|
"supplier_name": "_Test Supplier P",
|
||||||
|
"supplier_type": "_Test Supplier Type",
|
||||||
|
"credit_days_based_on": "Fixed Days"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"doctype": "Supplier",
|
"doctype": "Supplier",
|
||||||
"supplier_name": "_Test Supplier with Country",
|
"supplier_name": "_Test Supplier with Country",
|
||||||
|
|||||||
@ -1,4 +1,12 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"customer_group": "_Test Customer Group",
|
||||||
|
"customer_name": "_Test Customer P",
|
||||||
|
"customer_type": "Individual",
|
||||||
|
"doctype": "Customer",
|
||||||
|
"territory": "_Test Territory",
|
||||||
|
"credit_days_based_on": "Fixed Days"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"customer_group": "_Test Customer Group",
|
"customer_group": "_Test Customer Group",
|
||||||
"customer_name": "_Test Customer",
|
"customer_name": "_Test Customer",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user