xLayout_DialogAddItem method

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

Gestione dell'aggiunta di un Item

Implementation

Future<XFDataItem?> xLayout_DialogAddItem(XView xView, XFDataItem item, void Function(void Function()) setState, {List<ScontiBTN>? liSconti}) async {
  bool isFirst = false;
  int u = 0;
  setState(() {
    enteredInEditOnCell = true;
  });
  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(xView, item);
  setState(() => enteredInEditOnCell = false);
  return rval;
}