<?php
namespace App\Form\Comun;
use App\Entity\Comun\Fichaje;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
class FichajeType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options): void {
$builder
->add('fecha', DateType::class, [
'widget' => 'single_text',
'html5' => true,
'label' => 'fichaje.fecha',
'required' => true,
'attr' =>
['class' => 'form-control',
],
],
)
->add('cantidadHoras', TimeType::class, [
'widget' => 'single_text',
'html5' => true,
'required' => true,
'mapped'=>false,
'label' => 'fichaje.cantidadHoras',
'attr' => [
'class' => 'form-control',
'placeholder' => 'fichaje.placeholderCantidadHoras',
]])
->add('observaciones', TextareaType::class, [
'label' => 'fichaje.observaciones',
'required' => false,
'attr' => [
'class' => 'form-control text-editor',
'placeholder' => 'fichaje.placeholderObservaciones',
]])
->add('proyecto', EntityType::class, [
'class' => \App\Entity\Comun\Proyecto::class,
'query_builder' => function (\App\Repository\Comun\ProyectoRepository $er) use ($options) {
return $er->createQueryBuilder('p')
// ->innerJoin('p.tareas', 't', \Doctrine\ORM\Query\Expr\Join::ON)
// ->innerJoin('t.tareaEmpleadas', 'te', \Doctrine\ORM\Query\Expr\Join::ON)
// ->andWhere('te.empleada =:empleada')
// ->setParameter('empleada', $options['empleada'])
->andWhere('p.estado !=:estado')
->setParameter('estado',2)
->distinct();
},
'label' => 'fichaje.proyecto',
'required' => true,
'attr' => ['class' => 'form-control select2-blank',
'data-toggle' => 'select2',
'placeholder' => 'fichaje.placeholderProyecto'
],
])
;
}
public function configureOptions(OptionsResolver $resolver): void {
$resolver->setDefaults([
'data_class' => Fichaje::class,
'empleada' => null
]);
}
}