Merge branch 'hotfix'
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index da3786b..c97197d 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -4,7 +4,7 @@
import frappe
from erpnext.hooks import regional_overrides
-__version__ = '8.11.0'
+__version__ = '8.11.1'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index 8509d77..f6d9ca9 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -12,11 +12,11 @@
'Supplier Quotation': 'Supplier Quotation'
}
- frm.fields_dict["suppliers"].grid.get_field("contact").get_query = function(doc, cdt, cdn){
- var d =locals[cdt][cdn];
+ frm.fields_dict["suppliers"].grid.get_field("contact").get_query = function(doc, cdt, cdn) {
+ let d = locals[cdt][cdn];
return {
query: "erpnext.buying.doctype.request_for_quotation.request_for_quotation.get_supplier_contacts",
- filters: {'supplier': doc.supplier}
+ filters: {'supplier': d.supplier}
}
}
},
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index a775f5f..97c4438 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -204,9 +204,9 @@
return list_context
def get_supplier_contacts(doctype, txt, searchfield, start, page_len, filters):
- return frappe.db.sql(""" select `tabContact`.name from `tabContact`, `tabDynamic Link`
- where `tabDynamic Link`.link_doctype = 'Supplier' and (`tabDynamic Link`.link_name = %(name)s
- or `tabDynamic Link`.link_name like %(txt)s) and `tabContact`.name = `tabDynamic Link`.parent
+ return frappe.db.sql("""select `tabContact`.name from `tabContact`, `tabDynamic Link`
+ where `tabDynamic Link`.link_doctype = 'Supplier' and (`tabDynamic Link`.link_name=%(name)s
+ and `tabDynamic Link`.link_name like %(txt)s) and `tabContact`.name = `tabDynamic Link`.parent
limit %(start)s, %(page_len)s""", {"start": start, "page_len":page_len, "txt": "%%%s%%" % txt, "name": filters.get('supplier')})
# This method is used to make supplier quotation from material request form.
diff --git a/erpnext/controllers/website_list_for_contact.py b/erpnext/controllers/website_list_for_contact.py
index 65360ec..ed48fd1 100644
--- a/erpnext/controllers/website_list_for_contact.py
+++ b/erpnext/controllers/website_list_for_contact.py
@@ -5,7 +5,7 @@
import json
import frappe
from frappe import _
-from frappe.utils import flt
+from frappe.utils import flt, has_common
from frappe.utils.user import is_website_user
def get_list_context(context=None):
@@ -55,14 +55,16 @@
return post_process(doctype, get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length,
fields="name", order_by="modified desc"))
-def get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length=20, ignore_permissions=False,fields=None, order_by=None):
+def get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length=20,
+ ignore_permissions=False,fields=None, order_by=None):
+ """ Get List of transactions like Invoices, Orders """
from frappe.www.list import get_list
meta = frappe.get_meta(doctype)
data = []
or_filters = []
for d in get_list(doctype, txt, filters=filters, fields="name", limit_start=limit_start,
- limit_page_length=limit_page_length, ignore_permissions=True, order_by="modified desc"):
+ limit_page_length=limit_page_length, ignore_permissions=ignore_permissions, order_by="modified desc"):
data.append(d)
if txt:
@@ -74,9 +76,9 @@
or_filters.append([doctype, "name", "=", child.parent])
if or_filters:
- for r in frappe.get_list(doctype, fields=fields,filters=filters, or_filters=or_filters, limit_start=limit_start,
- limit_page_length=limit_page_length, ignore_permissions=ignore_permissions,
- order_by=order_by):
+ for r in frappe.get_list(doctype, fields=fields,filters=filters, or_filters=or_filters,
+ limit_start=limit_start, limit_page_length=limit_page_length,
+ ignore_permissions=ignore_permissions, order_by=order_by):
data.append(r)
return data
@@ -124,13 +126,30 @@
return result
def get_customers_suppliers(doctype, user):
+ customers = []
+ suppliers = []
meta = frappe.get_meta(doctype)
- contacts = frappe.db.sql(""" select `tabContact`.email_id, `tabDynamic Link`.link_doctype, `tabDynamic Link`.link_name
- from `tabContact`, `tabDynamic Link` where
- `tabContact`.name = `tabDynamic Link`.parent and `tabContact`.email_id =%s """, user, as_dict=1)
- customers = [c.link_name for c in contacts if c.link_doctype == 'Customer'] if meta.get_field("customer") else None
- suppliers = [c.link_name for c in contacts if c.link_doctype == 'Supplier'] if meta.get_field("supplier") else None
+ if has_common(["Supplier", "Customer"], frappe.get_roles(user)):
+ contacts = frappe.db.sql("""
+ select
+ `tabContact`.email_id,
+ `tabDynamic Link`.link_doctype,
+ `tabDynamic Link`.link_name
+ from
+ `tabContact`, `tabDynamic Link`
+ where
+ `tabContact`.name=`tabDynamic Link`.parent and `tabContact`.email_id =%s
+ """, user, as_dict=1)
+ customers = [c.link_name for c in contacts if c.link_doctype == 'Customer'] \
+ if meta.get_field("customer") else None
+ suppliers = [c.link_name for c in contacts if c.link_doctype == 'Supplier'] \
+ if meta.get_field("supplier") else None
+ elif frappe.has_permission(doctype, 'read', user=user):
+ customers = [customer.name for customer in frappe.get_list("Customer")] \
+ if meta.get_field("customer") else None
+ suppliers = [supplier.name for supplier in frappe.get_list("Customer")] \
+ if meta.get_field("supplier") else None
return customers, suppliers
diff --git a/erpnext/templates/print_formats/includes/taxes.html b/erpnext/templates/print_formats/includes/taxes.html
index b180c1c..b782763 100644
--- a/erpnext/templates/print_formats/includes/taxes.html
+++ b/erpnext/templates/print_formats/includes/taxes.html
@@ -19,7 +19,7 @@
{%- for charge in data -%}
{%- if charge.tax_amount and not charge.included_in_print_rate -%}
<div class="row">
- <div class="col-xs-5 {%- if not doc._align_labels_left %} text-right{%- endif -%}">
+ <div class="col-xs-5 {%- if doc._align_labels_right %} text-right{%- endif -%}">
<label>{{ charge.get_formatted("description") }}</label></div>
<div class="col-xs-7 text-right">
{{ frappe.format_value(frappe.utils.flt(charge.tax_amount),