From 9085a5e52dc7804a7d4396d40d49279ca41dd384 Mon Sep 17 00:00:00 2001 From: tunde Date: Thu, 7 Sep 2017 14:31:33 +0100 Subject: [PATCH] more test cases for quotation, purchase/sales order --- .../purchase_order/test_purchase_order.py | 31 +++++++++++++++++- .../doctype/quotation/test_quotation.py | 6 +++- .../doctype/sales_order/test_sales_order.py | 32 ++++++++++++++++++- 3 files changed, 66 insertions(+), 3 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 17786aa443a..1bfc9cb68c2 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -5,8 +5,9 @@ from __future__ import unicode_literals import unittest import frappe import frappe.defaults -from frappe.utils import flt, add_days, nowdate +from frappe.utils import flt, add_days, nowdate, DATE_FORMAT from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_receipt, make_purchase_invoice +from erpnext.controllers.accounts_controller import get_payment_terms class TestPurchaseOrder(unittest.TestCase): def test_make_purchase_receipt(self): @@ -83,6 +84,34 @@ class TestPurchaseOrder(unittest.TestCase): self.assertEquals(pi.doctype, "Purchase Invoice") self.assertEquals(len(pi.get("items", [])), 1) + def test_make_purchase_invoice_with_terms(self): + po = create_purchase_order(do_not_submit=True) + + self.assertRaises(frappe.ValidationError, make_purchase_invoice, po.name) + + po.update( + {"payment_schedule": get_payment_terms( + "_Test Payment Term Template", po.transaction_date, po.grand_total + )} + ) + + po.save() + po.submit() + + self.assertEqual(po.payment_schedule[0].payment_amount, 2500.0) + self.assertEqual(po.payment_schedule[0].due_date, po.transaction_date) + self.assertEqual(po.payment_schedule[1].payment_amount, 2500.0) + self.assertEqual(po.payment_schedule[1].due_date, add_days(po.transaction_date, 30)) + pi = make_purchase_invoice(po.name) + + self.assertEquals(pi.doctype, "Purchase Invoice") + self.assertEquals(len(pi.get("items", [])), 1) + + self.assertEqual(pi.payment_schedule[0].payment_amount, 2500.0) + self.assertEqual(pi.payment_schedule[0].due_date.strftime(DATE_FORMAT), po.transaction_date) + self.assertEqual(pi.payment_schedule[1].payment_amount, 2500.0) + self.assertEqual(pi.payment_schedule[1].due_date.strftime(DATE_FORMAT), add_days(po.transaction_date, 30)) + def test_subcontracting(self): po = create_purchase_order(item_code="_Test FG Item", is_subcontracted="Yes") self.assertEquals(len(po.get("supplied_items")), 2) diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py index 457ba1a359a..f40a4ca86a7 100644 --- a/erpnext/selling/doctype/quotation/test_quotation.py +++ b/erpnext/selling/doctype/quotation/test_quotation.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import flt, add_days, nowdate, add_months +from frappe.utils import flt, add_days, nowdate, add_months, DATE_FORMAT from erpnext.controllers.accounts_controller import get_payment_terms import unittest @@ -62,6 +62,10 @@ class TestQuotation(unittest.TestCase): self.assertEquals(sales_order.get("items")[0].doctype, "Sales Order Item") self.assertEquals(sales_order.get("items")[0].prevdoc_docname, quotation.name) self.assertEquals(sales_order.customer, "_Test Customer") + self.assertEqual(sales_order.payment_schedule[0].payment_amount, 8906.25) + self.assertEqual(sales_order.payment_schedule[0].due_date.strftime(DATE_FORMAT), quotation.transaction_date) + self.assertEqual(sales_order.payment_schedule[1].payment_amount, 8906.25) + self.assertEqual(sales_order.payment_schedule[1].due_date.strftime(DATE_FORMAT), add_days(quotation.transaction_date, 30)) sales_order.delivery_date = "2014-01-01" sales_order.naming_series = "_T-Quotation-" diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index 7c0d7f9dcaf..ff6166d86d2 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -2,13 +2,14 @@ # License: GNU General Public License v3. See license.txt from __future__ import unicode_literals import frappe -from frappe.utils import flt, add_days +from frappe.utils import flt, add_days, DATE_FORMAT import frappe.permissions import unittest from erpnext.stock.doctype.item.test_item import get_total_projected_qty from erpnext.selling.doctype.sales_order.sales_order \ import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry +from erpnext.controllers.accounts_controller import get_payment_terms from frappe.tests.test_permissions import set_user_permission_doctypes class TestSalesOrder(unittest.TestCase): @@ -58,6 +59,35 @@ class TestSalesOrder(unittest.TestCase): si1 = make_sales_invoice(so.name) self.assertEquals(len(si1.get("items")), 0) + def test_make_sales_invoice_with_terms(self): + so = make_sales_order(do_not_submit=True) + + self.assertRaises(frappe.ValidationError, make_sales_invoice, so.name) + + so.update( + {"payment_schedule": get_payment_terms( + "_Test Payment Term Template", so.transaction_date, so.grand_total + )} + ) + + so.save() + so.submit() + si = make_sales_invoice(so.name) + + self.assertEqual(si.payment_schedule[0].payment_amount, 500.0) + self.assertEqual(si.payment_schedule[0].due_date.strftime(DATE_FORMAT), so.transaction_date) + self.assertEqual(si.payment_schedule[1].payment_amount, 500.0) + self.assertEqual(si.payment_schedule[1].due_date.strftime(DATE_FORMAT), add_days(so.transaction_date, 30)) + + self.assertEquals(len(si.get("items")), len(so.get("items"))) + self.assertEquals(len(si.get("items")), 1) + + si.insert() + si.submit() + + si1 = make_sales_invoice(so.name) + self.assertEquals(len(si1.get("items")), 0) + def test_update_qty(self): so = make_sales_order()