mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-07 07:02:54 +00:00
Merge branch 'develop' into product-filter-lookup
This commit is contained in:
@@ -199,7 +199,13 @@ def get_mode_of_payment_details(filters):
|
|||||||
invoice_list = get_invoices(filters)
|
invoice_list = get_invoices(filters)
|
||||||
invoice_list_names = ",".join('"' + invoice['name'] + '"' for invoice in invoice_list)
|
invoice_list_names = ",".join('"' + invoice['name'] + '"' for invoice in invoice_list)
|
||||||
if invoice_list:
|
if invoice_list:
|
||||||
inv_mop_detail = frappe.db.sql("""select a.owner, a.posting_date,
|
inv_mop_detail = frappe.db.sql("""
|
||||||
|
select t.owner,
|
||||||
|
t.posting_date,
|
||||||
|
t.mode_of_payment,
|
||||||
|
sum(t.paid_amount) as paid_amount
|
||||||
|
from (
|
||||||
|
select a.owner, a.posting_date,
|
||||||
ifnull(b.mode_of_payment, '') as mode_of_payment, sum(b.base_amount) as paid_amount
|
ifnull(b.mode_of_payment, '') as mode_of_payment, sum(b.base_amount) as paid_amount
|
||||||
from `tabSales Invoice` a, `tabSales Invoice Payment` b
|
from `tabSales Invoice` a, `tabSales Invoice Payment` b
|
||||||
where a.name = b.parent
|
where a.name = b.parent
|
||||||
@@ -208,7 +214,7 @@ def get_mode_of_payment_details(filters):
|
|||||||
group by a.owner, a.posting_date, mode_of_payment
|
group by a.owner, a.posting_date, mode_of_payment
|
||||||
union
|
union
|
||||||
select a.owner,a.posting_date,
|
select a.owner,a.posting_date,
|
||||||
ifnull(b.mode_of_payment, '') as mode_of_payment, sum(b.base_paid_amount) as paid_amount
|
ifnull(b.mode_of_payment, '') as mode_of_payment, sum(c.allocated_amount) as paid_amount
|
||||||
from `tabSales Invoice` a, `tabPayment Entry` b,`tabPayment Entry Reference` c
|
from `tabSales Invoice` a, `tabPayment Entry` b,`tabPayment Entry Reference` c
|
||||||
where a.name = c.reference_name
|
where a.name = c.reference_name
|
||||||
and b.name = c.parent
|
and b.name = c.parent
|
||||||
@@ -224,6 +230,8 @@ def get_mode_of_payment_details(filters):
|
|||||||
and b.reference_type = "Sales Invoice"
|
and b.reference_type = "Sales Invoice"
|
||||||
and b.reference_name in ({invoice_list_names})
|
and b.reference_name in ({invoice_list_names})
|
||||||
group by a.owner, a.posting_date, mode_of_payment
|
group by a.owner, a.posting_date, mode_of_payment
|
||||||
|
) t
|
||||||
|
group by t.owner, t.posting_date, t.mode_of_payment
|
||||||
""".format(invoice_list_names=invoice_list_names), as_dict=1)
|
""".format(invoice_list_names=invoice_list_names), as_dict=1)
|
||||||
|
|
||||||
inv_change_amount = frappe.db.sql("""select a.owner, a.posting_date,
|
inv_change_amount = frappe.db.sql("""select a.owner, a.posting_date,
|
||||||
@@ -231,7 +239,7 @@ def get_mode_of_payment_details(filters):
|
|||||||
from `tabSales Invoice` a, `tabSales Invoice Payment` b
|
from `tabSales Invoice` a, `tabSales Invoice Payment` b
|
||||||
where a.name = b.parent
|
where a.name = b.parent
|
||||||
and a.name in ({invoice_list_names})
|
and a.name in ({invoice_list_names})
|
||||||
and b.mode_of_payment = 'Cash'
|
and b.type = 'Cash'
|
||||||
and a.base_change_amount > 0
|
and a.base_change_amount > 0
|
||||||
group by a.owner, a.posting_date, mode_of_payment""".format(invoice_list_names=invoice_list_names), as_dict=1)
|
group by a.owner, a.posting_date, mode_of_payment""".format(invoice_list_names=invoice_list_names), as_dict=1)
|
||||||
|
|
||||||
|
|||||||
@@ -82,62 +82,42 @@ frappe.query_reports["Sales Analytics"] = {
|
|||||||
const tree_type = frappe.query_report.filters[0].value;
|
const tree_type = frappe.query_report.filters[0].value;
|
||||||
if (data_doctype != tree_type) return;
|
if (data_doctype != tree_type) return;
|
||||||
|
|
||||||
row_name = data[2].content;
|
const row_name = data[2].content;
|
||||||
length = data.length;
|
const raw_data = frappe.query_report.chart.data;
|
||||||
|
const new_datasets = raw_data.datasets;
|
||||||
if (tree_type == "Customer") {
|
const element_found = new_datasets.some(
|
||||||
row_values = data
|
(element, index, array) => {
|
||||||
.slice(4, length - 1)
|
if (element.name == row_name) {
|
||||||
.map(function (column) {
|
array.splice(index, 1);
|
||||||
return column.content;
|
return true;
|
||||||
});
|
|
||||||
} else if (tree_type == "Item") {
|
|
||||||
row_values = data
|
|
||||||
.slice(5, length - 1)
|
|
||||||
.map(function (column) {
|
|
||||||
return column.content;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
row_values = data
|
|
||||||
.slice(3, length - 1)
|
|
||||||
.map(function (column) {
|
|
||||||
return column.content;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
entry = {
|
|
||||||
name: row_name,
|
|
||||||
values: row_values,
|
|
||||||
};
|
|
||||||
|
|
||||||
let raw_data = frappe.query_report.chart.data;
|
|
||||||
let new_datasets = raw_data.datasets;
|
|
||||||
|
|
||||||
let element_found = new_datasets.some((element, index, array)=>{
|
|
||||||
if(element.name == row_name){
|
|
||||||
array.splice(index, 1)
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
return false
|
);
|
||||||
})
|
const slice_at = { Customer: 4, Item: 5 }[tree_type] || 3;
|
||||||
|
|
||||||
if (!element_found) {
|
if (!element_found) {
|
||||||
new_datasets.push(entry);
|
new_datasets.push({
|
||||||
|
name: row_name,
|
||||||
|
values: data
|
||||||
|
.slice(slice_at, data.length - 1)
|
||||||
|
.map(column => column.content),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let new_data = {
|
const new_data = {
|
||||||
labels: raw_data.labels,
|
labels: raw_data.labels,
|
||||||
datasets: new_datasets,
|
datasets: new_datasets,
|
||||||
};
|
};
|
||||||
chart_options = {
|
|
||||||
|
frappe.query_report.render_chart({
|
||||||
data: new_data,
|
data: new_data,
|
||||||
type: "line",
|
type: "line",
|
||||||
};
|
});
|
||||||
frappe.query_report.render_chart(chart_options);
|
|
||||||
|
|
||||||
frappe.query_report.raw_chart_data = new_data;
|
frappe.query_report.raw_chart_data = new_data;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user