app/Plugin/SlnPayment42/Resource/template/admin/order_index.twig line 1

Open in your IDE?
  1. <script>
  2.     $(function () {
  3.         $('#search_box_sln_pay_status').appendTo($('#search_form > div.c-subContents'));
  4.         $('<th class="border-top-0 pt-2 pb-2 text-center">決済状況</th>').insertAfter($('#search_result > thead > tr > th:eq(3)'));
  5.         $('#sln_bulk_command').insertAfter($('#form_bulk > div:eq(0)'));
  6.         {% set count = 0 %}
  7.         {% for Order in pagination %}
  8.             {% for Shipping in Order.Shippings %} 
  9.                $('#search_result > tbody > tr:eq({{ count }}) > td:eq(3)').after( 
  10.                    '<td class="align-middle text-center">{% if viewPayStatus[Order.id] is defined %}{{ pay_status[viewPayStatus[Order.id].paymentStatus] }}{% endif %}</td>' 
  11.                ) 
  12.                {% set count = count+1 %} 
  13.            {% endfor %} 
  14.         {% endfor %}
  15.         // プログレスバーの表示を制御
  16.         $('#bulk_sln_payment').on('click', function (e) {
  17.             //alert(1119);
  18.             var eventTarget = $(e.currentTarget);
  19.             var type = eventTarget.data('type');
  20.             var modal = $('#sentUpdateModal');
  21.             var bootstrapModal = new bootstrap.Modal(modal.get(0));
  22.             bootstrapModal.show();
  23.             switch (type) {
  24.                 case 'sln_payment':
  25.                     if (eventTarget.data('bulk-update')) {
  26.                         if ($('#option_bulk_sln_payment').val() == '') {
  27.                             alert('クレジットカード決済を選択してください');
  28.                             return;
  29.                         }
  30.                         updater = new BulkPaymentUpdate(modal, eventTarget);
  31.                         modal.modal();
  32.                     } else {
  33.                         updater = new SimpleStatusUpdate(modal, eventTarget);
  34.                     }
  35.             }
  36.             $('.modal-title', modal).text(updater.modalTitle);
  37.             $('.modal-body > p.modal-message', modal).text("{{ 'admin.order.bulk_action__in_progress_message'|trans }}");
  38.             $('button', modal).hide();
  39.             $('#bulk-options').hide();
  40.             $('.progress', modal).show();
  41.             updater.totalCount = updater.getTotalCount();
  42.             var progress = new $.Deferred();
  43.             progress.progress(function () {
  44.                 updater.progress(this, progress);
  45.             }).fail(function () {
  46.                 updater.fail(this);
  47.             }).always(function () {
  48.                 updater.always(this);
  49.             });
  50.             updater.getPromises(progress);
  51.         });
  52.     });
  53.     /*
  54.      * 決済一括実行
  55.      */
  56.     function BulkPaymentUpdate(modal, eventTarget) {
  57.         ConfirmationModal.call(this, modal);
  58.         this.eventTarget = eventTarget;
  59.     }
  60.     // extend super class
  61.     BulkPaymentUpdate.prototype = Object.create(ConfirmationModal.prototype, {
  62.         constructor: {
  63.             value: ConfirmationModal
  64.         },
  65.         modalTitle: {
  66.             value: "クレジットカード決済"
  67.         },
  68.         getTotalCount: {
  69.             value: function () {
  70.                 return $('input[data-id]:checked').length;
  71.             }
  72.         },
  73.         getPromises: {
  74.             value: function (progress) {
  75.                 // return $('input[data-id]:checked').map(function () {
  76.                 //     var url = '{{ url('admin_order') }}' + '/' + $(this).data('id') + '/sln_pay_command';
  77.                 //     var data = {'pay_command': $('#option_bulk_sln_pay_command').val()};
  78.                 //     return ConfirmationModal.prototype.getPromises.call(this, progress, url, data);
  79.                 // });
  80.                 var slnOrders = [];
  81.                 $('input[data-id]:checked').each(function () {
  82.                     slnOrders.push({
  83.                         'url': '{{ url('admin_order') }}' + '/' + $(this).data('id') + '/sln_pay_command',
  84.                         'data': {'pay_command': $('#option_bulk_sln_pay_command').val()}
  85.                     });
  86.                 });
  87.                 // ポイントや在庫の加算・減算は非同期で実行できないため、同期処理で実行
  88.                 var callback = function () {
  89.                     var slnOrder = slnOrders.shift();
  90.                     var url = slnOrder.url;
  91.                     var data = slnOrder.data;
  92.                     ConfirmationModal.prototype.getPromises.call(this, progress, url, data)
  93.                         .done(function () {
  94.                             if (slnOrders.length) {
  95.                                 callback();
  96.                             }
  97.                         })
  98.                 }
  99.                 callback();
  100.             }
  101.         }
  102.     });
  103. </script>
  104. <div id="search_box_sln_pay_status" class="row mb-4">
  105.     <div class="col">
  106.         <div>
  107.             <div class="col-12">
  108.                 <p class="col-form-label">決済状況</p>
  109.                 <div>
  110.                     {{ form_widget(searchForm.sln_pay_status, { 'label_attr': { 'class': 'checkbox-inline'}}) }}
  111.                 </div>
  112.             </div>
  113.         </div>
  114.     </div>
  115.     <div class="col"></div>
  116. </div>
  117. <div class="mb-2" id="sln_bulk_command">
  118.     <div class="col btn-bulk-wrapper d-block text-end">
  119.         <div class="d-inline-block me-2">
  120.             <select class="form-select" id="option_bulk_sln_pay_command">
  121.                 <option value selected>決済変更処理</option>
  122.                 <option value="1">カード決済売上</option>
  123.                 <option value="2">決済取消</option>
  124.             </select>
  125.         </div>
  126.         <button type="button" id="bulk_sln_payment" class="btn btn-ec-regular me-2"
  127.             data-type="sln_payment"
  128.             data-bulk-update="true"
  129.             data-submit="bulk"
  130.         >実行</button>
  131.     </div>
  132. </div>