From d3f5d0961ae1e3bda56299688318588ec2577438 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 15 Nov 2017 16:29:53 +0530 Subject: [PATCH] [feature] Opening Invoice Creation Tool (#11589) * [enhance] Opening Invoice Tool create Opening Sales/Purchase Invoices * [minor] added progress bar while creating invoice * [minor] allow bulk upload for the invoices * [minor] calculate item rate from net total * [minor] added defaults for invoices fields, create gl entries only if grand_total is greater than 0 * [minor] check mandatory values before making opening invoices * [minor] enable primary button if there is any error while creating invoices * [minor] minor fixes, set company currency as invoice currency added tests * [dashboard] added Opening Invoice Summery section in Dashboard * [minor] added total invoices count on dashboard * [minor] don't show dashboard if there are no opening invoices available * [minor] added Opening Invoice Tools to Account's Tools section * [minor] codecy fixes * [fix] refactored general ledger and buttons on charts * [fix] tests --- .../accounts/doctype/account/account_tree.js | 35 ++ .../doctype/cost_center/cost_center_tree.js | 27 +- .../opening_invoice_creation_tool/__init__.py | 0 .../opening_invoice_creation_tool.js | 96 ++++++ .../opening_invoice_creation_tool.json | 184 ++++++++++ .../opening_invoice_creation_tool.py | 163 +++++++++ ...ening_invoice_creation_tool_dashboard.html | 32 ++ .../test_opening_invoice_creation_tool.js | 23 ++ .../test_opening_invoice_creation_tool.py | 79 +++++ .../__init__.py | 0 .../opening_invoice_creation_tool_item.json | 318 ++++++++++++++++++ .../opening_invoice_creation_tool_item.py | 10 + .../doctype/sales_invoice/sales_invoice.json | 2 +- .../report/general_ledger/general_ledger.py | 150 +++------ .../buying/doctype/supplier/test_records.json | 5 + erpnext/config/accounts.py | 5 + erpnext/controllers/accounts_controller.py | 3 - .../opening-invoice-creation-tool.png | Bin 0 -> 140490 bytes .../manual/en/accounts/opening-accounts.md | 24 +- 19 files changed, 1048 insertions(+), 108 deletions(-) create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/__init__.py create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool_dashboard.html create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.js create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool_item/__init__.py create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json create mode 100644 erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.py create mode 100644 erpnext/docs/assets/img/accounts/opening-invoice-creation-tool.png diff --git a/erpnext/accounts/doctype/account/account_tree.js b/erpnext/accounts/doctype/account/account_tree.js index b803984183..20d760670f 100644 --- a/erpnext/accounts/doctype/account/account_tree.js +++ b/erpnext/accounts/doctype/account/account_tree.js @@ -41,6 +41,41 @@ frappe.treeview_settings["Account"] = { description: __("Optional. Sets company's default currency, if not specified.")} ], ignore_fields:["parent_account"], + onload: function(treeview) { + function get_company() { + return treeview.page.fields_dict.company.get_value(); + } + + // tools + treeview.page.add_inner_button(__("Chart of Cost Centers"), function() { + frappe.set_route('Tree', 'Cost Center', {company: get_company()}); + }, __('View')); + + treeview.page.add_inner_button(__("Opening Invoice Creation Tool"), function() { + frappe.set_route('Form', 'Opening Invoice Creation Tool', {company: get_company()}); + }, __('View')); + + treeview.page.add_inner_button(__("Period Closing Voucher"), function() { + frappe.set_route('List', 'Period Closing Voucher', {company: get_company()}); + }, __('View')); + + // make + treeview.page.add_inner_button(__("Journal Entry"), function() { + frappe.new_doc('Journal Entry', {company: get_company()}); + }, __('Make')); + treeview.page.add_inner_button(__("New Company"), function() { + frappe.new_doc('Company'); + }, __('Make')); + + // financial statements + for (let report of ['Trial Balance', 'General Ledger', 'Balance Sheet', + 'Profit and Loss', 'Cash Flow Statement', 'Accounts Payable', 'Accounts Receivable']) { + treeview.page.add_inner_button(__(report), function() { + frappe.set_route('query-report', report, {company: get_company()}); + }, __('Financial Statements')); + } + + }, onrender: function(node) { var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr"; if (node.data && node.data.balance!==undefined) { diff --git a/erpnext/accounts/doctype/cost_center/cost_center_tree.js b/erpnext/accounts/doctype/cost_center/cost_center_tree.js index 6eab34f9c3..f409d648fe 100644 --- a/erpnext/accounts/doctype/cost_center/cost_center_tree.js +++ b/erpnext/accounts/doctype/cost_center/cost_center_tree.js @@ -23,5 +23,30 @@ frappe.treeview_settings["Cost Center"] = { {fieldtype:'Check', fieldname:'is_group', label:__('Is Group'), description:__('Further cost centers can be made under Groups but entries can be made against non-Groups')} ], - ignore_fields:["parent_cost_center"] + ignore_fields:["parent_cost_center"], + onload: function(treeview) { + function get_company() { + return treeview.page.fields_dict.company.get_value(); + } + + // tools + treeview.page.add_inner_button(__("Chart of Accounts"), function() { + frappe.set_route('Tree', 'Account', {company: get_company()}); + }, __('View')); + + // make + treeview.page.add_inner_button(__("Budget List"), function() { + frappe.set_route('List', 'Budget', {company: get_company()}); + }, __('Budget')); + + treeview.page.add_inner_button(__("Monthly Distribution"), function() { + frappe.set_route('List', 'Monthly Distribution', {company: get_company()}); + }, __('Budget')); + + treeview.page.add_inner_button(__("Budget Variance Report"), function() { + frappe.set_route('query-report', 'Budget Variance Report', {company: get_company()}); + }, __('Budget')); + + }, + } \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/__init__.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js new file mode 100644 index 0000000000..7c7d3a4600 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js @@ -0,0 +1,96 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Opening Invoice Creation Tool', { + setup: function(frm) { + frm.set_query('party_type', 'invoices', function(doc, cdt, cdn) { + return { + filters: { + 'name': ['in', 'Customer,Supplier'] + } + }; + }); + }, + + refresh: function(frm) { + frm.disable_save(); + frm.trigger("make_dashboard"); + frm.page.set_primary_action(__("Make Invoices"), () => { + let btn_primary = frm.page.btn_primary.get(0); + return frm.call({ + doc: frm.doc, + freeze: true, + btn: $(btn_primary), + method: "make_invoices", + freeze_message: __("Creating {0} Invoice", [frm.doc.invoice_type]), + callback: (r) => { + if(!r.exc){ + frappe.msgprint(__("Opening {0} Invoice created", [frm.doc.invoice_type])); + frm.clear_table("invoices"); + frm.refresh_fields(); + frm.reload_doc(); + } + } + }); + }); + }, + + company: function(frm) { + frappe.call({ + method: 'erpnext.accounts.doctype.opening_invoice_creation_tool.opening_invoice_creation_tool.get_temporary_opening_account', + args: { + company: frm.doc.company + }, + callback: (r) => { + if (r.message) { + frm.doc.__onload.temporary_opening_account = r.message; + frm.trigger('update_invoice_table'); + } + } + }) + }, + + invoice_type: function(frm) { + $.each(frm.doc.invoices, (idx, row) => { + row.party_type = frm.doc.invoice_type == "Sales"? "Customer": "Supplier"; + row.party = ""; + }); + frm.refresh_fields(); + }, + + make_dashboard: function(frm) { + let max_count = frm.doc.__onload.max_count; + let opening_invoices_summary = frm.doc.__onload.opening_invoices_summary; + if(!$.isEmptyObject(opening_invoices_summary)) { + let section = frm.dashboard.add_section( + frappe.render_template('opening_invoice_creation_tool_dashboard', { + data: opening_invoices_summary, + max_count: max_count + }) + ); + + section.on('click', '.invoice-link', function() { + let doctype = $(this).attr('data-type'); + let company = $(this).attr('data-company'); + frappe.set_route('List', doctype, + {'is_opening': 'Yes', 'company': company, 'docstatus': 1}); + }); + frm.dashboard.show(); + } + }, + + update_invoice_table: function(frm) { + $.each(frm.doc.invoices, (idx, row) => { + if (!row.temporary_opening_account) { + row.temporary_opening_account = frm.doc.__onload.temporary_opening_account; + } + row.party_type = frm.doc.invoice_type == "Sales"? "Customer": "Supplier"; + }); + } +}); + +frappe.ui.form.on('Opening Invoice Creation Tool Item', { + invoices_add: (frm) => { + frm.trigger('update_invoice_table'); + } +}); \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json new file mode 100644 index 0000000000..cde4c99501 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json @@ -0,0 +1,184 @@ +{ + "allow_copy": 1, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 1, + "creation": "2017-08-29 02:22:54.947711", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "company", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Company", + "length": 0, + "no_copy": 0, + "options": "Company", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "invoice_type", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Invoice Type", + "length": 0, + "no_copy": 0, + "options": "Sales\nPurchase", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "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": "Invoices", + "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 + }, + { + "allow_bulk_edit": 1, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "invoices", + "fieldtype": "Table", + "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, + "length": 0, + "no_copy": 0, + "options": "Opening Invoice Creation Tool Item", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 1, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 1, + "istable": 0, + "max_attachments": 0, + "modified": "2017-09-05 01:30:33.235664", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Opening Invoice Creation Tool", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py new file mode 100644 index 0000000000..8bd155492a --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe import _ +from frappe.utils import flt +from frappe.model.document import Document + +class OpeningInvoiceCreationTool(Document): + def onload(self): + """Load the Opening Invoice summary""" + summary, max_count = self.get_opening_invoice_summary() + self.set_onload('opening_invoices_summary', summary) + self.set_onload('max_count', max_count) + self.set_onload('temporary_opening_account', get_temporary_opening_account(self.company)) + + def get_opening_invoice_summary(self): + def prepare_invoice_summary(doctype, invoices): + # add company wise sales / purchase invoice summary + paid_amount = [] + outstanding_amount = [] + for invoice in invoices: + company = invoice.pop("company") + _summary = invoices_summary.get(company, {}) + _summary.update({ + "currency": company_wise_currency.get(company), + doctype: invoice + }) + invoices_summary.update({company: _summary}) + + paid_amount.append(invoice.paid_amount) + outstanding_amount.append(invoice.outstanding_amount) + + if paid_amount or outstanding_amount: + max_count.update({ + doctype: { + "max_paid": max(paid_amount) if paid_amount else 0.0, + "max_due": max(outstanding_amount) if outstanding_amount else 0.0 + } + }) + + invoices_summary = {} + max_count = {} + fields = [ + "company", "count(name) as total_invoices", "sum(outstanding_amount) as outstanding_amount" + ] + companies = frappe.get_all("Company", fields=["name as company", "default_currency as currency"]) + if not companies: + return None, None + + company_wise_currency = {row.company: row.currency for row in companies} + for doctype in ["Sales Invoice", "Purchase Invoice"]: + invoices = frappe.get_all(doctype, filters=dict(is_opening="Yes", docstatus=1), + fields=fields, group_by="company") + prepare_invoice_summary(doctype, invoices) + + return invoices_summary, max_count + + def make_invoices(self): + names = [] + mandatory_error_msg = _("Row {idx}: {field} is required to create the Opening {invoice_type} Invoices") + if not self.company: + frappe.throw(_("Please select the Company")) + + for row in self.invoices: + if not row.qty: + row.qty = 1.0 + if not row.party: + frappe.throw(mandatory_error_msg.format( + idx=row.idx, + field= _("Party"), + invoice_type=self.invoice_type + )) + # set party type if not available + if not row.party_type: + row.party_type = "Customer" if self.invoice_type == "Sales" else "Supplier" + + if not row.posting_date: + frappe.throw(mandatory_error_msg.format( + idx=row.idx, + field= _("Party"), + invoice_type=self.invoice_type + )) + + if not row.outstanding_amount: + frappe.throw(mandatory_error_msg.format( + idx=row.idx, + field= _("Outstanding Amount"), + invoice_type=self.invoice_type + )) + + args = self.get_invoice_dict(row=row) + if not args: + continue + + doc = frappe.get_doc(args).insert() + doc.submit() + names.append(doc.name) + + if(len(self.invoices) > 5): + frappe.publish_realtime("progress", + dict(progress=[row.idx, len(self.invoices)], title=_('Creating {0}').format(doc.doctype)), + user=frappe.session.user) + + return names + + def get_invoice_dict(self, row=None): + def get_item_dict(): + default_uom = frappe.db.get_single_value("Stock Settings", "stock_uom") or _("Nos") + cost_center = frappe.db.get_value("Company", self.company, "cost_center") + if not cost_center: + frappe.throw(_("Please set the Default Cost Center in {0} company").format(frappe.bold(self.company))) + rate = flt(row.outstanding_amount) / row.qty + + return frappe._dict({ + "uom": default_uom, + "rate": rate or 0.0, + "qty": row.qty, + "conversion_factor": 1.0, + "item_name": row.item_name or "Opening Invoice Item", + "description": row.item_name or "Opening Invoice Item", + income_expense_account_field: row.temporary_opening_account, + "cost_center": cost_center + }) + + if not row: + return None + + party_type = "Customer" + income_expense_account_field = "income_account" + if self.invoice_type == "Purchase": + party_type = "Supplier" + income_expense_account_field = "expense_account" + + item = get_item_dict() + return frappe._dict({ + "items": [item], + "is_opening": "Yes", + "set_posting_time": 1, + "company": self.company, + "due_date": row.due_date, + "posting_date": row.posting_date, + frappe.scrub(party_type): row.party, + "doctype": "Sales Invoice" if self.invoice_type == "Sales" \ + else "Purchase Invoice", + "currency": frappe.db.get_value("Company", self.company, "default_currency") + }) + +@frappe.whitelist() +def get_temporary_opening_account(company=None): + if not company: + return + + accounts = frappe.get_all("Account", filters={ + 'company': company, + 'account_type': 'Temporary' + }) + if not accounts: + frappe.throw(_("Please add a Temporary Opening account in Chart of Accounts")) + + return accounts[0].name \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool_dashboard.html b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool_dashboard.html new file mode 100644 index 0000000000..5b136d4f66 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool_dashboard.html @@ -0,0 +1,32 @@ +
{{ __("Opening Invoices Summary") }}
+{% $.each(data, (company, summary) => { %} +
{{ company }}
+ + + + + + + + + + + {% $.each(["Sales Invoice", "Purchase Invoice"], (idx, doctype) => { %} + {% if summary[doctype] %} + + + + + + {% endif %} + {% }); %} + +
{{ __("Invoice Type") }}{{ __("Opening Invoices") }}{{ __("Total Outstanding") }}
+ + {{ __(doctype) }} + + {{ summary[doctype].total_invoices }} + + {{ format_currency(summary[doctype].outstanding_amount, summary.currency, 2) }} +
+{% }); %} diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.js b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.js new file mode 100644 index 0000000000..f95d0d8213 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.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: Opening Invoice Creation Tool", function (assert) { + let done = assert.async(); + + // number of asserts + assert.expect(1); + + frappe.run_serially([ + // insert a new Opening Invoice Creation Tool + () => frappe.tests.make('Opening Invoice Creation Tool', [ + // values to be set + {key: 'value'} + ]), + () => { + assert.equal(cur_frm.doc.key, 'value'); + }, + () => done() + ]); + +}); diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py new file mode 100644 index 0000000000..3bfc10dda5 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +test_dependencies = ["Customer", "Supplier"] +from erpnext.accounts.doctype.opening_invoice_creation_tool.opening_invoice_creation_tool import get_temporary_opening_account + +class TestOpeningInvoiceCreationTool(unittest.TestCase): + def make_invoices(self, invoice_type="Sales"): + doc = frappe.get_single("Opening Invoice Creation Tool") + args = get_opening_invoice_creation_dict(invoice_type=invoice_type) + doc.update(args) + return doc.make_invoices() + + def test_opening_sales_invoice_creation(self): + invoices = self.make_invoices() + + self.assertEqual(len(invoices), 2) + expected_value = { + "keys": ["customer", "outstanding_amount", "status"], + 0: ["_Test Customer", 300, "Overdue"], + 1: ["_Test Customer 1", 250, "Overdue"], + } + self.check_expected_values(invoices, expected_value) + + def check_expected_values(self, invoices, expected_value, invoice_type="Sales"): + doctype = "Sales Invoice" if invoice_type == "Sales" else "Purchase Invoice" + + for invoice_idx, invoice in enumerate(invoices or []): + si = frappe.get_doc(doctype, invoice) + for field_idx, field in enumerate(expected_value["keys"]): + self.assertEqual(si.get(field, ""), expected_value[invoice_idx][field_idx]) + + def test_opening_purchase_invoice_creation(self): + invoices = self.make_invoices(invoice_type="Purchase") + + self.assertEqual(len(invoices), 2) + expected_value = { + "keys": ["supplier", "outstanding_amount", "status"], + 0: ["_Test Supplier", 300, "Overdue"], + 1: ["_Test Supplier 1", 250, "Overdue"], + } + self.check_expected_values(invoices, expected_value, invoice_type="Purchase", ) + +def get_opening_invoice_creation_dict(**args): + party = "Customer" if args.get("invoice_type", "Sales") == "Sales" else "Supplier" + company = args.get("company", "_Test Company") + + invoice_dict = frappe._dict({ + "company": company, + "invoice_type": args.get("invoice_type", "Sales"), + "invoices": [ + { + "qty": 1.0, + "outstanding_amount": 300, + "party": "_Test {0}".format(party), + "item_name": "Opening Item", + "due_date": "2016-09-10", + "posting_date": "2016-09-05", + "temporary_opening_account": get_temporary_opening_account(company) + }, + { + "qty": 2.0, + "outstanding_amount": 250, + "party": "_Test {0} 1".format(party), + "item_name": "Opening Item", + "due_date": "2016-09-10", + "posting_date": "2016-09-05", + "temporary_opening_account": get_temporary_opening_account(company) + } + ] + }) + + invoice_dict.update(args) + return invoice_dict \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool_item/__init__.py b/erpnext/accounts/doctype/opening_invoice_creation_tool_item/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json b/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json new file mode 100644 index 0000000000..ef0bfaeb19 --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json @@ -0,0 +1,318 @@ +{ + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2017-08-29 04:26:36.159247", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "party_type", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Party Type", + "length": 0, + "no_copy": 0, + "options": "DocType", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "party", + "fieldtype": "Dynamic Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Party", + "length": 0, + "no_copy": 0, + "options": "party_type", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "temporary_opening_account", + "fieldtype": "Link", + "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": "Temporary Opening Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "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 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_3", + "fieldtype": "Column Break", + "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, + "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 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Posting Date", + "length": 0, + "no_copy": 0, + "options": "", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "Today", + "fieldname": "due_date", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Due Date", + "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": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_5", + "fieldtype": "Section Break", + "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, + "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 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "Opening Invoice Item", + "fieldname": "item_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Item Name", + "length": 0, + "no_copy": 0, + "options": "", + "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 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "0", + "fieldname": "outstanding_amount", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Outstanding Amount", + "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, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2017-11-15 14:19:00.433148", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Opening Invoice Creation Tool Item", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.py b/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.py new file mode 100644 index 0000000000..d47c3e94ec --- /dev/null +++ b/erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class OpeningInvoiceCreationToolItem(Document): + pass diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 0a5f64fd23..c0ea00ccd8 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -369,7 +369,7 @@ "in_filter": 0, "in_global_search": 0, "in_list_view": 0, - "in_standard_filter": 0, + "in_standard_filter": 1, "label": "Company", "length": 0, "no_copy": 0, diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 5d1aabe54b..d5180a6272 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -3,8 +3,8 @@ from __future__ import unicode_literals import frappe -from frappe.utils import flt, getdate, cstr -from frappe import _ +from frappe.utils import getdate, cstr, flt +from frappe import _, _dict from erpnext.accounts.utils import get_account_currency def execute(filters=None): @@ -163,129 +163,89 @@ def get_data_with_opening_closing(filters, account_details, gl_entries): data = [] gle_map = initialize_gle_map(gl_entries) - opening, total_debit, total_credit, opening_in_account_currency, total_debit_in_account_currency, \ - total_credit_in_account_currency, gle_map = get_accountwise_gle(filters, gl_entries, gle_map) + totals, entries = get_accountwise_gle(filters, gl_entries, gle_map) # Opening for filtered account - if filters.get("account") or filters.get("party"): - data += [get_balance_row(_("Opening"), opening, opening_in_account_currency), {}] + data.append(totals.opening) if filters.get("group_by_account"): for acc, acc_dict in gle_map.items(): if acc_dict.entries: - # Opening for individual ledger, if grouped by account - data.append(get_balance_row(_("Opening"), acc_dict.opening, - acc_dict.opening_in_account_currency)) + # opening + data.append({}) + data.append(acc_dict.totals.opening) data += acc_dict.entries - # Totals and closing for individual ledger, if grouped by account - account_closing = acc_dict.opening + acc_dict.total_debit - acc_dict.total_credit - account_closing_in_account_currency = acc_dict.opening_in_account_currency \ - + acc_dict.total_debit_in_account_currency - acc_dict.total_credit_in_account_currency + # totals + data.append(acc_dict.totals.total) - data += [{"account": "'" + _("Totals") + "'", "debit": acc_dict.total_debit, - "credit": acc_dict.total_credit}, - get_balance_row(_("Closing (Opening + Totals)"), - account_closing, account_closing_in_account_currency), {}] + # closing + data.append(acc_dict.totals.closing) + data.append({}) else: - for gl in gl_entries: - if gl.posting_date >= getdate(filters.from_date) and gl.posting_date <= getdate(filters.to_date) \ - and gl.is_opening == "No": - data.append(gl) + data += entries + # totals + data.append(totals.total) - # Total debit and credit between from and to date - if total_debit or total_credit: - data.append({ - "account": "'" + _("Totals") + "'", - "debit": total_debit, - "credit": total_credit, - "debit_in_account_currency": total_debit_in_account_currency, - "credit_in_account_currency": total_credit_in_account_currency - }) - - # Closing for filtered account - if filters.get("account") or filters.get("party"): - closing = opening + total_debit - total_credit - closing_in_account_currency = opening_in_account_currency + \ - total_debit_in_account_currency - total_credit_in_account_currency - - data.append(get_balance_row(_("Closing (Opening + Totals)"), - closing, closing_in_account_currency)) + # closing + data.append(totals.closing) return data +def get_totals_dict(): + def _get_debit_credit_dict(label): + return _dict( + account = "'{0}'".format(label), + debit = 0.0, + credit = 0.0, + debit_in_account_currency = 0.0, + credit_in_account_currency = 0.0 + ) + return _dict( + opening = _get_debit_credit_dict(_('Opening')), + total = _get_debit_credit_dict(_('Total')), + closing = _get_debit_credit_dict(_('Closing (Opening + Total)')) + ) + def initialize_gle_map(gl_entries): gle_map = frappe._dict() for gle in gl_entries: - gle_map.setdefault(gle.account, frappe._dict({ - "opening": 0, - "opening_in_account_currency": 0, - "entries": [], - "total_debit": 0, - "total_debit_in_account_currency": 0, - "total_credit": 0, - "total_credit_in_account_currency": 0, - "closing": 0, - "closing_in_account_currency": 0 - })) + gle_map.setdefault(gle.account, _dict(totals = get_totals_dict(), entries = [])) return gle_map def get_accountwise_gle(filters, gl_entries, gle_map): - opening, total_debit, total_credit = 0, 0, 0 - opening_in_account_currency, total_debit_in_account_currency, total_credit_in_account_currency = 0, 0, 0 + totals = get_totals_dict() + entries = [] + + def update_value_in_dict(data, key, gle): + data[key].debit += flt(gle.debit) + data[key].credit += flt(gle.credit) + + data[key].debit_in_account_currency += flt(gle.debit_in_account_currency) + data[key].credit_in_account_currency += flt(gle.credit_in_account_currency) + from_date, to_date = getdate(filters.from_date), getdate(filters.to_date) for gle in gl_entries: - amount = flt(gle.debit, 3) - flt(gle.credit, 3) - amount_in_account_currency = flt(gle.debit_in_account_currency, 3) - flt(gle.credit_in_account_currency, 3) - - if (filters.get("account") or filters.get("party") or filters.get("group_by_account")) \ - and (gle.posting_date < from_date or cstr(gle.is_opening) == "Yes"): - - gle_map[gle.account].opening += amount - if filters.get("show_in_account_currency"): - gle_map[gle.account].opening_in_account_currency += amount_in_account_currency - - if filters.get("account") or filters.get("party"): - opening += amount - if filters.get("show_in_account_currency"): - opening_in_account_currency += amount_in_account_currency + if gle.posting_date < from_date or cstr(gle.is_opening) == "Yes": + update_value_in_dict(gle_map[gle.account].totals, 'opening', gle) + update_value_in_dict(totals, 'opening', gle) elif gle.posting_date <= to_date: - gle_map[gle.account].entries.append(gle) - gle_map[gle.account].total_debit += flt(gle.debit, 3) - gle_map[gle.account].total_credit += flt(gle.credit, 3) + update_value_in_dict(gle_map[gle.account].totals, 'total', gle) + update_value_in_dict(totals, 'total', gle) + if filters.get("group_by_account"): + gle_map[gle.account].entries.append(gle) + else: + entries.append(gle) - total_debit += flt(gle.debit, 3) - total_credit += flt(gle.credit, 3) + update_value_in_dict(gle_map[gle.account].totals, 'closing', gle) + update_value_in_dict(totals, 'closing', gle) - if filters.get("show_in_account_currency"): - gle_map[gle.account].total_debit_in_account_currency += flt(gle.debit_in_account_currency, 3) - gle_map[gle.account].total_credit_in_account_currency += flt(gle.credit_in_account_currency, 3) - - total_debit_in_account_currency += flt(gle.debit_in_account_currency, 3) - total_credit_in_account_currency += flt(gle.credit_in_account_currency, 3) - - return opening, total_debit, total_credit, opening_in_account_currency, \ - total_debit_in_account_currency, total_credit_in_account_currency, gle_map - -def get_balance_row(label, balance, balance_in_account_currency=None): - balance_row = { - "account": "'" + label + "'", - "debit": balance if balance > 0 else 0, - "credit": -1*balance if balance < 0 else 0 - } - - if balance_in_account_currency != None: - balance_row.update({ - "debit_in_account_currency": balance_in_account_currency if balance_in_account_currency > 0 else 0, - "credit_in_account_currency": -1*balance_in_account_currency if balance_in_account_currency < 0 else 0 - }) - - return balance_row + return totals, entries def get_result_as_list(data, filters): result = [] diff --git a/erpnext/buying/doctype/supplier/test_records.json b/erpnext/buying/doctype/supplier/test_records.json index d2b399544f..cae4aac635 100644 --- a/erpnext/buying/doctype/supplier/test_records.json +++ b/erpnext/buying/doctype/supplier/test_records.json @@ -15,6 +15,11 @@ "supplier_name": "_Test Supplier 1", "supplier_type": "_Test Supplier Type" }, + { + "doctype": "Supplier", + "supplier_name": "_Test Supplier 2", + "supplier_type": "_Test Supplier Type" + }, { "doctype": "Supplier", "supplier_name": "_Test Supplier USD", diff --git a/erpnext/config/accounts.py b/erpnext/config/accounts.py index 58fb2f0b32..6f4dd03883 100644 --- a/erpnext/config/accounts.py +++ b/erpnext/config/accounts.py @@ -284,6 +284,11 @@ def get_data(): "name": "Cheque Print Template", "description": _("Setup cheque dimensions for printing") }, + { + "type": "doctype", + "name": "Opening Invoice Creation Tool", + "description": _("Make Opening Sales and Purchase Invoices") + }, ] }, { diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index d3f6d38e14..74a90004c4 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -83,9 +83,6 @@ class AccountsController(TransactionBase): self.set(fieldname, today()) break - # set taxes table if missing from `taxes_and_charges` - self.set_taxes() - def calculate_taxes_and_totals(self): from erpnext.controllers.taxes_and_totals import calculate_taxes_and_totals calculate_taxes_and_totals(self) diff --git a/erpnext/docs/assets/img/accounts/opening-invoice-creation-tool.png b/erpnext/docs/assets/img/accounts/opening-invoice-creation-tool.png new file mode 100644 index 0000000000000000000000000000000000000000..638b9e6bcfa63ac52d7dadff254640ed08e586db GIT binary patch literal 140490 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

q@pYrFpGj#{{@ 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 Opening entry is only for Balance Sheet accounts and not for the Accounts in the Profit and Loss statement. * For all assets (excluding Accounts Receivables): This entry will contain all your assets except the amounts you are expecting from your Customers against outstanding Sales Invoices. You will have to update your receivables by making an individual entry for each Invoice (this is because, the system will help you track the invoices which are yet to be paid). You can credit the sum of all these debits against the **Temporary Opening** account. - + * For all liabilities: Similarly you need to pass a Journal Entry for your Opening Liabilities (except for the bills you have to pay) against **Temporary Opening** account. ###Opening Entry -####Step 1: New Journal Entry +#### Step 1: New Journal Entry To open new Journal Entry, go to: `Explore > Accounts > Journal Entry` -####Step 2: Entry Type +#### Step 2: Entry Type If Entry Type is selected as Opening Entry, all the Balance Sheet Accounts will be auto-fetched in the Journal Entry. Opening Account -####Step 3: Posting Date +#### Step 3: Posting Date Select Posting Date on which Accounts Opening Balance will be updated. -####Step 4: Enter Debit/Credit Value +#### Step 4: Enter Debit/Credit Value For each Account, enter opening value in the Debit or Credit column. As per the double entry valuation system, Total Debit value in a entry must be equal to Total Credit value. @@ -86,9 +86,9 @@ To update stock opening balance, create [Stock Reconciliation entry](/docs/user/ Opening balance for the fixed asset account should be updated via Journal Entry. Assets which are not fully depreciated should be added in the [Asset master](/docs/user/manual/en/accounts/managing-fixed-assets.html). For adding Assets in your possession, ensure to check **Is Existing Asset** field. -### Outstanding Invoices +### Outstanding Payables and Receivables -After opening Journal Entries are made, you will need to enter each Sales Invoice and Purchase Invoice that is yet to be paid. +After opening Journal Entries are made, you will need to enter the Sales Invoice and Purchase Invoice that is yet to be paid. Since you have already booked the income or expense on these invoices in the previous period, select **Temporary Opening** in the “Income” and “Expense” accounts. @@ -96,4 +96,12 @@ Since you have already booked the income or expense on these invoices in the pre If you don’t care what items are in that invoice, just make a dummy item entry in the Invoice. Item code in the Invoice is not necessary, so it should not be such a problem. +You can also do this quickly using the **Opening Invoice Creation Tool** + +To use this tool, just type "Opening Invoice" in the search bar and select the **Opening Invoice Creation Tool** + +Here, select the company and type of invoice (sales or purchase) and add a line item for each invoice you want to create. + +Opening Invoice Creation Tool + {next}