From d258372f9e50a9d94321dfba0abbbb24fcee7d62 Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Mon, 18 Sep 2017 17:12:16 +0530 Subject: [PATCH] Added ability to disable auto creation of Sales Invoice when customer pays a payment request (#10706) --- .../accounts_settings/accounts_settings.json | 33 ++++++++++++++++++- .../test_accounts_settings.js | 23 +++++++++++++ .../test_accounts_settings.py | 10 ++++++ .../payment_request/payment_request.py | 3 +- 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 erpnext/accounts/doctype/accounts_settings/test_accounts_settings.js create mode 100644 erpnext/accounts/doctype/accounts_settings/test_accounts_settings.py diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json index 0ce3d5dea9..c2908fa912 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json @@ -286,6 +286,37 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "If checked, Sales Invoice will not be created when a customer makes a payment against a Payment Request", + "fieldname": "disable_sales_invoice_auto_creation", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Disable Sales Invoice Auto Creation", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "has_web_view": 0, @@ -299,7 +330,7 @@ "issingle": 1, "istable": 0, "max_attachments": 0, - "modified": "2017-06-16 17:39:50.614522", + "modified": "2017-09-06 09:16:53.577666", "modified_by": "Administrator", "module": "Accounts", "name": "Accounts Settings", diff --git a/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.js b/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.js new file mode 100644 index 0000000000..2f7f2d5779 --- /dev/null +++ b/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.js @@ -0,0 +1,23 @@ +/* eslint-disable */ +// rename this file from _test_[name] to test_[name] to activate +// and remove above this line + +QUnit.test("test: Accounts Settings", function (assert) { + let done = assert.async(); + + // number of asserts + assert.expect(1); + + frappe.run_serially([ + // insert a new Accounts Settings + () => frappe.tests.make('Accounts Settings', [ + // values to be set + {key: 'value'} + ]), + () => { + assert.equal(cur_frm.doc.key, 'value'); + }, + () => done() + ]); + +}); diff --git a/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.py new file mode 100644 index 0000000000..8d33bf03e2 --- /dev/null +++ b/erpnext/accounts/doctype/accounts_settings/test_accounts_settings.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +class TestAccountsSettings(unittest.TestCase): + pass diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index f3594b205b..147d4a04f9 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -92,7 +92,8 @@ class PaymentRequest(Document): frappe.set_user("Administrator") payment_entry = self.create_payment_entry() - self.make_invoice() + if not frappe.db.get_single_value("Accounts Settings", "disable_sales_invoice_auto_creation"): + self.make_invoice() return payment_entry