<?php
namespace App\Form;
use App\Entity\PreInscripcionExpo;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use App\Entity\Colegio;
use App\Entity\Region;
use Symfony\Component\Validator\Constraints\File;
class PreInscripcionExpoType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nombreSolicitante', TextType::class,[
'required' => true,
])
->add('apellidoSolicitante', TextType::class,[
'required' => true,
])
->add('rutSolicitante', TextType::class,[
'required' => true,
])
->add('correoSolicitante', EmailType::class,[
'required' => true,
])
->add('telefonoSolicitante', TextType::class,[
'required' => true,
])
->add('cargoSolicitante', ChoiceType::class,[
'choices' => [
'Profesor/a' => 'Profesor/a',
'Orientador/a' => 'Orientador/a',
'Director/a' => 'Director/a',
'Psicólogo/a' => 'Psicólogo/a',
'Encargado/a de convivencia escolar' => 'Encargado/a de convivencia escolar',
'Otro' => 'Otro',
],
'placeholder' => 'Seleccione el cargo',
'multiple' => false,
'required' => true,
])
->add('colegio', EntityType::class, [
'class' => Colegio::class,
'choice_label' => 'nombre',
'multiple' => false,
'required' => false,
'attr' => [
'onchange' => 'mostrarDiv()',
]
])
->add('otroColegio', TextType::class,[
'required' => false,
'attr' => [
'style' => 'display:none'
]
])
->add('region', EntityType::class, [
'class' => Region::class,
'choice_label' => 'nombre',
'multiple' => false,
'required' => false,
])
->add('comuna', TextType::class,[
'required' => false,
])
->add('bloque', ChoiceType::class,[
'choices' => [
'Martes 7 de octubre, bloque AM' => 'Martes 7 de octubre, bloque AM',
'Martes 7 de octubre, bloque PM' => 'Martes 7 de octubre, bloque PM',
'Miércoles 8 de octubre, bloque AM' => 'Miércoles 8 de octubre, bloque AM',
'Miércoles 8 de octubre, bloque PM' => 'Miércoles 8 de octubre, bloque PM',
'Jueves 9 de octubre, bloque AM' => 'Jueves 9 de octubre, bloque AM',
'Jueves 9 de octubre, bloque PM' => 'Jueves 9 de octubre, bloque PM',
],
'placeholder' => ' Seleccione el horario',
'multiple' => false,
'required' => true,
])
->add('metodoTransporte', ChoiceType::class,[
'choices' => [
'Bus particular' => 'Bus particular',
'Transporte público (Bus y/o metro)' => 'Transporte público (Bus y/o metro)',
'Aún no cuento con esta información' => 'Aún no cuento con esta información',
],
'placeholder' => ' ',
'multiple' => false,
'required' => true,
])
->add('cursos', ChoiceType::class,[
'choices' => [
'7° Básico' => '7° Básico',
'8° Básico' => '8° Básico',
'I° Medio' => 'I° Medio',
'II° Medio' => 'II° Medio',
'III° Medio' => 'III° Medio',
'IV° Medio' => 'IV° Medio',
],
'placeholder' => ' ',
'multiple' => true,
'required' => true,
'expanded' => true,
])
->add('archivoAdjunto', FileType::class, [
'mapped' => false,
'required'=>false,
'attr' => [
// Limita el selector del navegador a .xlsx
'accept' => '.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
],
'constraints' => [
new File([
'mimeTypes' => [
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
],
'mimeTypesMessage' => 'Por favor, sube un archivo Excel válido (.xls, .xlsx)',
])
],
])
->add('cantidadAsistentes', IntegerType::class, [
])
->add('condiciones', CheckboxType::class, [
'label' => 'Your Label Text',
'required' => true,
])
->add('condiciones2', CheckboxType::class, [
'label' => 'Your Label Text',
'required' => true,
'mapped'=>false,
]);
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'csrf_protection' => false,
]);
}
}