Merge branch 'develop' into sla_fix

This commit is contained in:
Himanshu 2019-06-19 13:42:49 +05:30 committed by GitHub
commit 7bb1402a37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 31 additions and 165 deletions

View File

@ -390,8 +390,8 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters):
if filters: if filters:
if filters.get("project"): if filters.get("project"):
if not isinstance(filters.get("project"), list): if not isinstance(filters.get("project"), list):
projects = frappe.safe_encode(filters.get("project")) filters.project = frappe.parse_json(filters.get("project"))
filters.project = [d.strip() for d in projects.strip().split(',') if d]
additional_conditions.append("project in %(project)s") additional_conditions.append("project in %(project)s")
if filters.get("cost_center"): if filters.get("cost_center"):

View File

@ -72,46 +72,25 @@ frappe.query_reports["General Ledger"] = {
{ {
"fieldname":"party", "fieldname":"party",
"label": __("Party"), "label": __("Party"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
if (!frappe.query_report.filters) return; if (!frappe.query_report.filters) return;
var party_type = frappe.query_report.get_filter_value('party_type');
var parties = frappe.query_report.get_filter_value('party'); let party_type = frappe.query_report.get_filter_value('party_type');
if (!party_type) return; if (!party_type) return;
const values = parties.split(/\s*,\s*/).filter(d => d); return frappe.db.get_link_options(party_type, txt);
const txt = parties.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: frappe.query_report.get_filter_value('party_type'),
txt: txt,
filters: {
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
});
return data;
}, },
on_change: function() { on_change: function() {
var party_type = frappe.query_report.get_filter_value('party_type'); var party_type = frappe.query_report.get_filter_value('party_type');
var parties = frappe.query_report.get_filter_value('party'); var parties = frappe.query_report.get_filter_value('party');
const values = parties.split(/\s*,\s*/).filter(d => d);
if(!party_type || !parties || values.length>1) { if(!party_type || parties.length === 0 || parties.length > 1) {
frappe.query_report.set_filter_value('party_name', ""); frappe.query_report.set_filter_value('party_name', "");
frappe.query_report.set_filter_value('tax_id', ""); frappe.query_report.set_filter_value('tax_id', "");
return; return;
} else { } else {
var party = values[0]; var party = parties[0];
var fieldname = erpnext.utils.get_party_name(party_type) || "name"; var fieldname = erpnext.utils.get_party_name(party_type) || "name";
frappe.db.get_value(party_type, party, fieldname, function(value) { frappe.db.get_value(party_type, party, fieldname, function(value) {
frappe.query_report.set_filter_value('party_name', value[fieldname]); frappe.query_report.set_filter_value('party_name', value[fieldname]);
@ -154,62 +133,17 @@ frappe.query_reports["General Ledger"] = {
{ {
"fieldname":"cost_center", "fieldname":"cost_center",
"label": __("Cost Center"), "label": __("Cost Center"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
var cost_centers = frappe.query_report.get_filter_value("cost_center") || ""; return frappe.db.get_link_options('Cost Center', txt);
const values = cost_centers.split(/\s*,\s*/).filter(d => d);
const txt = cost_centers.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: "Cost Center",
txt: txt,
filters: {
"company": frappe.query_report.get_filter_value("company"),
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
});
return data;
} }
}, },
{ {
"fieldname":"project", "fieldname":"project",
"label": __("Project"), "label": __("Project"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
var projects = frappe.query_report.get_filter_value("project") || ""; return frappe.db.get_link_options('Project', txt);
const values = projects.split(/\s*,\s*/).filter(d => d);
const txt = projects.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: "Project",
txt: txt,
filters: {
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
});
return data;
} }
}, },
{ {

View File

@ -26,8 +26,7 @@ def execute(filters=None):
account_details.setdefault(acc.name, acc) account_details.setdefault(acc.name, acc)
if filters.get('party'): if filters.get('party'):
parties = cstr(filters.get("party")).strip() filters.party = frappe.parse_json(filters.get("party"))
filters.party = [d.strip() for d in parties.split(',') if d]
validate_filters(filters, account_details) validate_filters(filters, account_details)
@ -61,12 +60,10 @@ def validate_filters(filters, account_details):
frappe.throw(_("From Date must be before To Date")) frappe.throw(_("From Date must be before To Date"))
if filters.get('project'): if filters.get('project'):
projects = cstr(filters.get("project")).strip() filters.project = frappe.parse_json(filters.get('project'))
filters.project = [d.strip() for d in projects.split(',') if d]
if filters.get('cost_center'): if filters.get('cost_center'):
cost_centers = cstr(filters.get("cost_center")).strip() filters.cost_center = frappe.parse_json(filters.get('cost_center'))
filters.cost_center = [d.strip() for d in cost_centers.split(',') if d]
def validate_party(filters): def validate_party(filters):

View File

@ -15,31 +15,9 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() {
{ {
"fieldname": "project", "fieldname": "project",
"label": __("Project"), "label": __("Project"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
var projects = frappe.query_report.get_filter_value("project") || ""; return frappe.db.get_link_options('Project', txt);
const values = projects.split(/\s*,\s*/).filter(d => d);
const txt = projects.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: "Project",
txt: txt,
filters: {
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
});
return data;
} }
}, },
{ {

View File

@ -10,31 +10,9 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() {
{ {
"fieldname": "project", "fieldname": "project",
"label": __("Project"), "label": __("Project"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
var projects = frappe.query_report.get_filter_value("project") || ""; return frappe.db.get_link_options('Project', txt);
const values = projects.split(/\s*,\s*/).filter(d => d);
const txt = projects.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: "Project",
txt: txt,
filters: {
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
});
return data;
} }
}, },
{ {

View File

@ -120,32 +120,11 @@ function get_filters(){
{ {
"fieldname": "cost_center", "fieldname": "cost_center",
"label": __("Cost Center"), "label": __("Cost Center"),
"fieldtype": "MultiSelect", "fieldtype": "MultiSelectList",
get_data: function() { get_data: function(txt) {
var cost_centers = frappe.query_report.get_filter_value("cost_center") || ""; return frappe.db.get_link_options('Cost Center', txt, {
company: frappe.query_report.get_filter_value("company")
const values = cost_centers.split(/\s*,\s*/).filter(d => d);
const txt = cost_centers.match(/[^,\s*]*$/)[0] || '';
let data = [];
frappe.call({
type: "GET",
method:'frappe.desk.search.search_link',
async: false,
no_spinner: true,
args: {
doctype: "Cost Center",
txt: txt,
filters: {
"company": frappe.query_report.get_filter_value("company"),
"name": ["not in", values]
}
},
callback: function(r) {
data = r.results;
}
}); });
return data;
} }
} }
] ]