setDataToLocalDb method

Future<void> setDataToLocalDb({
  1. required List<Map<String, dynamic>> formDetailsList,
})

Implementation

Future<void> setDataToLocalDb(
    {required List<Map<String, dynamic>> formDetailsList}) async {
  // Create formDetailsTableFields map:
  Map<String, dynamic> formSetter = <String, dynamic>{};
  ConstantName.formDetailsTableFields.forEach((key, value) {
    formSetter[key] = null;
  });

  for (var form in formDetailsList) {
    // Copy the reference value to avoid data issue
    Map<String, dynamic> formGetter = Map.from(form);

    try {
      formSetter.forEach((key, value) async {
        if (formGetter.containsKey(key)) {
          var updateValue = formGetter[key];
          if (key == ConstantName.controller) {
            formSetter[key] =
                ErrorHandling.encodeDataTypeForDb(value: updateValue.text);
          } else {
            formSetter[key] =
                ErrorHandling.encodeDataTypeForDb(value: updateValue);
          }
        }
      });

      // update Data to formDetailsTable:
      await DatabaseHelper.instance.updateSpecificRow(
        map: formSetter,
        tablename: ConstantName.formDetailsTable,
        whereArgsList: {
          ConstantName.clientRetailerId:
              formSetter[ConstantName.clientRetailerId],
          ConstantName.columnID: formSetter[ConstantName.columnID]
        },
      );

      // update Data to uploadRetailerIdTable:
      await DatabaseHelper.instance.updateSpecificColumn(
          tableName: ConstantName.uploadRetailerIdTable,
          columnName: formSetter[ConstantName.fieldName],
          // Need to check:
          data: formSetter[ConstantName.controller]?.toString() ?? '',
          whereArgsList: {
            ConstantName.clientRetailerId:
                formSetter[ConstantName.clientRetailerId]
          });
    } catch (e) {
      print('setDataToLocalDb ==> Error: $e, Entry: $formSetter');
    }
  }
}