Merge branch 'develop' into sla_fix
This commit is contained in:
commit
7bb1402a37
@ -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"):
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -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):
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user