fix: Add check for empty array
This commit is contained in:
parent
0de729ff3d
commit
c56ebb69b8
1 changed files with 19 additions and 5 deletions
|
|
@ -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];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue