app/Plugin/JaccsPayment/JaccsPaymentEvent.php line 147

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) LOCKON CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.lockon.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Plugin\JaccsPayment;
  13. use Doctrine\ORM\EntityManager;
  14. use Eccube\Entity\Order;
  15. use Eccube\Event\EccubeEvents;
  16. use Eccube\Event\EventArgs;
  17. use Eccube\Event\TemplateEvent;
  18. use Eccube\Repository\OrderRepository;
  19. use Plugin\JaccsPayment\Entity\Config;
  20. use Plugin\JaccsPayment\Entity\History;
  21. use Plugin\JaccsPayment\Entity\PaymentStatus;
  22. use Plugin\JaccsPayment\Entity\ShippingRequest;
  23. use Plugin\JaccsPayment\Form\Type\Admin\PaymentStatusType;
  24. use Plugin\JaccsPayment\Form\Type\Admin\ShippingRequestType;
  25. use Plugin\JaccsPayment\Lib\Inc;
  26. use Plugin\JaccsPayment\Lib\Xml\Getauthori;
  27. use Plugin\JaccsPayment\Repository\ConfigRepository;
  28. use Plugin\JaccsPayment\Repository\HistoryRepository;
  29. use Plugin\JaccsPayment\Repository\PaymentStatusRepository;
  30. use Plugin\JaccsPayment\Repository\ReOrderRepository;
  31. use Plugin\JaccsPayment\Service\Method\JaccsPayment;
  32. use Plugin\JaccsPayment\Util\GetauthoriBatch;
  33. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  34. use Symfony\Bundle\FrameworkBundle\Routing\Router;
  35. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  36. use Symfony\Component\Form\FormEvents;
  37. use Symfony\Component\Form\FormFactoryInterface;
  38. use Symfony\Component\HttpFoundation\RedirectResponse;
  39. class JaccsPaymentEvent implements EventSubscriberInterface
  40. {
  41.     /**
  42.      * @var OrderRepository
  43.      */
  44.     protected $orderRepository;
  45.     /**
  46.      * @var PaymentStatusRepository
  47.      */
  48.     protected $paymentStatusRepository;
  49.     /**
  50.      * @var ConfigRepository
  51.      */
  52.     protected $configRepository;
  53.     /**
  54.      * @var HistoryRepository
  55.      */
  56.     protected $historyRepository;
  57.     /**
  58.      * @var ReOrderRepository
  59.      */
  60.     protected $reOrderRepository;
  61.     /**
  62.      * @var GetauthoriBatch
  63.      */
  64.     protected $getauthoriBatch;
  65.     /**
  66.      * @var Router
  67.      */
  68.     protected $router;
  69.     /**
  70.      * @var EntityManager
  71.      */
  72.     protected $entityManager;
  73.     /**
  74.      * @var FormFactoryInterface
  75.      */
  76.     protected $formFactory;
  77.     /**
  78.      * JaccsPaymentEvent constructor.
  79.      * @param OrderRepository $orderRepository
  80.      * @param PaymentStatusRepository $paymentStatusRepository
  81.      * @param ConfigRepository $configRepository
  82.      * @param HistoryRepository $historyRepository
  83.      * @param ReOrderRepository $reOrderRepository
  84.      * @param GetauthoriBatch $getauthoriBatch
  85.      * @param Router $router
  86.      * @param EntityManager $entityManager
  87.      * @param FormFactoryInterface $formFactory
  88.      */
  89.     public function __construct(
  90.         OrderRepository $orderRepository,
  91.         PaymentStatusRepository $paymentStatusRepository,
  92.         ConfigRepository $configRepository,
  93.         HistoryRepository $historyRepository,
  94.         ReOrderRepository $reOrderRepository,
  95.         GetauthoriBatch $getauthoriBatch,
  96.         Router $router,
  97.         EntityManager $entityManager,
  98.         FormFactoryInterface $formFactory
  99.     ) {
  100.         $this->orderRepository $orderRepository;
  101.         $this->paymentStatusRepository $paymentStatusRepository;
  102.         $this->configRepository $configRepository;
  103.         $this->historyRepository $historyRepository;
  104.         $this->reOrderRepository $reOrderRepository;
  105.         $this->getauthoriBatch $getauthoriBatch;
  106.         $this->router $router;
  107.         $this->entityManager $entityManager;
  108.         $this->formFactory $formFactory;
  109.     }
  110.     /**
  111.      * @return array
  112.      */
  113.     public static function getSubscribedEvents()
  114.     {
  115.         return [
  116.             'Mypage/index.twig' => 'onMypageIndex',
  117.             'Mypage/history.twig' => 'onMypageHistory',
  118.             'Shopping/index.twig' => 'onDefaultShoppingIndex',
  119.             'Shopping/confirm.twig' => 'onDefaultShoppingConfirm',
  120.             '@admin/Order/edit.twig' => 'onAdminOrderEditTwig',
  121.             '@admin/Order/index.twig' => 'onAdminOrderIndex',
  122.        //     '@admin/index.twig' => 'onAdminIndex',
  123.             EccubeEvents::ADMIN_ORDER_EDIT_INDEX_INITIALIZE => 'onAdminOrderEditIndexInitalize',
  124.             EccubeEvents::ADMIN_ORDER_INDEX_INITIALIZE => 'onAdminIndexInitalize',
  125.             EccubeEvents::ADMIN_ORDER_INDEX_SEARCH => 'onAdminIndexSearch',
  126.             '@JaccsPayment/default/jaccs_error.twig' => 'onJaccsPaymentJaccsErrorTwig',
  127.         ];
  128.     }
  129.     /**
  130.      * @param TemplateEvent $event
  131.      */
  132.     public function onMypageIndex(TemplateEvent $event)
  133.     {
  134.         $source $event->getSource();
  135.         $oldB '<dd>{{ Order.CustomerOrderStatus }}</dd>';
  136.         $reStr '<dd>{% if Order.isJaccsPayment %}{{ Order.CustomerJacccsStatus }}{% else %}{{ Order.CustomerOrderStatus }}{% endif %}</dd>';
  137.         $source str_replace($oldB$reStr$source);
  138.         $event->setSource($source);
  139.     }
  140.     /**
  141.      * @param TemplateEvent $event
  142.      */
  143.     public function onMypageHistory(TemplateEvent $event)
  144.     {
  145.         $source $event->getSource();
  146.         $oldB '<dd>{{ Order.CustomerOrderStatus }}</dd>';
  147.         $reStr '<dd>{% if Order.isJaccsPayment %}{{ Order.CustomerJacccsStatus }}{% else %}{{ Order.CustomerOrderStatus }}{% endif %}</dd>';
  148.         $source str_replace($oldB$reStr$source);
  149.         $event->setSource($source);
  150.     }
  151.     /**
  152.      * @param TemplateEvent $event
  153.      */
  154.     public function onAdminIndex(TemplateEvent $event)
  155.     {
  156.         $source $event->getSource();
  157.         $oldB '</div><!-- /.c-primaryCol -->';
  158.         $reStr '
  159.         <div class="row">
  160.             <div class="col mb-4">
  161.                 <div id="shop-statistical" class="card rounded border-0 h-100">
  162.                     <div class="card-header">
  163.                         <div class="d-inline-block" data-toggle="tooltip" data-placement="top"
  164.                              title="Tooltip">
  165.                             <span class="card-title">{{ \'jaccs_payment.admin.index.title\'|trans }}</span>
  166.                             <i class="fa fa-question-circle fa-lg ml-1" aria-hidden="true"></i>
  167.                         </div>
  168.                     </div>
  169.                     <div class="card-body p-0">
  170.                         <div class="d-block p-3 border border-top-0 border-left-0 border-right-0">
  171.                             <div class="row align-items-center">
  172.                                 <div class="col-2 align-middle text-center">
  173.                                     <i class="fa fa-inbox fa-2x text-secondary" aria-hidden="true"></i>
  174.                                 </div>
  175.                                 <div class="col p-0">
  176.                                     <span class="align-middle">{{ \'jaccs_payment.admin.index.1\'|trans }}</span>
  177.                                 </div>
  178.                                 <div class="col-auto text-right align-middle">
  179.                                     <span class="h4 align-middle font-weight-normal">{{ jaccsStatusCount[20002]|number_format }}</span>
  180.                                 </div>
  181.                             </div>
  182.                         </div>
  183.                         <div class="d-block p-3 border border-top-0 border-left-0 border-right-0">
  184.                             {# TODO: Link, Number of products handled #}
  185.                             <div class="row align-items-center">
  186.                                 <div class="col-2 align-middle text-center">
  187.                                     <i class="fa fa-inbox fa-2x text-secondary" aria-hidden="true"></i>
  188.                                 </div>
  189.                                 <div class="col p-0">
  190.                                     <span class="align-middle">{{ \'jaccs_payment.admin.index.2\'|trans }}</span>
  191.                                 </div>
  192.                                 <div class="col-auto text-right align-middle">
  193.                                     <span class="h4 align-middle font-weight-normal">{{ jaccsStatusCount[20003]|number_format }}</span>
  194.                                 </div>
  195.                             </div>
  196.                         </div>
  197.                         <div class="d-block p-3 border border-top-0 border-left-0 border-right-0">
  198.                             <div class="row align-items-center">
  199.                                 <div class="col-2 align-middle text-center">
  200.                                     <i class="fa fa-inbox fa-2x text-secondary" aria-hidden="true"></i>
  201.                                 </div>
  202.                                 <div class="col p-0">
  203.                                     <span class="align-middle">{{ \'jaccs_payment.admin.index.3\'|trans }}</span>
  204.                                 </div>
  205.                                 <div class="col-auto text-check align-middle">
  206.                                     <span class="h4 align-middle font-weight-normal">{{ jaccsStatusCount[20005]|number_format }}</span>
  207.                                 </div>
  208.                             </div>
  209.                         </div>
  210.                         <div class="d-block p-3 border border-top-0 border-left-0 border-right-0">
  211.                             <div class="row align-items-center">
  212.                                 <div class="col-2 align-middle text-center">
  213.                                     <i class="fa fa-inbox fa-2x text-secondary" aria-hidden="true"></i>
  214.                                 </div>
  215.                                 <div class="col p-0">
  216.                                     <span class="align-middle">{{ \'jaccs_payment.admin.index.4\'|trans }}</span>
  217.                                 </div>
  218.                                 <div class="col-auto text-check align-middle">
  219.                                     <span class="h4 align-middle font-weight-normal">{{ jaccsStatusCount[20006]|number_format }}</span>
  220.                                 </div>
  221.                             </div>
  222.                         </div>
  223.                         {% if jaccsConfig.batch_type != 1 %}
  224.                         <div class="d-block p-3 border border-top-0 border-left-0 border-right-0">
  225.                         
  226.                             <button class="btn btn-ec-regular" type="button" onclick=\'window.open("{{ url(\'jaccs_payment_admin_batch\', {\'mode\': \'start\'}) }}", "batch", "height=800, width=800, top=10, left=10, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no")\'>
  227.                                 <i class="fa mr-1 text-secondary"></i><span>{{ \'jaccs_payment.admin.index.batch\'|trans }}</span>
  228.                             </button>
  229.                         </div>
  230.                         {% endif %}
  231.                     </div>
  232.                 </div><!-- /#shop-statistical -->
  233.             </div>
  234.             <div class="col mb-4">
  235.             </div>
  236.         </div>
  237.         </div>';
  238.         $source str_replace($oldB$reStr$source);
  239.         $event->setSource($source);
  240.         $allStatus $this->paymentStatusRepository->findBy([
  241.             'id' => [PaymentStatus::JACCS_ORDER_PRE_ENDPaymentStatus::JACCS_ORDER_PENDINGPaymentStatus::JACCS_ORDER_NGPaymentStatus::JACCS_ORDER_ERRORPaymentStatus::JACCS_ORDER_PENDING_MANUAL],
  242.         ]);
  243.         $jaccsStatusCount = [];
  244.         if (count($allStatus)) {
  245.             $data $this->orderRepository->createQueryBuilder('o')
  246.                 ->select('count(o.id) con, IDENTITY(o.JaccsPaymentPaymentStatus) status')
  247.                 ->groupBy('o.JaccsPaymentPaymentStatus')
  248.                 ->where('o.JaccsPaymentPaymentStatus in (:status)')
  249.                 ->setParameter('status'$allStatus)
  250.                 ->getQuery()
  251.                 ->getArrayResult();
  252.             foreach ($data as $item) {
  253.                 $jaccsStatusCount[$item['status']] = $item['con'];
  254.             }
  255.             foreach ($allStatus as $data) {
  256.                 if (!array_key_exists($data->getId(), $jaccsStatusCount)) {
  257.                     $jaccsStatusCount[$data->getId()] = 0;
  258.                 }
  259.             }
  260.         }
  261.         $event->setParameter('jaccsStatusCount'$jaccsStatusCount);
  262.         $config $this->configRepository->get();
  263.         if (!$config) {
  264.             $config = new Config();
  265.             $config->setBatchType(1);
  266.         }
  267.         $event->setParameter('jaccsConfig'$config);
  268.     }
  269.     /**
  270.      * @param TemplateEvent $event
  271.      */
  272.     public function onDefaultShoppingConfirm(TemplateEvent $event)
  273.     {
  274.         $source $event->getSource();
  275.         $oldB "<form id=\"shopping-form\" method=\"post\" action=\"{{ url('shopping_checkout') }}\">";
  276.         $reStar "<form id=\"shopping-form\" method=\"post\" action=\"{{ url('shopping_checkout') }}\">
  277.     <input type=\"hidden\" id=\"fraudbuster\" name=\"fraudbuster\" />
  278.     <script type=\"text/javascript\" language=\"javascript\" src=\"".Inc::fraudbuster_js_url.'"></script>
  279. ';
  280.         $source str_replace($oldB$reStar$source);
  281.         $event->setSource($source);
  282.     }
  283.     /**
  284.      * @param TemplateEvent $event
  285.      */
  286.     public function onDefaultShoppingIndex(TemplateEvent $event)
  287.     {
  288.         $source $event->getSource();
  289.         $oldB '{% if Payment.payment_image is not null %}';
  290.         $reStar "
  291. {% if Payment.method_class == 'Plugin\\\JaccsPayment\\\Service\\\Method\\\JaccsPayment' %}
  292.     <a href=\"http://c.atodene.jp/rule/\" target=\"_blank\"><img src=\"{{ asset('jaccs_default_468x64.gif', 'save_image') }}\" alt=\"後払い決済サービス「アトディーネ」\" /></a><br />
  293.     ジャックス・ペイメント・ソリューションズ株式会社が提供する後払い決済サービスです。<br />
  294.     購入商品の到着を確認してから、コンビニエンスストア・金融機関で後払いできる安心・簡単な決済方法です。<br />
  295.     請求書は、商品とは別に郵送されますので、発行から14日以内にお支払ください。<br />
  296.     <br />
  297.     アトディーネ決済手数料:<span style=\"font-weight:bold;\">{{ Payment.charge|number_format }} 円(税込)</span><br />
  298.     {% if Payment.rule_max %}
  299.     ご利用限度額:<span style=\"color:#ff0000;\">累計残高で{{ Payment.rule_max|number_format }} 円(税込)迄(他店舗含む)</span><br />
  300.     {% endif %}
  301.     <br />
  302.     <span style=\"color:#ff0000;\">お客様は上記バナーをクリックし「注意事項」及び「個人情報の取扱いについて」に記載の内容をご確認・ご承認の上、<br />
  303.     本サービスのお申し込みを行うものとします。<br />
  304.     ※ご承認いただけない場合は本サービスのお申し込みをいただけませんので、ご了承ください。<br />
  305.     支払い伝票は後日にて発送させていただきます、商品とは同梱で発送されませんのであらかじめご了承ください。<br />
  306.     アトディーネ:後払い決済による商品返品は出来かねますのでご注意ください。
  307.     </span>
  308.     <br />
  309.     <br />
  310.     ※以下の場合サービスをご利用いただけません。予めご了承ください。<br />
  311.     ・郵便局留め・運送会社営業所留め(営業所での引き取り)<br />
  312.     ・商品の転送<br />
  313.     ・コンビニ店頭での受け渡し<br />
  314.     ※ご本人様確認のため、ご連絡させて頂くことがございます。予めご了承ください。
  315. {% endif %}
  316. {% if Payment.payment_image is not null %}";
  317.         $source str_replace($oldB$reStar$source);
  318.         $event->setSource($source);
  319.     }
  320.     /**
  321.      * @param TemplateEvent $event
  322.      */
  323.     protected function reHtmlOrderEditMain(TemplateEvent $event)
  324.     {
  325.         $source $event->getSource();
  326.         $oldB "{{ 'admin.order.orderer'|trans }}";
  327.         $reStr "
  328.                 {% if isJaccs %}
  329.                                 アトディーネ</span>
  330.                             </div>
  331.                         </div>
  332.                     </div>
  333.                 </div>
  334.                 <div class=\"collapse show ec-cardCollapse\" id=\"jasscInfo\">
  335.                     <div class=\"card-body\">
  336.                         {% if reHistoryData %}
  337.                             {% if Order.JaccsPaymentPaymentStatus %}
  338.                                 <div class=\"row mb-2\">
  339.                                     <div class=\"col-3\">
  340.                                         <div class=\"d-inline-block\"><span>決済ステータス</span></div>
  341.                                     </div>
  342.                                     <div class=\"col\">
  343.                                         {{ Order.JaccsPaymentPaymentStatus.name }}
  344.                                     </div>
  345.                                 </div>
  346.                             {% endif %}
  347.                             {% if reHistoryData.transaction_id %}
  348.                                 <div class=\"row mb-2\">
  349.                                     <div class=\"col-3\">
  350.                                         <div class=\"d-inline-block\"><span>お問い合わせ番号</span></div>
  351.                                     </div>
  352.                                     <div class=\"col\">
  353.                                         {{ reHistoryData.transaction_id }}
  354.                                     </div>
  355.                                 </div>
  356.                             {% endif %}
  357.                             {% if reHistoryDataDetail.auto_authoriresult %}
  358.                                 <div class=\"row mb-2\">
  359.                                     <div class=\"col-3\">
  360.                                         <div class=\"d-inline-block\"><span>自動審査結果</span></div>
  361.                                     </div>
  362.                                     <div class=\"col\">
  363.                                         {{ reHistoryDataDetail.auto_authoriresult }}
  364.                                     </div>
  365.                                 </div>
  366.                             {% endif %}
  367.                             {% if reHistoryDataDetail.manual_authoriresult %}
  368.                                 <div class=\"row mb-2\">
  369.                                     <div class=\"col-3\">
  370.                                         <div class=\"d-inline-block\"><span>目視審査結果</span></div>
  371.                                     </div>
  372.                                     <div class=\"col\">
  373.                                         {{ reHistoryDataDetail.manual_authoriresult }}
  374.                                     </div>
  375.                                 </div>
  376.                             {% endif %}
  377.                             {% if reHistoryDataDetail.manual_authorireasons|length %}
  378.                                 <div class=\"row mb-2\">
  379.                                     <div class=\"col-3\">
  380.                                         <div class=\"d-inline-block\"><span>目視審査結果理由</span></div>
  381.                                     </div>
  382.                                     <div class=\"col\">
  383.                                         {% for manual_authorireason in reHistoryDataDetail.manual_authorireasons %}
  384.                                             {{ manual_authorireason }}<br/>
  385.                                         {% endfor %}
  386.                                     </div>
  387.                                 </div>
  388.                             {% endif %}
  389.                         {% endif %}
  390.                         
  391.                         {% if jacssError|length %}
  392.                             <div class=\"row mb-2\">
  393.                                 <div class=\"col-3\">
  394.                                     <div class=\"d-inline-block\"><span>アトディーネ登録エラー</span></div>
  395.                                 </div>
  396.                                 <div class=\"col\">
  397.                                     {% for error in jacssError %}
  398.                                         {{ error }}<br/>
  399.                                     {% endfor %}
  400.                                 </div>
  401.                             </div>
  402.                         {% endif %}
  403.                         
  404.                         {% if (reHistoryData and reHistoryData.create_date) %}
  405.                             <div class=\"row mb-2\">
  406.                                 <div class=\"col-3\">
  407.                                     <div class=\"d-inline-block\"><span>通信時間</span></div>
  408.                                 </div>
  409.                                 <div class=\"col\">
  410.                                     {{ reHistoryData.create_date|date_min }}
  411.                                 </div>
  412.                             </div>
  413.                         {% endif %}
  414.                        
  415.                         <div class=\"row mb-2\">
  416.                             <div class=\"col-3\">
  417.                                 <div class=\"d-inline-block\"><span>操作</span></div>
  418.                             </div>
  419.                             <div class=\"col\">
  420.                                 {% if isSendTransaction %}
  421.                                     <a class=\"btn-normal\" href=\"javascript:;\" id=\"sendTransaction\">取引通信</a>
  422.                                 {% endif %}
  423.                                 {% if isSendGetauthori %}
  424.                                     <a class=\"btn-normal\" href=\"javascript:;\" id=\"sendChange\">取引変更</a>
  425.                                     <a class=\"btn-normal\" href=\"javascript:;\" id=\"sendGetauthori\">審査結果を取る</a>
  426.                                     <a class=\"btn-normal\" href=\"javascript:;\" id=\"sendCancel\">取引キャンセル</a>
  427.                                 {% endif %}
  428.                             </div>
  429.                             
  430.                             <script type=\"text/javascript\">
  431.                                 $(function() {
  432.                                     $(\"#sendTransaction\").click(function() {
  433.                                         $(\"input[name='mode']\").val('sendTransaction');
  434.                                         $(\"#sendTransaction\").unbind();
  435.                                         $(\"#sendTransaction\").click(function() {
  436.                                             alert('通信中ため少々待ちください。');
  437.                                             return false;
  438.                                         });
  439.                                         $(\"#form1\").submit();
  440.                                         return false;
  441.                                     });
  442.                                     
  443.                                     $(\"#sendGetauthori\").click(function() {
  444.                                         $(\"input[name='mode']\").val('sendGetauthori');
  445.                                         $(\"#sendGetauthori\").unbind();
  446.                                         $(\"#sendGetauthori\").click(function() {
  447.                                             alert('通信中ため少々待ちください。');
  448.                                             return false;
  449.                                         });
  450.                                         $(\"#form1\").submit();
  451.                                         return false;
  452.                                     });
  453.                                     
  454.                                     $(\"#sendChange\").click(function() {
  455.                                         $(\"input[name='mode']\").val('sendChange');
  456.                                         $(\"#sendChange\").unbind();
  457.                                         $(\"#sendChange\").click(function() {
  458.                                             alert('通信中ため少々待ちください。');
  459.                                             return false;
  460.                                         });
  461.                                         $(\"#form1\").submit();
  462.                                         return false;
  463.                                     });
  464.                                     
  465.                                     $(\"#sendCancel\").click(function() {
  466.                                     
  467.                                         if (confirm('取引をキャンセルしてもよろしいでしょうか?')) {
  468.                                             $(\"input[name='mode']\").val('sendCancel');
  469.                                             $(\"#sendCancel\").unbind();
  470.                                             $(\"#sendCancel\").click(function() {
  471.                                                 alert('通信中ため少々待ちください。');
  472.                                                 return false;
  473.                                             });
  474.                                             $(\"#form1\").submit();
  475.                                         }
  476.                                         
  477.                                         return false;
  478.                                     });
  479.                                 });
  480.                             </script>
  481.                         </div>
  482.                     </div>
  483.                 </div>
  484.             </div>
  485.            
  486.             {% if Order.JaccsPaymentPaymentStatus and Order.JaccsPaymentPaymentStatus.id == 20001 %}
  487.                 <div class=\"card rounded border-0 mb-4 h-adr\">
  488.                     <!-- 出荷情報 -->
  489.                     <div class=\"card-header\">
  490.                         <div class=\"row\">
  491.                             <div class=\"col-8\">
  492.                                <div class=\"d-inline-block\" data-tooltip=\"true\" data-placement=\"top\"
  493.                                 title=\"Tooltip\">
  494.                                     <span class=\"card-title\">{{ 'jaccs_payment.admin.order.shipping_shippingrequest'|trans }}</span>
  495.                                 </div>
  496.                             </div>
  497.                         </div>
  498.                     </div>
  499.                     
  500.                     <script>
  501.                         $(function() {
  502.                             $('#jaccsShippingRequestModalButton').on('click', function() {
  503.                             
  504.                                 $('.jaccs_shipping').hide();
  505.                                 $('#jaccsShippingRequestModalMess').html('処理中。');
  506.                             
  507.                                 $.ajax({
  508.                                     url: '{{ url('jaccs_payment_shipping_request') }}',
  509.                                     type: 'POST',
  510.                                     dataType: 'json',
  511.                                     data: {
  512.                                         'delivery_slip_no': $('#admin_jaccs_shipping_request_delivery_slip_no').val(),
  513.                                         'delivery_company_code': $('#admin_jaccs_shipping_request_delivery_company_code').val(),
  514.                                         'invoice_date': $('#admin_jaccs_shipping_request_invoice_date').val(),
  515.                                         'order_id': {{ Order.id }}
  516.                                     }
  517.                                 }).done(function(data) { 
  518.                                     $('#jaccsShippingRequestModalMess').html('');
  519.                                     if (data.status == 'ok') {
  520.                                         window.location.href='{{ url('admin_order_edit', {id: Order.id}) }}';
  521.                                     } else {
  522.                                         //$('#jaccsShippingRequestModalMess').html(JSON.stringify(data));
  523.                                        
  524.                                         var message = '';
  525.                                         
  526.                                         if (data.status != 'form_error') {
  527.                                             message += 'アトディーネ通信エラー:';
  528.                                         }
  529.                                        
  530.                                         for (var i in data.detail) {
  531.                                             message += i + ':' + data.detail[i];
  532.                                         }
  533.                                         
  534.                                         $('#jaccsShippingRequestModalMess').html(message);
  535.                                     }
  536.                                     $('.jaccs_shipping').show();    
  537.                                 }).fail(function(data) {
  538.                                     alert('jaccs shipping request failed.');
  539.                                     $('#jaccsShippingRequestModalMess').html('');
  540.                                     $('.jaccs_shipping').show();
  541.                                 });
  542.                             });
  543.                             
  544.                             $('#jaccsShippingRequestCancelModalButton').on('click', function() {
  545.                             
  546.                                 $('.jaccs_shipping').hide();
  547.                                 $('#jaccsShippingRequestModalMess').html('処理中。');
  548.                             
  549.                                 $.ajax({
  550.                                     url: '{{ url('jaccs_payment_shipping_request_cancel') }}',
  551.                                     type: 'POST',
  552.                                     dataType: 'json',
  553.                                     data: {
  554.                                         'order_id': {{ Order.id }}
  555.                                     }
  556.                                 }).done(function(data) {
  557.                                     $('#jaccsShippingRequestModalMess').html('');
  558.                                     if (data.status == 'ok') {
  559.                                         window.location.href='{{ url('admin_order_edit', {id: Order.id}) }}';
  560.                                     } else {
  561.                                         //$('#jaccsShippingRequestModalMess').html(JSON.stringify(data));
  562.                                         
  563.                                         var message = '';
  564.                                         
  565.                                         if (data.status != 'form_error') {
  566.                                             message += 'アトディーネ通信エラー:';
  567.                                         }
  568.                                        
  569.                                         for (var i in data.detail) {
  570.                                             message += i + ':' + data.detail[i];
  571.                                         }
  572.                                         
  573.                                         $('#jaccsShippingRequestModalMess').html(message);
  574.                                     }
  575.                                     
  576.                                     $('.jaccs_shipping').show();
  577.                                     
  578.                                 }).fail(function(data) {
  579.                                     alert('jaccs shipping request failed.');
  580.                                     $('#jaccsShippingRequestModalMess').html('');
  581.                                     $('.jaccs_shipping').show();
  582.                                 });
  583.                             });
  584.                         });
  585.                     </script>
  586.                         
  587.                     <div class=\"collapse show ec-cardCollapse\" id=\"jaccs_shipping_shippingrequest\">
  588.                         <div class=\"card-body\">
  589.                         
  590.                             {% for JaccsShippingRequest in Order.JaccsShippingRequests %}
  591.                                 <div class=\"row mb-2\">
  592.                                     <div class=\"col-3\">
  593.                                         <div class=\"d-inline-block\"><span>お問合せ番号</span></div>
  594.                                     </div>
  595.                                     <div class=\"col\">
  596.                                         {{ JaccsShippingRequest.transaction_id }}
  597.                                     </div>
  598.                                 </div>
  599.                                 <div class=\"row mb-2\">
  600.                                     <div class=\"col-3\">
  601.                                         <div class=\"d-inline-block\"><span>運送会社コード</span></div>
  602.                                     </div>
  603.                                     <div class=\"col\">
  604.                                         {{ jaccsShippingCompanyCode[JaccsShippingRequest.delivery_company_code] }}
  605.                                     </div>
  606.                                 </div>
  607.                                 <div class=\"row mb-2\">
  608.                                     <div class=\"col-3\">
  609.                                         <div class=\"d-inline-block\"><span>配送伝票番号</span></div>
  610.                                     </div>
  611.                                     <div class=\"col\">
  612.                                         {{ JaccsShippingRequest.delivery_slip_no }}
  613.                                     </div>
  614.                                 </div>
  615.                                 <div class=\"row mb-2\">
  616.                                     <div class=\"col-3\">
  617.                                         <div class=\"d-inline-block\"><span>請求書発行日</span></div>
  618.                                     </div>
  619.                                     <div class=\"col\">
  620.                                         {{ JaccsShippingRequest.invoice_date|date_day }}
  621.                                     </div>
  622.                                 </div>
  623.                             {% endfor %}
  624.                         
  625.                             <div class=\"row mb-3\">
  626.                                 <div class=\"col-6\">
  627.                                     <a class=\"btn btn-ec-regular mr-2 add\" data-toggle=\"modal\" data-target=\"#addJaccsShippingRequest\">{{ 'jaccs_payment.admin.order.shipping_shippingrequest'|trans }}</a>
  628.                                     <div class=\"modal fade\" id=\"addJaccsShippingRequest\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"addProduct\" aria-hidden=\"true\">
  629.                                         <div class=\"modal-dialog modal-lg\" role=\"document\">
  630.                                             <div class=\"modal-content\">
  631.                                                 <div class=\"modal-header\">
  632.                                                     <h5 class=\"modal-title\">{{ 'jaccs_payment.admin.order.shipping_shippingrequest'|trans }}</h5>
  633.                                                     <button class=\"close\" type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>
  634.                                                 </div>
  635.                                                 <div class=\"modal-body\">
  636.                                                     配送伝票番号: {{ form_widget(jaccsShippingRequestModalForm.delivery_slip_no) }}
  637.                                                     運送会社: {{ form_widget(jaccsShippingRequestModalForm.delivery_company_code) }}
  638.                                                     請求書発行日: {{ form_widget(jaccsShippingRequestModalForm.invoice_date) }}
  639.                                                     
  640.                                                     <button type=\"button\" id=\"jaccsShippingRequestModalButton\" class=\"btn btn-ec-conversion px-5 mb-4 mt-2 jaccs_shipping\">{{ 'jaccs_payment.admin.order.shipping_shippingrequest_btn'|trans }}</button>
  641.                                                     <button type=\"button\" id=\"jaccsShippingRequestCancelModalButton\" class=\"btn btn-ec-conversion px-5 mb-4 mt-2 jaccs_shipping\">{{ 'jaccs_payment.admin.order.shipping_shippingrequest_cancel'|trans }}</button>
  642.                                                     <div id=\"jaccsShippingRequestModalMess\"></div>
  643.                                                 </div>
  644.                                             </div>
  645.                                         </div>
  646.                                     </div>      
  647.                                 </div>
  648.                             </div>
  649.                         </div>
  650.                     </div>
  651.                 </div>
  652.             {% endif %}
  653.             
  654.             <div class=\"card rounded border-0 mb-4\">
  655.                 <div class=\"card-header\">
  656.                     <div class=\"row\">
  657.                         <div class=\"col-2\">
  658.                             <div class=\"d-inline-block\" data-tooltip=\"true\" data-placement=\"top\" title=\"Tooltip\"><span class=\"card-title\">
  659.                             {% endif %}{{ 'admin.order.orderer'|trans }}";
  660.         $source str_replace($oldB$reStr$source);
  661.         $event->setSource($source);
  662.         $pas $event->getParameters();
  663.         // 商品検索フォーム
  664.         $builder $this->formFactory->createBuilder(ShippingRequestType::class);
  665.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (\Symfony\Component\Form\FormEvent $event) use($pas) {
  666.             /** @var $order \Eccube\Entity\Order */
  667.             $order $pas['Order'];
  668.             $reqs $order->getJaccsShippingRequests();
  669.             if (!is_null($reqs) && count($reqs)) {
  670.                 /** @var $req \Plugin\JaccsPayment\Entity\ShippingRequest */
  671.                 $req $reqs[0];
  672.                 $req->getDeliveryCompanyCode();
  673.                 $arrData = [
  674.                     'delivery_slip_no' => $req->getDeliverySlipNo(),
  675.                     'delivery_company_code' => $req->getDeliveryCompanyCode(),
  676.                 ];
  677.                 if ($req->getInvoiceDate()) {
  678.                     $arrData['invoice_date'] = $req->getInvoiceDate()->format('Y/m/d');
  679.                 }
  680.                 $event->setData($arrData);
  681.             }
  682.         });
  683.         $jaccsShippingRequestModalForm $builder->getForm();
  684.         $pas array_merge($pas, [
  685.             'jaccsShippingRequestModalForm' => $jaccsShippingRequestModalForm->createView(),
  686.             'jaccsShippingCompanyCode' => ShippingRequest::$DeliverCompanyCode,
  687.         ]);
  688.         $event->setParameters($pas);
  689.     }
  690.     /**
  691.      * @param TemplateEvent $event
  692.      */
  693.     public function reHtmlOrderEditCustomer(TemplateEvent $event)
  694.     {
  695.         $source $event->getSource();
  696.         $oldB '<div class="collapse {{ id ? \'\' : \'show\' }} ec-cardCollapse h-adr" id="ordererInfo">';
  697.         $reStr '<div class="collapse {{ id ? \'\' : \'show\' }} ec-cardCollapse h-adr" id="ordererInfo">
  698. {% if isJaccs and jaccsCustomerError|length %}
  699.     <div class="card-body">
  700.         <p class="form-text font-weight-bold text-danger mb-0">
  701.             {% for error in jaccsCustomerError %}
  702.                 {{ error }}<br/>
  703.             {% endfor %}
  704.         </p>
  705.     </div>
  706. {% endif %}';
  707.         $source str_replace($oldB$reStr$source);
  708.         $event->setSource($source);
  709.     }
  710.     /**
  711.      * @param TemplateEvent $event
  712.      */
  713.     public function reHtmlOrderEditShip(TemplateEvent $event)
  714.     {
  715.         $source $event->getSource();
  716.         $oldB '<div class="collapse show ec-cardCollapse" id="shippingInfo">';
  717.         $reStr '<div class="collapse show ec-cardCollapse" id="shippingInfo">
  718. {% if isJaccs and jaccsShipError|length %}
  719.     <div class="card-body">
  720.         <p class="form-text font-weight-bold text-danger mb-0">
  721.             {% for error in jaccsShipError %}
  722.                 {{ error }}<br/>
  723.             {% endfor %}
  724.         </p>
  725.     </div>
  726. {% endif %}';
  727.         $source str_replace($oldB$reStr$source);
  728.         $event->setSource($source);
  729.     }
  730.     /**
  731.      * @param TemplateEvent $event
  732.      */
  733.     public function reHtmlOrderEditDetail(TemplateEvent $event)
  734.     {
  735.         $source $event->getSource();
  736.         $oldB '<div class="collapse show ec-cardCollapse" id="orderItem">';
  737.         $reStr '<div class="collapse show ec-cardCollapse" id="orderItem">
  738. {% if isJaccs and jaccsDetailsError|length %}
  739.     <div class="card-body">
  740.         <p class="form-text font-weight-bold text-danger mb-0">
  741.             {% for error in jaccsDetailsError %}
  742.                 {{ error }}<br/>
  743.             {% endfor %}
  744.         </p>
  745.     </div>
  746. {% endif %}';
  747.         $source str_replace($oldB$reStr$source);
  748.         $event->setSource($source);
  749.     }
  750.     /**
  751.      * @param TemplateEvent $event
  752.      */
  753.     public function onAdminOrderIndex(TemplateEvent $event)
  754.     {
  755.         $source $event->getSource();
  756.         $oldB '<div class="row mb-2">';
  757.         $reStr '
  758.                 <div class="row mb-2">
  759.                     <div class="col">
  760.                         <div class="form-row">
  761.                             <div class="col-12">
  762.                                 <p class="col-form-label">{{ \'searchorder.label.jaccs_payment.payment_status\'|trans }}</p>
  763.                                 {{ form_widget(searchForm.jaccs_payment_payment_status, {\'attr\': {\'class\': \'form-check form-check-inline\'}}) }}
  764.                                 {{ form_errors(searchForm.jaccs_payment_payment_status) }}
  765.                             </div>
  766.                         </div>
  767.                     </div>
  768.                 </div>
  769. <div class="row mb-2">';
  770.         $limit 1;
  771.         $source str_replace($oldB$reStr$source$limit);
  772.         $oldB '<th class="border-top-0 pt-2 pb-2 text-center">{{ \'admin.order.order_status\'|trans }}</th>';
  773.         $reStr '<th class="border-top-0 pt-2 pb-2 text-center">{{ \'admin.order.order_status\'|trans }}</th>';
  774.         $source str_replace($oldB$reStr$source);
  775.         $oldB '<span class="badge badge-ec-blue" style="background-color: #fff; color: {{ Order.OrderStatusColor }}; border-color: {{ Order.OrderStatusColor }}">{{ Order.OrderStatus }}</span>';
  776.         $reStr '<span class="badge badge-ec-blue" style="background-color: #fff; color: {{ Order.OrderStatusColor }}; border-color: {{ Order.OrderStatusColor }}">{{ Order.OrderStatus }}</span></td>';
  777.         // <td class="align-middle text-center">
  778.         // <span>{{ Order.JaccsPaymentPaymentStatus }}</span>';
  779.         $source str_replace($oldB$reStr$source);
  780.         $event->setSource($source);
  781.     }
  782.     /**
  783.      * @param TemplateEvent $event
  784.      */
  785.     public function onAdminOrderEditTwig(TemplateEvent $event)
  786.     {
  787.         $this->reHtmlOrderEditMain($event);
  788.         $this->reHtmlOrderEditCustomer($event);
  789.         $this->reHtmlOrderEditShip($event);
  790.         $this->reHtmlOrderEditDetail($event);
  791.         /** @var $reHistoryData History */
  792.         /** @var $errorHistory History */
  793.         $isJaccs false;
  794.         $reHistoryData null;
  795.         $reHistoryDataDetail = [
  796.             'result' => '',
  797.             'auto_authoriresult' => '',
  798.             'manual_authoriresult' => '',
  799.             'manual_authorireasons' => [],
  800.         ];
  801.         $errorHistory null;
  802.         $jacssError = [];
  803.         $jaccsDetailsError = [];
  804.         $jaccsCustomerError = [];
  805.         $jaccsShipError = [];
  806.         /** @var $Order Order */
  807.         $Order $event->getParameter('Order');
  808.         if ($Order->getPayment() && $Order->getPayment()->getMethodClass() == JaccsPayment::class) {
  809.             $isJaccs true;
  810.             if ($Order->getId()) {
  811.                 $reOrder $this->reOrderRepository->getReEditData($Order);
  812.                 if ($reOrder) {
  813.                     $errHistory $reOrder->getHistory();
  814.                     if ($errHistory) {
  815.                         $reHistoryData $errHistory;
  816.                         $data unserialize($errHistory->getItem());
  817.                         $objErrors $data->getErrors()->getErrors();
  818.                         if ($objErrors && count($objErrors)) {
  819.                             $itemVer $this->getItemVerifiction();
  820.                             foreach ($objErrors as $objError) {
  821.                                 $errorMess sprintf('※%s(code:%s point:%s)',
  822.                                     $objError->getErrorMessage(),
  823.                                     $objError->getErrorCode(),
  824.                                     $objError->getErrorPoint());
  825.                                 //ポイント(タグ名)によりエラーを分ける
  826.                                 switch ($objError->getErrorPoint()) {
  827.                                     case 'service':
  828.                                         $jacssError[] = $errorMess;
  829.                                         break;
  830.                                     case 'billedAmount':
  831.                                         $jaccsDetailsError[] = $errorMess;
  832.                                         break;
  833.                                     case array_key_exists($objError->getErrorPoint(), $itemVer['customer']):
  834.                                         $jaccsCustomerError[] = $errorMess;
  835.                                         break;
  836.                                     case array_key_exists($objError->getErrorPoint(), $itemVer['ship']):
  837.                                         $jaccsShipError[] = $errorMess;
  838.                                         break;
  839.                                     case array_key_exists($objError->getErrorPoint(), $itemVer['detail']):
  840.                                         $jaccsDetailsError[] = $errorMess;
  841.                                         break;
  842.                                     default:
  843.                                         $jacssError[] = $errorMess;
  844.                                         break;
  845.                                 }
  846.                             }
  847.                         } else {
  848.                             $jacssError[] = '※通信ログのご確認をお願いいたします。';
  849.                         }
  850.                     } else {
  851.                         $reHistoryData $this->historyRepository->getReHistory($Order);
  852.                     }
  853.                 } else {
  854.                     $reHistoryData $this->historyRepository->getReHistory($Order);
  855.                 }
  856.             }
  857.         }
  858.         if ($reHistoryData == null) {
  859.             $isSendTransaction true;
  860.             $isSendGetauthori false;
  861.         } else {
  862.             if ($reHistoryData->getItem()) {
  863.                 $detail unserialize($reHistoryData->getItem());
  864.                 $reHistoryDataDetail['result'] = $detail->getResult();
  865.                 if ($reHistoryDataDetail['result'] == 'OK') {
  866.                     if (method_exists($detail'getTransactionInfo') && method_exists($detail->getTransactionInfo(), 'getAutoAuthoriresult')) {
  867.                         //自動審査結果
  868.                         $reHistoryDataDetail['auto_authoriresult'] = $detail->getTransactionInfo()->getAutoAuthoriresult();
  869.                     }
  870.                     if ($detail instanceof Getauthori\Response) {//与信審査結果取得により
  871.                         //目視審査結果
  872.                         $reHistoryDataDetail['manual_authoriresult'] = $detail->getTransactionInfo()->getManualAuthoriresult();
  873.                         if ($detail->getTransactionInfo()->getManualAuthoriresult()) {
  874.                             //目視審査結果理由
  875.                             $reHistoryDataDetail['manual_authorireasons'] = $detail->getTransactionInfo()->getManualAuthorireasons()->getManualAuthorireason();
  876.                         }
  877.                     }
  878.                 }
  879.             }
  880.             list($isSendTransaction$isSendGetauthori) = $this->GetTransactionGetauthoriCheck($reHistoryData$reHistoryDataDetail);
  881.         }
  882.         $pas $event->getParameters();
  883.         $pas array_merge($pas, [
  884.             'isJaccs' => $isJaccs,
  885.             'reHistoryData' => $reHistoryData,
  886.             'reHistoryDataDetail' => $reHistoryDataDetail,
  887.             'errorHistory' => $errorHistory,
  888.             'jacssError' => $jacssError,
  889.             'jaccsDetailsError' => $jaccsDetailsError,
  890.             'jaccsCustomerError' => $jaccsCustomerError,
  891.             'jaccsShipError' => $jaccsShipError,
  892.             'isSendGetauthori' => $isSendGetauthori,
  893.             'isSendTransaction' => $isSendTransaction,
  894.         ]);
  895.         $event->setParameters($pas);
  896.     }
  897.     /**
  898.      * @param History $reHistoryData
  899.      * @param null $reHistoryDataDetail
  900.      *
  901.      * @return array
  902.      */
  903.     protected function GetTransactionGetauthoriCheck(History $reHistoryData$reHistoryDataDetail null)
  904.     {
  905.         if ($reHistoryDataDetail == null) {
  906.             $reHistoryDataDetail = [
  907.                 'result' => '',
  908.             ];
  909.             if ($reHistoryData->getItem()) {
  910.                 $detail unserialize($reHistoryData->getItem());
  911.                 $reHistoryDataDetail['result'] = $detail->getResult();
  912.             }
  913.         }
  914.         $isSendTransaction false;
  915.         $isSendGetauthori false;
  916.         if ($reHistoryData->getOrder()->getJaccsPaymentPaymentStatus() && $reHistoryData->getOrder()->getJaccsPaymentPaymentStatus()->getId() == PaymentStatus::JACCS_ORDER_CANCEL) {
  917.             $isSendTransaction true;
  918.             $isSendGetauthori false;
  919.         } else {
  920.             $sendTransactionStarus = [PaymentStatus::JACCS_ORDER_ERRORPaymentStatus::JACCS_ORDER_CANCEL];
  921.             if (!$reHistoryData) {
  922.                 $isSendTransaction true;
  923.             } elseif (!$reHistoryData->getOrder()->getJaccsPaymentPaymentStatus() || in_array($reHistoryData->getOrder()->getJaccsPaymentPaymentStatus()->getId(), $sendTransactionStarus)) {
  924.                 $isSendTransaction true;
  925.             } else {
  926.                 $isSendGetauthori true;
  927.             }
  928.         }
  929.         return [$isSendTransaction$isSendGetauthori];
  930.     }
  931.     protected $verification = [];
  932.     /**
  933.      * @return array
  934.      */
  935.     protected function getItemVerifiction()
  936.     {
  937.         if (!count($this->verification)) {
  938.             $this->verification['customer'] = [
  939.                 'name' => 21,
  940.                 'kanaName' => 25,
  941.                 'zip' => 8,
  942.                 'address' => 55,
  943.                 'companyName' => 30,
  944.                 'tel' => 15,
  945.                 'email' => 100,
  946.                 'billedAmount' => 6,
  947.                 'service' => 2,
  948.             ];
  949.             $this->verification['ship'] = [
  950.                 'shipName' => 21,
  951.                 'shipKananame' => 25,
  952.                 'shipZip' => 8,
  953.                 'shipAddress' => 55,
  954.                 'shipCompanyName' => 30,
  955.                 'shipTel' => 15,
  956.             ];
  957.             $this->verification['detail'] = [
  958.                 'goods' => 150,
  959.                 'goodsPrice' => 6,
  960.                 'goodsAmount' => 5,
  961.             ];
  962.         }
  963.         return $this->verification;
  964.     }
  965.     /**
  966.      * @param EventArgs $eventArgs
  967.      *
  968.      * @throws Lib\JaccsException
  969.      * @throws \Doctrine\ORM\ORMException
  970.      * @throws \Doctrine\ORM\OptimisticLockException
  971.      */
  972.     public function onAdminOrderEditIndexInitalize(EventArgs $eventArgs)
  973.     {
  974.         $mode $eventArgs->getRequest()->get('mode');
  975.         /** @var $Order Order */
  976.         $Order $eventArgs->getArgument('TargetOrder');
  977.         if (!$Order || !$Order->getPayment() || $Order->getPayment()->getMethodClass() != JaccsPayment::class) {
  978.             return;
  979.         }
  980.         $config $this->configRepository->get();
  981.         if (!$config) {
  982.             return;
  983.         }
  984.         //---form項目追加
  985.         /** @var $builder \Symfony\Component\Form\FormBuilder */
  986.         $builder $eventArgs->getArgument('builder');
  987.         /*
  988.         $builder->add('JaccsShippingRequests', CollectionType::class, [
  989.             'entry_type' => ShippingRequestType::class,
  990.             'allow_add' => true,
  991.             'allow_delete' => true,
  992.             'prototype' => true,
  993.         ]);
  994.         */
  995.         //---操作
  996.         /** @var $reHistoryData History */
  997.         $reHistoryData $this->historyRepository->getReHistory($Order);
  998.         if ($reHistoryData) {
  999.             list($isSendTransaction$isSendGetauthori) = $this->GetTransactionGetauthoriCheck($reHistoryData);
  1000.         } else {
  1001.             $isSendGetauthori false;
  1002.             $isSendTransaction true;
  1003.         }
  1004.         if ($mode == 'sendGetauthori' || $mode == 'sendTransaction' || $mode == 'sendChange' || $mode == 'sendCancel') {
  1005.             $status 0;
  1006.             if ($mode == 'sendGetauthori' && $isSendGetauthori) {
  1007.                 $status $this->getauthoriBatch->Getauthor($config$Order$reHistoryData->getTransactionId(), true);
  1008.             } elseif ($mode == 'sendTransaction' && $isSendTransaction) {
  1009.                 $status $this->getauthoriBatch->Transaction($config$Order);
  1010.             } elseif ($mode == 'sendChange' && $isSendGetauthori) {
  1011.                 $status $this->getauthoriBatch->Modifytransaction($config$Order$reHistoryData->getTransactionId());
  1012.             } elseif ($mode == 'sendCancel' && !$isSendTransaction) {
  1013.                 $status $this->getauthoriBatch->Cancel($config$Order$reHistoryData->getTransactionId());
  1014.             }
  1015.             if ($status == 2) {
  1016.                 $eventArgs->getRequest()->getSession()->getFlashBag()->add('eccube.admin.error''アトディーネ取引エラー発生しました。');
  1017.             } else {
  1018.                 $eventArgs->getRequest()->getSession()->getFlashBag()->add('eccube.admin.info''アトディーネ取引成功。');
  1019.             }
  1020.             $eventArgs->setResponse(new RedirectResponse($this->router->generate('admin_order_edit', ['id' => $Order->getId()])));
  1021.         }
  1022.     }
  1023.     /**
  1024.      * @param EventArgs $eventArgs
  1025.      */
  1026.     public function onAdminIndexInitalize(EventArgs $eventArgs)
  1027.     {
  1028.         /** @var $builder \Symfony\Component\Form\FormBuilder */
  1029.         $builder $eventArgs->getArgument('builder');
  1030.         $builder->add('jaccs_payment_payment_status'PaymentStatusType::class, [
  1031.             'label' => 'searchorder.label.jaccs_payment.payment_status',
  1032.             'expanded' => true,
  1033.             'multiple' => true,
  1034.         ]);
  1035.     }
  1036.     /**
  1037.      * @param EventArgs $eventArgs
  1038.      */
  1039.     public function onAdminIndexSearch(EventArgs $eventArgs)
  1040.     {
  1041.         /** @var $qb \Doctrine\ORM\QueryBuilder */
  1042.         $qb $eventArgs->getArgument('qb');
  1043.         $searchData $eventArgs->getArgument('searchData');
  1044.         if (!empty($searchData['jaccs_payment_payment_status']) && count($searchData['jaccs_payment_payment_status'])) {
  1045.             $qb->andWhere($qb->expr()->in('o.JaccsPaymentPaymentStatus'':jaccs_payment_payment_status'))
  1046.                 ->setParameter('jaccs_payment_payment_status'$searchData['jaccs_payment_payment_status']);
  1047.         }
  1048.     }
  1049.     public function onJaccsPaymentJaccsErrorTwig(TemplateEvent $event)
  1050.     {
  1051.         $JaccsPaymentError = [];
  1052.         $Order $event->getParameter('Order');
  1053.         if ($Order->getId()) {
  1054.             $reOrder $this->reOrderRepository->getReEditData($Order);
  1055.             if ($reOrder) {
  1056.                 $errHistory $reOrder->getHistory();
  1057.                 if ($errHistory) {
  1058.                     $reHistoryData $errHistory;
  1059.                     $data unserialize($errHistory->getItem());
  1060.                     $objErrors $data->getErrors()->getErrors();
  1061.                     if ($objErrors && count($objErrors)) {
  1062.                         foreach ($objErrors as $objError) {
  1063.                             $errorMess sprintf('※%s(code:%s point:%s)',
  1064.                                 $objError->getErrorMessage(),
  1065.                                 $objError->getErrorCode(),
  1066.                                 $objError->getErrorPoint());
  1067.                             $JaccsPaymentError[] = $errorMess;
  1068.                         }
  1069.                     }
  1070.                 }
  1071.             }
  1072.         }
  1073.         $event->setParameter('JaccsPaymentError'$JaccsPaymentError);
  1074.     }
  1075. }