function selectVariant()

in webpos/webapp/webpos/images/js/ChooseVariant.js [123:218]


function selectVariant(data, firstTime) {
    var variantTree = data.variantTree;
    var variantTreeSize = data.variantTreeSize;
    var featureOrder = data.featureOrder;
    var featureTypes = data.featureTypes;
    var variantSampleList = data.variantSampleList;
    var selectList = "";
    var featureValue = "";
    if (variantTree != undefined && variantTreeSize > 0) {
        if (featureOrder != undefined && featureOrder.length > 0) {
            if (variantSampleList != undefined && variantSampleList.length > 0) {
                if (featureTypes != undefined) {
                    var idx = 0;
                    var previousFeatureValue = "";
                    jQuery.each(featureOrder, function(i, actualFeature) {
                        var feature = featureTypes[actualFeature];
                        if (idx == 0) {
                            selectList = selectList + feature + " ";
                            selectList = selectList + "<select id=\"FT" + feature + "\" name=\"FT" + feature + "\">";
                            for (i = 0; i < variantSampleList.length; i++) {
                                selectList = selectList + "<option"
                                if (firstTime == 'N') {
                                    var selectedFeatureValue = "#FT" + feature;
                                    featureValue = jQuery(selectedFeatureValue).val();
                                    if (featureValue == variantSampleList[i]) {
                                        selectList = selectList + " selected";
                                    }
                                } else {
                                    featureValue = variantSampleList[0];
                                }
                                selectList = selectList + ">" + variantSampleList[i] + "</option>";
                            }
                            selectList = selectList + "</select><br/>";
                        } else {
                            var features = variantTree[previousFeatureValue];
                            selectList = selectList + feature + " ";
                            selectList = selectList + "<select id=\"FT" + feature + "\" name=\"FT" + feature + "\">";
                            for (var key in features) {
                                selectList = selectList + "<option"
                                if (firstTime == 'N') {
                                    var selectedFeatureValue = "#FT" + feature;
                                    var featureValue = jQuery(selectedFeatureValue).val();
                                    if (featureValue == key) {
                                        selectList = selectList + " selected";
                                    }
                                }
                                selectList = selectList + ">" + key + "</option>";
                            }
                            selectList = selectList + "</select><br/>";
                        }
                        idx++;
                        previousFeatureValue = featureValue;
                    });
                    jQuery('#features').html(selectList);
                    var idx = 0;
                    var features = variantTree;
                    jQuery.each(featureOrder, function(i, actualFeature) {
                        var feature = featureTypes[actualFeature];
                        featureValue = "FT" + feature;
                        jQuery('#' + featureValue).on('change', function(event) {
                            selectVariant(variantData, 'N');
                            return false;
                        });
                        var featValue = jQuery('#' + featureValue).val();
                        idx++;
                        for (var key in features) {
                            if (key == featValue) {
                                if (idx == featureOrder.length) {
                                    jQuery('#variantProductId').val(features[key]);
                                    var param = 'productId=' + jQuery('#variantProductId').val();
                                    jQuery.ajax({url: 'GetProductAndPrice',
                                        data: param,
                                        type: 'post',
                                        async: false,
                                        success: function(data) {
                                            getResultOfGetProductAndPrice(data);
                                        },
                                        error: function(data) {
                                            getResultOfGetProductAndPrice(data);
                                        }
                                    });
                                } else {
                                    features = features[key];
                                }
                            }
                        }
                    });
                }
            }
        }
    }
    jQuery('#variant').val('Y');
    jQuery('#features').show();    
    jQuery('#chooseVariant').show();    
    jQuery('#variantQuantity').focus();
}