private void initFreeReducedTypes(DBSettings settings, SisSettings sisSettings) {
        sisSettings.blIsFreeReducedEnabled = settings.getBool(DBSettings.SIS_FREEREDUCEDENABLED);
        if (sisSettings.blIsFreeReducedEnabled) {
            debug("Free and Reduced Subsystem is enabled.");
            // process org.pscafepos.settings that relate to free and reduced subsystem
            debug("Getting field names for free and reduced information.");
            sisSettings.freeField = settings.get(DBSettings.SIS_FREEFIELD);
            sisSettings.reducedField = settings.get(DBSettings.SIS_REDUCEDFIELD);

            if (isNotEmpty(sisSettings.freeField) && isNotEmpty(sisSettings.reducedField)) {
                debug("  ++ Free = " + sisSettings.freeField);
                debug("  ++ Reduced = " + sisSettings.reducedField);

                debug("Getting field types for free and reduced information.");
                sisSettings.blTypeFreeIsString = !settings.get(DBSettings.SIS_FREETYPE).equalsIgnoreCase("number");
                sisSettings.blTypeReducedIsString = !settings.get(DBSettings.SIS_REDUCEDTYPE).equalsIgnoreCase("number");

                debug("  ++ Free fieldtype = " + (sisSettings.blTypeFreeIsString ? "String" : "Number"));
                debug("  ++ Reduced fieldtype = " + (sisSettings.blTypeReducedIsString ? "String" : "Number"));

                debug("Getting values to flag fields as either free or reduced.");
                sisSettings.strValueFree = settings.get(DBSettings.SIS_FREEVALUE);
                sisSettings.strValueReduced = settings.get(DBSettings.SIS_REDUCEDVALUE);
                if (isNotEmpty(sisSettings.strValueFree) && isNotEmpty(sisSettings.strValueReduced)) {
                    debug("  ++ Free Value = " + sisSettings.strValueFree);
                    debug("  ++ Reduced Value = " + sisSettings.strValueReduced);
                } else {
                    debug("  -- Missing value: One of the free or reduced Value Flags is missing or blank.");
                }
            } else {
                debug("  -- Missing value: One of the free or reduced field names is missing or blank.");
            }
        } else {
            debug("Free and Reduced Subsystem is disabled.");
        }
    }