app/Plugin/ClaimPdf42/Controller/ClaimDownload/ClaimDownloadController.php line 119

Open in your IDE?
  1. <?php
  2. namespace Plugin\ClaimPdf42\Controller\ClaimDownload;
  3. use Eccube\Controller\AbstractController;
  4. use Knp\Component\Pager\PaginatorInterface;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Eccube\Repository\PageRepository;
  9. use Eccube\Repository\ProductRepository;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Eccube\Repository\OrderRepository;
  12. use Eccube\Entity\BaseInfo;
  13. use Eccube\Entity\Master\ProductStatus;
  14. use Eccube\Event\EccubeEvents;
  15. use Eccube\Event\EventArgs;
  16. use Eccube\Form\Type\AddCartType;
  17. use Eccube\Form\Type\SearchProductType;
  18. use Eccube\Repository\BaseInfoRepository;
  19. use Eccube\Repository\CustomerFavoriteProductRepository;
  20. use Eccube\Repository\Master\ProductListMaxRepository;
  21. use Eccube\Service\PurchaseFlow\PurchaseContext;
  22. use Eccube\Service\PurchaseFlow\PurchaseFlow;
  23. use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination;
  24. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  25. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  26. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  27. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  28. use Symfony\Component\Form\FormBuilder;
  29. use Symfony\Component\HttpFoundation\RedirectResponse;
  30. use Symfony\Component\HttpFoundation\StreamedResponse;
  31. use Eccube\Repository\ShippingRepository;
  32. use Plugin\ClaimPdf42\Entity\ClaimPdf;
  33. use Plugin\ClaimPdf42\Entity\ClaimHistory;
  34. use Plugin\ClaimPdf42\Form\Type\Admin\ClaimPdfType;
  35. use Plugin\ClaimPdf42\Form\Type\Admin\ClaimHistoryType;
  36. use Plugin\ClaimPdf42\Repository\ClaimPdfRepository;
  37. use Plugin\ClaimPdf42\Repository\ClaimHistoryRepository;
  38. use Plugin\ClaimPdf42\Service\ClaimPdfService;
  39. // ページ表示作業
  40. // dtb_page
  41. // INSERT INTO `dtb_page` (`master_page_id`, `page_name`, `url`, `file_name`, `edit_type`, `author`, `description`, `keyword`, `meta_robots`, `meta_tags`, `discriminator_type`) VALUES(NULL, 'NEWS 詳細', 'cm_blog_page_detail', 'web/detail', 2, NULL, NULL, NULL, NULL, NULL, 'page');
  42. // dtb_page_layout
  43. // page_id を 合わせるために、dtb_page_layout の page_id を 162 にする必要があります。
  44. // INSERT INTO `dtb_page_layout` (``, `layout_id`, `sort_no`, `discriminator_type`) VALUES (162, 2, 129, 'pagelayout');
  45. class ClaimDownloadController extends AbstractController
  46. {
  47.     /**
  48.      * @var OrderRepository
  49.      */
  50.     protected $orderRepository;
  51.     /**
  52.      * MypageController constructor.
  53.      *
  54.      * @param OrderRepository $orderRepository
  55.      */
  56.     /**
  57.      * @var ClaimPdfRepository
  58.      */
  59.     protected $claimPdfRepository;
  60.     public function __construct(
  61.         PageRepository $pageRepository,
  62.         ProductRepository $productRepository,
  63.         OrderRepository $orderRepository,
  64.         ClaimPdfRepository $claimPdfRepository,
  65.         shippingRepository $shippingRepository
  66.     ) {
  67.         $this->pageRepository $pageRepository;
  68.         $this->productRepository $productRepository;
  69.         $this->orderRepository $orderRepository;
  70.         $this->claimPdfRepository $claimPdfRepository;
  71.         $this->shippingRepository $shippingRepository;
  72.     }
  73.     /**
  74.      * @Route("/ClaimeDownload/{id}/", name="claim_download")
  75.      * @Template("web/ClaimDownload.twig")
  76.      */
  77.     public function index(Request $request$id)
  78.     {
  79.         $ErrorMessage null;
  80.         // paginator
  81.         $Order $this->orderRepository->findBy(['pre_order_id'=>$id]);
  82.         if (!$Order) {
  83.             $ErrorMessage '受注情報が存在しません';
  84.             return [
  85.                 'ErrorMessage' => $ErrorMessage,
  86.             ];
  87.         }
  88.         $Shopping $Order[0]->getShippings()->first();
  89.         if (!$Shopping) {
  90.             throw new NotFoundHttpException('Shopping not found');
  91.         }
  92.         dump($Shopping->getId());
  93.         $ids[] = $Shopping->getId();
  94.         
  95.         $orderId_tmp "";
  96.         $orderId_cnt 0;
  97.         // 受注ID配列テーブルを作成する
  98.         foreach ($ids as $id) {
  99.             // 出荷番号から出荷情報を取得する
  100.             $Shipping $this->shippingRepository->find($id);
  101.             // 出荷情報から受注情報を取得する
  102.             $orderData_tmp $Shipping->getOrder();
  103.             // 設定条件:初回または同一受注番号でない場合(複数配送の場合は同一受注番号が複数存在する)
  104.             if ($orderId_tmp == "" or $orderId_tmp != $orderData_tmp->getId()) {
  105.                 // 受注番号を取得して設定
  106.                 $orderIdDatas[$orderId_cnt] = $orderData_tmp->getId();
  107.                 $orderId_tmp $orderIdDatas[$orderId_cnt];
  108.                 $orderId_cnt++;
  109.             }
  110.         }
  111.         /** @var ClaimPdf $ClaimPdf */
  112.         $ClaimPdf $this->claimPdfRepository->find($this->getUser());
  113.         //dump($ClaimPdf);
  114.         if (empty($ClaimPdf)) {
  115.             $ClaimPdf = new ClaimPdf();
  116.             $ClaimPdf
  117.                 ->setTitleNouhin(trans('admin.order.delivery_note_title_nouhin__default'))
  118.                 ->setMessage1Nouhin(trans('admin.order.delivery_note_message__default1'))
  119.                 ->setMessage2Nouhin(trans('admin.order.delivery_note_message__default2'))
  120.                 ->setMessage3Nouhin(trans('admin.order.delivery_note_message__default3'))
  121.                 ->setTitleNouhinShipping(trans('admin.order.delivery_note_title_otodoke__default'))
  122.                 ->setMessage1NouhinShipping(trans('admin.order.delivery_note_message__default7'))
  123.                 ->setMessage2NouhinShipping(trans('admin.order.delivery_note_message__default8'))
  124.                 ->setMessage3NouhinShipping(trans(''))
  125.                 ->setTitleOtodoke(trans('admin.order.delivery_note_title_otodoke__default'))
  126.                 ->setMessage1Otodoke(trans('admin.order.delivery_note_message__default7'))
  127.                 ->setMessage2Otodoke(trans('admin.order.delivery_note_message__default8'))
  128.                 ->setMessage3Otodoke(trans(''))
  129.                 ->setTitleSeikyu(trans('admin.order.delivery_note_title_seikyu__default'))
  130.                 ->setMessage1Seikyu(trans('admin.order.delivery_note_message__default4'))
  131.                 ->setMessage2Seikyu(trans('admin.order.delivery_note_message__default5'))
  132.                 ->setMessage3Seikyu(trans('admin.order.delivery_note_message__default6'))
  133.                 ->setHurikomiBank(trans(''))
  134.                 ->setHurikomiBankSiten(trans(''))
  135.                 ->setHurikomiBankKouza(trans(''))
  136.                 ->setHurikomiFreeArea(trans(''));
  137.         }
  138.         /**
  139.          * @var FormBuilder
  140.          */
  141.         $builder $this->formFactory->createBuilder(ClaimPdfType::class, $ClaimPdf);
  142.         /* @var \Symfony\Component\Form\Form $form */
  143.         $form $builder->getForm();
  144.         // Formへの設定
  145.         $form->get('ids')->setData(implode(','$ids));
  146.         $form->get('orderids')->setData(implode(','$orderIdDatas));
  147.         //$form->get('orderdatetime_st')->setData($orderDatetimeStart);
  148.         //$form->get('orderdatetime_en')->setData($orderDatetimeEnd);
  149.         return [
  150.             'form' => $form->createView(),
  151.             'ErrorMessage' => $ErrorMessage,
  152.         ];
  153.         
  154.     }
  155. }