entropia
10/4/2017 - 11:30 AM

Availability

checks availability. If attr is not available it disables the radio input and does not allow to add to cart. Works with default selected combination. Use case www.minion13.gr To use call _handleAvailability() in a document ready state.

// checks availability. If attr is not available it disables the radio input and does not allow to add to cart.
// Works with default selected combination. Use case www.minion13.gr
// To use call _handleAvailability() in a document ready state.

var _checkAvailability = function () {
	var choice = [];
	var radio_inputs = parseInt($('#attributes .checked > input[type=radio]').length);
	if (radio_inputs)
		radio_inputs = '#attributes .checked > input[type=radio]';
	else
		radio_inputs = '#attributes input[type=radio]:checked';
	$('#attributes select, #attributes input[type=hidden], ' + radio_inputs).each(function(){
		choice.push(parseInt($(this).val()));
	});
	var combination = combinationsHashSet[choice.sort().join('-')];
		if (combination) {
			selectedCombination['unavailable'] = false;
			selectedCombination['reference'] = combination['reference'];
			var combId = $('#idCombination').val(combination['idCombination']);
			quantityAvailable = combination['quantity'];
			return combinationsHashSet;
		}	
}

var _handleAvailability = function (combinationsHashSet) {
	try {
		var array = $.map(_checkAvailability(), function(value, index) {
		return [value];
	});
	} catch(e) {
		return 0;
	}
	
	var combs = [] ;
	var obj = {} ;
	for (var i=0; i<array.length; i++){
		 // console.log(array[i].idsAttributes[0] + ' '+ 'available: '+ array[i].quantity)
		 combs.push(array[i].idsAttributes[0], array[i].quantity)
	}
	for (var i=0; i<combs.length; i++) {
		if(combs[i+1] ===0) {
			$('#radio_'+combs[i]).attr('disabled', 'true').addClass('disabled');
			$('.radio_'+combs[i]).addClass('disabled');
		}
	}
}