xEditDialog_xOnAddItem method

Future<XFDataItem?> xEditDialog_xOnAddItem(
  1. XView xView,
  2. XFDataItem item,
  3. void setState(
    1. void ()
    ), {
  4. List<ScontiBTN>? liSconti,
})

EditDialog per l'Aggiunta di un nuovo Items che fa un aggiunta a sequenza per ogni colonna della Vista

Implementation

Future<XFDataItem?> xEditDialog_xOnAddItem(XView xView, XFDataItem item, void Function(void Function()) setState, {List<ScontiBTN>? liSconti}) async {
  bool isFirst = false;
  int u = 0;
  XFDataItem? rval = null;
  if (xView.cols.where((e) => e.dataType != bool || e.readOnly != true || e.colKey.startsWith("li").not()).length == 1) {
    isFirst = false;
  } else {
    for (var i in xView.cols) {
      if (i.dataType == bool || i.readOnly == true || i.colKey.startsWith("li")) continue;
      u++;
      var x = await xEditDialog(item, i.colCaption, item[i.colKey], i, liSconti: liSconti);
      if (x == null) {
        if (u == 1) isFirst = true;
        break;
      } else
        item[i.colKey] = x;
    }
  }

  if (!isFirst) {
    rval = await xPreview_Dialog(widget.xView_ForEditItem ?? xView, item);
    if (rval == null) return null;
  }

  return rval;
}