mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 00:14:50 +00:00
more test cases for quotation, purchase/sales order
This commit is contained in:
@@ -5,8 +5,9 @@ from __future__ import unicode_literals
|
|||||||
import unittest
|
import unittest
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.defaults
|
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.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):
|
class TestPurchaseOrder(unittest.TestCase):
|
||||||
def test_make_purchase_receipt(self):
|
def test_make_purchase_receipt(self):
|
||||||
@@ -83,6 +84,34 @@ class TestPurchaseOrder(unittest.TestCase):
|
|||||||
self.assertEquals(pi.doctype, "Purchase Invoice")
|
self.assertEquals(pi.doctype, "Purchase Invoice")
|
||||||
self.assertEquals(len(pi.get("items", [])), 1)
|
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):
|
def test_subcontracting(self):
|
||||||
po = create_purchase_order(item_code="_Test FG Item", is_subcontracted="Yes")
|
po = create_purchase_order(item_code="_Test FG Item", is_subcontracted="Yes")
|
||||||
self.assertEquals(len(po.get("supplied_items")), 2)
|
self.assertEquals(len(po.get("supplied_items")), 2)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import frappe
|
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
|
from erpnext.controllers.accounts_controller import get_payment_terms
|
||||||
import unittest
|
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].doctype, "Sales Order Item")
|
||||||
self.assertEquals(sales_order.get("items")[0].prevdoc_docname, quotation.name)
|
self.assertEquals(sales_order.get("items")[0].prevdoc_docname, quotation.name)
|
||||||
self.assertEquals(sales_order.customer, "_Test Customer")
|
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.delivery_date = "2014-01-01"
|
||||||
sales_order.naming_series = "_T-Quotation-"
|
sales_order.naming_series = "_T-Quotation-"
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.utils import flt, add_days
|
from frappe.utils import flt, add_days, DATE_FORMAT
|
||||||
import frappe.permissions
|
import frappe.permissions
|
||||||
import unittest
|
import unittest
|
||||||
from erpnext.stock.doctype.item.test_item import get_total_projected_qty
|
from erpnext.stock.doctype.item.test_item import get_total_projected_qty
|
||||||
from erpnext.selling.doctype.sales_order.sales_order \
|
from erpnext.selling.doctype.sales_order.sales_order \
|
||||||
import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired
|
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.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
|
from frappe.tests.test_permissions import set_user_permission_doctypes
|
||||||
|
|
||||||
class TestSalesOrder(unittest.TestCase):
|
class TestSalesOrder(unittest.TestCase):
|
||||||
@@ -58,6 +59,35 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
si1 = make_sales_invoice(so.name)
|
si1 = make_sales_invoice(so.name)
|
||||||
self.assertEquals(len(si1.get("items")), 0)
|
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):
|
def test_update_qty(self):
|
||||||
so = make_sales_order()
|
so = make_sales_order()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user