<?php
namespace App\Form;
use App\Entity\Childs;
use App\Entity\Schools;
use App\Entity\User;
use App\Repository\UserRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class ChildsFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$years = array();
for($i=1990; $i<=2020; $i++){
$years[] = $i;
}
$sessions_years = array();
for($i=date('Y'); $i<=date('Y', strtotime('+5 years')); $i++){
$sessions_years[] = $i;
}
$builder
->add('status', ChoiceType::class, [
'choices' => [
'En attente' => 'en attente',
'En cours' => 'en cours',
'Terminé' => 'terminé',
'Not check' => 'not_check',
],
])
->add('dob', BirthdayType::class, [
'widget' => 'single_text',
])
->add('fathername')
->add('childaddress', TextType::class)
->add('childzipcode', TextType::class)
->add('childcity', TextType::class)
->add('cityborn', TextType::class)
->add('motheremail', EmailType::class)
->add('fatherphone', TextType::class)
->add('fatheremail', EmailType::class)
->add('fatherhebrewname')
->add('mothername')
->add('motherphone', TextType::class)
->add('motherhebrewname')
->add('doctorname', TextType::class, array(
'required' => false))
->add('doctoraddress', TextType::class, array(
'required' => false))
->add('doctorcity', TextType::class, array(
'required' => false))
->add('doctorzipcode', TextType::class, array(
'required' => false))
->add('doctorphone', TextType::class, array(
'required' => false))
->add('image', FileType::class, array(
'data_class' => null,
'required' => false))
->add('email', EmailType::class)
->add('lastname')
->add('firstname')
->add('phone', TextType::class)
->add('gender', ChoiceType::class, [
'choices' => [
'Garçon' => 'Garçon',
'Fille' => 'Fille',
],
])
->add('school', EntityType::class, [
'class' => Schools::class,
'choice_label' => 'name',
])
->add('payment', TextType::class, [
'required' => false
])
->add('commentaire')
->add('referrals')
->add('sessionseta', DateType::class, [
'widget' => 'single_text',
])
->add('paymentmethod', TextType::class, [
'required' => false
])
->add('user', EntityType::class, [
'class' => User::class,
'choice_label' => function(?User $user) {
return $user ? ucfirst($user->getFirstname()) . ' ' . ucfirst($user->getLastname()) : '';
},
'multiple' => true,
'required' => false,
'query_builder' => function (UserRepository $er) {
return $er->createQueryBuilder('u')
->andWhere('u.roles LIKE \'%ROLE_STAKEHOLDER%\' ')
->andWhere('u.status = \'1\' ');
}
])
->add('sessionsemail')
->add('creationdate')
->add('fileone', FileType::class, array(
'data_class' => null,
'multiple' => true,
'required' => false))
->add('filetwo', FileType::class, array(
'data_class' => null,
'multiple' => true,
'required' => false))
->add('filethree', FileType::class, array(
'data_class' => null,
'multiple' => true,
'required' => false))
->add('save', SubmitType::class, ['label' => 'Enregistrer'])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Childs::class,
]);
}
}