itemPagePost method

  1. @override
Future<bool> itemPagePost({
  1. bool goBack = true,
  2. bool useValidation = true,
})
override

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;
}