app/Plugin/TaxManagement42/Resource/template/default/Product/detail_discount_rate_script.twig line 1

Open in your IDE?
  1. <script>
  2.     $(function() {
  3.         var eccube_copy = window.eccube;
  4.         var discountRate = {{ Product.discountRatesJson | raw}};
  5.         var price01Values = {{ Product.price01Values | raw}};
  6.         var price02Values = {{ Product.price02Values | raw}};
  7.         var isSalePriceCustomTag = $('#form1').parent().find('.tax_management-sale_price').length > 0;
  8.         var isListPriceCustomTag = $('#form1').parent().find('.tax_management-list_price').length > 0;
  9.         
  10.         if(isSalePriceCustomTag) {
  11.             var salePriceCustomTag = null;
  12.             var salePriceNoTaxCustomHTMLOrigin = [];
  13.             var salePriceIncTaxCustomHTMLOrigin = [];
  14.             var listPriceCustomTag = null;
  15.             var listPriceCustomHTMLOrigin = [];
  16.             var priceOffOrigin = null;
  17.             if(isSalePriceCustomTag) {
  18.                 salePriceCustomTag = $('#form1').parent().find('.tax_management-sale_price');
  19.                 jQuery.each(salePriceCustomTag, function(index, itemSalePrice) {
  20.                     var price02NoTax = $(itemSalePrice).find('.price02-default');
  21.                     var price02IncTax = $(itemSalePrice).find('.ec-price__tax');
  22.                     if(price02NoTax && price02IncTax) {
  23.                         salePriceNoTaxCustomHTMLOrigin[index] = price02NoTax.text();
  24.                         salePriceIncTaxCustomHTMLOrigin[index] = price02IncTax.text();
  25.                     }
  26.                 });
  27.             } 
  28.             if(isListPriceCustomTag) {
  29.                 listPriceCustomTag = $('#form1').parent().find('.tax_management-list_price');
  30.                 jQuery.each(listPriceCustomTag, function(index, itemListPrice) {
  31.                     var price01IncTax = $(itemListPrice).find('.price01-default');
  32.                     if(price01IncTax) {
  33.                         listPriceCustomHTMLOrigin[index] = price01IncTax.text();
  34.                     }
  35.                 });
  36.             }
  37.                 
  38.             priceOffOrigin = $('#form1').parent().find('.price_off').first().text();
  39.             {% if form.classcategory_id2 is defined %}
  40.             $('#form1').on('change', 'select[name=classcategory_id2], select[name=classcategory_id1]', function() {
  41.                 classcategory_id01 = $('#form1').find('select[name=classcategory_id1]').val();
  42.                 classcategory_id02 = $('#form1').find('select[name=classcategory_id2]').val();
  43.                 if(classcategory_id01 && classcategory_id01 !== '__unselected' && classcategory_id02 && classcategory_id02 !== '__unselected') {
  44.                     classcategory_discountRate = discountRate[classcategory_id01]['#'+classcategory_id02];
  45.                     classcategory = eccube_copy.classCategories[classcategory_id01]['#'+classcategory_id02];
  46.                     updatePrice(classcategory, classcategory_discountRate);
  47.                 } else {
  48.                     resetPrice();
  49.                 }
  50.             })
  51.             {% elseif form.classcategory_id1 is defined %}
  52.             $('#form1').find('select[name=classcategory_id1]').on('change', function() {
  53.                 classcategory_id01 = $('#form1').find('select[name=classcategory_id1]').val();
  54.                 if(classcategory_id01 && classcategory_id01 !== '__unselected') {
  55.                     classcategory_discountRate = discountRate[classcategory_id01]['#'];
  56.                     classcategory = eccube_copy.classCategories[classcategory_id01]['#'];
  57.                     updatePrice(classcategory, classcategory_discountRate);
  58.                 } else {
  59.                     resetPrice();
  60.                 }
  61.             })
  62.             {% endif %}
  63.         } else {
  64.             price02IncTax = $('#form1').parent().find('.price02-default:not(.price02-default-no-tax)').first();
  65.             price02NoTax = $('#form1').parent().find('.price02-default-no-tax').first();
  66.             priceOff = $('#form1').parent().find('.price_off').first();
  67.             price02NoTaxOrigin = price02NoTax.text();
  68.             priceOffOrigin = priceOff.text();
  69.             {% if form.classcategory_id2 is defined %}
  70.             $('#form1').on('change', 'select[name=classcategory_id2], select[name=classcategory_id1]', function() {
  71.                 classcategory_id01 = $('#form1').find('select[name=classcategory_id1]').val();
  72.                 classcategory_id02 = $('#form1').find('select[name=classcategory_id2]').val();
  73.                 if(classcategory_id01 && classcategory_id01 !== '__unselected' && classcategory_id02 && classcategory_id02 !== '__unselected') {
  74.                     classcategory_discountRate = discountRate[classcategory_id01]['#'+classcategory_id02];
  75.                     {% if TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == false %}
  76.                     classcategory = eccube_copy.classCategories[classcategory_id01]['#'+classcategory_id02];
  77.                     price02NoTax.text('¥'+classcategory.price02);
  78.                     price02IncTax.text('(' + classcategory.price02_inc_tax + '税込)');
  79.                     {% endif %}
  80.                     priceOff = $('#form1').parent().find('.price_off');
  81.                     if(classcategory_discountRate.discount_rate > 0) {
  82.                         priceOff.show();
  83.                         priceOff.text(classcategory_discountRate.discount_rate + '%OFF');
  84.                     } else {
  85.                         priceOff.hide();
  86.                     }
  87.                 } else {
  88.                     price02NoTax.text(price02NoTaxOrigin);
  89.                     priceOff = $('#form1').parent().find('.price_off');
  90.                     priceOff.text(priceOffOrigin);
  91.                     if(priceOffOrigin !== '') {
  92.                         priceOff.show();
  93.                     }
  94.                     priceOff.text(priceOffOrigin);
  95.                 }
  96.             })
  97.             {% elseif form.classcategory_id1 is defined %}
  98.             $('#form1').find('select[name=classcategory_id1]').on('change', function() {
  99.                 classcategory_id01 = $('#form1').find('select[name=classcategory_id1]').val();
  100.                 if(classcategory_id01 && classcategory_id01 !== '__unselected') {
  101.                     classcategory_discountRate = discountRate[classcategory_id01]['#'];
  102.                     {% if TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == false %}
  103.                     classcategory = eccube_copy.classCategories[classcategory_id01]['#'];
  104.                     price02NoTax.text('¥'+classcategory.price02);
  105.                     price02IncTax.text('(' + classcategory.price02_inc_tax + '税込)');
  106.                     {% endif %}
  107.                     priceOff = $('#form1').parent().find('.price_off');
  108.                     if(classcategory_discountRate.discount_rate > 0) {
  109.                         priceOff.show();
  110.                         priceOff.text(classcategory_discountRate.discount_rate + '%OFF');
  111.                     } else {
  112.                         priceOff.hide();
  113.                     }
  114.                 } else {
  115.                     price02NoTax.text(price02NoTaxOrigin);
  116.                     priceOff.text(priceOffOrigin);
  117.                 }
  118.             })
  119.             {% endif %}
  120.         }
  121.         function updatePrice(classcategory, classcategory_discountRate) {
  122.             {% if TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == false %}
  123.                 if(isSalePriceCustomTag) {
  124.                     
  125.                     jQuery.each(salePriceCustomTag, function(index, item) {
  126.                         var price02NoTax = $(item).find('.price02-default');
  127.                         var price02IncTax = $(item).find('.ec-price__tax');
  128.                         if(price02NoTax && price02IncTax) {
  129.                             price02NoTax.text('¥' + classcategory.price02);
  130.                             price02IncTax.text('(¥' + classcategory.price02_inc_tax + '税込)');
  131.                         }
  132.                     });
  133.                 } 
  134.                 
  135.                 if(isListPriceCustomTag) {
  136.                     jQuery.each(listPriceCustomTag, function(index, item) {
  137.                         var price01IncTax = $(item).find('.price01-default');
  138.                         if(price01IncTax) {
  139.                             if(classcategory.price01 != '' && classcategory.price01 != '0') {
  140.                                 price01IncTax.text('¥' + classcategory.price01_inc_tax);
  141.                             } else {
  142.                                 price01IncTax.text(listPriceCustomHTMLOrigin[index]);
  143.                             }
  144.                         }
  145.                     });
  146.                 }
  147.                 
  148.             {% endif %}
  149.             {% if TaxManagementConfig.isIncludeTaxFlag is not null and TaxManagementConfig.isIncludeTaxFlag == true %}
  150.                 if(isSalePriceCustomTag) {
  151.                     jQuery.each(salePriceCustomTag, function(index, item) {
  152.                         var price02IncTax = $(item).find('.price02-default');
  153.                         if(price02IncTax) {
  154.                             price02IncTax.text('¥' + classcategory.price02_inc_tax);
  155.                         }
  156.                     });
  157.                 } 
  158.                 if(isListPriceCustomTag) {
  159.                     jQuery.each(listPriceCustomTag, function(index, item) {
  160.                         var price01IncTax = $(item).find('.price01-default');
  161.                         if(price01IncTax) {
  162.                             if(classcategory.price01 != '' && classcategory.price01 != '0') {
  163.                                 price01IncTax.text('¥' + classcategory.price01_inc_tax);
  164.                             } else {
  165.                                 price01IncTax.text(listPriceCustomHTMLOrigin[index]);
  166.                             }
  167.                         }
  168.                     });
  169.                 }
  170.             {% endif %}
  171.             priceOff = $('#form1').parent().find('.price_off');
  172.             if(classcategory_discountRate.discount_rate > 0) {
  173.                 priceOff.show();
  174.                 priceOff.text(classcategory_discountRate.discount_rate + '%OFF');
  175.             } else {
  176.                 priceOff.hide();
  177.             }
  178.         }
  179.         function resetPrice() {
  180.             priceOff = $('#form1').parent().find('.price_off');
  181.             priceOff.text(priceOffOrigin);
  182.             if(priceOffOrigin !== '') {
  183.                 priceOff.show();
  184.             }
  185.             if(isSalePriceCustomTag) {
  186.                 jQuery.each(salePriceCustomTag, function(index, item) {
  187.                     var price02NoTax = $(item).find('.price02-default');
  188.                     var price02IncTax = $(item).find('.ec-price__tax');
  189.                     if(price02NoTax && price02IncTax) {
  190.                         price02NoTax.text(salePriceNoTaxCustomHTMLOrigin[index]);
  191.                         price02IncTax.text(salePriceIncTaxCustomHTMLOrigin[index]);
  192.                     }
  193.                 });
  194.             } 
  195.             if(isListPriceCustomTag) {
  196.                 jQuery.each(listPriceCustomTag, function(index, item) {
  197.                     var price01IncTax = $(item).find('.price01-default');
  198.                     if(price01IncTax) {
  199.                         price01IncTax.text(listPriceCustomHTMLOrigin[index]);
  200.                     }
  201.                 });
  202.             }
  203.         }
  204.     });
  205. </script>