app/Plugin/ProductReserve42/Resource/template/default/Product/product_list.twig line 1

Open in your IDE?
  1. <div class="hidden">
  2.     {% for reserve in productreserve4_list %}
  3.             <p class="reservation4-comment" id="reservation4-comment{{ reserve.product_id }}">
  4.                 <span class="reservation4-shipping-date">発送予定日:{{ reserve.shipping_date }} </span>
  5.                 {% if reserve.start_date and reserve.end_date %}
  6.                 (予約受付期間 {{ reserve.start_date }} ~ 予約受付期間 {{ reserve.end_date }})
  7.                 {% elseif reserve.start_date %}
  8.                 (予約受付期間 {{ reserve.start_date }}~ )
  9.                 {% elseif reserve.end_date %}
  10.                 (予約受付期間 {{ reserve.end_date }}まで )
  11.                 {% endif %}
  12.             </p>
  13.     {% endfor %}
  14.     {% for reserve in productreserve4_class_list %}
  15.         <p class="reservation4-comment" id="reservation4-class-comment{{ reserve.product_id }}-{{ reserve.product_class_id }}">
  16.             <span class="reservation4-shipping-date">発送予定日:{{ reserve.shipping_date }} </span>
  17.             {% if reserve.start_date and reserve.end_date %}
  18.                 (予約受付期間 {{ reserve.start_date }} ~ 予約受付期間 {{ reserve.end_date }})
  19.             {% elseif reserve.start_date %}
  20.                 (予約受付期間 {{ reserve.start_date }}~ )
  21.             {% elseif reserve.end_date %}
  22.                 (予約受付期間 {{ reserve.end_date }}まで )
  23.             {% endif %}
  24.         </p>
  25.     {% endfor %}
  26. </div>
  27. <script>
  28.     $(function () {
  29.         let productreserve4_list = {{ productreserve4_list|json_encode|raw }};
  30.         let productreserve4_class_list = {{ productreserve4_class_list|json_encode|raw }};
  31.         let status_reserve = {{ constant('Plugin\\ProductReserve42\\Service\\ProductReserveService::STATUS_RESERVE') }};
  32.         let status_reserve_before = {{ constant('Plugin\\ProductReserve42\\Service\\ProductReserveService::STATUS_RESERVE_BEFORE') }};
  33.         let status_reserve_end = {{ constant('Plugin\\ProductReserve42\\Service\\ProductReserveService::STATUS_RESERVE_END') }};
  34.         for(let i in productreserve4_list) {
  35.             let product_reserve = productreserve4_list[i];
  36.             let product_id = product_reserve.product_id;
  37.             let product_reserve_status = product_reserve.product_reserve_status;
  38.             $('#reservation4-comment' + product_id).insertAfter($('#productForm' + product_id).parent().find("a p:nth-child(2)"));
  39.             if( product_reserve_status == status_reserve ) {
  40.                 $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart").html("予約する");
  41.             } else if( product_reserve_status == status_reserve_before || product_reserve_status == status_reserve_end ) {
  42.                 if( product_reserve_status == status_reserve_end ) {
  43.                     $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約受付終了");
  44.                 } else {
  45.                     $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約する");
  46.                 }
  47.             }
  48.             $('#productForm' + product_id + ' .ec-select select').on('change', function() {
  49.                 if( product_reserve_status == status_reserve ) {
  50.                     $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart").html("予約する");
  51.                 } else if( product_reserve_status == status_reserve_before || product_reserve_status == status_reserve_end ) {
  52.                     if( product_reserve_status == status_reserve_end ) {
  53.                         $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約受付終了");
  54.                     } else {
  55.                         $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約する");
  56.                     }
  57.                 }
  58.             });
  59.         }
  60.         var class_reserve_product_ids = [];
  61.         productreserve4_class_list.forEach(function(class_reserve) {
  62.             console.log('class_reserve_product_ids', class_reserve_product_ids);
  63.             if(class_reserve_product_ids.indexOf(class_reserve.product_id) == -1) {
  64.                 class_reserve_product_ids.push(class_reserve.product_id);
  65.             }
  66.         });
  67.         class_reserve_product_ids.forEach(function(item_product_id) {
  68.             $('#productForm' + item_product_id + ' .ec-select select').on('change', function(){
  69.                 $('button[data-cartid="' + item_product_id + '"]').removeClass("reservation4-add-cart").removeClass('reservation4-add-cart-disabled');
  70.                 $('#productForm' + item_product_id).parent().find("a p.reservation4-comment").remove();
  71.                 let class_category_id1 = $('#classcategory_id1' + item_product_id).val();
  72.                 let class_category_id2 = 0;
  73.                 if(class_category_id1 === "") {
  74.                     return;
  75.                 }
  76.                 if ($('#classcategory_id2' + item_product_id).length) {
  77.                     class_category_id2 = $('#classcategory_id2' + item_product_id).val();
  78.                     if(class_category_id2 === ""){
  79.                         return;
  80.                     }
  81.                     // console.log('category12 :', class_category_id1, class_category_id2);
  82.                 } else {
  83.                     // console.log('category1 :', class_category_id1);
  84.                 }
  85.                 class_category_id1 = Number(class_category_id1);
  86.                 class_category_id2 = Number(class_category_id2);
  87.                 for(let j in productreserve4_class_list) {
  88.                     let product_class_reserve = productreserve4_class_list[j];
  89.                     let product_id = product_class_reserve.product_id;
  90.                     let product_class_id = product_class_reserve.product_class_id;
  91.                     let product_class_category_id1 = product_class_reserve.product_class_category_id1;
  92.                     let product_class_category_id2 = product_class_reserve.product_class_category_id2;
  93.                     let product_reserve_status = product_class_reserve.product_reserve_status;
  94.                     if (item_product_id == product_id && product_class_category_id1 == class_category_id1){
  95.                         if (class_category_id2 == product_class_category_id2) {
  96.                             let reserve_info = $('#reservation4-class-comment' + product_id + '-' + product_class_id).clone();
  97.                             reserve_info.insertAfter($('#productForm' + product_id).parent().find("a p:nth-child(2)"));
  98.                             if( product_reserve_status == status_reserve ) {
  99.                                 $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart").html("予約する");
  100.                             } else if( product_reserve_status == status_reserve_before || product_reserve_status == status_reserve_end ) {
  101.                                 if( product_reserve_status == status_reserve_end ) {
  102.                                     $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約受付終了");
  103.                                 } else {
  104.                                     $('button[data-cartid="' + product_id + '"]').addClass("reservation4-add-cart-disabled").prop('disabled', true).html("予約する");
  105.                                 }
  106.                             }
  107.                         }
  108.                     }
  109.                 }
  110.             });
  111.         });
  112.     });
  113. </script>
  114. <style type="text/css">
  115.     .reservation4-comment { font-size: 14px; margin: 5px 0px; color: #000000;}
  116.     .reservation4-add-cart-disabled, .reservation4-add-cart { background-color: #30AADD ; border-color: #30AADD ;}
  117.     .reservation4-add-cart:hover { background-color: #15CBFF !important; ; border-color: #15CBFF !important; ;}
  118.     .reservation4-add-cart-disabled:hover {background-color: #30AADD !important; border-color: #30AADD !important;}
  119.     .reservation4-shipping-date { color: #000000; font-weight: 600; display: block;}
  120.     .reservation4-status-end { font-weight: 500; font-size: 24px;}
  121. </style>