From 813485023b927f6069f0bbeadc6f42a6172b0a80 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 20 Dec 2018 14:04:00 +0000 Subject: [PATCH 01/13] Filter cancelled and draft payments --- .../sales_payment_summary.py | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py index 05c8fb78de..f4c72b4413 100644 --- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py @@ -108,33 +108,33 @@ def get_conditions(filters): def get_pos_invoice_data(filters): conditions = get_conditions(filters) result = frappe.db.sql('' - 'SELECT ' - 'posting_date, owner, sum(net_total) as "net_total", sum(total_taxes) as "total_taxes", ' - 'sum(paid_amount) as "paid_amount", sum(outstanding_amount) as "outstanding_amount", ' - 'mode_of_payment, warehouse, cost_center ' - 'FROM (' - 'SELECT ' - 'parent, item_code, sum(amount) as "base_total", warehouse, cost_center ' - 'from `tabSales Invoice Item` group by parent' - ') t1 ' - 'left join ' - '(select parent, mode_of_payment from `tabSales Invoice Payment` group by parent) t3 ' - 'on (t3.parent = t1.parent) ' - 'JOIN (' - 'SELECT ' - 'docstatus, company, is_pos, name, posting_date, owner, sum(base_total) as "base_total", ' - 'sum(net_total) as "net_total", sum(total_taxes_and_charges) as "total_taxes", ' - 'sum(base_paid_amount) as "paid_amount", sum(outstanding_amount) as "outstanding_amount" ' - 'FROM `tabSales Invoice` ' - 'GROUP BY name' - ') a ' - 'ON (' - 't1.parent = a.name and t1.base_total = a.base_total) ' - 'WHERE a.docstatus = 1' - ' AND {conditions} ' - 'GROUP BY ' - 'owner, posting_date, warehouse'.format(conditions=conditions), filters, as_dict=1 - ) + 'SELECT ' + 'posting_date, owner, sum(net_total) as "net_total", sum(total_taxes) as "total_taxes", ' + 'sum(paid_amount) as "paid_amount", sum(outstanding_amount) as "outstanding_amount", ' + 'mode_of_payment, warehouse, cost_center ' + 'FROM (' + 'SELECT ' + 'parent, item_code, sum(amount) as "base_total", warehouse, cost_center ' + 'from `tabSales Invoice Item` group by parent' + ') t1 ' + 'left join ' + '(select parent, mode_of_payment from `tabSales Invoice Payment` group by parent) t3 ' + 'on (t3.parent = t1.parent) ' + 'JOIN (' + 'SELECT ' + 'docstatus, company, is_pos, name, posting_date, owner, sum(base_total) as "base_total", ' + 'sum(net_total) as "net_total", sum(total_taxes_and_charges) as "total_taxes", ' + 'sum(base_paid_amount) as "paid_amount", sum(outstanding_amount) as "outstanding_amount" ' + 'FROM `tabSales Invoice` ' + 'GROUP BY name' + ') a ' + 'ON (' + 't1.parent = a.name and t1.base_total = a.base_total) ' + 'WHERE a.docstatus = 1' + ' AND {conditions} ' + 'GROUP BY ' + 'owner, posting_date, warehouse'.format(conditions=conditions), filters, as_dict=1 + ) return result @@ -170,6 +170,7 @@ def get_mode_of_payments(filters): from `tabSales Invoice` a, `tabPayment Entry` b,`tabPayment Entry Reference` c where a.name = c.reference_name and b.name = c.parent + and b.docstatus = 1 and a.name in ({invoice_list_names}) union select a.owner, a.posting_date, @@ -211,6 +212,7 @@ def get_mode_of_payment_details(filters): from `tabSales Invoice` a, `tabPayment Entry` b,`tabPayment Entry Reference` c where a.name = c.reference_name and b.name = c.parent + and b.docstatus = 1 and a.name in ({invoice_list_names}) group by a.owner, a.posting_date, mode_of_payment union From ed94317df99493c24c58a1e1aa553a8f822e793f Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Wed, 26 Dec 2018 08:36:32 +0000 Subject: [PATCH 02/13] Test cases --- .../test_sales_payment_summary.py | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py new file mode 100644 index 0000000000..58c77849b8 --- /dev/null +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -0,0 +1,117 @@ +# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import unittest +import frappe +import erpnext +from erpnext.accounts.report.sales_payment_summary.sales_payment_summary import get_mode_of_payments, get_mode_of_payment_details +from frappe.utils import nowdate +from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry + +test_dependencies = ["Sales Invoice"] + +class TestSalesPaymentSummary(unittest.TestCase): + def setUp(self): + pass + + def tearDown(self): + pass + + def test_get_mode_of_payments(self): + si = frappe.get_all("Sales Invoice", fields=["name", "docstatus"]) + filters = get_filters() + + for invoice in si[:2]: + doc = frappe.get_doc("Sales Invoice", invoice.name) + new_doc = frappe.copy_doc(doc) + new_doc.insert() + new_doc.submit() + try: + new_doc.submit() + except Exception as e: + pass + + if int(new_doc.name[-3:])%2 == 0: + bank_account = "_Test Cash - _TC" + mode_of_payment = "Cash" + else: + bank_account = "_Test Bank - _TC" + mode_of_payment = "Credit Card" + + pe = get_payment_entry("Sales Invoice", new_doc.name, bank_account=bank_account) + pe.reference_no = "_Test" + pe.reference_date = nowdate() + pe.mode_of_payment = mode_of_payment + pe.insert() + pe.submit() + + mop = get_mode_of_payments(filters) + self.assertTrue('Credit Card' in mop.values()[0]) + self.assertTrue('Cash' in mop.values()[0]) + + # Cancel all Cash payment entry and check if this mode of payment is still fetched. + payment_entries = frappe.get_all("Payment Entry", filters={"mode_of_payment": "Cash", "docstatus": 1}, fields=["name", "docstatus"]) + for payment_entry in payment_entries: + pe = frappe.get_doc("Payment Entry", payment_entry.name) + pe.cancel() + + mop = get_mode_of_payments(filters) + self.assertTrue('Credit Card' in mop.values()[0]) + self.assertTrue('Cash' not in mop.values()[0]) + + def test_get_mode_of_payments_details(self): + si = frappe.get_all("Sales Invoice", fields=["name", "docstatus"]) + filters = get_filters() + + for invoice in si[:2]: + doc = frappe.get_doc("Sales Invoice", invoice.name) + new_doc = frappe.copy_doc(doc) + new_doc.insert() + new_doc.submit() + try: + new_doc.submit() + except Exception as e: + pass + + if int(new_doc.name[-3:])%2 == 0: + bank_account = "_Test Cash - _TC" + mode_of_payment = "Cash" + else: + bank_account = "_Test Bank - _TC" + mode_of_payment = "Credit Card" + + pe = get_payment_entry("Sales Invoice", new_doc.name, bank_account=bank_account) + pe.reference_no = "_Test" + pe.reference_date = nowdate() + pe.mode_of_payment = mode_of_payment + pe.insert() + pe.submit() + + mopd = get_mode_of_payment_details(filters) + + mopd_values = mopd.values()[0] + for mopd_value in mopd_values: + if mopd_value[0] == "Credit Card": + cc_init_amount = mopd_value[1] + + # Cancel one Credit Card Payment Entry and check that it is not fetched in mode of payment details. + payment_entries = frappe.get_all("Payment Entry", filters={"mode_of_payment": "Credit Card", "docstatus": 1}, fields=["name", "docstatus"]) + for payment_entry in payment_entries[:1]: + pe = frappe.get_doc("Payment Entry", payment_entry.name) + pe.cancel() + + mopd = get_mode_of_payment_details(filters) + mopd_values = mopd.values()[0] + for mopd_value in mopd_values: + if mopd_value[0] == "Credit Card": + cc_final_amount = mopd_value[1] + + self.assertTrue(cc_init_amount > cc_final_amount) + +def get_filters(): + return { + "from_date": "1900-01-01", + "to_date": nowdate(), + "company": "_Test Company" + } \ No newline at end of file From 9d31452c25a43a4fd21ff97490a536ba0e5031f6 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Wed, 26 Dec 2018 08:38:42 +0000 Subject: [PATCH 03/13] Remove ununsed variable --- .../sales_payment_summary/test_sales_payment_summary.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 58c77849b8..d9d05135a6 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -29,7 +29,7 @@ class TestSalesPaymentSummary(unittest.TestCase): new_doc.submit() try: new_doc.submit() - except Exception as e: + except Exception: pass if int(new_doc.name[-3:])%2 == 0: @@ -71,7 +71,7 @@ class TestSalesPaymentSummary(unittest.TestCase): new_doc.submit() try: new_doc.submit() - except Exception as e: + except Exception: pass if int(new_doc.name[-3:])%2 == 0: From 899b9b1ea769045323bbe9ae61f2bc32a1bb17e7 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Wed, 26 Dec 2018 08:56:11 +0000 Subject: [PATCH 04/13] Codacy correction --- .../sales_payment_summary/test_sales_payment_summary.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index d9d05135a6..9b9711f5df 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -4,7 +4,6 @@ from __future__ import unicode_literals import unittest import frappe -import erpnext from erpnext.accounts.report.sales_payment_summary.sales_payment_summary import get_mode_of_payments, get_mode_of_payment_details from frappe.utils import nowdate from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry @@ -29,8 +28,8 @@ class TestSalesPaymentSummary(unittest.TestCase): new_doc.submit() try: new_doc.submit() - except Exception: - pass + except Exception as e: + print(e) if int(new_doc.name[-3:])%2 == 0: bank_account = "_Test Cash - _TC" @@ -71,8 +70,8 @@ class TestSalesPaymentSummary(unittest.TestCase): new_doc.submit() try: new_doc.submit() - except Exception: - pass + except Exception as e: + print(e) if int(new_doc.name[-3:])%2 == 0: bank_account = "_Test Cash - _TC" From 9c1db688d1d8a2cb9f3c8232c3ca25981aa574dc Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Wed, 26 Dec 2018 10:33:42 +0000 Subject: [PATCH 05/13] Ignore pricing rule for Travis --- .../report/sales_payment_summary/test_sales_payment_summary.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 9b9711f5df..8cabf6e6cb 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -24,6 +24,7 @@ class TestSalesPaymentSummary(unittest.TestCase): for invoice in si[:2]: doc = frappe.get_doc("Sales Invoice", invoice.name) new_doc = frappe.copy_doc(doc) + new_doc.ignore_pricing_rule = 1 new_doc.insert() new_doc.submit() try: From d7777696d78a92f20e4fdf7b0071adec212ffd22 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Wed, 26 Dec 2018 14:08:00 +0000 Subject: [PATCH 06/13] Corrections for Travis --- .../sales_payment_summary/test_sales_payment_summary.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 8cabf6e6cb..096935f518 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -18,10 +18,10 @@ class TestSalesPaymentSummary(unittest.TestCase): pass def test_get_mode_of_payments(self): - si = frappe.get_all("Sales Invoice", fields=["name", "docstatus"]) + si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) filters = get_filters() - for invoice in si[:2]: + for invoice in si[:-2]: doc = frappe.get_doc("Sales Invoice", invoice.name) new_doc = frappe.copy_doc(doc) new_doc.ignore_pricing_rule = 1 @@ -61,10 +61,10 @@ class TestSalesPaymentSummary(unittest.TestCase): self.assertTrue('Cash' not in mop.values()[0]) def test_get_mode_of_payments_details(self): - si = frappe.get_all("Sales Invoice", fields=["name", "docstatus"]) + si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) filters = get_filters() - for invoice in si[:2]: + for invoice in si[:-2]: doc = frappe.get_doc("Sales Invoice", invoice.name) new_doc = frappe.copy_doc(doc) new_doc.insert() From 02aa9fb240f0944ddc2c705bf11bfd5da84ea176 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 08:46:29 +0000 Subject: [PATCH 07/13] Understand Travis --- .../report/sales_payment_summary/test_sales_payment_summary.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 096935f518..a9ecaaf546 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -19,10 +19,12 @@ class TestSalesPaymentSummary(unittest.TestCase): def test_get_mode_of_payments(self): si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) + print(si) filters = get_filters() for invoice in si[:-2]: doc = frappe.get_doc("Sales Invoice", invoice.name) + print(doc.__dict__) new_doc = frappe.copy_doc(doc) new_doc.ignore_pricing_rule = 1 new_doc.insert() From 0f9c47c242a494e0dd6d1915a190ef9d029fb598 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 10:10:18 +0000 Subject: [PATCH 08/13] Remove pricing rule from items --- .../sales_payment_summary/test_sales_payment_summary.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index a9ecaaf546..70ba5a362a 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -19,14 +19,14 @@ class TestSalesPaymentSummary(unittest.TestCase): def test_get_mode_of_payments(self): si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) - print(si) filters = get_filters() for invoice in si[:-2]: doc = frappe.get_doc("Sales Invoice", invoice.name) - print(doc.__dict__) new_doc = frappe.copy_doc(doc) new_doc.ignore_pricing_rule = 1 + for item in new_doc.items: + item.pricing_rule = "" new_doc.insert() new_doc.submit() try: @@ -69,6 +69,9 @@ class TestSalesPaymentSummary(unittest.TestCase): for invoice in si[:-2]: doc = frappe.get_doc("Sales Invoice", invoice.name) new_doc = frappe.copy_doc(doc) + new_doc.ignore_pricing_rule = 1 + for item in new_doc.items: + item.pricing_rule = "" new_doc.insert() new_doc.submit() try: From 641d3e0073c7974309c48cc199cd35a023f5f131 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 13:43:56 +0000 Subject: [PATCH 09/13] Add own records --- .../test_sales_payment_summary.py | 114 ++++++++++++------ 1 file changed, 74 insertions(+), 40 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 70ba5a362a..aeb618f122 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -5,45 +5,34 @@ from __future__ import unicode_literals import unittest import frappe from erpnext.accounts.report.sales_payment_summary.sales_payment_summary import get_mode_of_payments, get_mode_of_payment_details -from frappe.utils import nowdate +from frappe.utils import today from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry test_dependencies = ["Sales Invoice"] class TestSalesPaymentSummary(unittest.TestCase): - def setUp(self): - pass - - def tearDown(self): - pass + @classmethod + def setUpClass(self): + create_records() def test_get_mode_of_payments(self): - si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) filters = get_filters() - for invoice in si[:-2]: - doc = frappe.get_doc("Sales Invoice", invoice.name) - new_doc = frappe.copy_doc(doc) - new_doc.ignore_pricing_rule = 1 - for item in new_doc.items: - item.pricing_rule = "" - new_doc.insert() - new_doc.submit() - try: - new_doc.submit() - except Exception as e: - print(e) + for dummy in range(2): + si = create_sales_invoice_record() + si.insert() + si.submit() - if int(new_doc.name[-3:])%2 == 0: + if int(si.name[-3:])%2 == 0: bank_account = "_Test Cash - _TC" mode_of_payment = "Cash" else: bank_account = "_Test Bank - _TC" mode_of_payment = "Credit Card" - pe = get_payment_entry("Sales Invoice", new_doc.name, bank_account=bank_account) + pe = get_payment_entry("Sales Invoice", si.name, bank_account=bank_account) pe.reference_no = "_Test" - pe.reference_date = nowdate() + pe.reference_date = today() pe.mode_of_payment = mode_of_payment pe.insert() pe.submit() @@ -63,32 +52,23 @@ class TestSalesPaymentSummary(unittest.TestCase): self.assertTrue('Cash' not in mop.values()[0]) def test_get_mode_of_payments_details(self): - si = frappe.get_all("Sales Invoice", filters={"company": "_Test Company", "customer": "_Test Customer"}, fields=["name", "docstatus"]) filters = get_filters() - for invoice in si[:-2]: - doc = frappe.get_doc("Sales Invoice", invoice.name) - new_doc = frappe.copy_doc(doc) - new_doc.ignore_pricing_rule = 1 - for item in new_doc.items: - item.pricing_rule = "" - new_doc.insert() - new_doc.submit() - try: - new_doc.submit() - except Exception as e: - print(e) + for dummy in range(2): + si = create_sales_invoice_record() + si.insert() + si.submit() - if int(new_doc.name[-3:])%2 == 0: + if int(si.name[-3:])%2 == 0: bank_account = "_Test Cash - _TC" mode_of_payment = "Cash" else: bank_account = "_Test Bank - _TC" mode_of_payment = "Credit Card" - pe = get_payment_entry("Sales Invoice", new_doc.name, bank_account=bank_account) + pe = get_payment_entry("Sales Invoice", si.name, bank_account=bank_account) pe.reference_no = "_Test" - pe.reference_date = nowdate() + pe.reference_date = today() pe.mode_of_payment = mode_of_payment pe.insert() pe.submit() @@ -117,6 +97,60 @@ class TestSalesPaymentSummary(unittest.TestCase): def get_filters(): return { "from_date": "1900-01-01", - "to_date": nowdate(), + "to_date": today(), "company": "_Test Company" - } \ No newline at end of file + } + +def create_sales_invoice_record(qty=1): + # return sales invoice doc object + return frappe.get_doc({ + "doctype": "Sales Invoice", + "customer": frappe.get_doc('Customer', {"customer_name": "Prestiga-Biz"}).name, + "company": '_Test Company', + "due_date": today(), + "posting_date": today(), + "currency": "INR", + "taxes_and_charges": "", + "debit_to": "Debtors - _TC", + "taxes": [], + "items": [{ + 'doctype': 'Sales Invoice Item', + 'item_code': frappe.get_doc('Item', {'item_name': 'Consulting'}).name, + 'qty': qty, + "rate": 10000, + 'income_account': 'Sales - _TC', + 'cost_center': 'Main - _TC', + 'expense_account': 'Cost of Goods Sold - _TC' + }] + }) + +def create_records(): + if frappe.db.exists("Customer", "Prestiga-Biz"): + return + + #customer + frappe.get_doc({ + "customer_group": "_Test Customer Group", + "customer_name": "Prestiga-Biz", + "customer_type": "Company", + "doctype": "Customer", + "territory": "_Test Territory" + }).insert() + + # item + item = frappe.get_doc({ + "doctype": "Item", + "item_code": "Consulting", + "item_name": "Consulting", + "item_group": "All Item Groups", + "company": "_Test Company", + "is_stock_item": 0 + }).insert() + + # item price + frappe.get_doc({ + "doctype": "Item Price", + "price_list": "Standard Selling", + "item_code": item.item_code, + "price_list_rate": 10000 + }).insert() \ No newline at end of file From 43c7bd57e4c4d47a398300150433b0384a830ebb Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 14:43:30 +0000 Subject: [PATCH 10/13] Cancel existing payment entries for data integrity in test --- .../report/sales_payment_summary/test_sales_payment_summary.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index aeb618f122..bf9bc5ef68 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -14,6 +14,9 @@ class TestSalesPaymentSummary(unittest.TestCase): @classmethod def setUpClass(self): create_records() + pes = frappe.get_all("Payment Entry") + for pe in pes: + frappe.db.set_value("Payment Entry", pe.name, "docstatus", 2) def test_get_mode_of_payments(self): filters = get_filters() From b7339d7dcb4c39d938fcf99a36c0106cdb9be4f8 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 15:30:56 +0000 Subject: [PATCH 11/13] Test travis --- .../report/sales_payment_summary/test_sales_payment_summary.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index bf9bc5ef68..8de3abca3c 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -51,6 +51,8 @@ class TestSalesPaymentSummary(unittest.TestCase): pe.cancel() mop = get_mode_of_payments(filters) + print(frappe.get_all("Payment Entry", filters={"docstatus": 1})) + print(mop) self.assertTrue('Credit Card' in mop.values()[0]) self.assertTrue('Cash' not in mop.values()[0]) From 8d71015bf8d517a156e6228494017d34eaee7bc6 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 16:43:26 +0000 Subject: [PATCH 12/13] Cleanup journal entries --- .../sales_payment_summary/test_sales_payment_summary.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index 8de3abca3c..d3b3492153 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -15,8 +15,11 @@ class TestSalesPaymentSummary(unittest.TestCase): def setUpClass(self): create_records() pes = frappe.get_all("Payment Entry") + jes = frappe.get_all("Journal Entry") for pe in pes: frappe.db.set_value("Payment Entry", pe.name, "docstatus", 2) + for je in jes: + frappe.db.set_value("Journal Entry", je.name, "docstatus", 2) def test_get_mode_of_payments(self): filters = get_filters() @@ -51,8 +54,6 @@ class TestSalesPaymentSummary(unittest.TestCase): pe.cancel() mop = get_mode_of_payments(filters) - print(frappe.get_all("Payment Entry", filters={"docstatus": 1})) - print(mop) self.assertTrue('Credit Card' in mop.values()[0]) self.assertTrue('Cash' not in mop.values()[0]) From e87eb07e161fcd8bb417b6aab8645f0a415cfae3 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 27 Dec 2018 17:38:57 +0000 Subject: [PATCH 13/13] Correction for Travis --- .../report/sales_payment_summary/sales_payment_summary.py | 4 ++-- .../sales_payment_summary/test_sales_payment_summary.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py index f4c72b4413..c234da0fe3 100644 --- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py @@ -156,7 +156,6 @@ def get_sales_invoice_data(filters): def get_mode_of_payments(filters): - frappe.log_error(filters, 'filters') mode_of_payments = {} invoice_list = get_invoices(filters) invoice_list_names = ",".join(['"' + invoice['name'] + '"' for invoice in invoice_list]) @@ -164,6 +163,7 @@ def get_mode_of_payments(filters): inv_mop = frappe.db.sql("""select a.owner,a.posting_date, ifnull(b.mode_of_payment, '') as mode_of_payment from `tabSales Invoice` a, `tabSales Invoice Payment` b where a.name = b.parent + and a.docstatus = 1 and a.name in ({invoice_list_names}) union select a.owner,a.posting_date, ifnull(b.mode_of_payment, '') as mode_of_payment @@ -197,13 +197,13 @@ def get_invoices(filters): def get_mode_of_payment_details(filters): mode_of_payment_details = {} invoice_list = get_invoices(filters) - frappe.log_error(invoice_list, 'invoice_list') invoice_list_names = ",".join(['"' + invoice['name'] + '"' for invoice in invoice_list]) if invoice_list: inv_mop_detail = frappe.db.sql("""select a.owner, a.posting_date, ifnull(b.mode_of_payment, '') as mode_of_payment, sum(b.base_amount) as paid_amount from `tabSales Invoice` a, `tabSales Invoice Payment` b where a.name = b.parent + and a.docstatus = 1 and a.name in ({invoice_list_names}) group by a.owner, a.posting_date, mode_of_payment union diff --git a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py index d3b3492153..62843e74ef 100644 --- a/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py +++ b/erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py @@ -16,10 +16,13 @@ class TestSalesPaymentSummary(unittest.TestCase): create_records() pes = frappe.get_all("Payment Entry") jes = frappe.get_all("Journal Entry") + sis = frappe.get_all("Sales Invoice") for pe in pes: frappe.db.set_value("Payment Entry", pe.name, "docstatus", 2) for je in jes: frappe.db.set_value("Journal Entry", je.name, "docstatus", 2) + for si in sis: + frappe.db.set_value("Sales Invoice", si.name, "docstatus", 2) def test_get_mode_of_payments(self): filters = get_filters()