From 00578ba6329c3f4681b40cb12801bf085d8c2b45 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Thu, 13 Jun 2019 13:30:39 +0530 Subject: [PATCH 1/9] fix: Show product page even if cart is not enabled --- erpnext/shopping_cart/product_info.py | 5 ++++- erpnext/templates/generators/item/item_details.html | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/erpnext/shopping_cart/product_info.py b/erpnext/shopping_cart/product_info.py index f9a45ce578..d69b5e3a21 100644 --- a/erpnext/shopping_cart/product_info.py +++ b/erpnext/shopping_cart/product_info.py @@ -13,8 +13,11 @@ from erpnext.utilities.product import get_price, get_qty_in_stock def get_product_info_for_website(item_code): """get product price / stock info for website""" - cart_quotation = _get_cart_quotation() cart_settings = get_shopping_cart_settings() + if not cart_settings.enabled: + return frappe._dict() + + cart_quotation = _get_cart_quotation() price = get_price( item_code, diff --git a/erpnext/templates/generators/item/item_details.html b/erpnext/templates/generators/item/item_details.html index 4f8f8c21a5..8e560333ae 100644 --- a/erpnext/templates/generators/item/item_details.html +++ b/erpnext/templates/generators/item/item_details.html @@ -9,7 +9,13 @@

- {{ doc.web_long_description or doc.description or _("No description given") | safe }} +{% if frappe.utils.strip_html(doc.web_long_description) %} + {{ doc.web_long_description | safe }} +{% elif frappe.utils.strip_html(doc.description) %} + {{ doc.description | safe }} +{% else %} + {{ _("No description given") }} +{% endif %}
{% if has_variants %} From a5527225b694c6b95b5b4506df601b40388283e9 Mon Sep 17 00:00:00 2001 From: Anurag Mishra Date: Fri, 14 Jun 2019 15:25:57 +0530 Subject: [PATCH 2/9] fix: requested changes --- erpnext/patches.txt | 2 +- erpnext/regional/india/setup.py | 2 +- erpnext/setup/doctype/company/company.json | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 15fd82ea72..747177a3a7 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -602,6 +602,6 @@ erpnext.patches.v11_1.set_salary_details_submittable erpnext.patches.v11_1.rename_depends_on_lwp execute:frappe.delete_doc("Report", "Inactive Items") erpnext.patches.v11_1.delete_scheduling_tool -erpnext.patches.v12_0.make_custom_fields_for_bank_remittance +erpnext.patches.v12_0.make_custom_fields_for_bank_remittance #14-06-2019 execute:frappe.delete_doc_if_exists("Page", "support-analytics") erpnext.patches.v12_0.make_item_manufacturer \ No newline at end of file diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py index f69c17e0c8..26fdb1a904 100644 --- a/erpnext/regional/india/setup.py +++ b/erpnext/regional/india/setup.py @@ -275,7 +275,7 @@ def make_custom_fields(update=True): ], 'Company': [ dict(fieldname='hra_section', label='HRA Settings', - fieldtype='Section Break', insert_after='asset_received_but_not_billed'), + fieldtype='Section Break', insert_after='asset_received_but_not_billed', collapsible=1), dict(fieldname='basic_component', label='Basic Component', fieldtype='Link', options='Salary Component', insert_after='hra_section'), dict(fieldname='hra_component', label='HRA Component', diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json index fcccf5a973..d85fc45b46 100644 --- a/erpnext/setup/doctype/company/company.json +++ b/erpnext/setup/doctype/company/company.json @@ -170,9 +170,10 @@ "label": "Company Description" }, { + "collapsible": 1, "fieldname": "sales_settings", "fieldtype": "Section Break", - "label": "Sales" + "label": "Sales Settings" }, { "fieldname": "sales_monthly_history", @@ -530,6 +531,7 @@ "options": "Account" }, { + "collapsible": 1, "fieldname": "fixed_asset_depreciation_settings", "fieldtype": "Section Break", "label": "Fixed Asset Depreciation Settings" @@ -602,6 +604,7 @@ "options": "Role" }, { + "collapsible": 1, "description": "For reference only.", "fieldname": "company_info", "fieldtype": "Section Break", @@ -708,7 +711,7 @@ "icon": "fa fa-building", "idx": 1, "image_field": "company_logo", - "modified": "2019-06-13 18:03:14.764423", + "modified": "2019-06-14 14:36:11.363309", "modified_by": "Administrator", "module": "Setup", "name": "Company", From f472a49cf69990581599e79984f559fcd6d1b882 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 14 Jun 2019 16:32:21 +0530 Subject: [PATCH 3/9] fix: Remove Specifications label --- erpnext/templates/generators/item/item_specifications.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/erpnext/templates/generators/item/item_specifications.html b/erpnext/templates/generators/item/item_specifications.html index a12a074fa9..469a45fd7d 100644 --- a/erpnext/templates/generators/item/item_specifications.html +++ b/erpnext/templates/generators/item/item_specifications.html @@ -1,8 +1,6 @@ {% if doc.website_specifications -%}
-
{{ _("Specifications") }}
- {% for d in doc.website_specifications -%} From b2ab1031e35acfee35816dcf4cc68d4d441707e4 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 14 Jun 2019 18:16:14 +0530 Subject: [PATCH 4/9] fix: Show Clear filters when attribute filters are set --- erpnext/www/all-products/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/www/all-products/index.html b/erpnext/www/all-products/index.html index ade72a25ce..f09021412b 100644 --- a/erpnext/www/all-products/index.html +++ b/erpnext/www/all-products/index.html @@ -42,7 +42,7 @@
- {% if frappe.form_dict.start or frappe.form_dict.field_filters or frappe.form_dict.search %} + {% if frappe.form_dict.start or frappe.form_dict.field_filters or frappe.form_dict.attribute_filters or frappe.form_dict.search %} {{ _('Clear filters') }} {% endif %} From 8e99aaf6050afdf258343397c5e70109e89b56ea Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 14 Jun 2019 20:06:54 +0530 Subject: [PATCH 5/9] fix: Add erpnext website theme import --- erpnext/public/js/website_theme.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/erpnext/public/js/website_theme.js b/erpnext/public/js/website_theme.js index 6c7edfa655..84de2f5b51 100644 --- a/erpnext/public/js/website_theme.js +++ b/erpnext/public/js/website_theme.js @@ -2,16 +2,13 @@ // MIT License. See license.txt frappe.ui.form.on('Website Theme', { - apply_custom_theme(frm) { - let custom_theme = frm.doc.custom_theme; - custom_theme = custom_theme.split('\n'); - if ( - frm.doc.apply_custom_theme - && custom_theme.length === 2 - && custom_theme[1].includes('frappe/public/scss/website') + validate(frm) { + let theme_scss = frm.doc.theme_scss; + if (theme_scss.includes('frappe/public/scss/website') + && !theme_scss.includes('erpnext/public/scss/website') ) { - frm.set_value('custom_theme', - `$primary: #7575ff;\n@import "frappe/public/scss/website";\n@import "erpnext/public/scss/website";`); + frm.set_value('theme_scss', + `${frm.doc.theme_scss}\n@import "erpnext/public/scss/website";`); } } }); From 725f56faca7795fb74451cb8495a14b6cc7ec648 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 17 Jun 2019 12:50:44 +0530 Subject: [PATCH 6/9] feat: delayed order reports --- .../report/delayed_item_report/__init__.py | 0 .../delayed_item_report.js | 62 +++++++ .../delayed_item_report.json | 37 ++++ .../delayed_item_report.py | 168 ++++++++++++++++++ .../report/delayed_order_report/__init__.py | 0 .../delayed_order_report.js | 62 +++++++ .../delayed_order_report.json | 37 ++++ .../delayed_order_report.py | 83 +++++++++ 8 files changed, 449 insertions(+) create mode 100644 erpnext/stock/report/delayed_item_report/__init__.py create mode 100644 erpnext/stock/report/delayed_item_report/delayed_item_report.js create mode 100644 erpnext/stock/report/delayed_item_report/delayed_item_report.json create mode 100644 erpnext/stock/report/delayed_item_report/delayed_item_report.py create mode 100644 erpnext/stock/report/delayed_order_report/__init__.py create mode 100644 erpnext/stock/report/delayed_order_report/delayed_order_report.js create mode 100644 erpnext/stock/report/delayed_order_report/delayed_order_report.json create mode 100644 erpnext/stock/report/delayed_order_report/delayed_order_report.py diff --git a/erpnext/stock/report/delayed_item_report/__init__.py b/erpnext/stock/report/delayed_item_report/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/stock/report/delayed_item_report/delayed_item_report.js b/erpnext/stock/report/delayed_item_report/delayed_item_report.js new file mode 100644 index 0000000000..5d160b1519 --- /dev/null +++ b/erpnext/stock/report/delayed_item_report/delayed_item_report.js @@ -0,0 +1,62 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Delayed Item Report"] = { + "filters": [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_default("company"), + reqd: 1 + }, + { + fieldname:"from_date", + label: __("From Date"), + fieldtype: "Date", + default: frappe.datetime.month_start(), + reqd: 1 + }, + { + fieldname:"to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.datetime.now_date(), + reqd: 1 + }, + { + fieldname:"sales_order", + label: __("Sales Order"), + fieldtype: "Link", + options: "Sales Order", + }, + { + fieldname:"customer", + label: __("Customer"), + fieldtype: "Link", + options: "Customer", + }, + { + fieldname:"customer_group", + label: __("Customer Group"), + fieldtype: "Link", + options: "Customer Group", + }, + { + fieldname:"item_group", + label: __("Item Group"), + fieldtype: "Link", + options: "Item Group", + }, + { + fieldname:"based_on", + label: __("Based On"), + fieldtype: "Select", + options: ["Delivery Note", "Sales Invoice"], + default: "Delivery Note", + reqd: 1 + }, + ] +} \ No newline at end of file diff --git a/erpnext/stock/report/delayed_item_report/delayed_item_report.json b/erpnext/stock/report/delayed_item_report/delayed_item_report.json new file mode 100644 index 0000000000..f336cecf20 --- /dev/null +++ b/erpnext/stock/report/delayed_item_report/delayed_item_report.json @@ -0,0 +1,37 @@ +{ + "add_total_row": 0, + "creation": "2019-06-17 12:45:07.324014", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "letter_head": "Gadgets International", + "modified": "2019-06-17 12:45:07.324014", + "modified_by": "Administrator", + "module": "Stock", + "name": "Delayed Item Report", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Delivery Note", + "report_name": "Delayed Item Report", + "report_type": "Script Report", + "roles": [ + { + "role": "Accounts User" + }, + { + "role": "Sales User" + }, + { + "role": "Stock Manager" + }, + { + "role": "Stock User" + }, + { + "role": "Maintenance User" + } + ] +} \ No newline at end of file diff --git a/erpnext/stock/report/delayed_item_report/delayed_item_report.py b/erpnext/stock/report/delayed_item_report/delayed_item_report.py new file mode 100644 index 0000000000..7b968b89a7 --- /dev/null +++ b/erpnext/stock/report/delayed_item_report/delayed_item_report.py @@ -0,0 +1,168 @@ +# Copyright (c) 2013, 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 date_diff + +def execute(filters=None, consolidated = False): + data, columns = DelayedItemReport(filters).run() + + return data, columns + +class DelayedItemReport(object): + def __init__(self, filters=None): + self.filters = frappe._dict(filters or {}) + + def run(self): + return self.get_columns(), self.get_data() or [] + + def get_data(self, consolidated=False): + conditions = "" + + doctype = self.filters.get("based_on") + child_doc= "%s Item" % doctype + + if doctype == "Sales Invoice": + conditions = " and `tabSales Invoice`.update_stock = 1 and `tabSales Invoice`.is_pos = 0" + + if self.filters.get("item_group"): + conditions += " and `tab%s`.item_group = %s" % (child_doc, + frappe.db.escape(self.filters.get("item_group"))) + + for field in ["customer", "customer_group", "company"]: + if self.filters.get(field): + conditions += " and `tab%s`.%s = %s" % (doctype, + field, frappe.db.escape(self.filters.get(field))) + + sales_order_field = "against_sales_order" + if doctype == "Sales Invoice": + sales_order_field = "sales_order" + + if self.filters.get("sales_order"): + conditions = " and `tab%s`.%s = '%s'" %(child_doc, sales_order_field, self.filters.get("sales_order")) + + self.transactions = frappe.db.sql(""" SELECT `tab{child_doc}`.item_code, `tab{child_doc}`.item_name, + `tab{child_doc}`.item_group, `tab{child_doc}`.qty, `tab{child_doc}`.rate, `tab{child_doc}`.amount, + `tab{child_doc}`.so_detail, `tab{child_doc}`.{so_field} as sales_order, + `tab{doctype}`.customer, `tab{doctype}`.posting_date, `tab{doctype}`.name, `tab{doctype}`.grand_total + FROM `tab{child_doc}`, `tab{doctype}` + WHERE + `tab{child_doc}`.parent = `tab{doctype}`.name and `tab{doctype}`.docstatus = 1 and + `tab{doctype}`.posting_date between %(from_date)s and %(to_date)s and + `tab{child_doc}`.{so_field} is not null and `tab{child_doc}`.{so_field} != '' {cond} + """.format(cond=conditions, doctype=doctype, child_doc=child_doc, so_field=sales_order_field), { + 'from_date': self.filters.get('from_date'), + 'to_date': self.filters.get('to_date') + }, as_dict=1) + + if self.transactions: + self.filter_transactions_data(consolidated) + + return self.transactions + + def filter_transactions_data(self, consolidated=False): + sales_orders = [d.sales_order for d in self.transactions] + doctype = "Sales Order" + filters = {'name': ('in', sales_orders)} + + if not consolidated: + sales_order_items = [d.so_detail for d in self.transactions] + doctype = "Sales Order Item" + filters = {'parent': ('in', sales_orders), 'name': ('in', sales_order_items)} + + so_data = {} + for d in frappe.get_all(doctype, filters = filters, + fields = ["delivery_date", "parent", "name"]): + key = d.name if consolidated else (d.parent, d.name) + if key not in so_data: + so_data.setdefault(key, d.delivery_date) + + for row in self.transactions: + key = row.sales_order if consolidated else (row.sales_order, row.so_detail) + row.update({ + 'delivery_date': so_data.get(key), + 'delayed_days': date_diff(row.posting_date, so_data.get(key)) + }) + + return self.transactions + + def get_columns(self): + based_on = self.filters.get("based_on") + + return [{ + "label": _(based_on), + "fieldname": "name", + "fieldtype": "Link", + "options": based_on, + "width": 100 + },{ + "label": _("Customer"), + "fieldname": "customer", + "fieldtype": "Link", + "options": "Customer", + "width": 100 + }, + { + "label": _("Expected Delivery Date"), + "fieldname": "delivery_date", + "fieldtype": "Date", + "width": 100 + }, + { + "label": _("Actual Delivery Date"), + "fieldname": "posting_date", + "fieldtype": "Date", + "width": 100 + }, + { + "label": _("Item Code"), + "fieldname": "item_code", + "fieldtype": "Link", + "options": "Item", + "width": 100 + }, + { + "label": _("Item Name"), + "fieldname": "item_name", + "fieldtype": "Data", + "width": 100 + }, + { + "label": _("Quantity"), + "fieldname": "qty", + "fieldtype": "Float", + "width": 100 + }, + { + "label": _("Rate"), + "fieldname": "rate", + "fieldtype": "Currency", + "width": 100 + }, + { + "label": _("Amount"), + "fieldname": "amount", + "fieldtype": "Currency", + "width": 100 + }, + { + "label": _("Delayed Days"), + "fieldname": "delayed_days", + "fieldtype": "Int", + "width": 100 + }, + { + "label": _("Sales Order"), + "fieldname": "sales_order", + "fieldtype": "Link", + "options": "Sales Order", + "width": 100 + }, + { + "label": _("Customer PO"), + "fieldname": "po_no", + "fieldtype": "Data", + "width": 100 + }] \ No newline at end of file diff --git a/erpnext/stock/report/delayed_order_report/__init__.py b/erpnext/stock/report/delayed_order_report/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/stock/report/delayed_order_report/delayed_order_report.js b/erpnext/stock/report/delayed_order_report/delayed_order_report.js new file mode 100644 index 0000000000..11752ae9fb --- /dev/null +++ b/erpnext/stock/report/delayed_order_report/delayed_order_report.js @@ -0,0 +1,62 @@ +// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["Delayed Order Report"] = { + "filters": [ + { + fieldname: "company", + label: __("Company"), + fieldtype: "Link", + options: "Company", + default: frappe.defaults.get_default("company"), + reqd: 1 + }, + { + fieldname:"from_date", + label: __("From Date"), + fieldtype: "Date", + default: frappe.datetime.month_start(), + reqd: 1 + }, + { + fieldname:"to_date", + label: __("To Date"), + fieldtype: "Date", + default: frappe.datetime.now_date(), + reqd: 1 + }, + { + fieldname:"sales_order", + label: __("Sales Order"), + fieldtype: "Link", + options: "Sales Order", + }, + { + fieldname:"customer", + label: __("Customer"), + fieldtype: "Link", + options: "Customer", + }, + { + fieldname:"customer_group", + label: __("Customer Group"), + fieldtype: "Link", + options: "Customer Group", + }, + { + fieldname:"item_group", + label: __("Item Group"), + fieldtype: "Link", + options: "Item Group", + }, + { + fieldname:"based_on", + label: __("Based On"), + fieldtype: "Select", + options: ["Delivery Note", "Sales Invoice"], + default: "Delivery Note", + reqd: 1 + }, + ] +} \ No newline at end of file diff --git a/erpnext/stock/report/delayed_order_report/delayed_order_report.json b/erpnext/stock/report/delayed_order_report/delayed_order_report.json new file mode 100644 index 0000000000..29c27cb1a6 --- /dev/null +++ b/erpnext/stock/report/delayed_order_report/delayed_order_report.json @@ -0,0 +1,37 @@ +{ + "add_total_row": 0, + "creation": "2019-06-17 12:45:56.359322", + "disable_prepared_report": 0, + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 0, + "is_standard": "Yes", + "letter_head": "Gadgets International", + "modified": "2019-06-17 12:45:56.359322", + "modified_by": "Administrator", + "module": "Stock", + "name": "Delayed Order Report", + "owner": "Administrator", + "prepared_report": 0, + "ref_doctype": "Delivery Note", + "report_name": "Delayed Order Report", + "report_type": "Script Report", + "roles": [ + { + "role": "Accounts User" + }, + { + "role": "Sales User" + }, + { + "role": "Stock Manager" + }, + { + "role": "Stock User" + }, + { + "role": "Maintenance User" + } + ] +} \ No newline at end of file diff --git a/erpnext/stock/report/delayed_order_report/delayed_order_report.py b/erpnext/stock/report/delayed_order_report/delayed_order_report.py new file mode 100644 index 0000000000..d2a1a30d9e --- /dev/null +++ b/erpnext/stock/report/delayed_order_report/delayed_order_report.py @@ -0,0 +1,83 @@ +# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +from frappe import _ +from erpnext.stock.report.delayed_item_report.delayed_item_report import DelayedItemReport + +def execute(filters=None): + columns, data = [], [] + + columns, data = DelayedOrderReport(filters).run() + + return columns, data + +class DelayedOrderReport(DelayedItemReport): + def run(self): + return self.get_columns(), self.get_data(consolidated=True) or [] + + def get_data(self, consolidated=False): + data = super(DelayedOrderReport, self).get_data(consolidated) or [] + + so_list = [] + result = [] + for d in data: + if d.sales_order not in so_list: + so_list.append(d.sales_order) + result.append(d) + + return result + + def get_columns(self): + based_on = self.filters.get("based_on") + + return [{ + "label": _(based_on), + "fieldname": "name", + "fieldtype": "Link", + "options": based_on, + "width": 100 + },{ + "label": _("Customer"), + "fieldname": "customer", + "fieldtype": "Link", + "options": "Customer", + "width": 100 + }, + { + "label": _("Expected Delivery Date"), + "fieldname": "delivery_date", + "fieldtype": "Date", + "width": 100 + }, + { + "label": _("Actual Delivery Date"), + "fieldname": "posting_date", + "fieldtype": "Date", + "width": 100 + }, + { + "label": _("Amount"), + "fieldname": "grand_total", + "fieldtype": "Currency", + "width": 100 + }, + { + "label": _("Delayed Days"), + "fieldname": "delayed_days", + "fieldtype": "Int", + "width": 100 + }, + { + "label": _("Sales Order"), + "fieldname": "sales_order", + "fieldtype": "Link", + "options": "Sales Order", + "width": 100 + }, + { + "label": _("Customer PO"), + "fieldname": "po_no", + "fieldtype": "Data", + "width": 100 + }] \ No newline at end of file From 7efeffa66a391d70f871c5267dcc4ae310c34e1e Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 17 Jun 2019 16:19:23 +0530 Subject: [PATCH 7/9] fix: allow edit is enabled in the pos profile still user not able to edit the rates --- .../page/point_of_sale/point_of_sale.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js index 1218dd3bb4..d233b41787 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.js +++ b/erpnext/selling/page/point_of_sale/point_of_sale.js @@ -779,6 +779,17 @@ class POSCart { const customer = this.frm.doc.customer; this.customer_field.set_value(customer); + + if (this.numpad) { + const disable_btns = this.disable_numpad_control() + const enable_btns = [__('Rate'), __('Disc')] + + if (disable_btns) { + enable_btns.filter(btn => !disable_btns.includes(btn)) + } + + this.numpad.enable_buttons(enable_btns); + } } get_grand_total() { @@ -1551,6 +1562,16 @@ class NumberPad { } } + enable_buttons(btns) { + btns.forEach((btn) => { + const $btn = this.get_btn(btn); + $btn.prop("disabled", false) + $btn.hover(() => { + $btn.css('cursor','pointer'); + }) + }) + } + set_class() { for (const btn in this.add_class) { const class_name = this.add_class[btn]; From 803f78435102745c71ff88a81937d06c9b66329b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 17 Jun 2019 17:33:04 +0530 Subject: [PATCH 8/9] fix(minor): format date in user format for accounting dashboard --- .../account_balance_timeline/account_balance_timeline.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py b/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py index f2abb81dbb..648cc68dac 100644 --- a/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py +++ b/erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe, json -from frappe.utils import add_to_date, date_diff, getdate, nowdate, get_last_day +from frappe.utils import add_to_date, date_diff, getdate, nowdate, get_last_day, formatdate from erpnext.accounts.report.general_ledger.general_ledger import execute from frappe.core.page.dashboard.dashboard import cache_source, get_from_date_from_timespan from frappe.desk.doctype.dashboard_chart.dashboard_chart import get_period_ending @@ -37,7 +37,7 @@ def get(chart_name=None, from_date = None, to_date = None): result = build_result(account, dates, gl_entries) return { - "labels": [r[0].strftime('%Y-%m-%d') for r in result], + "labels": [formatdate(r[0].strftime('%Y-%m-%d')) for r in result], "datasets": [{ "name": account, "values": [r[1] for r in result] From 3d47a6dbb5a7d36559edcff41529934f851fbe6b Mon Sep 17 00:00:00 2001 From: Anurag Mishra <32095923+Anurag810@users.noreply.github.com> Date: Mon, 17 Jun 2019 17:49:04 +0530 Subject: [PATCH 9/9] fix: Company filters in Total Stock Summary Report (#17965) --- .../total_stock_summary.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/report/total_stock_summary/total_stock_summary.js b/erpnext/stock/report/total_stock_summary/total_stock_summary.js index b7461c485f..90648f1b24 100644 --- a/erpnext/stock/report/total_stock_summary/total_stock_summary.js +++ b/erpnext/stock/report/total_stock_summary/total_stock_summary.js @@ -10,8 +10,23 @@ frappe.query_reports["Total Stock Summary"] = { "fieldtype": "Select", "width": "80", "reqd": 1, - "options": ["","Warehouse", "Company"], - "default": "Warehouse" + "options": ["", "Warehouse", "Company"], + "change": function() { + let group_by = frappe.query_report.get_filter_value("group_by") + let company_filter = frappe.query_report.get_filter("company") + if (group_by == "Company") { + company_filter.df.reqd = 0; + company_filter.df.hidden = 1; + frappe.query_report.set_filter_value("company", ""); + company_filter.refresh(); + } + else { + company_filter.df.reqd = 1; + company_filter.df.hidden = 0; + company_filter.refresh(); + frappe.query_report.refresh(); + } + } }, { "fieldname": "company",