public function buildForm(FormBuilderInterface $builder, array $options)
{
$app = $this->app;
$builder->add('method', 'text', array('label' => '支払方法', 'required' => true, 'constraints' => array(new Assert\NotBlank())))->add('rule_min', 'money', array('label' => false, 'currency' => 'JPY', 'precision' => 0, 'constraints' => array(new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))))->add('rule_max', 'money', array('label' => false, 'currency' => 'JPY', 'precision' => 0, 'required' => false, 'constraints' => array(new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))))->add('payment_image_file', 'file', array('label' => 'ロゴ画像', 'mapped' => false, 'required' => false))->add('payment_image', 'hidden', array('required' => false))->add('charge_flg', 'hidden')->add('fix_flg', 'hidden')->addEventListener(FormEvents::POST_BIND, function ($event) {
$form = $event->getForm();
$ruleMax = $form['rule_max']->getData();
$ruleMin = $form['rule_min']->getData();
if (!empty($ruleMin) && !empty($ruleMax) && $ruleMax < $ruleMin) {
$form['rule_min']->addError(new FormError('利用条件(下限)は' . $ruleMax . '円以下にしてください。'));
}
})->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use($app) {
$form = $event->getForm();
/** @var \Eccube\Entity\Payment $Payment */
$Payment = $event->getData();
if (is_null($Payment) || $Payment->getChargeFlg() == 1) {
$form->add('charge', 'money', array('label' => '手数料', 'currency' => 'JPY', 'precision' => 0, 'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('max' => $app['config']['int_len'])), new Assert\Regex(array('pattern' => "/^\\d+\$/u", 'message' => 'form.type.numeric.invalid')))));
} else {
$form->add('charge', 'hidden');
}
});
}