<script>
$(function() {
var eccube_copy = window.eccube;
var discountRate = {
{% for Product in pagination %}
"{{ Product.id|escape('js') }}": {{ Product.discountRatesJson|raw }}{% if loop.last == false %}, {% endif %}
{% endfor %}
};
var price01Values = {
{% for Product in pagination %}
"{{ Product.id|escape('js') }}": {{ Product.price01Values | raw}}{% if loop.last == false %}, {% endif %}
{% endfor %}
};
var price02Values = {
{% for Product in pagination %}
"{{ Product.id|escape('js') }}": {{ Product.price02Values | raw}}{% if loop.last == false %}, {% endif %}
{% endfor %}
};
var isSalePriceCustomTag = $('.tax_management-sale_price').length > 0;
var salePriceCustomTag = null;
var priceOffOrigin = [];
var price02CustomOrigin = [];
var priceOffOriginIndex = [];
var price02CustomOriginIndex = [];
$('.price_off').each(function(index, priceOff) {
var classNameStr = $(priceOff).parents('[class*=tax_management_id_]').attr('class');
if(!classNameStr) {
// find from sale price default tag
classNameStr = $(priceOff).siblings('[class*=tax_management_id_]').first().attr('class');
}
var classNames = classNameStr.split(' ');
var product_id_ = 0;
jQuery.each(classNames, function(index, className) {
if(className.match(/^tax_management_id_([1-9][0-9]*)$/i)) {
product_id_ = className.match(/^tax_management_id_([1-9][0-9]*)$/i)[1];
return;
}
});
if(product_id_ !== 0) {
priceOffOrigin[product_id_] = $(priceOff).text();
}
});
if(isSalePriceCustomTag) {
$('.tax_management-sale_price').each(function(index, price02) {
var classNameStr = $(price02).attr('class');
var classNames = classNameStr.split(' ');
var product_id_ = 0;
jQuery.each(classNames, function(index, className) {
if(className.match(/^tax_management_id_([1-9][0-9]*)$/i)) {
product_id_ = className.match(/^tax_management_id_([1-9][0-9]*)$/i)[1];
return;
}
});
if(product_id_ !== 0) {
price02CustomOrigin[product_id_] = $(price02).text();
{# price02CustomOrigin[product_id_] =
if(price02CustomOriginIndex[product_id_] === undefined) {
price02CustomOriginIndex[product_id_] = 1;
price02CustomOrigin[product_id_] = [];
price02CustomOrigin[product_id_][0] = $(price02).text();
} else {
var productIndex = price02CustomOriginIndex[product_id_];
price02CustomOrigin[product_id_][index] = $(price02).text();
price02CustomOriginIndex[product_id_] = productIndex + 1;
} #}
}
});
}
//console.log(price02CustomOrigin);
$('select[name=classcategory_id1]')
.change(function(event) {
var $form = $(this).parents('form');
var product_id = $form.find('input[name=product_id]').val();
var $sele1 = $(this);
var $sele2 = $form.find('select[name=classcategory_id2]');
var salePriceCustomTag = null;
if(isSalePriceCustomTag) {
salePriceCustomTag = $form.parent().find('.tax_management-sale_price');
}
classcategory_id01 = $sele1.val();
if (!$sele2.length) {
classcategory_id01 = $sele1.val();
if(classcategory_id01 && classcategory_id01 !== '__unselected') {
classcategory = eccube_copy.productsClassCategories[product_id][classcategory_id01]['#'];
classcategory_discountRate = discountRate[product_id][classcategory_id01]['#'];
updatePrice(product_id, salePriceCustomTag, $form, classcategory, classcategory_discountRate);
} else {
resetPrice(product_id, salePriceCustomTag, $form);
}
} else {
resetPrice(product_id, salePriceCustomTag, $form);
}
});
// 規格2選択時
$('select[name=classcategory_id2]')
.change(function() {
var $form = $(this).parents('form');
var product_id = $form.find('input[name=product_id]').val();
var $sele1 = $form.find('select[name=classcategory_id1]');
var $sele2 = $(this);
if(isSalePriceCustomTag) {
salePriceCustomTag = $form.parent().find('.tax_management-sale_price');
}
classcategory_id01 = $sele1.val();
classcategory_id02 = $sele2.val();
if(classcategory_id01 && classcategory_id01 !== '__unselected' && classcategory_id02 && classcategory_id02 !== '__unselected') {
classcategory = eccube_copy.productsClassCategories[product_id][classcategory_id01]['#'+classcategory_id02];
classcategory_discountRate = discountRate[product_id][classcategory_id01]['#'+classcategory_id02];
updatePrice(product_id, salePriceCustomTag, $form, classcategory, classcategory_discountRate);
} else {
resetPrice(product_id, salePriceCustomTag, $form);
}
});
function updatePrice(product_id, salePriceCustomTag, formElement, classcategory, classcategory_discountRate) {
if(!product_id || !classcategory || !classcategory_discountRate || !formElement) {
return false;
}
{% if TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == false %}
if(salePriceCustomTag) {
jQuery.each(salePriceCustomTag, function(index, item) {
$(item).text('¥' + classcategory.price02);
});
}
{% elseif TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == true %}
if(salePriceCustomTag) {
jQuery.each(salePriceCustomTag, function(index, item) {
$(item).text('¥' + classcategory.price02_inc_tax);
});
}
{% endif %}
priceOff = formElement.parent().find('.price_off');
if(priceOff.length) {
if(classcategory_discountRate.discount_rate > 0) {
priceOff.show();
priceOff.text('(' + classcategory_discountRate.discount_rate + '%OFF)');
} else {
priceOff.hide();
}
}
}
function resetPrice(product_id, salePriceCustomTag, formElement) {
if(!product_id || !formElement) {
return false;
}
priceOff = formElement.parent().find('.price_off');
if(priceOff.length) {
priceOff.text(priceOffOrigin[product_id]);
if(priceOffOrigin[product_id] !== '') {
priceOff.show();
}
}
if(salePriceCustomTag) {
jQuery.each(salePriceCustomTag, function(index, item) {
var originHTML = price02CustomOrigin[product_id];
$(item).text(originHTML);
});
}
}
});
</script>