<?php
namespace Plugin\SDream\Form\EventSubscriber;
use Eccube\Entity\Product;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class ProductBooleanSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
FormEvents::SUBMIT => 'onSubmit',
];
}
public function onSubmit(FormEvent $event): void
{
$Product = $event->getData();
if (!$Product instanceof Product) {
return;
}
$form = $event->getForm();
// 不定貫商品
if ($form->has('firmvariableattribute')) {
$Product->setFirmVariableAttribute(
$form->get('firmvariableattribute')->getData() ? 1 : 0
);
}
// 販売禁止
if ($form->has('preparation')) {
$Product->setPreparation(
$form->get('preparation')->getData() ? 1 : 0
);
}
// 購入時間制限
if ($form->has('purchase_limit_time')) {
$Product->setPurchaseLimitTime(
$form->get('purchase_limit_time')->getData() ? 1 : 0
);
}
// 表示限定顧客
if ($form->has('limited_ids')) {
$limitedIds = trim((string) $form->get('limited_ids')->getData());
$Product->setLimitedIds($limitedIds !== '' ? $limitedIds : null);
}
// 非表示限定顧客
if ($form->has('locked_ids')) {
$lockedIds = trim((string) $form->get('locked_ids')->getData());
$Product->setLockedIds($lockedIds !== '' ? $lockedIds : null);
}
}
}