changes method
obtiene los cambios realizados
Implementation
bool changes(x) {
// consigue los campos
var rfields = {};
for (var member in fieldList) {
//
if (member.no_update) {
continue;
}
if (state == TableState.inserted ||
member.type == DataType.list ||
member.type == DataType.listMap) {
//
rfields[member.name] = member.get();
// if (member.type == DataType.list) {
// rfields[member.name] =
// '{${(rfields[member.name] as List).map((e) => '$e').join(',')}}';
// }
// if (member.type == DataType.listMap) {
// rfields[member.name] = jsonEncode(rfields[member.name]);
// }
} else {
member.changes(rfields);
}
}
// los detalles
var rdetail = {};
for (var detail in detailList) {
detail.changes(rdetail);
}
if (rdetail.isNotEmpty) {
rfields['detail'] = rdetail;
}
// si hay cambios asigna action y key
if (rfields.isNotEmpty) {
if (state == TableState.inserted) {
rfields['action'] = 'insert';
} else {
rfields['action'] = 'update';
rfields['key'] = id.original;
}
for (var key in rfields.keys) {
x[key] = rfields[key];
}
}
return rfields.isNotEmpty;
}