src/Eccube/Form/Type/Admin/SearchOrderType.php line 46

Open in your IDE?
  1. <?php
  2. namespace Eccube\Form\Type\Admin;
  3. use Eccube\Common\EccubeConfig;
  4. use Eccube\Entity\Category;
  5. use Eccube\Entity\Shipping;
  6. use Eccube\Form\Type\Master\CategoryType as MasterCategoryType;
  7. use Eccube\Form\Type\Master\OrderStatusType;
  8. use Eccube\Form\Type\Master\PaymentType;
  9. use Eccube\Form\Type\Master\SexType;
  10. use Eccube\Form\Type\PriceType;
  11. use Eccube\Repository\CategoryRepository;
  12. use Symfony\Component\Form\AbstractType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  15. use Symfony\Component\Form\Extension\Core\Type\DateType;
  16. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  17. use Symfony\Component\Form\Extension\Core\Type\TextType;
  18. use Symfony\Component\Form\FormBuilderInterface;
  19. use Symfony\Component\Validator\Constraints as Assert;
  20. class SearchOrderType extends AbstractType
  21. {
  22.   /**
  23.    * @var EccubeConfig
  24.    */
  25.   protected $eccubeConfig;
  26.   /**
  27.    * @var CategoryRepository
  28.    */
  29.   protected $categoryRepository;
  30.   public function __construct(
  31.     EccubeConfig       $eccubeConfig,
  32.     CategoryRepository $categoryRepository)
  33.   {
  34.     $this->eccubeConfig $eccubeConfig;
  35.     $this->categoryRepository $categoryRepository;
  36.   }
  37.   /**
  38.    * {@inheritdoc}
  39.    */
  40.   public function buildForm(FormBuilderInterface $builder, array $options)
  41.   {
  42.     $htSaleType = array("全て" => """コインパレス" => "1""コインプラザ" => "2");
  43.     $builder
  44.       // 受注ID・注文者名・注文者(フリガナ)・注文者会社名
  45.       ->add('multi'TextType::class, [
  46.         'label' => 'admin.order.multi_search_label',
  47.         'required' => false,
  48.         'constraints' => [
  49.           new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]),
  50.         ],
  51.       ])
  52.       ->add('status'OrderStatusType::class, [
  53.         'label' => 'admin.order.order_status',
  54.         'expanded' => true,
  55.         'multiple' => true,
  56.       ])
  57.       ->add('name'TextType::class, [
  58.         'label' => 'admin.order.orderer_name',
  59.         'required' => false,
  60.       ])
  61.       ->add($builder
  62.         ->create('kana'TextType::class, [
  63.           'label' => 'admin.order.orderer_kana',
  64.           'required' => false,
  65.           'constraints' => [
  66.             new Assert\Regex([
  67.               'pattern' => '/^[ァ-ヶヲ-゚ー]+$/u',
  68.               'message' => 'form_error.kana_only',
  69.             ]),
  70.           ],
  71.         ])
  72.         ->addEventSubscriber(new \Eccube\Form\EventListener\ConvertKanaListener('CV')
  73.         ))
  74.       ->add('company_name'TextType::class, [
  75.         'label' => 'admin.order.orderer_company_name',
  76.         'required' => false,
  77.       ])
  78.       ->add('email'TextType::class, [
  79.         'label' => 'admin.common.mail_address',
  80.         'required' => false,
  81.       ])
  82.       ->add('order_no'TextType::class, [
  83.         'label' => 'admin.order.order_no',
  84.         'required' => false,
  85.       ])
  86.       ->add('phone_number'TextType::class, [
  87.         'label' => 'admin.common.phone_number',
  88.         'required' => false,
  89.         'constraints' => [
  90.           new Assert\Regex([
  91.             'pattern' => "/^[\d-]+$/u",
  92.             'message' => 'form_error.graph_and_hyphen_only',
  93.           ]),
  94.         ],
  95.       ])
  96.       ->add('sex'SexType::class, [
  97.         'label' => 'admin.common.gender',
  98.         'required' => false,
  99.         'expanded' => true,
  100.         'multiple' => true,
  101.       ])
  102.       ->add('sale_type'ChoiceType::class, [
  103.         'label' => '商品種別:パレス・プラザ',
  104.         'placeholder' => 'admin.common.select',
  105.         'required' => false,
  106.         'choices' => $htSaleType,
  107.       ])
  108.       ->add('category_id'MasterCategoryType::class, [
  109.         'choice_label' => 'NameWithLevel',
  110.         'label' => 'admin.product.category',
  111.         'placeholder' => 'common.select__all_products',
  112.         'required' => false,
  113.         'multiple' => false,
  114.         'expanded' => false,
  115.         'choices' => $this->categoryRepository->getList(nulltrue),
  116.         'choice_value' => function (Category $Category null) {
  117.           return $Category $Category->getId() : null;
  118.         },
  119.       ])
  120.       ->add('tracking_number'TextType::class, [
  121.         'label' => 'admin.order.tracking_number',
  122.         'required' => false,
  123.       ])
  124.       ->add('shipping_mail'ChoiceType::class, [
  125.         'label' => 'admin.order.shipping_mail',
  126.         'placeholder' => false,
  127.         'choices' => [
  128.           'admin.order.shipping_mail__unsent' => Shipping::SHIPPING_MAIL_UNSENT,
  129.           'admin.order.shipping_mail__sent' => Shipping::SHIPPING_MAIL_SENT,
  130.         ],
  131.         'expanded' => true,
  132.         'multiple' => true,
  133.       ])
  134.       ->add('payment'PaymentType::class, [
  135.         'label' => 'admin.common.payment_method',
  136.         'required' => false,
  137.         'expanded' => true,
  138.         'multiple' => true,
  139.       ])
  140.       ->add('order_date_start'DateType::class, [
  141.         'label' => 'admin.order.order_date__start',
  142.         'required' => false,
  143.         'input' => 'datetime',
  144.         'widget' => 'single_text',
  145.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  146.         'constraints' => [
  147.           new Assert\Range([
  148.             'min' => '0003-01-01',
  149.             'minMessage' => 'form_error.out_of_range',
  150.           ]),
  151.         ],
  152.         'attr' => [
  153.           'class' => 'datetimepicker-input',
  154.           'data-target' => '#' $this->getBlockPrefix() . '_order_date_start',
  155.           'data-toggle' => 'datetimepicker',
  156.         ],
  157.       ])
  158.       ->add('order_datetime_start'DateTimeType::class, [
  159.         'label' => 'admin.order.order_date__start',
  160.         'required' => false,
  161.         'input' => 'datetime',
  162.         'widget' => 'single_text',
  163.         'constraints' => [
  164.           new Assert\Range([
  165.             'min' => '0003-01-01',
  166.             'minMessage' => 'form_error.out_of_range',
  167.           ]),
  168.         ],
  169.         'attr' => [
  170.           'class' => 'datetimepicker-input',
  171.           'data-target' => '#' $this->getBlockPrefix() . '_order_datetime_start',
  172.           'data-toggle' => 'datetimepicker',
  173.         ],
  174.       ])
  175.       ->add('order_date_end'DateType::class, [
  176.         'label' => 'admin.order.order_date__end',
  177.         'required' => false,
  178.         'input' => 'datetime',
  179.         'widget' => 'single_text',
  180.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  181.         'constraints' => [
  182.           new Assert\Range([
  183.             'min' => '0003-01-01',
  184.             'minMessage' => 'form_error.out_of_range',
  185.           ]),
  186.         ],
  187.         'attr' => [
  188.           'class' => 'datetimepicker-input',
  189.           'data-target' => '#' $this->getBlockPrefix() . '_order_date_end',
  190.           'data-toggle' => 'datetimepicker',
  191.         ],
  192.       ])
  193.       ->add('order_datetime_end'DateTimeType::class, [
  194.         'label' => 'admin.order.order_date__end',
  195.         'required' => false,
  196.         'input' => 'datetime',
  197.         'widget' => 'single_text',
  198.         'constraints' => [
  199.           new Assert\Range([
  200.             'min' => '0003-01-01',
  201.             'minMessage' => 'form_error.out_of_range',
  202.           ]),
  203.         ],
  204.         'attr' => [
  205.           'class' => 'datetimepicker-input',
  206.           'data-target' => '#' $this->getBlockPrefix() . '_order_datetime_end',
  207.           'data-toggle' => 'datetimepicker',
  208.         ],
  209.       ])
  210.       ->add('payment_date_start'DateType::class, [
  211.         'label' => 'admin.order.payment_date__start',
  212.         'required' => false,
  213.         'input' => 'datetime',
  214.         'widget' => 'single_text',
  215.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  216.         'constraints' => [
  217.           new Assert\Range([
  218.             'min' => '0003-01-01',
  219.             'minMessage' => 'form_error.out_of_range',
  220.           ]),
  221.         ],
  222.         'attr' => [
  223.           'class' => 'datetimepicker-input',
  224.           'data-target' => '#' $this->getBlockPrefix() . '_payment_date_start',
  225.           'data-toggle' => 'datetimepicker',
  226.         ],
  227.       ])
  228.       ->add('payment_datetime_start'DateTimeType::class, [
  229.         'label' => 'admin.order.payment_date__start',
  230.         'required' => false,
  231.         'input' => 'datetime',
  232.         'widget' => 'single_text',
  233.         'constraints' => [
  234.           new Assert\Range([
  235.             'min' => '0003-01-01',
  236.             'minMessage' => 'form_error.out_of_range',
  237.           ]),
  238.         ],
  239.         'attr' => [
  240.           'class' => 'datetimepicker-input',
  241.           'data-target' => '#' $this->getBlockPrefix() . '_payment_datetime_start',
  242.           'data-toggle' => 'datetimepicker',
  243.         ],
  244.       ])
  245.       ->add('payment_date_end'DateType::class, [
  246.         'label' => 'admin.order.payment_date__end',
  247.         'required' => false,
  248.         'input' => 'datetime',
  249.         'widget' => 'single_text',
  250.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  251.         'constraints' => [
  252.           new Assert\Range([
  253.             'min' => '0003-01-01',
  254.             'minMessage' => 'form_error.out_of_range',
  255.           ]),
  256.         ],
  257.         'attr' => [
  258.           'class' => 'datetimepicker-input',
  259.           'data-target' => '#' $this->getBlockPrefix() . '_payment_date_end',
  260.           'data-toggle' => 'datetimepicker',
  261.         ],
  262.       ])
  263.       ->add('payment_datetime_end'DateTimeType::class, [
  264.         'label' => 'admin.order.payment_date__end',
  265.         'required' => false,
  266.         'input' => 'datetime',
  267.         'widget' => 'single_text',
  268.         'constraints' => [
  269.           new Assert\Range([
  270.             'min' => '0003-01-01',
  271.             'minMessage' => 'form_error.out_of_range',
  272.           ]),
  273.         ],
  274.         'attr' => [
  275.           'class' => 'datetimepicker-input',
  276.           'data-target' => '#' $this->getBlockPrefix() . '_payment_datetime_end',
  277.           'data-toggle' => 'datetimepicker',
  278.         ],
  279.       ])
  280.       ->add('update_date_start'DateType::class, [
  281.         'label' => 'admin.common.update_date__start',
  282.         'required' => false,
  283.         'input' => 'datetime',
  284.         'widget' => 'single_text',
  285.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  286.         'constraints' => [
  287.           new Assert\Range([
  288.             'min' => '0003-01-01',
  289.             'minMessage' => 'form_error.out_of_range',
  290.           ]),
  291.         ],
  292.         'attr' => [
  293.           'class' => 'datetimepicker-input',
  294.           'data-target' => '#' $this->getBlockPrefix() . '_update_date_start',
  295.           'data-toggle' => 'datetimepicker',
  296.         ],
  297.       ])
  298.       ->add('update_datetime_start'DateTimeType::class, [
  299.         'label' => 'admin.common.update_date__start',
  300.         'required' => false,
  301.         'input' => 'datetime',
  302.         'widget' => 'single_text',
  303.         'constraints' => [
  304.           new Assert\Range([
  305.             'min' => '0003-01-01',
  306.             'minMessage' => 'form_error.out_of_range',
  307.           ]),
  308.         ],
  309.         'attr' => [
  310.           'class' => 'datetimepicker-input',
  311.           'data-target' => '#' $this->getBlockPrefix() . '_update_datetime_start',
  312.           'data-toggle' => 'datetimepicker',
  313.         ],
  314.       ])
  315.       ->add('update_date_end'DateType::class, [
  316.         'label' => 'admin.common.update_date__end',
  317.         'required' => false,
  318.         'input' => 'datetime',
  319.         'widget' => 'single_text',
  320.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  321.         'constraints' => [
  322.           new Assert\Range([
  323.             'min' => '0003-01-01',
  324.             'minMessage' => 'form_error.out_of_range',
  325.           ]),
  326.         ],
  327.         'attr' => [
  328.           'class' => 'datetimepicker-input',
  329.           'data-target' => '#' $this->getBlockPrefix() . '_update_date_end',
  330.           'data-toggle' => 'datetimepicker',
  331.         ],
  332.       ])
  333.       ->add('update_datetime_end'DateTimeType::class, [
  334.         'label' => 'admin.common.update_date__end',
  335.         'required' => false,
  336.         'input' => 'datetime',
  337.         'widget' => 'single_text',
  338.         'constraints' => [
  339.           new Assert\Range([
  340.             'min' => '0003-01-01',
  341.             'minMessage' => 'form_error.out_of_range',
  342.           ]),
  343.         ],
  344.         'attr' => [
  345.           'class' => 'datetimepicker-input',
  346.           'data-target' => '#' $this->getBlockPrefix() . '_update_datetime_end',
  347.           'data-toggle' => 'datetimepicker',
  348.         ],
  349.       ])
  350.       ->add('commit_date_start'DateType::class, [
  351.         'label' => 'admin.common.commit_date__start',
  352.         'required' => false,
  353.         'input' => 'datetime',
  354.         'widget' => 'single_text',
  355.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  356.         'constraints' => [
  357.           new Assert\Range([
  358.             'min' => '0003-01-01',
  359.             'minMessage' => 'form_error.out_of_range',
  360.           ]),
  361.         ],
  362.         'attr' => [
  363.           'class' => 'datetimepicker-input',
  364.           'data-target' => '#' $this->getBlockPrefix() . '_commit_date_start',
  365.           'data-toggle' => 'datetimepicker',
  366.         ],
  367.       ])
  368.       ->add('commit_datetime_start'DateTimeType::class, [
  369.         'label' => 'admin.common.commit_date__start',
  370.         'required' => false,
  371.         'input' => 'datetime',
  372.         'widget' => 'single_text',
  373.         'constraints' => [
  374.           new Assert\Range([
  375.             'min' => '0003-01-01',
  376.             'minMessage' => 'form_error.out_of_range',
  377.           ]),
  378.         ],
  379.         'attr' => [
  380.           'class' => 'datetimepicker-input',
  381.           'data-target' => '#' $this->getBlockPrefix() . '_commit_datetime_start',
  382.           'data-toggle' => 'datetimepicker',
  383.         ],
  384.       ])
  385.       ->add('commit_date_end'DateType::class, [
  386.         'label' => 'admin.common.commit_date__end',
  387.         'required' => false,
  388.         'input' => 'datetime',
  389.         'widget' => 'single_text',
  390.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  391.         'constraints' => [
  392.           new Assert\Range([
  393.             'min' => '0003-01-01',
  394.             'minMessage' => 'form_error.out_of_range',
  395.           ]),
  396.         ],
  397.         'attr' => [
  398.           'class' => 'datetimepicker-input',
  399.           'data-target' => '#' $this->getBlockPrefix() . '_commit_date_end',
  400.           'data-toggle' => 'datetimepicker',
  401.         ],
  402.       ])
  403.       ->add('commit_datetime_end'DateTimeType::class, [
  404.         'label' => 'admin.common.commit_date__end',
  405.         'required' => false,
  406.         'input' => 'datetime',
  407.         'widget' => 'single_text',
  408.         'constraints' => [
  409.           new Assert\Range([
  410.             'min' => '0003-01-01',
  411.             'minMessage' => 'form_error.out_of_range',
  412.           ]),
  413.         ],
  414.         'attr' => [
  415.           'class' => 'datetimepicker-input',
  416.           'data-target' => '#' $this->getBlockPrefix() . '_commit_datetime_end',
  417.           'data-toggle' => 'datetimepicker',
  418.         ],
  419.       ])
  420.       ->add('shipping_delivery_date_start'DateType::class, [
  421.         'label' => 'admin.order.delivery_date__start',
  422.         'required' => false,
  423.         'input' => 'datetime',
  424.         'widget' => 'single_text',
  425.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  426.         'constraints' => [
  427.           new Assert\Range([
  428.             'min' => '0003-01-01',
  429.             'minMessage' => 'form_error.out_of_range',
  430.           ]),
  431.         ],
  432.         'attr' => [
  433.           'class' => 'datetimepicker-input',
  434.           'data-target' => '#' $this->getBlockPrefix() . '_shipping_delivery_date_start',
  435.           'data-toggle' => 'datetimepicker',
  436.         ],
  437.       ])
  438.       ->add('shipping_delivery_datetime_start'DateTimeType::class, [
  439.         'label' => 'admin.order.delivery_date__start',
  440.         'required' => false,
  441.         'input' => 'datetime',
  442.         'widget' => 'single_text',
  443.         'constraints' => [
  444.           new Assert\Range([
  445.             'min' => '0003-01-01',
  446.             'minMessage' => 'form_error.out_of_range',
  447.           ]),
  448.         ],
  449.         'attr' => [
  450.           'class' => 'datetimepicker-input',
  451.           'data-target' => '#' $this->getBlockPrefix() . '_shipping_delivery_datetime_start',
  452.           'data-toggle' => 'datetimepicker',
  453.         ],
  454.       ])
  455.       ->add('shipping_delivery_date_end'DateType::class, [
  456.         'label' => 'admin.order.delivery_date__end',
  457.         'required' => false,
  458.         'input' => 'datetime',
  459.         'widget' => 'single_text',
  460.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  461.         'constraints' => [
  462.           new Assert\Range([
  463.             'min' => '0003-01-01',
  464.             'minMessage' => 'form_error.out_of_range',
  465.           ]),
  466.         ],
  467.         'attr' => [
  468.           'class' => 'datetimepicker-input',
  469.           'data-target' => '#' $this->getBlockPrefix() . '_shipping_delivery_date_end',
  470.           'data-toggle' => 'datetimepicker',
  471.         ],
  472.       ])
  473.       ->add('shipping_delivery_datetime_end'DateTimeType::class, [
  474.         'label' => 'admin.order.delivery_date__end',
  475.         'required' => false,
  476.         'input' => 'datetime',
  477.         'widget' => 'single_text',
  478.         'constraints' => [
  479.           new Assert\Range([
  480.             'min' => '0003-01-01',
  481.             'minMessage' => 'form_error.out_of_range',
  482.           ]),
  483.         ],
  484.         'attr' => [
  485.           'class' => 'datetimepicker-input',
  486.           'data-target' => '#' $this->getBlockPrefix() . '_shipping_delivery_datetime_end',
  487.           'data-toggle' => 'datetimepicker',
  488.         ],
  489.       ])
  490.       ->add('deadline_date_start'DateType::class, [
  491.         'label' => 'admin.common.deadline_date__start',
  492.         'required' => false,
  493.         'input' => 'datetime',
  494.         'widget' => 'single_text',
  495.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  496.         'constraints' => [
  497.           new Assert\Range([
  498.             'min' => '0003-01-01',
  499.             'minMessage' => 'form_error.out_of_range',
  500.           ]),
  501.         ],
  502.         'attr' => [
  503.           'class' => 'datetimepicker-input',
  504.           'data-target' => '#' $this->getBlockPrefix() . '_deadline_date_start',
  505.           'data-toggle' => 'datetimepicker',
  506.         ],
  507.       ])
  508.       ->add('deadline_datetime_start'DateTimeType::class, [
  509.         'label' => 'admin.common.deadline_date__start',
  510.         'required' => false,
  511.         'input' => 'datetime',
  512.         'widget' => 'single_text',
  513.         'constraints' => [
  514.           new Assert\Range([
  515.             'min' => '0003-01-01',
  516.             'minMessage' => 'form_error.out_of_range',
  517.           ]),
  518.         ],
  519.         'attr' => [
  520.           'class' => 'datetimepicker-input',
  521.           'data-target' => '#' $this->getBlockPrefix() . '_deadline_datetime_start',
  522.           'data-toggle' => 'datetimepicker',
  523.         ],
  524.       ])
  525.       ->add('deadline_date_end'DateType::class, [
  526.         'label' => 'admin.common.deadline_date__end',
  527.         'required' => false,
  528.         'input' => 'datetime',
  529.         'widget' => 'single_text',
  530.         'placeholder' => ['year' => '----''month' => '--''day' => '--'],
  531.         'constraints' => [
  532.           new Assert\Range([
  533.             'min' => '0003-01-01',
  534.             'minMessage' => 'form_error.out_of_range',
  535.           ]),
  536.         ],
  537.         'attr' => [
  538.           'class' => 'datetimepicker-input',
  539.           'data-target' => '#' $this->getBlockPrefix() . '_deadline_date_end',
  540.           'data-toggle' => 'datetimepicker',
  541.         ],
  542.       ])
  543.       ->add('deadline_datetime_end'DateTimeType::class, [
  544.         'label' => 'admin.common.deadline_date__end',
  545.         'required' => false,
  546.         'input' => 'datetime',
  547.         'widget' => 'single_text',
  548.         'constraints' => [
  549.           new Assert\Range([
  550.             'min' => '0003-01-01',
  551.             'minMessage' => 'form_error.out_of_range',
  552.           ]),
  553.         ],
  554.         'attr' => [
  555.           'class' => 'datetimepicker-input',
  556.           'data-target' => '#' $this->getBlockPrefix() . '_deadline_datetime_end',
  557.           'data-toggle' => 'datetimepicker',
  558.         ],
  559.       ])
  560.       ->add('payment_total_start'PriceType::class, [
  561.         'label' => 'admin.order.purchase_price__start',
  562.         'required' => false,
  563.       ])
  564.       ->add('payment_total_end'PriceType::class, [
  565.         'label' => 'admin.order.purchase_price__end',
  566.         'required' => false,
  567.       ])
  568.       ->add('buy_product_name'TextType::class, [
  569.         'label' => 'admin.order.purchase_product',
  570.         'required' => false,
  571.       ])
  572.       // ソート用
  573.       ->add('sortkey'HiddenType::class, [
  574.         'label' => 'admin.list.sort.key',
  575.         'required' => false,
  576.       ])
  577.       ->add('sorttype'HiddenType::class, [
  578.         'label' => 'admin.list.sort.type',
  579.         'required' => false,
  580.       ]);
  581.   }
  582.   /**
  583.    * {@inheritdoc}
  584.    */
  585.   public function getBlockPrefix()
  586.   {
  587.     return 'admin_search_order';
  588.   }
  589. }