test: added test cases for group filters
This commit is contained in:
parent
b2ed9fd3fe
commit
16bfb930f8
@ -11,10 +11,13 @@ from erpnext.selling.report.payment_terms_status_for_sales_order.payment_terms_s
|
||||
)
|
||||
from erpnext.stock.doctype.item.test_item import create_item
|
||||
|
||||
test_dependencies = ["Sales Order", "Item", "Sales Invoice", "Payment Terms Template"]
|
||||
test_dependencies = ["Sales Order", "Item", "Sales Invoice", "Payment Terms Template", "Customer"]
|
||||
|
||||
|
||||
class TestPaymentTermsStatusForSalesOrder(FrappeTestCase):
|
||||
def tearDown(self):
|
||||
frappe.db.rollback()
|
||||
|
||||
def create_payment_terms_template(self):
|
||||
# create template for 50-50 payments
|
||||
template = None
|
||||
@ -204,3 +207,134 @@ class TestPaymentTermsStatusForSalesOrder(FrappeTestCase):
|
||||
},
|
||||
]
|
||||
self.assertEqual(data, expected_value)
|
||||
|
||||
def test_03_group_filters(self):
|
||||
transaction_date = "2021-06-15"
|
||||
self.create_payment_terms_template()
|
||||
item1 = create_item(item_code="_Test Excavator 1", is_stock_item=0)
|
||||
item1.item_group = "Products"
|
||||
item1.save()
|
||||
|
||||
so1 = make_sales_order(
|
||||
transaction_date=transaction_date,
|
||||
delivery_date=add_days(transaction_date, -30),
|
||||
item=item1.item_code,
|
||||
qty=1,
|
||||
rate=1000000,
|
||||
do_not_save=True,
|
||||
)
|
||||
so1.po_no = ""
|
||||
so1.taxes_and_charges = ""
|
||||
so1.taxes = ""
|
||||
so1.payment_terms_template = self.template.name
|
||||
so1.save()
|
||||
so1.submit()
|
||||
|
||||
item2 = create_item(item_code="_Test Steel", is_stock_item=0)
|
||||
item2.item_group = "Raw Material"
|
||||
item2.save()
|
||||
|
||||
so2 = make_sales_order(
|
||||
customer="_Test Customer 1",
|
||||
transaction_date=transaction_date,
|
||||
delivery_date=add_days(transaction_date, -30),
|
||||
item=item2.item_code,
|
||||
qty=100,
|
||||
rate=1000,
|
||||
do_not_save=True,
|
||||
)
|
||||
so2.po_no = ""
|
||||
so2.taxes_and_charges = ""
|
||||
so2.taxes = ""
|
||||
so2.payment_terms_template = self.template.name
|
||||
so2.save()
|
||||
so2.submit()
|
||||
|
||||
base_filters = {
|
||||
"company": "_Test Company",
|
||||
"period_start_date": "2021-06-01",
|
||||
"period_end_date": "2021-06-30",
|
||||
}
|
||||
|
||||
expected_value_so1 = [
|
||||
{
|
||||
"name": so1.name,
|
||||
"customer": so1.customer,
|
||||
"submitted": datetime.date(2021, 6, 15),
|
||||
"status": "Overdue",
|
||||
"payment_term": None,
|
||||
"description": "_Test 50-50",
|
||||
"due_date": datetime.date(2021, 6, 30),
|
||||
"invoice_portion": 50.0,
|
||||
"currency": "INR",
|
||||
"base_payment_amount": 500000.0,
|
||||
"paid_amount": 0.0,
|
||||
"invoices": "",
|
||||
},
|
||||
{
|
||||
"name": so1.name,
|
||||
"customer": so1.customer,
|
||||
"submitted": datetime.date(2021, 6, 15),
|
||||
"status": "Overdue",
|
||||
"payment_term": None,
|
||||
"description": "_Test 50-50",
|
||||
"due_date": datetime.date(2021, 7, 15),
|
||||
"invoice_portion": 50.0,
|
||||
"currency": "INR",
|
||||
"base_payment_amount": 500000.0,
|
||||
"paid_amount": 0.0,
|
||||
"invoices": "",
|
||||
},
|
||||
]
|
||||
|
||||
expected_value_so2 = [
|
||||
{
|
||||
"name": so2.name,
|
||||
"customer": so2.customer,
|
||||
"submitted": datetime.date(2021, 6, 15),
|
||||
"status": "Overdue",
|
||||
"payment_term": None,
|
||||
"description": "_Test 50-50",
|
||||
"due_date": datetime.date(2021, 6, 30),
|
||||
"invoice_portion": 50.0,
|
||||
"currency": "INR",
|
||||
"base_payment_amount": 50000.0,
|
||||
"paid_amount": 0.0,
|
||||
"invoices": "",
|
||||
},
|
||||
{
|
||||
"name": so2.name,
|
||||
"customer": so2.customer,
|
||||
"submitted": datetime.date(2021, 6, 15),
|
||||
"status": "Overdue",
|
||||
"payment_term": None,
|
||||
"description": "_Test 50-50",
|
||||
"due_date": datetime.date(2021, 7, 15),
|
||||
"invoice_portion": 50.0,
|
||||
"currency": "INR",
|
||||
"base_payment_amount": 50000.0,
|
||||
"paid_amount": 0.0,
|
||||
"invoices": "",
|
||||
},
|
||||
]
|
||||
|
||||
group_filters = [
|
||||
{"customer_group": "All Customer Groups"},
|
||||
{"item_group": "All Item Groups"},
|
||||
{"item_group": "Products"},
|
||||
{"item_group": "Raw Material"},
|
||||
]
|
||||
|
||||
expected_values_for_group_filters = [
|
||||
expected_value_so1 + expected_value_so2,
|
||||
expected_value_so1 + expected_value_so2,
|
||||
expected_value_so1,
|
||||
expected_value_so2,
|
||||
]
|
||||
|
||||
for idx, g in enumerate(group_filters, 0):
|
||||
# build filter
|
||||
filters = frappe._dict({}).update(base_filters).update(g)
|
||||
with self.subTest(filters=filters):
|
||||
columns, data, message, chart = execute(filters)
|
||||
self.assertEqual(data, expected_values_for_group_filters[idx])
|
||||
|
Loading…
x
Reference in New Issue
Block a user