itemPagePost method
Close row page and post current (selectedItem) item to dataTable
Implementation
@override
Future<bool> itemPagePost({bool goBack = true, bool useValidation = true}) async {
assert(selectedItem != null);
var validationResult = selectedItem!.validateFieldValues();
if (!validationResult.isValid) {
var err = NsgApiException(NsgApiError(code: 999, message: validationResult.errorMessageWithFields()));
if (NsgApiException.showExceptionDefault != null) {
NsgApiException.showExceptionDefault!(err);
}
sendNotify();
return false;
}
var dataTable = NsgDataTable(owner: masterController!.selectedItem!, fieldName: tableFieldName);
var oldIndex = dataTable.length;
if (backupItem != null && dataItemList.contains(backupItem)) {
oldIndex = dataItemList.indexOf(backupItem!);
dataItemList.remove(backupItem!);
dataTable.removeRow(backupItem!);
}
if (backupItem != null) {
backupItem = null;
}
if (!dataItemList.contains(currentItem)) {
//dataItemList.add(selectedItem!);
dataTable.insertRow(oldIndex, currentItem);
//items.add(currentItem);
}
selectedItem!.state = NsgDataItemState.fill;
if (goBack) {
Get.back();
}
if (masterController != null) {
masterController!.sendNotify();
}
requestItems();
return true;
}