fix: Add check for empty array

This commit is contained in:
Faris Ansari 2019-08-02 15:30:11 +05:30
parent 0de729ff3d
commit c56ebb69b8

View file

@ -225,7 +225,11 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView {
// child table field
const [cdt, _field] = fieldname.split(':');
const cdt_row = Object.keys(doc)
.filter(key => Array.isArray(doc[key]) && doc[key][0].doctype === cdt)
.filter(key =>
Array.isArray(doc[key])
&& doc[key].length
&& doc[key][0].doctype === cdt
)
.map(key => doc[key])
.map(a => a[0])
.filter(cdoc => cdoc.name === d[cdt + ':name'])[0];
@ -525,15 +529,25 @@ frappe.views.ReportView = class ReportView extends frappe.views.ListView {
control.set_value(value);
return this.set_control_value(doctype, docname, fieldname, value)
.then((updated_doc) => {
const _data = this.data.find(d => d.name === updated_doc.name);
const _data = this.data
.filter(b => b.name === updated_doc.name)
.find(a =>
// child table cell
(doctype != updated_doc.doctype && a[doctype + ":name"] == docname)
|| doctype == updated_doc.doctype
);
for (let field in _data) {
if (field.includes(':')) {
// child table field
const [cdt, _field] = field.split(':');
const cdt_row = Object.keys(updated_doc)
.filter(key => Array.isArray(updated_doc[key]) && updated_doc[key][0].doctype === cdt)
.map(key => updated_doc[key])
.map(a => a[0])
.filter(key =>
Array.isArray(updated_doc[key])
&& updated_doc[key].length
&& updated_doc[key][0].doctype === cdt
)
.map(key => updated_doc[key])[0]
.filter(cdoc => cdoc.name === _data[cdt + ':name'])[0];
if (cdt_row) {
_data[field] = cdt_row[_field];