xCMD_xOnAddDett method
Implementation
Future xCMD_xOnAddDett() async {
var x = await xInitList_AddDetts();
var t;
if (x.length == 1) {
var p = xTabs.value.firstWhereOrNull((element) => element.key == x.first.key);
if (p == null)
xTabs_ChangeActive(x.first.key, forceAdd: true);
else
xTabs_ChangeActive(x.first.key);
t = x.first.key;
} else {
var p = xTab_Active != null ? xTabs.value.firstWhereOrNull((element) => element.key == xTab_Active!.key) : null;
if (p != null) {
t = p.key;
xTabs_ChangeActive(t);
} else {
t = await showDialog(
context: context,
builder: (context) {
return XAlertDialog(
height: null,
title_Text: "Scegli quale dettaglio aggiungere:",
actionsBTNarea_Child: Row(children: [
Expanded(
child: XBtnbase(
label: "Chiudi",
backGroundColor: Colors.grey[800],
label_Style: XStyles.xStyTextForLabel(textColor: XColors.undo),
onPressed: () => Navigator.pop(context, null),
))
]),
title_Style: XStyles.xStyTextForTextBase(),
child: Column(
mainAxisSize: MainAxisSize.min,
children: x
.map((e) => Row(children: [
Expanded(
child: XBtnbase(
margin: EdgeInsets.symmetric(vertical: 5),
label: e.label,
backGroundColor: Colors.grey[800],
height: 35,
onPressed: () {
var x = xTabs.value.firstWhereOrNull((element) => element.key == e.key);
if (x == null)
xTabs_ChangeActive(e.key, forceAdd: true);
else
xTabs_ChangeActive(e.key);
Navigator.pop(context, e.key);
},
label_Style: XStyles.xStyTextForSubLabel(textColor: e.backgroundColor),
))
]))
.toList()));
});
}
}
if (t != null && t != "" && t == xTab_Active!.key) {
var y = xTab_Active!.itemClass!.getCloneFull();
var xclObject = await xOnAddNewDett_INTERNAL(y);
XFDataItem? res = null;
if (widget.xIsActive_AddItem_DefaultBL) {
if (xTab_Active != null && xTab_Active!.xElencoToView != null && xTab_Active!.xElencoToView!.xCells_EditType != null) {
if (xTab_Active!.xElencoToView!.xCells_EditType!.value == XEnums.editType.scheda.value) {
res = await xOnBefore_AddDett(xclObject).then((value) async => value != null ? xOnAfterActionOnDett_INTERNAL(value) : null);
}
// FORM-xPreview_Dialog
else if (xTab_Active!.xElencoToView!.xCells_EditType!.value == XEnums.editType.form.value) {
var _view = XView("AddView");
_view.cols.addAll(xTab_Active!.xElencoToView!.liCols_EditData ?? []);
if (xclObject == null) {
xclObject = XFDataItem(Uuid().v4());
xclObject.isNew = true;
}
xclObject = await xOnBefore_AddDett(xclObject);
res = await xPreview_Dialog(xTab_Active!.xElencoToView!.liCols_EditData!.isEmpty ? xTab_Active!.xElencoToView!.xView_ForEditItem ?? xTab_Active!.xElencoToView!.view ?? xTab_Active!.xElencoToView!.viewDetts! : _view, xclObject, isWeb: kIsWeb);
if (res != null) {
await xOnAfter_AddDett(res);
await xOnAfterActionOnDett_INTERNAL(res);
}
} else if (xTab_Active!.xElencoToView!.xCells_EditType!.value == XEnums.editType.stepByStep.value) {
var _view = XView("AddView");
_view.cols.addAll(xTab_Active!.xElencoToView!.liCols_EditData ?? []);
if (xclObject == null) {
xclObject = XFDataItem(Uuid().v4());
xclObject.isNew = true;
}
xclObject = await xOnBefore_AddDett(xclObject);
res = await xEditDialog_xOnAddItem(xTab_Active!.xElencoToView!.liCols_EditData!.isEmpty ? xTab_Active!.xElencoToView!.xView_ForEditItem ?? xTab_Active!.xElencoToView!.view ?? xTab_Active!.xElencoToView!.viewDetts! : _view, xclObject!, setState);
if (res != null) {
await xOnAfter_AddDett(res);
await xOnAfterActionOnDett_INTERNAL(res);
}
} else {
if (xTab_Active!.xElencoToView!.isEditable) {
res = xclObject;
res != null ? await xOnAfterActionOnDett_INTERNAL(res) : null;
} else {
var _view = XView("AddView");
_view.cols.addAll(xTab_Active!.xElencoToView!.liCols_EditData ?? []);
if (xclObject == null) {
xclObject = XFDataItem(Uuid().v4());
xclObject.isNew = true;
}
xclObject = await xOnBefore_AddDett(xclObject);
res = await xEditDialog_xOnAddItem(xTab_Active!.xElencoToView!.liCols_EditData!.isEmpty ? xTab_Active!.xElencoToView!.xView_ForEditItem ?? xTab_Active!.xElencoToView!.view ?? xTab_Active!.xElencoToView!.viewDetts! : _view, xclObject!, setState);
if (res != null) {
await xOnAfter_AddDett(res);
await xOnAfterActionOnDett_INTERNAL(res);
}
}
}
} else {
if (widget.xOnBeforeAddDettLayout != null) {
res = xclObject != null
? widget.xOnBeforeAddDettLayout == null
? null
: await widget.xOnBeforeAddDettLayout!(xTab_Active!.xElencoToView!.xView_ForEditItem ?? xTab_Active!.xElencoToView!.view!, xclObject, setState)
: null;
} else {
res = xclObject != null ? await xLayout_DialogAddItem(xTab_Active!.xElencoToView!.xView_ForEditItem ?? xTab_Active!.xElencoToView!.view!, xclObject, setState) : null;
}
}
}
var resBeforeAddItemInList;
if (res != null) {
resBeforeAddItemInList = await xOnBeforeAddDettToList(res);
editedPage.value = true; //x ADD
}
var liToAddItem = itemInEdit_Clone.getProp(t);
var x = xTabs.value.firstWhereOrNull((element) => element.key == xTab_Active!.key);
if (res != null) {
liToAddItem.add(resBeforeAddItemInList);
if (x != null) {
xTab_CurrentIndex = x.idx;
} else {
xTab_CurrentIndex = xTab_Active!.idx;
}
} else {
if (liToAddItem.isNotEmpty) {
} else {}
}
calcDoc(null, liToAddItem);
}
}