From 2cb294c8b46e29fbd4c212bd1dab6802218b46d3 Mon Sep 17 00:00:00 2001 From: shreyas Date: Thu, 10 Nov 2016 18:07:44 +0530 Subject: [PATCH 01/20] [Docs] Updated docs for supplier quotation and purchase order --- .../assets/img/buying/add_taxes_to_doc.png | Bin 0 -> 157377 bytes erpnext/docs/assets/img/buying/buying_flow.png | Bin 0 -> 18200 bytes .../assets/img/buying/show_tax_breakup.png | Bin 0 -> 120947 bytes .../user/manual/en/buying/purchase-order.md | 12 +++++++++--- .../manual/en/buying/supplier-quotation.md | 15 +++++++++++++-- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 erpnext/docs/assets/img/buying/add_taxes_to_doc.png create mode 100644 erpnext/docs/assets/img/buying/buying_flow.png create mode 100644 erpnext/docs/assets/img/buying/show_tax_breakup.png diff --git a/erpnext/docs/assets/img/buying/add_taxes_to_doc.png b/erpnext/docs/assets/img/buying/add_taxes_to_doc.png new file mode 100644 index 0000000000000000000000000000000000000000..3e1480de72f62fce693bf4d2d573b7350607ea36 GIT binary patch literal 157377 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 z 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 Jy!ZIo{{i1!>R12( literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/buying/buying_flow.png b/erpnext/docs/assets/img/buying/buying_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3f2564147979e082164ef50fb3b3a1db7f2451 GIT binary patch literal 18200 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 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/buying/show_tax_breakup.png b/erpnext/docs/assets/img/buying/show_tax_breakup.png new file mode 100644 index 0000000000000000000000000000000000000000..7348d51b5b3c53104547b3bbdd502b8d5d5a4996 GIT binary patch literal 120947 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

G%Dv9+PZ>Y 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ΨJ5v^-dEB1&O65WMYo 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 &1;EznYqrm3vWMSbE@>i!!ByX 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 + +#### Show Tax break-up +Purchase Order + For example you buy Items worth X and sell them for 1.3X. So your Customer pays 1.3 times the tax you pay your Supplier. Since you have already paid tax to your Supplier for X, what you owe your government is only the tax on 0.3X. @@ -49,7 +55,7 @@ Ideally you must create two Accounts for each type of VAT you pay and collect, effect. Please contact your accountant if you need more help or post a query on our forums! - + #### Purchase UOM and Stock UOM Conversion @@ -82,5 +88,5 @@ __Step 5:__ Notice that the stock quantity will be updated accordingly. __Step 6:__ Save and Submit the Form. - + {next} diff --git a/erpnext/docs/user/manual/en/buying/supplier-quotation.md b/erpnext/docs/user/manual/en/buying/supplier-quotation.md index 0f1d51aae4..868a2977e9 100644 --- a/erpnext/docs/user/manual/en/buying/supplier-quotation.md +++ b/erpnext/docs/user/manual/en/buying/supplier-quotation.md @@ -8,7 +8,7 @@ You can make a supplier quotation from a Material Request #### Supplier Quotation Flow-Chart -![Supplier Quotation]({{docs_base_url}}/assets/old_images/erpnext/supplier-quotation-f.jpg) +![Supplier Quotation]({{docs_base_url}}/assets/img/buying/buying_flow.png) You can also make a Supplier Quotation directly from: @@ -23,11 +23,22 @@ usually send out a message (Request for Quote) to various Suppliers. In many cases, especially if you have centralized buying, you may want to record all the quotes so that - * You can easily compare prices in the future + * You can easily compare prices in the future * Audit whether all Suppliers were given the opportunity to quote. Supplier Quotations are not necessary for most small businesses. Always evaluate the cost of collecting information to the value it really provides! You could only do this for high value items. +#### Taxes +If your Supplier is going to charge you additional taxes or charge like a shipping or insurance charge, you can add it here. It will help you to accurately track your costs. Also, if some of these charges add to the value of the product you will have to mention them in the Taxes table. You can also use templates for your taxes. For more information on setting up your taxes see the Purchase Taxes and Charges Template. + +You can select relevant tax by going to "Taxes and Charges" section and adding an entry to the table as shown below, + +Supplier Quotation + +Besides, in case of multiple items you can keep track of taxes on each by clicking "Show tax break-up" + +Supplier Quotation + {next} From 60fb1b864384b79b5f23325debb5e58ced046afe Mon Sep 17 00:00:00 2001 From: robert schouten Date: Thu, 17 Nov 2016 14:30:47 +0800 Subject: [PATCH 02/20] [fix] layout for bank reconciliation --- .../bank_reconciliation.js | 6 +++++ .../bank_reconciliation.py | 25 ++++++++++++------- .../bank_reconciliation_detail.json | 16 ++++++------ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js index 85d3187131..f1ccd9f8c3 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js @@ -46,6 +46,12 @@ frappe.ui.form.on("Bank Reconciliation", { callback: function(r, rt) { frm.refresh_field("payment_entries"); frm.refresh_fields(); + + $(frm.fields_dict.payment_entries.wrapper).find("[data-fieldname=amount]").each(function(i,v){ + if (i !=0){ + $(v).addClass("text-right") + } + }) } }); } diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py index a56170d992..abc6ebaf9c 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import flt, getdate, nowdate +from frappe.utils import flt, getdate, nowdate, fmt_money from frappe import msgprint, _ from frappe.model.document import Document @@ -26,8 +26,8 @@ class BankReconciliation(Document): select "Journal Entry" as payment_document, t1.name as payment_entry, t1.cheque_no as cheque_number, t1.cheque_date, - abs(t2.debit_in_account_currency - t2.credit_in_account_currency) as amount, - t1.posting_date, t2.against_account, t1.clearance_date + t2.debit_in_account_currency as debit, t2.credit_in_account_currency as credit, + t1.posting_date, t2.against_account, t1.clearance_date, t2.account_currency from `tabJournal Entry` t1, `tabJournal Entry Account` t2 where @@ -36,21 +36,23 @@ class BankReconciliation(Document): and ifnull(t1.is_opening, 'No') = 'No' {0} order by t1.posting_date ASC, t1.name DESC """.format(condition), (self.bank_account, self.from_date, self.to_date), as_dict=1) - + payment_entries = frappe.db.sql(""" select "Payment Entry" as payment_document, name as payment_entry, reference_no as cheque_number, reference_date as cheque_date, - if(paid_from=%s, paid_amount, received_amount) as amount, - posting_date, party as against_account, clearance_date + if(paid_from=%(account)s, paid_amount, "") as credit, + if(paid_from=%(account)s, "", received_amount) as debit, + posting_date, ifnull(party,if(paid_from=%(account)s,paid_to,paid_from)) as against_account, clearance_date, + if(paid_to=%(account)s, paid_to_account_currency, paid_from_account_currency) as account_currency from `tabPayment Entry` where - (paid_from=%s or paid_to=%s) and docstatus=1 - and posting_date >= %s and posting_date <= %s {0} + (paid_from=%(account)s or paid_to=%(account)s) and docstatus=1 + and posting_date >= %(from)s and posting_date <= %(to)s {0} order by posting_date ASC, name DESC """.format(condition), - (self.bank_account, self.bank_account, self.bank_account, self.from_date, self.to_date), as_dict=1) + {"account":self.bank_account, "from":self.from_date, "to":self.to_date}, as_dict=1) entries = sorted(list(payment_entries)+list(journal_entries), key=lambda k: k['posting_date'] or getdate(nowdate())) @@ -60,6 +62,11 @@ class BankReconciliation(Document): for d in entries: row = self.append('payment_entries', {}) + + d.amount = fmt_money(d.debit if d.debit else d.credit, 2, d.account_currency) + " " + (_("Dr") if d.debit else _("Cr")) + d.pop("credit") + d.pop("debit") + d.pop("account_currency") row.update(d) self.total_amount += flt(d.amount) diff --git a/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.json b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.json index 0f30feefa8..2e4af267ee 100644 --- a/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.json +++ b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.json @@ -40,14 +40,14 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "columns": 0, + "columns": 1, "fieldname": "payment_entry", "fieldtype": "Dynamic Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_list_view": 1, "label": "Payment Entry", "length": 0, "no_copy": 0, @@ -69,7 +69,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "columns": 3, + "columns": 2, "fieldname": "against_account", "fieldtype": "Data", "hidden": 0, @@ -99,7 +99,7 @@ "collapsible": 0, "columns": 2, "fieldname": "amount", - "fieldtype": "Currency", + "fieldtype": "Data", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, @@ -110,7 +110,7 @@ "no_copy": 0, "oldfieldname": "debit", "oldfieldtype": "Currency", - "options": "account_currency", + "options": "", "permlevel": 0, "print_hide": 0, "print_hide_if_no_value": 0, @@ -151,7 +151,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "columns": 0, + "columns": 2, "fieldname": "posting_date", "fieldtype": "Date", "hidden": 0, @@ -178,7 +178,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "columns": 3, + "columns": 1, "fieldname": "cheque_number", "fieldtype": "Data", "hidden": 0, @@ -267,7 +267,7 @@ "istable": 1, "max_attachments": 0, "menu_index": 0, - "modified": "2016-08-26 01:51:36.123941", + "modified": "2016-11-17 11:39:00.308624", "modified_by": "Administrator", "module": "Accounts", "name": "Bank Reconciliation Detail", From a943535520b6c0209e1181e967eb943c62606101 Mon Sep 17 00:00:00 2001 From: robert schouten Date: Thu, 17 Nov 2016 14:33:28 +0800 Subject: [PATCH 03/20] [fix] update bank recon statement printing for payment entries --- .../bank_reconciliation_statement.html | 10 +++++----- .../bank_reconciliation_statement.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.html b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.html index dd1609a00c..23d2a31fff 100644 --- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.html +++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.html @@ -8,7 +8,7 @@ {%= __("Posting Date") %} - {%= __("Journal Entry") %} + {%= __("Payment Entry") %} {%= __("Reference") %} {%= __("Debit") %} {%= __("Credit") %} @@ -19,10 +19,10 @@ {% if (data[i]["posting_date"]) { %} {%= dateutil.str_to_user(data[i]["posting_date"]) %} - {%= data[i]["journal_entry"] %} + {%= data[i]["payment_entry"] %} {%= __("Against") %}: {%= data[i]["against_account"] %} - {% if (data[i]["reference"]) { %} -
{%= __("Reference") %}: {%= data[i]["reference"] %} + {% if (data[i]["reference_no"]) { %} +
{%= __("Reference") %}: {%= data[i]["reference_no"] %} {% if (data[i]["ref_date"]) { %}
{%= __("Reference Date") %}: {%= dateutil.str_to_user(data[i]["ref_date"]) %} {% } %} @@ -38,7 +38,7 @@ - {%= data[i]["journal_entry"] %} + {%= data[i]["payment_entry"] %} {%= format_currency(data[i]["debit"]) %} {%= format_currency(data[i]["credit"]) %} diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py index 8ed338efe1..95b7ff7545 100644 --- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py +++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py @@ -129,7 +129,7 @@ def get_entries(filters): reference_no, reference_date as ref_date, if(paid_to=%(account)s, received_amount, 0) as debit, if(paid_from=%(account)s, paid_amount, 0) as credit, - posting_date, party as against_account, clearance_date, + posting_date, ifnull(party,if(paid_from=%(account)s,paid_to,paid_from)) as against_account, clearance_date, if(paid_to=%(account)s, paid_to_account_currency, paid_from_account_currency) as account_currency from `tabPayment Entry` where From 2ef7c7ae5c42b5b453e2a4c0fe5535b7e8e16340 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 17 Nov 2016 17:27:57 +0530 Subject: [PATCH 04/20] [Fix] Onload pull pos profile data for IS POS invoice --- erpnext/accounts/doctype/sales_invoice/sales_invoice.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 9b4306e68d..4cd66f532f 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -20,6 +20,13 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte erpnext.queries.setup_queries(this.frm, "Warehouse", function() { return erpnext.queries.warehouse(me.frm.doc); }); + + if(this.frm.doc.__islocal && this.frm.doc.is_pos) { + //Load pos profile data on the invoice if the default value of Is POS is 1 + + me.frm.script_manager.trigger("is_pos"); + me.frm.refresh_fields(); + } }, refresh: function(doc, dt, dn) { From 0a1f3e405855a297201d7afe7e949608566ddb3f Mon Sep 17 00:00:00 2001 From: robert schouten Date: Fri, 18 Nov 2016 10:54:01 +0800 Subject: [PATCH 05/20] [fix] financial printing and add to profitability --- erpnext/accounts/report/cash_flow/cash_flow.html | 1 + .../report/profitability_analysis/profitability_analysis.html | 1 + 2 files changed, 2 insertions(+) create mode 100644 erpnext/accounts/report/cash_flow/cash_flow.html create mode 100644 erpnext/accounts/report/profitability_analysis/profitability_analysis.html diff --git a/erpnext/accounts/report/cash_flow/cash_flow.html b/erpnext/accounts/report/cash_flow/cash_flow.html new file mode 100644 index 0000000000..40ba20c4ac --- /dev/null +++ b/erpnext/accounts/report/cash_flow/cash_flow.html @@ -0,0 +1 @@ +{% include "accounts/report/financial_statements.html" %} \ No newline at end of file diff --git a/erpnext/accounts/report/profitability_analysis/profitability_analysis.html b/erpnext/accounts/report/profitability_analysis/profitability_analysis.html new file mode 100644 index 0000000000..40ba20c4ac --- /dev/null +++ b/erpnext/accounts/report/profitability_analysis/profitability_analysis.html @@ -0,0 +1 @@ +{% include "accounts/report/financial_statements.html" %} \ No newline at end of file From e887e92dd4f5051503d4e564e79528ccd0fb5d71 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 18 Nov 2016 12:16:22 +0530 Subject: [PATCH 06/20] Minor fix in delivery note, show paking items in order, show serial no of the respective item in the dropdown of packing item --- erpnext/selling/sales_common.js | 44 ++++++++++++------- .../stock/doctype/packed_item/packed_item.py | 2 +- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index a04c652104..59fdf703a3 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -66,27 +66,41 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }); } + if(this.frm.fields_dict["packed_items"].grid.get_field('batch_no')) { + this.frm.set_query("batch_no", "packed_items", function(doc, cdt, cdn) { + return me.set_query_for_batch(doc, cdt, cdn) + }); + } + if(this.frm.fields_dict["items"].grid.get_field('batch_no')) { this.frm.set_query("batch_no", "items", function(doc, cdt, cdn) { - var item = frappe.get_doc(cdt, cdn); - if(!item.item_code) { - frappe.throw(__("Please enter Item Code to get batch no")); - } else { - filters = { - 'item_code': item.item_code, - 'posting_date': me.frm.doc.posting_date || frappe.datetime.nowdate(), - } - if(item.warehouse) filters["warehouse"] = item.warehouse - - return { - query : "erpnext.controllers.queries.get_batch_no", - filters: filters - } - } + return me.set_query_for_batch(doc, cdt, cdn) }); } }, + set_query_for_batch: function(doc, cdt, cdn) { + // Show item's batches in the dropdown of batch no + + var me = this; + var item = frappe.get_doc(cdt, cdn); + + if(!item.item_code) { + frappe.throw(__("Please enter Item Code to get batch no")); + } else { + filters = { + 'item_code': item.item_code, + 'posting_date': me.frm.doc.posting_date || frappe.datetime.nowdate(), + } + if(item.warehouse) filters["warehouse"] = item.warehouse + + return { + query : "erpnext.controllers.queries.get_batch_no", + filters: filters + } + } + }, + refresh: function() { this._super(); this.frm.toggle_display("customer_name", diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py index 2078eebded..09affe0494 100644 --- a/erpnext/stock/doctype/packed_item/packed_item.py +++ b/erpnext/stock/doctype/packed_item/packed_item.py @@ -16,7 +16,7 @@ class PackedItem(Document): def get_product_bundle_items(item_code): return frappe.db.sql("""select t1.item_code, t1.qty, t1.uom, t1.description from `tabProduct Bundle Item` t1, `tabProduct Bundle` t2 - where t2.new_item_code=%s and t1.parent = t2.name""", item_code, as_dict=1) + where t2.new_item_code=%s and t1.parent = t2.name order by t1.idx""", item_code, as_dict=1) def get_packing_item_details(item): return frappe.db.sql("""select item_name, description, stock_uom from `tabItem` From 801029e055825df797a48c188e3130d4cc7fd091 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 17 Nov 2016 00:14:21 +0530 Subject: [PATCH 07/20] Added item groups, customer groups in the POS profile. --- .../doctype/pos_customer_group/__init__.py | 0 .../pos_customer_group.json | 66 +++++++++ .../pos_customer_group/pos_customer_group.py | 10 ++ .../doctype/pos_item_group/__init__.py | 0 .../pos_item_group/pos_item_group.json | 66 +++++++++ .../doctype/pos_item_group/pos_item_group.py | 10 ++ .../doctype/pos_profile/pos_profile.js | 24 +++ .../doctype/pos_profile/pos_profile.json | 140 ++++++++++++++---- .../doctype/pos_profile/pos_profile.py | 11 ++ erpnext/accounts/doctype/sales_invoice/pos.py | 35 +++-- erpnext/accounts/page/pos/pos.js | 4 +- 11 files changed, 322 insertions(+), 44 deletions(-) create mode 100644 erpnext/accounts/doctype/pos_customer_group/__init__.py create mode 100644 erpnext/accounts/doctype/pos_customer_group/pos_customer_group.json create mode 100644 erpnext/accounts/doctype/pos_customer_group/pos_customer_group.py create mode 100644 erpnext/accounts/doctype/pos_item_group/__init__.py create mode 100644 erpnext/accounts/doctype/pos_item_group/pos_item_group.json create mode 100644 erpnext/accounts/doctype/pos_item_group/pos_item_group.py diff --git a/erpnext/accounts/doctype/pos_customer_group/__init__.py b/erpnext/accounts/doctype/pos_customer_group/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.json b/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.json new file mode 100644 index 0000000000..4f6a675fb6 --- /dev/null +++ b/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.json @@ -0,0 +1,66 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2016-11-16 15:27:16.413449", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "customer_group", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Customer Group", + "length": 0, + "no_copy": 0, + "options": "Customer Group", + "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 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2016-11-16 15:27:25.730507", + "modified_by": "Administrator", + "module": "Accounts", + "name": "POS Customer Group", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.py b/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.py new file mode 100644 index 0000000000..85c1c9f8dd --- /dev/null +++ b/erpnext/accounts/doctype/pos_customer_group/pos_customer_group.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, 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 POSCustomerGroup(Document): + pass diff --git a/erpnext/accounts/doctype/pos_item_group/__init__.py b/erpnext/accounts/doctype/pos_item_group/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/accounts/doctype/pos_item_group/pos_item_group.json b/erpnext/accounts/doctype/pos_item_group/pos_item_group.json new file mode 100644 index 0000000000..b278765234 --- /dev/null +++ b/erpnext/accounts/doctype/pos_item_group/pos_item_group.json @@ -0,0 +1,66 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2016-11-16 15:26:47.706713", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_group", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Item Group", + "length": 0, + "no_copy": 0, + "options": "Item Group", + "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 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2016-11-16 15:27:32.263630", + "modified_by": "Administrator", + "module": "Accounts", + "name": "POS Item Group", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/pos_item_group/pos_item_group.py b/erpnext/accounts/doctype/pos_item_group/pos_item_group.py new file mode 100644 index 0000000000..ceaa57ba60 --- /dev/null +++ b/erpnext/accounts/doctype/pos_item_group/pos_item_group.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, 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 POSItemGroup(Document): + pass diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.js b/erpnext/accounts/doctype/pos_profile/pos_profile.js index c1aa0c3cb5..bbbab73e1c 100755 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.js +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.js @@ -26,6 +26,30 @@ frappe.ui.form.on("POS Profile", "onload", function(frm) { }); }); +frappe.ui.form.on("POS Profile", { + setup: function(frm) { + frm.trigger("get_query_for_groups") + }, + + get_query_for_groups: function(frm) { + frm.fields_dict['item_groups'].grid.get_field('item_group').get_query = function(frm, cdt, cdn) { + return{ + filters: { + 'is_group': 0 + } + } + } + + frm.fields_dict['customer_groups'].grid.get_field('customer_group').get_query = function(frm, cdt, cdn) { + return{ + filters: { + 'is_group': 0 + } + } + } + } +}) + // Income Account // -------------------------------- cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) { diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json index f450121817..e6cfd7409b 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.json +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json @@ -375,6 +375,114 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_14", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_groups", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Item Groups", + "length": 0, + "no_copy": 0, + "options": "POS Item Group", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_16", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "customer_groups", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Customer Groups", + "length": 0, + "no_copy": 0, + "options": "POS Customer Group", + "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_on_submit": 0, "bold": 0, @@ -543,34 +651,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "customer_group", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Customer Group", - "length": 0, - "no_copy": 0, - "options": "Customer Group", - "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_on_submit": 0, "bold": 0, @@ -951,8 +1031,8 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-11-03 15:53:33.820428", - "modified_by": "Administrator", + "modified": "2016-11-17 00:20:51.377850", + "modified_by": "rohit@erpnext.com", "module": "Accounts", "name": "POS Profile", "owner": "Administrator", diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.py b/erpnext/accounts/doctype/pos_profile/pos_profile.py index 5f4d5bc75d..ef497bfe29 100644 --- a/erpnext/accounts/doctype/pos_profile/pos_profile.py +++ b/erpnext/accounts/doctype/pos_profile/pos_profile.py @@ -13,6 +13,7 @@ class POSProfile(Document): def validate(self): self.check_for_duplicate() self.validate_all_link_fields() + self.validate_duplicate_groups() def check_for_duplicate(self): res = frappe.db.sql("""select name, user from `tabPOS Profile` @@ -37,6 +38,16 @@ class POSProfile(Document): "company": self.company, "name": link_dn}): frappe.throw(_("{0} does not belong to Company {1}").format(link_dn, self.company)) + def validate_duplicate_groups(self): + item_groups = [d.item_group for d in self.item_groups] + customer_groups = [d.customer_group for d in self.customer_groups] + + if len(item_groups) != len(set(item_groups)): + frappe.throw(_("Duplicate item group found in the item group table"), title = "Duplicate Item Group") + + if len(customer_groups) != len(set(customer_groups)): + frappe.throw(_("Duplicate customer group found in the cutomer group table"), title = "Duplicate Customer Group") + def before_save(self): set_account_for_mode_of_payment(self) diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index 1d1a122011..ec30cb00a7 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -31,7 +31,7 @@ def get_pos_data(): 'doc': doc, 'default_customer': pos_profile.get('customer'), 'items': get_items(doc, pos_profile), - 'customers': get_customers(pos_profile, doc, company_data.default_currency), + 'customers': get_customers_list(pos_profile), 'pricing_rules': get_pricing_rules(doc), 'print_template': print_template, 'meta': { @@ -106,7 +106,7 @@ def update_tax_table(doc): def get_items(doc, pos_profile): item_list = [] - for item in frappe.get_all("Item", fields=["*"], filters={'disabled': 0, 'has_variants': 0, 'is_sales_item': 1}): + for item in get_items_list(pos_profile): item_doc = frappe.get_doc('Item', item.name) if item_doc.taxes: item.taxes = json.dumps(dict(([d.tax_type, d.tax_rate] for d in @@ -129,6 +129,26 @@ def get_items(doc, pos_profile): return item_list +def get_items_list(pos_profile): + cond = "1=1" + item_groups = [] + if pos_profile.get('item_groups'): + cond = "item_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('item_groups')))) + item_groups = [d.item_group for d in pos_profile.get('item_groups')] + + return frappe.db.sql(""" select * from tabItem where disabled = 0 and has_variants = 0 + and is_sales_item = 1 and {cond}""".format(cond=cond), tuple(item_groups), as_dict=1) or [] + +def get_customers_list(pos_profile): + cond = "1=1" + customer_groups = [] + if pos_profile.get('customer_groups'): + cond = "customer_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('customer_groups')))) + customer_groups = [d.customer_group for d in pos_profile.get('customer_groups')] + + return frappe.db.sql(""" select * from tabCustomer where disabled = 0 + and {cond}""".format(cond=cond), tuple(customer_groups), as_dict=1) or {} + def get_item_warehouse_for_company(company, warehouse): if frappe.db.get_value('Warehouse', warehouse, 'company') != company: warehouse = None @@ -149,17 +169,6 @@ def get_serial_nos(item, pos_profile, company): return serial_no_list -def get_customers(pos_profile, doc, company_currency): - filters = {'disabled': 0} - customer_list = [] - customers = frappe.get_all("Customer", fields=["*"], filters = filters) - - for customer in customers: - customer_currency = get_party_account_currency('Customer', customer.name, doc.company) or doc.currency - if customer_currency == doc.currency or customer_currency == company_currency: - customer_list.append(customer) - return customer_list - def get_pricing_rules(doc): pricing_rules = "" if doc.ignore_pricing_rule == 0: diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index 32e9b3ab60..cfc95821e2 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -387,7 +387,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ var $wrap = me.wrapper.find(".item-list"); me.wrapper.find(".item-list").empty(); - if (this.items) { + if (this.items.length > 0) { $.each(this.items, function(index, obj) { if(index < 30){ $(frappe.render_template("pos_item", { @@ -400,6 +400,8 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ })).tooltip().appendTo($wrap); } }); + } else { + $("

Searching record not found.

").appendTo($wrap) } if(this.items.length == 1 From 2a81960e0bc3d562e8163cc159babf7fb73d7253 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 17 Nov 2016 13:01:52 +0530 Subject: [PATCH 08/20] test cases --- .../doctype/pos_profile/test_pos_profile.py | 45 +++++++++++++++++-- erpnext/accounts/doctype/sales_invoice/pos.py | 4 ++ .../sales_invoice/test_sales_invoice.py | 27 ++--------- 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py index 62274a332f..9c6a11487c 100644 --- a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py +++ b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py @@ -5,8 +5,47 @@ from __future__ import unicode_literals import frappe import unittest - -# test_records = frappe.get_test_records('POS Profile') +from erpnext.stock.get_item_details import get_pos_profile +from erpnext.accounts.doctype.sales_invoice.pos import get_items_list, get_customers_list class TestPOSProfile(unittest.TestCase): - pass + def test_pos_profile(self): + make_pos_profile() + + pos_profile = get_pos_profile("_Test Company") or {} + if pos_profile: + doc = frappe.get_doc("POS Profile", pos_profile.get("name")) + doc.append('item_groups', {'item_group': '_Test Item Group'}) + doc.append('customer_groups', {'customer_group': '_Test Customer Group'}) + doc.save() + + items = get_items_list(doc) + customers = get_customers_list(doc) + + products_count = frappe.db.sql(""" select count(name) from tabItem where item_group = '_Test Item Group'""", as_list=1) + customers_count = frappe.db.sql(""" select count(name) from tabCustomer where customer_group = '_Test Customer Group'""") + + self.assertEquals(len(items), products_count[0][0]) + self.assertEquals(len(customers), customers_count[0][0]) + + frappe.db.sql("delete from `tabPOS Profile`") + +def make_pos_profile(): + pos_profile = frappe.get_doc({ + "company": "_Test Company", + "cost_center": "_Test Cost Center - _TC", + "currency": "INR", + "doctype": "POS Profile", + "expense_account": "_Test Account Cost for Goods Sold - _TC", + "income_account": "Sales - _TC", + "name": "_Test POS Profile", + "naming_series": "_T-POS Profile-", + "selling_price_list": "_Test Price List", + "territory": "_Test Territory", + "warehouse": "_Test Warehouse - _TC", + "write_off_account": "_Test Write Off - _TC", + "write_off_cost_center": "_Test Write Off Cost Center - _TC" + }) + + if not frappe.db.exists("POS Profile", "_Test POS Profile"): + pos_profile.insert() \ No newline at end of file diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index ec30cb00a7..11c68a3e63 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -133,6 +133,8 @@ def get_items_list(pos_profile): cond = "1=1" item_groups = [] if pos_profile.get('item_groups'): + # Get items based on the item groups defined in the POS profile + cond = "item_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('item_groups')))) item_groups = [d.item_group for d in pos_profile.get('item_groups')] @@ -143,6 +145,8 @@ def get_customers_list(pos_profile): cond = "1=1" customer_groups = [] if pos_profile.get('customer_groups'): + # Get customers based on the customer groups defined in the POS profile + cond = "customer_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('customer_groups')))) customer_groups = [d.customer_group for d in pos_profile.get('customer_groups')] diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 511eeaab9f..c4f275aba9 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -7,6 +7,7 @@ import unittest, copy from frappe.utils import nowdate, add_days, flt, nowdate from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry, get_qty_after_transaction from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import unlink_payment_on_cancel_of_invoice +from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory from erpnext.exceptions import InvalidAccountCurrency, InvalidCurrency from erpnext.stock.doctype.serial_no.serial_no import SerialNoWarehouseError @@ -467,7 +468,7 @@ class TestSalesInvoice(unittest.TestCase): def test_pos_gl_entry_with_perpetual_inventory(self): set_perpetual_inventory() - self.make_pos_profile() + make_pos_profile() self._insert_purchase_receipt() pos = copy.deepcopy(test_records[1]) @@ -486,7 +487,7 @@ class TestSalesInvoice(unittest.TestCase): def test_pos_change_amount(self): set_perpetual_inventory() - self.make_pos_profile() + make_pos_profile() self._insert_purchase_receipt() pos = copy.deepcopy(test_records[1]) @@ -508,7 +509,7 @@ class TestSalesInvoice(unittest.TestCase): set_perpetual_inventory() - self.make_pos_profile() + make_pos_profile() self._insert_purchase_receipt() pos = copy.deepcopy(test_records[1]) @@ -572,26 +573,6 @@ class TestSalesInvoice(unittest.TestCase): frappe.db.sql("delete from `tabPOS Profile`") - def make_pos_profile(self): - pos_profile = frappe.get_doc({ - "company": "_Test Company", - "cost_center": "_Test Cost Center - _TC", - "currency": "INR", - "doctype": "POS Profile", - "expense_account": "_Test Account Cost for Goods Sold - _TC", - "income_account": "Sales - _TC", - "name": "_Test POS Profile", - "naming_series": "_T-POS Profile-", - "selling_price_list": "_Test Price List", - "territory": "_Test Territory", - "warehouse": "_Test Warehouse - _TC", - "write_off_account": "_Test Write Off - _TC", - "write_off_cost_center": "_Test Write Off Cost Center - _TC" - }) - - if not frappe.db.exists("POS Profile", "_Test POS Profile"): - pos_profile.insert() - def test_sales_invoice_gl_entry_with_perpetual_inventory_no_item_code(self): set_perpetual_inventory() From cbd26e3b2cd36e2060fabf13d655ab58ed93bb87 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 18 Nov 2016 17:19:45 +0530 Subject: [PATCH 09/20] Manual Depreciation Schedule for Asset --- erpnext/accounts/doctype/asset/asset.js | 33 +++++++++++++++ erpnext/accounts/doctype/asset/asset.json | 8 ++-- erpnext/accounts/doctype/asset/asset.py | 40 ++++++++++--------- erpnext/accounts/doctype/asset/test_asset.py | 24 +++++++++++ .../depreciation_schedule.json | 24 ++++++++--- 5 files changed, 102 insertions(+), 27 deletions(-) diff --git a/erpnext/accounts/doctype/asset/asset.js b/erpnext/accounts/doctype/asset/asset.js index 8ff4b83d68..664ed4da25 100644 --- a/erpnext/accounts/doctype/asset/asset.js +++ b/erpnext/accounts/doctype/asset/asset.js @@ -28,6 +28,7 @@ frappe.ui.form.on('Asset', { refresh: function(frm) { frappe.ui.form.trigger("Asset", "is_existing_asset"); frm.toggle_display("next_depreciation_date", frm.doc.docstatus < 1); + frm.events.make_schedules_editable(frm); if (frm.doc.docstatus==1) { if (frm.doc.status=='Submitted' && !frm.doc.is_existing_asset && !frm.doc.purchase_invoice) { @@ -141,6 +142,22 @@ frappe.ui.form.on('Asset', { frm.toggle_enable("supplier", frm.doc.is_existing_asset); frm.toggle_reqd("next_depreciation_date", !frm.doc.is_existing_asset); }, + + opening_accumulated_depreciation: function(frm) { + erpnext.asset.set_accululated_depreciation(frm); + }, + + depreciation_method: function(frm) { + frm.events.make_schedules_editable(frm); + }, + + make_schedules_editable: function(frm) { + var is_editable = frm.doc.depreciation_method==="Manual" ? true : false; + frm.toggle_enable("schedules", is_editable); + frm.fields_dict["schedules"].grid.toggle_enable("schedule_date", is_editable); + frm.fields_dict["schedules"].grid.toggle_enable("depreciation_amount", is_editable); + } + }); frappe.ui.form.on('Depreciation Schedule', { @@ -159,9 +176,25 @@ frappe.ui.form.on('Depreciation Schedule', { } }) } + }, + + depreciation_amount: function(frm, cdt, cdn) { + erpnext.asset.set_accululated_depreciation(frm); } + }) +erpnext.asset.set_accululated_depreciation = function(frm) { + if(frm.doc.depreciation_method != "Manual") return; + + accumulated_depreciation = flt(frm.doc.opening_accumulated_depreciation); + $.each(frm.doc.schedules || [], function(i, row) { + accumulated_depreciation += flt(row.depreciation_amount); + frappe.model.set_value(row.doctype, row.name, + "accumulated_depreciation_amount", accumulated_depreciation); + }) +} + erpnext.asset.make_purchase_invoice = function(frm) { frappe.call({ args: { diff --git a/erpnext/accounts/doctype/asset/asset.json b/erpnext/accounts/doctype/asset/asset.json index d3a88fbaa4..95d9b48603 100644 --- a/erpnext/accounts/doctype/asset/asset.json +++ b/erpnext/accounts/doctype/asset/asset.json @@ -516,7 +516,7 @@ "columns": 0, "fieldname": "value_after_depreciation", "fieldtype": "Currency", - "hidden": 0, + "hidden": 1, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, @@ -580,7 +580,7 @@ "label": "Depreciation Method", "length": 0, "no_copy": 0, - "options": "\nStraight Line\nDouble Declining Balance", + "options": "\nStraight Line\nDouble Declining Balance\nManual", "permlevel": 0, "precision": "", "print_hide": 0, @@ -750,7 +750,7 @@ "precision": "", "print_hide": 0, "print_hide_if_no_value": 0, - "read_only": 1, + "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, @@ -797,7 +797,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-11-03 14:58:53.710357", + "modified": "2016-11-18 15:59:19.774500", "modified_by": "Administrator", "module": "Accounts", "name": "Asset", diff --git a/erpnext/accounts/doctype/asset/asset.py b/erpnext/accounts/doctype/asset/asset.py index da73218b25..9caac071f9 100644 --- a/erpnext/accounts/doctype/asset/asset.py +++ b/erpnext/accounts/doctype/asset/asset.py @@ -18,6 +18,7 @@ class Asset(Document): self.set_missing_values() self.validate_asset_values() self.make_depreciation_schedule() + self.set_accumulated_depreciation() self.validate_expected_value_after_useful_life() # Validate depreciation related accounts get_depreciation_accounts(self) @@ -48,7 +49,7 @@ class Asset(Document): for field, value in item_details.items(): if not self.get(field): self.set(field, value) - + self.value_after_depreciation = (flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)) @@ -87,9 +88,10 @@ class Asset(Document): frappe.throw(_("Please set Next Depreciation Date")) def make_depreciation_schedule(self): - self.schedules = [] + if self.depreciation_method != 'Manual': + self.schedules = [] + if not self.get("schedules") and self.next_depreciation_date: - accumulated_depreciation = flt(self.opening_accumulated_depreciation) value_after_depreciation = flt(self.value_after_depreciation) number_of_pending_depreciations = cint(self.total_number_of_depreciations) - \ @@ -100,18 +102,21 @@ class Asset(Document): n * cint(self.frequency_of_depreciation)) depreciation_amount = self.get_depreciation_amount(value_after_depreciation) - - accumulated_depreciation += flt(depreciation_amount) value_after_depreciation -= flt(depreciation_amount) self.append("schedules", { "schedule_date": schedule_date, - "depreciation_amount": depreciation_amount, - "accumulated_depreciation_amount": accumulated_depreciation + "depreciation_amount": depreciation_amount }) + + def set_accumulated_depreciation(self): + accumulated_depreciation = flt(self.opening_accumulated_depreciation) + for d in self.get("schedules"): + accumulated_depreciation += flt(d.depreciation_amount) + d.accumulated_depreciation_amount = accumulated_depreciation def get_depreciation_amount(self, depreciable_value): - if self.depreciation_method == "Straight Line": + if self.depreciation_method in ("Straight Line", "Manual"): depreciation_amount = (flt(self.value_after_depreciation) - flt(self.expected_value_after_useful_life)) / (cint(self.total_number_of_depreciations) - cint(self.number_of_depreciations_booked)) @@ -126,16 +131,15 @@ class Asset(Document): return depreciation_amount def validate_expected_value_after_useful_life(self): - if self.depreciation_method == "Double Declining Balance": - accumulated_depreciation_after_full_schedule = \ - max([d.accumulated_depreciation_amount for d in self.get("schedules")]) - - asset_value_after_full_schedule = (flt(self.gross_purchase_amount) - - flt(accumulated_depreciation_after_full_schedule)) - - if self.expected_value_after_useful_life < asset_value_after_full_schedule: - frappe.throw(_("Expected value after useful life must be greater than or equal to {0}") - .format(asset_value_after_full_schedule)) + accumulated_depreciation_after_full_schedule = \ + max([d.accumulated_depreciation_amount for d in self.get("schedules")]) + + asset_value_after_full_schedule = (flt(self.gross_purchase_amount) - + flt(accumulated_depreciation_after_full_schedule)) + + if self.expected_value_after_useful_life < asset_value_after_full_schedule: + frappe.throw(_("Expected value after useful life must be greater than or equal to {0}") + .format(asset_value_after_full_schedule)) def validate_cancellation(self): if self.status not in ("Submitted", "Partially Depreciated", "Fully Depreciated"): diff --git a/erpnext/accounts/doctype/asset/test_asset.py b/erpnext/accounts/doctype/asset/test_asset.py index b409ec3a25..51496b918c 100644 --- a/erpnext/accounts/doctype/asset/test_asset.py +++ b/erpnext/accounts/doctype/asset/test_asset.py @@ -119,6 +119,30 @@ class TestAsset(unittest.TestCase): for d in asset.get("schedules")] self.assertEqual(schedules, expected_schedules) + + def test_schedule_for_manual_method(self): + asset = frappe.get_doc("Asset", "Macbook Pro 1") + asset.depreciation_method = "Manual" + asset.schedules = [] + for schedule_date, amount in [["2020-12-31", 40000], ["2021-06-30", 30000], ["2021-10-31", 20000]]: + asset.append("schedules", { + "schedule_date": schedule_date, + "depreciation_amount": amount + }) + asset.save() + + self.assertEqual(asset.status, "Draft") + + expected_schedules = [ + ["2020-12-31", 40000, 40000], + ["2021-06-30", 30000, 70000], + ["2021-10-31", 20000, 90000] + ] + + schedules = [[cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount] + for d in asset.get("schedules")] + + self.assertEqual(schedules, expected_schedules) def test_depreciation(self): asset = frappe.get_doc("Asset", "Macbook Pro 1") diff --git a/erpnext/accounts/doctype/depreciation_schedule/depreciation_schedule.json b/erpnext/accounts/doctype/depreciation_schedule/depreciation_schedule.json index 57c14b7974..1fadf5eb4f 100644 --- a/erpnext/accounts/doctype/depreciation_schedule/depreciation_schedule.json +++ b/erpnext/accounts/doctype/depreciation_schedule/depreciation_schedule.json @@ -10,11 +10,13 @@ "doctype": "DocType", "document_type": "Document", "editable_grid": 1, + "engine": "InnoDB", "fields": [ { "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "schedule_date", "fieldtype": "Date", "hidden": 0, @@ -29,7 +31,8 @@ "precision": "", "print_hide": 0, "print_hide_if_no_value": 0, - "read_only": 1, + "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -40,6 +43,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "depreciation_amount", "fieldtype": "Currency", "hidden": 0, @@ -55,7 +59,8 @@ "precision": "", "print_hide": 0, "print_hide_if_no_value": 0, - "read_only": 1, + "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -66,6 +71,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", "hidden": 0, @@ -80,6 +86,7 @@ "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, @@ -90,6 +97,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "accumulated_depreciation_amount", "fieldtype": "Currency", "hidden": 0, @@ -106,8 +114,9 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 1, + "reqd": 0, "search_index": 0, "set_only_once": 0, "unique": 0 @@ -116,6 +125,8 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "depends_on": "eval:doc.docstatus==1", "fieldname": "journal_entry", "fieldtype": "Link", "hidden": 0, @@ -132,6 +143,7 @@ "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, @@ -142,7 +154,8 @@ "allow_on_submit": 1, "bold": 0, "collapsible": 0, - "depends_on": "eval:(!doc.journal_entry && doc.schedule_date <= get_today())", + "columns": 0, + "depends_on": "eval:(doc.docstatus==1 && !doc.journal_entry && doc.schedule_date <= get_today())", "fieldname": "make_depreciation_entry", "fieldtype": "Button", "hidden": 0, @@ -158,6 +171,7 @@ "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, @@ -175,7 +189,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:27:59.603924", + "modified": "2016-11-18 16:42:19.543657", "modified_by": "Administrator", "module": "Accounts", "name": "Depreciation Schedule", From a27c417e48a60b7ccc314c7dfb3068f6a4055cae Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Sun, 20 Nov 2016 23:41:13 +0530 Subject: [PATCH 10/20] fix master data sync performance issue --- erpnext/accounts/doctype/sales_invoice/pos.py | 132 ++++++++++++------ erpnext/accounts/page/pos/pos.js | 80 +++++++---- 2 files changed, 139 insertions(+), 73 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index 11c68a3e63..e5c86dc436 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -30,10 +30,16 @@ def get_pos_data(): return { 'doc': doc, 'default_customer': pos_profile.get('customer'), - 'items': get_items(doc, pos_profile), + 'items': get_items_list(pos_profile), 'customers': get_customers_list(pos_profile), - 'pricing_rules': get_pricing_rules(doc), + 'serial_no_data': get_serial_no_data(pos_profile, doc.company), + 'batch_no_data': get_batch_no_data(), + 'tax_data': get_item_tax_data(), + 'price_list_data': get_price_list_data(doc.selling_price_list), + 'bin_data': get_bin_data(pos_profile), + 'pricing_rules': get_pricing_rule_data(doc), 'print_template': print_template, + 'pos_profile': pos_profile, 'meta': { 'invoice': frappe.get_meta('Sales Invoice'), 'items': frappe.get_meta('Sales Invoice Item'), @@ -104,31 +110,6 @@ def update_tax_table(doc): for tax in taxes: doc.append('taxes', tax) -def get_items(doc, pos_profile): - item_list = [] - for item in get_items_list(pos_profile): - item_doc = frappe.get_doc('Item', item.name) - if item_doc.taxes: - item.taxes = json.dumps(dict(([d.tax_type, d.tax_rate] for d in - item_doc.get("taxes")))) - - item.price_list_rate = frappe.db.get_value('Item Price', {'item_code': item.name, - 'price_list': doc.selling_price_list}, 'price_list_rate') or 0 - item.default_warehouse = pos_profile.get('warehouse') or \ - get_item_warehouse_for_company(doc.company, item.default_warehouse) or None - item.expense_account = pos_profile.get('expense_account') or item.expense_account - item.income_account = pos_profile.get('income_account') or item_doc.income_account - item.cost_center = pos_profile.get('cost_center') or item_doc.selling_cost_center - item.actual_qty = frappe.db.get_value('Bin', {'item_code': item.name, - 'warehouse': item.default_warehouse}, 'actual_qty') or 0 - item.serial_nos = get_serial_nos(item, pos_profile, doc.company) - item.batch_nos = frappe.db.sql_list("""select name from `tabBatch` where ifnull(expiry_date, '4000-10-10') > curdate() - and item = %(item_code)s""", {'item_code': item.item_code}) - - item_list.append(item) - - return item_list - def get_items_list(pos_profile): cond = "1=1" item_groups = [] @@ -138,8 +119,15 @@ def get_items_list(pos_profile): cond = "item_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('item_groups')))) item_groups = [d.item_group for d in pos_profile.get('item_groups')] - return frappe.db.sql(""" select * from tabItem where disabled = 0 and has_variants = 0 - and is_sales_item = 1 and {cond}""".format(cond=cond), tuple(item_groups), as_dict=1) or [] + return frappe.db.sql(""" + select + name, item_code, item_name, description, item_group, expense_account, has_batch_no, + has_serial_no, expense_account, selling_cost_center, stock_uom, image, default_warehouse + from + tabItem + where + disabled = 0 and has_variants = 0 and is_sales_item = 1 and {cond} + """.format(cond=cond), tuple(item_groups), as_dict=1) def get_customers_list(pos_profile): cond = "1=1" @@ -150,30 +138,88 @@ def get_customers_list(pos_profile): cond = "customer_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('customer_groups')))) customer_groups = [d.customer_group for d in pos_profile.get('customer_groups')] - return frappe.db.sql(""" select * from tabCustomer where disabled = 0 + return frappe.db.sql(""" select name, customer_name, customer_group, + territory from tabCustomer where disabled = 0 and {cond}""".format(cond=cond), tuple(customer_groups), as_dict=1) or {} -def get_item_warehouse_for_company(company, warehouse): - if frappe.db.get_value('Warehouse', warehouse, 'company') != company: - warehouse = None - return warehouse +def get_serial_no_data(pos_profile, company): + # get itemwise serial no data + # example {'Nokia Lumia 1020': {'SN0001': 'Pune'}} + # where Nokia Lumia 1020 is item code, SN0001 is serial no and Pune is warehouse -def get_serial_nos(item, pos_profile, company): cond = "1=1" if pos_profile.get('update_stock') and pos_profile.get('warehouse'): cond = "warehouse = '{0}'".format(pos_profile.get('warehouse')) - serial_nos = frappe.db.sql("""select name, warehouse from `tabSerial No` where {0} - and item_code = %(item_code)s and company = %(company)s - """.format(cond), {'item_code': item.item_code, 'company': company}, as_dict=1) + serial_nos = frappe.db.sql("""select name, warehouse, item_code from `tabSerial No` where {0} + and company = %(company)s """.format(cond), {'company': company}, as_dict=1) - serial_no_list = {} - for serial_no in serial_nos: - serial_no_list[serial_no.name] = serial_no.warehouse + itemwise_serial_no = {} + for sn in serial_nos: + if sn.item_code not in itemwise_serial_no: + itemwise_serial_no.setdefault(sn.item_code, {}) + itemwise_serial_no[sn.item_code][sn.name] = sn.warehouse - return serial_no_list + return itemwise_serial_no -def get_pricing_rules(doc): +def get_batch_no_data(): + # get itemwise batch no data + # exmaple: {'LED-GRE': [Batch001, Batch002]} + # where LED-GRE is item code, SN0001 is serial no and Pune is warehouse + + itemwise_batch = {} + batches = frappe.db.sql("""select name, item from `tabBatch` + where ifnull(expiry_date, '4000-10-10') >= curdate()""", as_dict=1) + + for batch in batches: + if batch.item not in itemwise_batch: + itemwise_batch.setdefault(batch.item, []) + itemwise_batch[batch.item].append(batch.name) + + return itemwise_batch + +def get_item_tax_data(): + # get default tax of an item + # example: {'Consulting Services': {'Excise 12 - TS': '12.000'}} + + itemwise_tax = {} + taxes = frappe.db.sql(""" select parent, tax_type, tax_rate from `tabItem Tax`""", as_dict=1) + + for tax in taxes: + if tax.parent not in itemwise_tax: + itemwise_tax.setdefault(tax.parent, {}) + itemwise_tax[tax.parent][tax.tax_type] = tax.tax_rate + + return itemwise_tax + +def get_price_list_data(selling_price_list): + itemwise_price_list = {} + price_lists = frappe.db.sql("""Select ifnull(price_list_rate, 0) as price_list_rate, + item_code from `tabItem Price` ip where price_list = %(price_list)s""", + {'price_list': selling_price_list}, as_dict=1) + + for item in price_lists: + itemwise_price_list[item.item_code] = item.price_list_rate + + return itemwise_price_list + +def get_bin_data(pos_profile): + itemwise_bin_data = {} + cond = "1=1" + if pos_profile.get('warehouse'): + cond = "warehouse = '{0}'".format(pos_profile.get('warehouse')) + + bin_data = frappe.db.sql(""" select item_code, warehouse, actual_qty from `tabBin` + where actual_qty > 0 and {cond}""".format(cond=cond), as_dict=1) + + for bins in bin_data: + if bins.item_code not in itemwise_bin_data: + itemwise_bin_data.setdefault(bins.item_code, {}) + itemwise_bin_data[bins.item_code][bins.warehouse] = bins.actual_qty + + return itemwise_bin_data + +def get_pricing_rule_data(doc): pricing_rules = "" if doc.ignore_pricing_rule == 0: pricing_rules = frappe.db.sql(""" Select * from `tabPricing Rule` where docstatus < 2 diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index cfc95821e2..26bf3ea54c 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -25,7 +25,6 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.set_indicator(); this.onload(); this.make_menu_list(); - this.set_interval_for_si_sync(); this.si_docs = this.get_doc_from_localstorage(); }, @@ -73,8 +72,6 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.get_data_from_server(function(){ me.create_new(); }); - - this.check_internet_connection(); }, make_menu_list: function(){ @@ -204,13 +201,10 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ freeze: true, freeze_message: __("Master data syncing, it might take some time"), callback: function(r){ - window.items = r.message.items; - window.customers = r.message.customers; - window.pricing_rules = r.message.pricing_rules; - window.meta = r.message.meta; - window.print_template = r.message.print_template; - me.default_customer = r.message.default_customer || null; + me.init_master_data(r) localStorage.setItem('doc', JSON.stringify(r.message.doc)); + me.set_interval_for_si_sync(); + me.check_internet_connection(); if(callback){ callback(); } @@ -218,6 +212,22 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ }) }, + init_master_data: function(r){ + var me = this; + this.meta = r.message.meta; + this.item_data = r.message.items; + this.customers = r.message.customers; + this.serial_no_data = r.message.serial_no_data; + this.batch_no_data = r.message.batch_no_data; + this.tax_data = r.message.tax_data; + this.price_list_data = r.message.price_list_data; + this.bin_data = r.message.bin_data; + this.pricing_rules = r.message.pricing_rules; + this.print_template = r.message.print_template; + this.pos_profile_data = r.message.pos_profile; + this.default_customer = r.message.default_customer || null; + }, + save_previous_entry : function(){ if(this.frm.doc.items.length > 0){ this.create_invoice() @@ -233,20 +243,19 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ }, load_data: function(load_doc){ - this.items = window.items; - this.customers = window.customers; - this.pricing_rules = window.pricing_rules; + var me = this; + this.items = this.item_data; if(load_doc) { this.frm.doc = JSON.parse(localStorage.getItem('doc')); } - $.each(window.meta, function(i, data){ + $.each(this.meta, function(i, data){ frappe.meta.sync(data) }) this.print_template = frappe.render_template("print_template", - {content: window.print_template, title:"POS", + {content: this.print_template, title:"POS", base_url: frappe.urllib.get_base_url(), print_css: frappe.boot.print_css}) }, @@ -392,7 +401,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ if(index < 30){ $(frappe.render_template("pos_item", { item_code: obj.name, - item_price: format_currency(obj.price_list_rate, me.frm.doc.currency), + item_price: format_currency(me.price_list_data[obj.name], me.frm.doc.currency), item_name: obj.name===obj.item_name ? "" : obj.item_name, item_image: obj.image ? "url('" + obj.image + "')" : null, color: frappe.get_palette(obj.item_name), @@ -428,7 +437,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.item_batch_no = {}; if(item_code){ - return $.grep(window.items, function(item){ + return $.grep(this.item_data, function(item){ if(item.item_code == item_code ){ return true } @@ -441,14 +450,15 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ search_status = true if(key){ - return $.grep(window.items, function(item){ + return $.grep(this.item_data, function(item){ if(search_status){ - if(in_list(item.batch_nos, me.search.$input.val())){ + if(in_list(me.batch_no_data[item.item_code], me.search.$input.val())){ search_status = false; return me.item_batch_no[item.item_code] = me.search.$input.val() - } else if(in_list(Object.keys(item.serial_nos), me.search.$input.val())) { + } else if( me.serial_no_data[item.item_code] + && in_list(Object.keys(me.serial_no_data[item.item_code]), me.search.$input.val())) { search_status = false; - me.item_serial_no[item.item_code] = [me.search.$input.val(), item.serial_nos[me.search.$input.val()]] + me.item_serial_no[item.item_code] = [me.search.$input.val(), me.serial_no_data[item.item_code][me.search.$input.val()]] return true } else if(item.barcode == me.search.$input.val()) { search_status = false; @@ -460,7 +470,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ } }) }else{ - return window.items; + return this.item_data; } }, @@ -613,18 +623,18 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ this.child.description = this.items[0].description; this.child.qty = 1; this.child.item_group = this.items[0].item_group; - this.child.cost_center = this.items[0].cost_center; - this.child.income_account = this.items[0].income_account; + this.child.cost_center = this.pos_profile_data['cost_center'] || this.items[0].cost_center; + this.child.income_account = this.pos_profile_data['income_account'] || this.items[0].income_account; this.child.warehouse = (this.item_serial_no[this.child.item_code] - ? this.item_serial_no[this.child.item_code][1] : this.items[0].default_warehouse); - this.child.price_list_rate = flt(this.items[0].price_list_rate, 9) / flt(this.frm.doc.conversion_rate, 9); - this.child.rate = flt(this.items[0].price_list_rate, 9) / flt(this.frm.doc.conversion_rate, 9); - this.child.actual_qty = this.items[0].actual_qty; + ? this.item_serial_no[this.child.item_code][1] : (this.pos_profile_data['warehouse'] || this.items[0].default_warehouse) ); + this.child.price_list_rate = flt(this.price_list_data[this.child.item_code], 9) / flt(this.frm.doc.conversion_rate, 9); + this.child.rate = flt(this.price_list_data[this.child.item_code], 9) / flt(this.frm.doc.conversion_rate, 9); + this.child.actual_qty = me.get_actual_qty(this.items[0]); this.child.amount = flt(this.child.qty) * flt(this.child.rate); this.child.batch_no = this.item_batch_no[this.child.item_code]; this.child.serial_no = (this.item_serial_no[this.child.item_code] ? this.item_serial_no[this.child.item_code][0] : ''); - this.child.item_tax_rate = this.items[0].taxes; + this.child.item_tax_rate = JSON.stringify(this.tax_data[this.child.item_code]); }, update_paid_amount_status: function(update_paid_amount){ @@ -670,7 +680,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ item_code: d.item_code, item_name: (d.item_name===d.item_code || !d.item_name) ? "" : ("
" + d.item_name), qty: d.qty, - actual_qty: d.actual_qty, + actual_qty: me.actual_qty, projected_qty: d.projected_qty, rate: format_number(d.rate, me.frm.doc.currency), amount: format_currency(d.amount, me.frm.doc.currency) @@ -1066,8 +1076,18 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ }, validate_warehouse: function(){ - if(!this.items[0].default_warehouse){ + if(!this.items[0].default_warehouse && !this.pos_profile_data['warehouse']){ frappe.throw(__("Default warehouse is required for selected item")) } + }, + + get_actual_qty: function(item) { + this.actual_qty = 0.0; + var warehouse = this.pos_profile_data['warehouse'] || item.default_warehouse; + if(warehouse && this.bin_data[item.item_code]) { + this.actual_qty = this.bin_data[item.item_code][warehouse] || 0; + } + + return this.actual_qty } }) \ No newline at end of file From d33c44e3a5abce71a3af3ce18b3ab5a9a569aaf6 Mon Sep 17 00:00:00 2001 From: Kanchan Chauhan Date: Mon, 21 Nov 2016 11:23:01 +0530 Subject: [PATCH 11/20] [Fix]Workstation holiday list --- .../doctype/workstation/workstation.js | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/erpnext/manufacturing/doctype/workstation/workstation.js b/erpnext/manufacturing/doctype/workstation/workstation.js index 153d7e5623..ba8e30cba0 100644 --- a/erpnext/manufacturing/doctype/workstation/workstation.js +++ b/erpnext/manufacturing/doctype/workstation/workstation.js @@ -1,17 +1,19 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt - - -//--------- ONLOAD ------------- -cur_frm.cscript.onload = function(doc, cdt, cdn) { - frappe.call({ - type:"GET", - method:"erpnext.manufacturing.doctype.workstation.workstation.get_default_holiday_list", - callback: function(r) { - if(!r.exe && r.message){ - cur_frm.set_value("holiday_list", r.message); - } +frappe.ui.form.on("Workstation", { + onload: function(frm) { + if(frm.is_new()) + { + frappe.call({ + type:"GET", + method:"erpnext.manufacturing.doctype.workstation.workstation.get_default_holiday_list", + callback: function(r) { + if(!r.exe && r.message){ + cur_frm.set_value("holiday_list", r.message); + } + } + }) } - }) -} + } +}) \ No newline at end of file From e9fc31168d3910ace9ee1c443d360e399fd2c3dd Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 21 Nov 2016 14:29:26 +0530 Subject: [PATCH 12/20] [patch] reload desktop icon #6826 --- erpnext/patches/v7_0/fix_duplicate_icons.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/patches/v7_0/fix_duplicate_icons.py b/erpnext/patches/v7_0/fix_duplicate_icons.py index 3e762f79b4..f6d227d304 100644 --- a/erpnext/patches/v7_0/fix_duplicate_icons.py +++ b/erpnext/patches/v7_0/fix_duplicate_icons.py @@ -6,6 +6,8 @@ from erpnext.patches.v7_0.migrate_schools_to_erpnext import reload_doctypes_for_ def execute(): '''hide new style icons if old ones are set''' + frappe.reload_doc('desk', 'doctype', 'desktop_icon') + reload_doctypes_for_schools_icons() sync_desktop_icons() From 4810d1fa2d1d8cbc02de93d958dd73c77493a843 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 21 Nov 2016 16:52:50 +0530 Subject: [PATCH 13/20] patch for rename autoname field --- erpnext/patches.txt | 1 + erpnext/patches/v7_0/update_autoname_field.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 erpnext/patches/v7_0/update_autoname_field.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 5f8531d1a3..30e8e038f7 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -349,3 +349,4 @@ erpnext.patches.v7_0.set_base_amount_in_invoice_payment_table erpnext.patches.v7_1.update_invoice_status erpnext.patches.v7_0.po_status_issue_for_pr_return erpnext.patches.v7_1.update_missing_salary_component_type +erpnext.patches.v7_0.update_autoname_field \ No newline at end of file diff --git a/erpnext/patches/v7_0/update_autoname_field.py b/erpnext/patches/v7_0/update_autoname_field.py new file mode 100644 index 0000000000..bfa9b281df --- /dev/null +++ b/erpnext/patches/v7_0/update_autoname_field.py @@ -0,0 +1,14 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import frappe + +def execute(): + doctypes = frappe.db.sql(""" select name, autoname from `tabDocType` + where autoname like 'field:%' and allow_rename = 1""", as_dict=1) + + for doctype in doctypes: + fieldname = doctype.autoname.split(":")[1] + if fieldname: + frappe.db.sql(""" update `tab%s` set %s = name """%(doctype.name, fieldname)) \ No newline at end of file From 542bf8f7d47aef4fbdcd3f700eaaed377c904149 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 16:57:10 +0530 Subject: [PATCH 14/20] Party filter and total row for opening and closing in trial balance for party report --- .../trial_balance_for_party.js | 13 +++++++ .../trial_balance_for_party.py | 37 ++++++++++++------- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js index 4d2efad8b8..7ccec30bde 100644 --- a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js +++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js @@ -50,6 +50,19 @@ frappe.query_reports["Trial Balance for Party"] = { "options": ["Customer", "Supplier"], "default": "Customer" }, + { + "fieldname":"party", + "label": __("Party"), + "fieldtype": "Dynamic Link", + "get_options": function() { + var party_type = frappe.query_report_filters_by_name.party_type.get_value(); + var party = frappe.query_report_filters_by_name.party.get_value(); + if(party && !party_type) { + frappe.throw(__("Please select Party Type first")); + } + return party_type; + } + }, { "fieldname": "show_zero_values", "label": __("Show zero values"), diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py index 58222ac0d5..6480623ffa 100644 --- a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py +++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py @@ -20,13 +20,23 @@ def execute(filters=None): def get_data(filters, show_party_name): party_name_field = "customer_name" if filters.get("party_type")=="Customer" else "supplier_name" - parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field], order_by="name") + party_filters = {"name": filters.get("party")} if filters.get("party") else {} + parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field], + filters = party_filters, order_by="name") company_currency = frappe.db.get_value("Company", filters.company, "default_currency") opening_balances = get_opening_balances(filters) balances_within_period = get_balances_within_period(filters) data = [] - total_debit, total_credit = 0, 0 + # total_debit, total_credit = 0, 0 + total_row = frappe._dict({ + "opening_debit": 0, + "opening_credit": 0, + "debit": 0, + "credit": 0, + "closing_debit": 0, + "closing_credit": 0 + }) for party in parties: row = { "party": party.name } if show_party_name: @@ -45,11 +55,7 @@ def get_data(filters, show_party_name): "debit": debit, "credit": credit }) - - # totals - total_debit += debit - total_credit += credit - + # closing closing_debit, closing_credit = toggle_debit_credit(opening_debit + debit, opening_credit + credit) row.update({ @@ -57,6 +63,10 @@ def get_data(filters, show_party_name): "closing_credit": closing_credit }) + # totals + for col in total_row: + total_row[col] += row.get(col) + row.update({ "currency": company_currency }) @@ -69,13 +79,12 @@ def get_data(filters, show_party_name): data.append(row) # Add total row - if total_debit or total_credit: - data.append({ - "party": "'" + _("Totals") + "'", - "debit": total_debit, - "credit": total_credit, - "currency": company_currency - }) + + total_row.update({ + "party": "'" + _("Totals") + "'", + "currency": company_currency + }) + data.append(total_row) return data From fd23fa7c0bf0a43180cfadd391d47380aa2e73f5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 16:57:39 +0530 Subject: [PATCH 15/20] Prifitability report link added to accounts module page --- .../monthly_distribution.json | 15 +++++++++++++-- erpnext/config/accounts.py | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json index 377a95c7d5..7af7f48ce7 100644 --- a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json +++ b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json @@ -9,11 +9,14 @@ "description": "**Monthly Distribution** helps you distribute the Budget/Target across months if you have seasonality in your business.", "docstatus": 0, "doctype": "DocType", + "editable_grid": 0, + "engine": "InnoDB", "fields": [ { "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "description": "Name of the Monthly Distribution", "fieldname": "distribution_id", "fieldtype": "Data", @@ -31,6 +34,7 @@ "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, @@ -41,6 +45,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fiscal_year", "fieldtype": "Link", "hidden": 0, @@ -58,6 +63,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 1, @@ -68,6 +74,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "percentages", "fieldtype": "Table", "hidden": 0, @@ -85,6 +92,7 @@ "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, @@ -96,13 +104,14 @@ "hide_toolbar": 0, "icon": "icon-bar-chart", "idx": 1, + "image_view": 0, "in_create": 0, "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-05-16 16:35:20.349194", + "modified": "2016-11-21 14:54:35.998761", "modified_by": "Administrator", "module": "Accounts", "name": "Monthly Distribution", @@ -119,6 +128,7 @@ "export": 0, "if_owner": 0, "import": 0, + "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, @@ -139,6 +149,7 @@ "export": 0, "if_owner": 0, "import": 0, + "is_custom": 0, "permlevel": 2, "print": 0, "read": 1, @@ -150,7 +161,7 @@ "write": 0 } ], - "quick_entry": 1, + "quick_entry": 0, "read_only": 0, "read_only_onload": 0, "sort_field": "modified", diff --git a/erpnext/config/accounts.py b/erpnext/config/accounts.py index 419d83f645..b9c503a7b0 100644 --- a/erpnext/config/accounts.py +++ b/erpnext/config/accounts.py @@ -371,6 +371,12 @@ def get_data(): "doctype": "GL Entry", "is_query_report": True, }, + { + "type": "report", + "name": "Profitability Analysis", + "doctype": "GL Entry", + "is_query_report": True, + }, { "type": "report", "name": "Payment Period Based On Invoice Date", From 075e33245e9d162c86d57d1e3d5cab62568fb4e1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 18:09:55 +0530 Subject: [PATCH 16/20] Set WIP warehouse in Pro Order based on Manufacturing Settings. Fixed #6636 --- erpnext/stock/doctype/material_request/material_request.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 06df636cd7..4fb5f5d639 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -372,6 +372,7 @@ def raise_production_orders(material_request): mr= frappe.get_doc("Material Request", material_request) errors =[] production_orders = [] + default_wip_warehouse = frappe.db.get_single_value("Manufacturing Settings", "default_wip_warehouse") for d in mr.items: if (d.qty - d.ordered_qty) >0: if frappe.db.get_value("BOM", {"item": d.item_code, "is_default": 1}): @@ -379,6 +380,7 @@ def raise_production_orders(material_request): prod_order.production_item = d.item_code prod_order.qty = d.qty - d.ordered_qty prod_order.fg_warehouse = d.warehouse + prod_order.wip_warehouse = default_wip_warehouse prod_order.description = d.description prod_order.stock_uom = d.uom prod_order.expected_delivery_date = d.schedule_date From 9b797974b545f2a16bf7d42bb7df7f4c9affe7b5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 18:15:50 +0530 Subject: [PATCH 17/20] Set project from Sales Order while creating Material Request from PPT, fixed #6731 --- .../production_planning_tool/production_planning_tool.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py index aa9e78c399..a3d0f1b406 100644 --- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py +++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py @@ -486,7 +486,9 @@ class ProductionPlanningTool(Document): "qty": requested_qty, "schedule_date": add_days(nowdate(), cint(item_wrapper.lead_time_days)), "warehouse": self.purchase_request_for_warehouse, - "sales_order": sales_order if sales_order!="No Sales Order" else None + "sales_order": sales_order if sales_order!="No Sales Order" else None, + "project": frappe.db.get_value("Sales Order", sales_order, "project") \ + if sales_order!="No Sales Order" else None }) material_request.flags.ignore_permissions = 1 From 977eff911f75e9a36920c079c190cb01ff4cc18d Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 18:29:16 +0530 Subject: [PATCH 18/20] Default warehouse is mandatory only for stock item in POS. Fixed #6893 --- erpnext/accounts/doctype/sales_invoice/pos.py | 3 ++- erpnext/accounts/page/pos/pos.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py index e5c86dc436..e0a81216c8 100644 --- a/erpnext/accounts/doctype/sales_invoice/pos.py +++ b/erpnext/accounts/doctype/sales_invoice/pos.py @@ -122,7 +122,8 @@ def get_items_list(pos_profile): return frappe.db.sql(""" select name, item_code, item_name, description, item_group, expense_account, has_batch_no, - has_serial_no, expense_account, selling_cost_center, stock_uom, image, default_warehouse + has_serial_no, expense_account, selling_cost_center, stock_uom, image, + default_warehouse, is_stock_item from tabItem where diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js index 26bf3ea54c..57ffcb1346 100644 --- a/erpnext/accounts/page/pos/pos.js +++ b/erpnext/accounts/page/pos/pos.js @@ -1076,7 +1076,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({ }, validate_warehouse: function(){ - if(!this.items[0].default_warehouse && !this.pos_profile_data['warehouse']){ + if(this.items[0].is_stock_item && !this.items[0].default_warehouse && !this.pos_profile_data['warehouse']){ frappe.throw(__("Default warehouse is required for selected item")) } }, From 3d5ef804b24504f7672f08e71c2268af66a142d1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 18:53:05 +0530 Subject: [PATCH 19/20] Provisional Loss related fix in Balance Sheet. Fixed #6918 --- .../report/balance_sheet/balance_sheet.py | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/report/balance_sheet/balance_sheet.py b/erpnext/accounts/report/balance_sheet/balance_sheet.py index 8963bb4e50..5ff8e3e228 100644 --- a/erpnext/accounts/report/balance_sheet/balance_sheet.py +++ b/erpnext/accounts/report/balance_sheet/balance_sheet.py @@ -14,10 +14,10 @@ def execute(filters=None): liability = get_data(filters.company, "Liability", "Credit", period_list, only_current_fiscal_year=False) equity = get_data(filters.company, "Equity", "Credit", period_list, only_current_fiscal_year=False) - provisional_profit_loss,total_credit = get_provisional_profit_loss(asset, liability, equity, + provisional_profit_loss, total_credit = get_provisional_profit_loss(asset, liability, equity, period_list, filters.company) - message,opening_balance = check_opening_balance(asset, liability, equity) + message, opening_balance = check_opening_balance(asset, liability, equity) data = [] data.extend(asset or []) @@ -32,7 +32,9 @@ def execute(filters=None): } for period in period_list: unclosed[period.key] = opening_balance - provisional_profit_loss[period.key] = provisional_profit_loss[period.key] - opening_balance + if provisional_profit_loss: + provisional_profit_loss[period.key] = provisional_profit_loss[period.key] - opening_balance + unclosed["total"]=opening_balance data.append(unclosed) @@ -48,15 +50,11 @@ def execute(filters=None): return columns, data, message, chart def get_provisional_profit_loss(asset, liability, equity, period_list, company): + provisional_profit_loss = {} + total_row = {} if asset and (liability or equity): total = total_row_total=0 currency = frappe.db.get_value("Company", company, "default_currency") - provisional_profit_loss = { - "account_name": "'" + _("Provisional Profit / Loss (Credit)") + "'", - "account": None, - "warn_if_negative": True, - "currency": currency - } total_row = { "account_name": "'" + _("Total (Credit)") + "'", "account": None, @@ -85,9 +83,14 @@ def get_provisional_profit_loss(asset, liability, equity, period_list, company): total_row["total"] = total_row_total if has_value: - return provisional_profit_loss, total_row - return None,total_row - return None, None + provisional_profit_loss.update({ + "account_name": "'" + _("Provisional Profit / Loss (Credit)") + "'", + "account": None, + "warn_if_negative": True, + "currency": currency + }) + + return provisional_profit_loss, total_row def check_opening_balance(asset, liability, equity): # Check if previous year balance sheet closed From d75d3a927dda8e3cb65f5bdc38991341dc9176c3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 19:40:05 +0600 Subject: [PATCH 20/20] bumped to version 7.1.16 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index b9846c8f57..9660cb9688 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals import frappe -__version__ = '7.1.15' +__version__ = '7.1.16' def get_default_company(user=None): '''Get default company for user'''