formChanged method

dynamic formChanged(
  1. BuildContext context,
  2. dynamic formid,
  3. dynamic needSetfocus
)

Implementation

formChanged(BuildContext context, formid, needSetfocus) {
  myLogAll('formChanged');

  Map<dynamic, dynamic> obj = _formLists[formid]![gItems];
  var changed = false;
  Map data = {};
  data[gFormid] = formid;
  data[gId] = (obj[gId] != null) ? obj[gId][gValue] : '';
  data[gOptLock] = '';
  if (obj[gOptLock] != null) {
    data[gOptLock] = obj[gOptLock][gValue] ?? '';
  }
  data[gOptLock] = (obj.containsKey(gOptLock)) ? obj[gOptLock][gValue] : '';
  for (int i = 0; i < obj.entries.length; i++) {
    MapEntry<dynamic, dynamic> element = obj.entries.elementAt(i);

    var item = element.value;
    var type = item[gType];
    if (type == gId) {
      data[gId] = item[gValue];
    } else if (item[gType] == gLabel) {
    } else if (item[gType] == gHidden) {
    } else if (!isNull(item[gDbid])) {
      var value = getValue(formid, item[gId], data[gId])[gValue];

      var alert = isItemValueValidStr(item, value);
      if ((alert ?? '') != '') {
        /*if (alert == gRequired) {
          alert = '${item[gLabel]} ${getSCurrent(" is required")}';
        }
        showMsg(context, alert, null);
*/
        if (needSetfocus) {
          setFocusOne(formid, item[gId], null, true, context, -1);
        }

        return {gStatus: false, gData: data, gCol: obj};
      }

      //data[objI[gDbid]] = value;
      if (item[gHash] != null && item[gHash]) {
        value = hash(value);
      }
      if (type == gDate && !isNull(value)) {
        //value = value.format(gDateformat);
        //data[objI[gDbid]] =
        //  DateFormat(gDateformat).format(value);
      } else if (type == gDatetime) {
        value = toUTCTime(value);
      }
      var oldValue = getValueOriginal(formid, item[gId], data[gId]);
      if (isNull(oldValue)) {
        oldValue = '';
      }

      value ??= '';

      if (item[gId] != '' && item[gIsPrimary] != null && item[gIsPrimary]) {
        data[item[gDbid]] = oldValue;
      }
      if (value != oldValue) {
        changed = true;
        data[item[gDbid]] = value;
      } else if (isNull(data[gId])) {
        data[item[gDbid]] = value;
      }
    }
  }
  //print('        ------------------    formSubmit 2');
  return {gStatus: changed, gData: data, gCol: obj};
}