Merge pull request #18705 from surajshetty3416/fix-payment-entry-account-permission
fix: Check if account passed is accessible under Payment Entry
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index a34c3f6..e0d3e7a 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -648,13 +648,18 @@
orders = []
if voucher_type:
- ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
+ if party_account_currency == company_currency:
+ grand_total_field = "base_grand_total"
+ rounded_total_field = "base_rounded_total"
+ else:
+ grand_total_field = "grand_total"
+ rounded_total_field = "rounded_total"
orders = frappe.db.sql("""
select
name as voucher_no,
- {ref_field} as invoice_amount,
- ({ref_field} - advance_paid) as outstanding_amount,
+ if({rounded_total_field}, {rounded_total_field}, {grand_total_field}) as invoice_amount,
+ (if({rounded_total_field}, {rounded_total_field}, {grand_total_field}) - advance_paid) as outstanding_amount,
transaction_date as posting_date
from
`tab{voucher_type}`
@@ -663,13 +668,14 @@
and docstatus = 1
and company = %s
and ifnull(status, "") != "Closed"
- and {ref_field} > advance_paid
+ and if({rounded_total_field}, {rounded_total_field}, {grand_total_field}) > advance_paid
and abs(100 - per_billed) > 0.01
{condition}
order by
transaction_date, name
""".format(**{
- "ref_field": ref_field,
+ "rounded_total_field": rounded_total_field,
+ "grand_total_field": grand_total_field,
"voucher_type": voucher_type,
"party_type": scrub(party_type),
"condition": condition
diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
index 9292b3a..c9216ee 100644
--- a/erpnext/crm/doctype/lead/lead.py
+++ b/erpnext/crm/doctype/lead/lead.py
@@ -146,15 +146,14 @@
@frappe.whitelist()
def make_opportunity(source_name, target_doc=None):
def set_missing_values(source, target):
- address = frappe.db.exists('Dynamic Link', {
- 'link_doctype': target.doctype,
- 'link_name': target.name,
+ address = frappe.get_all('Dynamic Link', {
+ 'link_doctype': source.doctype,
+ 'link_name': source.name,
'parenttype': 'Address',
- 'disabled': 0
- })
+ }, ['parent'], limit=1)
if address:
- target.customer_address = address
+ target.customer_address = address[0].parent
target_doc = get_mapped_doc("Lead", source_name,
{"Lead": {
diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
index 90a12b7..ec17629 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -31,9 +31,9 @@
party_name: function(frm) {
frm.toggle_display("contact_info", frm.doc.party_name);
+ frm.trigger('set_contact_link');
if (frm.doc.opportunity_from == "Customer") {
- frm.trigger('set_contact_link');
erpnext.utils.get_party_details(frm);
} else if (frm.doc.opportunity_from == "Lead") {
erpnext.utils.map_current_doc({
@@ -48,13 +48,6 @@
frm.get_field("items").grid.set_multiple_add("item_code", "qty");
},
- party_name: function(frm) {
- if (frm.doc.opportunity_from == "Customer") {
- frm.trigger('set_contact_link');
- erpnext.utils.get_party_details(frm);
- }
- },
-
with_items: function(frm) {
frm.trigger('toggle_mandatory');
},
diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json
index 7b241ef..472b751 100644
--- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json
+++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.json
@@ -1,11 +1,11 @@
{
- "autoname": "format:PRC-{procedure}",
+ "autoname": "format:PRC-{quality_procedure_name}",
"creation": "2018-10-06 00:06:29.756804",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
- "procedure",
+ "quality_procedure_name",
"parent_quality_procedure",
"is_group",
"sb_00",
@@ -62,14 +62,14 @@
"options": "Quality Procedure Process"
},
{
- "fieldname": "procedure",
+ "fieldname": "quality_procedure_name",
"fieldtype": "Data",
"in_list_view": 1,
- "label": "Procedure",
+ "label": "Quality Procedure",
"reqd": 1
}
],
- "modified": "2019-05-26 22:11:53.771428",
+ "modified": "2019-08-05 13:09:29.945082",
"modified_by": "Administrator",
"module": "Quality Management",
"name": "Quality Procedure",
diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py
index 52c3320..4d3c522 100644
--- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py
+++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure.py
@@ -36,12 +36,10 @@
doc.load_from_db()
for process in doc.processes:
- if process.procedure:
- flag_is_group = 1
+ flag_is_group = 1 if process.procedure else 0
- if flag_is_group == 0:
- doc.is_group = 0
- doc.save(ignore_permissions=True)
+ doc.is_group = 0 if flag_is_group == 0 else 1
+ doc.save(ignore_permissions=True)
def set_parent(self):
for process in self.processes:
diff --git a/erpnext/quality_management/doctype/quality_procedure/quality_procedure_tree.js b/erpnext/quality_management/doctype/quality_procedure/quality_procedure_tree.js
index 15b7784..8fd785f 100644
--- a/erpnext/quality_management/doctype/quality_procedure/quality_procedure_tree.js
+++ b/erpnext/quality_management/doctype/quality_procedure/quality_procedure_tree.js
@@ -6,8 +6,8 @@
add_tree_node: 'erpnext.quality_management.doctype.quality_procedure.quality_procedure.add_node',
filters: [
{
- fieldname: "Quality Procedure",
- fieldtype:"Link",
+ fieldname: "quality_procedure",
+ fieldtype: "Link",
options: "Quality Procedure",
label: __("Quality Procedure"),
get_query: function() {
@@ -19,7 +19,7 @@
],
breadcrumb: "Setup",
root_label: "All Quality Procedures",
- get_tree_root: false,
+ get_tree_root: true,
menu_items: [
{
label: __("New Quality Procedure"),
@@ -32,8 +32,4 @@
onload: function(treeview) {
treeview.make_tree();
},
- onrender: function() {
- $("button:contains('Add Child')").remove();
- $("button:contains('New')").remove();
- }
};
\ No newline at end of file
diff --git a/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py b/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py
index 79f8771..3289bb5 100644
--- a/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py
+++ b/erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py
@@ -18,7 +18,7 @@
def create_procedure():
procedure = frappe.get_doc({
"doctype": "Quality Procedure",
- "procedure": "_Test Quality Procedure",
+ "quality_procedure_name": "_Test Quality Procedure",
"processes": [
{
"process_description": "_Test Quality Procedure Table",
@@ -37,7 +37,7 @@
def create_nested_procedure():
nested_procedure = frappe.get_doc({
"doctype": "Quality Procedure",
- "procedure": "_Test Nested Quality Procedure",
+ "quality_procedure_name": "_Test Nested Quality Procedure",
"processes": [
{
"procedure": "PRC-_Test Quality Procedure"