Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat:管理画面>商品一覧画面の「登録日」「更新日」検索へのバリデーション #5951

Merged
merged 5 commits into from
Feb 7, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions src/Eccube/Form/Type/Admin/SearchCustomerType.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Validator\Constraints as Assert;

class SearchCustomerType extends AbstractType
Expand Down Expand Up @@ -401,6 +404,39 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'label' => 'admin.list.sort.type',
'required' => false,
])
->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
$form = $event->getForm();

# 登録日
$create_datetime_start = $form['create_datetime_start']->getData();
$create_datetime_end = $form['create_datetime_end']->getData();

if (!empty($create_datetime_start) && !empty($create_datetime_end)) {
if ($create_datetime_start > $create_datetime_end) {
$form['create_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# 更新日
$update_datetime_start = $form['update_datetime_start']->getData();
$update_datetime_end = $form['update_datetime_end']->getData();

if (!empty($update_datetime_start) && !empty($update_datetime_end)) {
if ($update_datetime_start > $update_datetime_end) {
$form['update_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# 最終購入日
$last_buy_start = $form['last_buy_start']->getData();
$last_buy_end = $form['last_buy_end']->getData();

if (!empty($last_buy_start) && !empty($last_buy_end)) {
if ($last_buy_start > $last_buy_end) {
$form['last_buy_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}
})
;
}

Expand Down
49 changes: 48 additions & 1 deletion src/Eccube/Form/Type/Admin/SearchOrderType.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;

Expand Down Expand Up @@ -417,7 +420,51 @@ public function buildForm(FormBuilderInterface $builder, array $options)
->add('sorttype', HiddenType::class, [
'label' => 'admin.list.sort.type',
'required' => false,
]);
])
->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
$form = $event->getForm();

# 注文日
$order_datetime_start = $form['order_datetime_start']->getData();
$order_datetime_end = $form['order_datetime_end']->getData();

if (!empty($order_datetime_start) && !empty($order_datetime_end)) {
if ($order_datetime_start > $order_datetime_end) {
$form['order_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# 入金日
$payment_datetime_start = $form['payment_datetime_start']->getData();
$payment_datetime_end = $form['payment_datetime_end']->getData();

if (!empty($payment_datetime_start) && !empty($payment_datetime_end)) {
if ($payment_datetime_start > $payment_datetime_end) {
$form['payment_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# 更新日
$update_datetime_start = $form['update_datetime_start']->getData();
$update_datetime_end = $form['update_datetime_end']->getData();

if (!empty($update_datetime_start) && !empty($update_datetime_end)) {
if ($update_datetime_start > $update_datetime_end) {
$form['update_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# お届け日
$shipping_delivery_datetime_start = $form['shipping_delivery_datetime_start']->getData();
$shipping_delivery_datetime_end = $form['shipping_delivery_datetime_end']->getData();

if (!empty($shipping_delivery_datetime_start) && !empty($shipping_delivery_datetime_end)) {
if ($shipping_delivery_datetime_start > $shipping_delivery_datetime_end) {
$form['shipping_delivery_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}
})
;
}

/**
Expand Down
26 changes: 26 additions & 0 deletions src/Eccube/Form/Type/Admin/SearchProductType.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Validator\Constraints as Assert;

class SearchProductType extends AbstractType
Expand Down Expand Up @@ -265,6 +268,29 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'label' => 'admin.list.sort.type',
'required' => false,
])
->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
$form = $event->getForm();

# 登録日
$create_datetime_start = $form['create_datetime_start']->getData();
$create_datetime_end = $form['create_datetime_end']->getData();

if (!empty($create_datetime_start) && !empty($create_datetime_end)) {
if ($create_datetime_start > $create_datetime_end) {
$form['create_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}

# 更新日
$update_datetime_start = $form['update_datetime_start']->getData();
$update_datetime_end = $form['update_datetime_end']->getData();

if (!empty($update_datetime_start) && !empty($update_datetime_end)) {
if ($update_datetime_start > $update_datetime_end) {
$form['update_datetime_end']->addError(new FormError(trans('admin.product.date_range_error')));
}
}
})
;
}

Expand Down
1 change: 1 addition & 0 deletions src/Eccube/Resource/locale/messages.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ admin.product.delete_flag: Product Deletion Flag
admin.product.search_category: Category Search
admin.product.save_tag: Tags
admin.product.create_date__card_title: Update
admin.product.date_range_error: End date is set after start date
dotani1111 marked this conversation as resolved.
Show resolved Hide resolved
admin.product.move_to_category: Add / Edit a Category
admin.product.move_to_tag: Add / Edit a Tag
admin.product.move_to_product_class: Edit an Option
Expand Down
1 change: 1 addition & 0 deletions src/Eccube/Resource/locale/messages.ja.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ admin.product.delete_flag: 商品削除フラグ
admin.product.search_category: カテゴリ検索
admin.product.save_tag: タグ登録
admin.product.create_date__card_title: 登録日・更新日
admin.product.date_range_error: 終了日時は、開始日時より大きく設定してください
admin.product.move_to_category: カテゴリの追加・編集
admin.product.move_to_tag: タグの追加・編集
admin.product.move_to_product_class: 商品規格の編集
Expand Down