diff --git a/app/Resources/views/cea/servicios_mostar.html.twig b/app/Resources/views/cea/servicios_mostar.html.twig index 994eeae..40e8fe8 100644 --- a/app/Resources/views/cea/servicios_mostar.html.twig +++ b/app/Resources/views/cea/servicios_mostar.html.twig @@ -261,6 +261,8 @@ {% else %}

Documentos Para confirmar

+ Permisio inicia: {{ servicio.docentePermisoTiempo.last.fechaInicio | date("m-d-Y") }}
+ Permisio finaliza: {{ servicio.docentePermisoTiempo.last.fechaFinal | date("m-d-Y") }}
diff --git a/app/Resources/views/solicitudes/permisos_index.html.twig b/app/Resources/views/solicitudes/permisos_index.html.twig index e1bd2eb..40e4888 100644 --- a/app/Resources/views/solicitudes/permisos_index.html.twig +++ b/app/Resources/views/solicitudes/permisos_index.html.twig @@ -51,7 +51,20 @@
Puedes solicitar permiso por estudio (finalizar tesis maestría o doctorado) hasta un - máximo de tres meses. + máximo de tres meses.

+ + {% form_theme formEstudio 'bootstrap_3_layout.html.twig' %} + {{ form_start(formEstudio, {'attr': {'novalidate': 'novalidate'}}) }} +
+
+ {{ form_row(formEstudio.fechaInicio) }} +
+
+ {{ form_row(formEstudio.tiempo) }} +
+ +
+ {{ form_end(formEstudio) }}
@@ -67,7 +80,21 @@
Necesitar salir al extranjero a realizar una ponencia, taller, entre otros, gestiona tu permiso a través del CEA@UBV. Necesario presentar un soporte que valide - el traslado al extranjero. + el traslado al extranjero.

+ + {% form_theme formExtranjero 'bootstrap_3_layout.html.twig' %} + {{ form_start(formExtranjero, {'attr': {'novalidate': 'novalidate'}}) }} +
+
+ {{ form_row(formExtranjero.fechaInicio) }} +
+
+ {{ form_row(formExtranjero.fechaFinal) }} +
+ +
+ {{ form_end(formExtranjero) }} +
diff --git a/src/AppBundle/Controller/AppController.php b/src/AppBundle/Controller/AppController.php index 69c7e30..6832804 100644 --- a/src/AppBundle/Controller/AppController.php +++ b/src/AppBundle/Controller/AppController.php @@ -7,6 +7,8 @@ */ namespace AppBundle\Controller; +use AppBundle\Entity\DocentePermisoTiempo; +use AppBundle\Entity\DocumentosVerificados; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; @@ -268,11 +270,25 @@ class AppController extends Controller { $parametros = $request->request->all(); + //Guardar el resultado de la verificación de Documentos de los permisos sabaticos if($servicios->getIdServicioCe()->getId() == 8){ verificar_documentos4($servicios->getIdRolInstitucion(), 18, 1, $em, "", $servicios); } + if($servicios->getIdServicioCe()->getId() == 9){ + verificar_documentos4($servicios->getIdRolInstitucion(), 19, 1, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 20, 1, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 21, 1, $em, "", $servicios); + } + + if($servicios->getIdServicioCe()->getId() == 10){ + verificar_documentos4($servicios->getIdRolInstitucion(), 19, 1, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 20, 1, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 22, 1, $em, "", $servicios); + + } + }else{ @@ -288,6 +304,18 @@ class AppController extends Controller { if($servicios->getIdServicioCe()->getId() == 8){ verificar_documentos4($servicios->getIdRolInstitucion(), 18, 3, $em, "", $servicios); } + + if($servicios->getIdServicioCe()->getId() == 9){ + verificar_documentos4($servicios->getIdRolInstitucion(), 19, 3, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 20, 3, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 21, 3, $em, "", $servicios); + } + + if($servicios->getIdServicioCe()->getId() == 10){ + verificar_documentos4($servicios->getIdRolInstitucion(), 19, 3, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 20, 3, $em, "", $servicios); + verificar_documentos4($servicios->getIdRolInstitucion(), 22, 3, $em, "", $servicios); + } } $em->persist($servicios); @@ -338,10 +366,11 @@ class AppController extends Controller { } function verificar_documentos4($idRolInstitucion, $tipo, $estatus, $em, $ubicacion="", $servicio){ - $existe = $em->getRepository("AppBundle:DocumentosVerificados")->findOneBy(array( - 'idRolInstitucion' => $idRolInstitucion, - 'idTipoDocumentos' => $tipo - )); + $existe = $em->getRepository("AppBundle:DocumentosVerificados")->findOneBy( + array('idRolInstitucion' => $idRolInstitucion, 'idTipoDocumentos' => $tipo), + array('id' => 'DESC') + ); + if(!$existe) { $verificacion = new DocumentosVerificados(); diff --git a/src/AppBundle/Controller/PermisosController.php b/src/AppBundle/Controller/PermisosController.php index 4a165a8..efe6c18 100644 --- a/src/AppBundle/Controller/PermisosController.php +++ b/src/AppBundle/Controller/PermisosController.php @@ -8,6 +8,7 @@ namespace AppBundle\Controller; +use AppBundle\Entity\DocentePermisoTiempo; use AppBundle\Entity\DocumentosVerificados; use AppBundle\Entity\PidaCaducidad; use AppBundle\Entity\PidaEstatus; @@ -56,7 +57,7 @@ class PermisosController extends Controller ); if($sabatico && ($sabatico->getIdEstatus()->getId() == 1 || $sabatico->getIdEstatus()->getId() == 2 )){ - $tiempoEspera = $sabatico->getFechaSolicitud()->diff(new \DateTime("now")); + $tiempoEspera = $sabatico->getFechaUltimaActualizacion()->diff(new \DateTime("now")); if($tiempoEspera->y >= 7 && $sabatico->getIdEstatus()->getId() == 1){ $sabatico->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4)); $em->persist($sabatico); @@ -78,6 +79,18 @@ class PermisosController extends Controller $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(8)); $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2)); $em->persist($servicios); + + + $permisoTiempo = new DocentePermisoTiempo(); + $permisoTiempo->setFechaInicio($formSabatico->get('fechaInicio')->getData()); + $fecha = strtotime($formSabatico->get('fechaInicio')->getData()->format('d-m-Y')); + $fecha = strtotime('+1 year', $fecha ); + $newformat = date('Y-m-d', $fecha); + + $permisoTiempo->setFechaFinal(new \DateTime($newformat)); + $permisoTiempo->setIdDocenteServicio($servicios); + $em->persist($permisoTiempo); + $em->flush(); $motivo = $formSabatico->get('motivo')->getData(); @@ -105,52 +118,182 @@ class PermisosController extends Controller 'idRolInstitucion' => $docente, 'idServicioCe' => 9 ), array('id' => 'DESC') ); + $cuantoAprobaron = $this->getDoctrine()->getRepository("AppBundle:DocentePermisoTiempo")->findOneByIdDocenteServicio($estudio); + $tiempoAprobaron = $cuantoAprobaron->getFechaFinal()->diff($cuantoAprobaron->getFechaInicio()); + $caduco = $cuantoAprobaron->getFechaFinal()->diff(new \DateTime("now")); if($estudio && ($estudio->getIdEstatus()->getId() == 1 || $estudio->getIdEstatus()->getId() == 2 )){ - $tiempoEspera = $estudio->getFechaSolicitud()->diff(new \DateTime("now")); + $tiempoEspera = $cuantoAprobaron->getFechaFinal()->diff(new \DateTime("now")); if($tiempoEspera->y >= 1 && $estudio->getIdEstatus()->getId() == 1){ $estudio->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4)); $em->persist($estudio); $em->flush(); - }else { - $this->addFlash('warning', 'Ya posee una solicitud en espera o activa, no puede realizar otra solicitud.'); + }else if($tiempoAprobaron->m == 3 || !$estudio->getIdEstatus()->getId() == 1 || !$caduco->m > 0) { + $this->addFlash('warning', 'Todavia no puede realizar otra solicitud, debe esperar que el tiempo caduque si fue aprobado menos de tres meses o esperar un año para una nueva solicitud.'); return $this->redirect($this->generateUrl('servicios_index')); } } - $formSabatico = $this->createForm('AppBundle\Form\PermisoSabaticoType'); - $formSabatico->handleRequest($request); - if ($formSabatico->isSubmitted() && $formSabatico->isValid()) { + $formEstudio = $this->createForm('AppBundle\Form\PermisoEstudioType'); + $formEstudio->handleRequest($request); + if ($formEstudio->isSubmitted() && $formEstudio->isValid()) { $servicios = new DocenteServicio(); $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); - $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(8)); + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(9)); $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2)); + $servicios->setFechaSolicitud($formEstudio->get('fechaInicio')->getData()); $em->persist($servicios); + + $permisoTiempo = new DocentePermisoTiempo(); + $permisoTiempo->setFechaInicio($formEstudio->get('fechaInicio')->getData()); + $fecha = strtotime($formEstudio->get('fechaInicio')->getData()->format('d-m-Y')); + $meses = $formEstudio->get('tiempo')->getData(); + $fecha = strtotime('+' . $meses . ' month', $fecha ); + $newformat = date('Y-m-d', $fecha); + $permisoTiempo->setFechaFinal(new \DateTime($newformat)); + $permisoTiempo->setIdDocenteServicio($servicios); + $em->persist($permisoTiempo); + + $em->flush(); - $motivo = $formSabatico->get('motivo')->getData(); - $nombreMotivo = md5(uniqid()).'.'.$motivo->guessExtension(); + $socioAcademico = $formEstudio->get('permisoSocioAcademico')->getData(); + $nombreSocioAcademico = md5(uniqid()).'.'.$socioAcademico->guessExtension(); - $motivo->move( + $socioAcademico->move( $this->container->getParameter('permiso_directory'), - $nombreMotivo + $nombreSocioAcademico ); - thumbnail3($nombreMotivo, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + thumbnail3($nombreSocioAcademico, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); - verificar_documentos3($servicios->getIdRolInstitucion(),18,2,$em, $nombreMotivo, $servicios); - $this->addFlash('success', 'Permiso solicitado satisfactoriamente'); + verificar_documentos3($servicios->getIdRolInstitucion(),19,2,$em, $nombreSocioAcademico, $servicios); + + + + + $regional = $formEstudio->get('permisoCoordRegional')->getData(); + $nombreRegional = md5(uniqid()).'.'. $regional->guessExtension(); + + $regional->move( + $this->container->getParameter('permiso_directory'), + $nombreRegional + ); + thumbnail3($nombreRegional, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + + verificar_documentos3($servicios->getIdRolInstitucion(),20,2,$em, $nombreRegional, $servicios); + + $cartaTesis = $formEstudio->get('cartaTesis')->getData(); + $nombreCartaTesis = md5(uniqid()).'.'.$cartaTesis->guessExtension(); + + $cartaTesis->move( + $this->container->getParameter('permiso_directory'), + $nombreCartaTesis + ); + thumbnail3($nombreCartaTesis, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + + verificar_documentos3($servicios->getIdRolInstitucion(),21,2,$em, $nombreCartaTesis, $servicios); + $this->addFlash('success', 'Permiso por estudio solicitado satisfactoriamente'); return $this->redirect($this->generateUrl('servicios_index')); } /* Fin Estudio */ - return $this->render('solicitudes/permisos_index.html.twig', array( - 'formSabatico' => $formSabatico->createView() + + + /* Permiso extranjero */ + $estudio = $this->getDoctrine()->getRepository("AppBundle:DocenteServicio")->findOneBy(array( + 'idRolInstitucion' => $docente, 'idServicioCe' => 9 ), + array('id' => 'DESC') + ); + $cuantoAprobaron = $this->getDoctrine()->getRepository("AppBundle:DocentePermisoTiempo")->findOneByIdDocenteServicio($estudio); + $tiempoAprobaron = $cuantoAprobaron->getFechaFinal()->diff($cuantoAprobaron->getFechaInicio()); + + $caduco = $cuantoAprobaron->getFechaFinal()->diff(new \DateTime("now")); + if($estudio && ($estudio->getIdEstatus()->getId() == 1 || $estudio->getIdEstatus()->getId() == 2 )){ + $tiempoEspera = $cuantoAprobaron->getFechaFinal()->diff(new \DateTime("now")); + if($tiempoEspera->y >= 1 && $estudio->getIdEstatus()->getId() == 1){ + $estudio->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4)); + $em->persist($estudio); + $em->flush(); + }else{ + $this->addFlash('warning', 'Ya posee una solicitud en espera o activa, no puede realizar otra solicitud.'); + return $this->redirect($this->generateUrl('servicios_index')); + } + } + + + $formExtranjero = $this->createForm('AppBundle\Form\PermisoExtranjeroType'); + $formExtranjero->handleRequest($request); + if ($formExtranjero->isSubmitted() && $formExtranjero->isValid()) { + + $servicios = new DocenteServicio(); + + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(10)); + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2)); + $servicios->setFechaSolicitud($formExtranjero->get('fechaInicio')->getData()); + $em->persist($servicios); + + $permisoTiempo = new DocentePermisoTiempo(); + $permisoTiempo->setFechaInicio($formExtranjero->get('fechaInicio')->getData()); + $permisoTiempo->setFechaFinal($formExtranjero->get('fechaFinal')->getData()); + $permisoTiempo->setIdDocenteServicio($servicios); + $em->persist($permisoTiempo); + + + $em->flush(); + + $socioAcademico = $formExtranjero->get('permisoSocioAcademico')->getData(); + $nombreSocioAcademico = md5(uniqid()).'.'.$socioAcademico->guessExtension(); + + $socioAcademico->move( + $this->container->getParameter('permiso_directory'), + $nombreSocioAcademico + ); + thumbnail3($nombreSocioAcademico, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + + verificar_documentos3($servicios->getIdRolInstitucion(),19,2,$em, $nombreSocioAcademico, $servicios); + + + + + $regional = $formExtranjero->get('permisoCoordRegional')->getData(); + $nombreRegional = md5(uniqid()).'.'. $regional->guessExtension(); + + $regional->move( + $this->container->getParameter('permiso_directory'), + $nombreRegional + ); + thumbnail3($nombreRegional, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + + verificar_documentos3($servicios->getIdRolInstitucion(),20,2,$em, $nombreRegional, $servicios); + + $cartaInvitacion = $formExtranjero->get('cartaInvitacion')->getData(); + $nombreCartaInvitacion = md5(uniqid()).'.'.$cartaInvitacion->guessExtension(); + + $cartaInvitacion->move( + $this->container->getParameter('permiso_directory'), + $nombreCartaInvitacion + ); + thumbnail3($nombreCartaInvitacion, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory')); + + verificar_documentos3($servicios->getIdRolInstitucion(),22,2,$em, $nombreCartaInvitacion, $servicios); + $this->addFlash('success', 'Permiso para el extranjero solicitado satisfactoriamente'); + return $this->redirect($this->generateUrl('servicios_index')); + } + + /* Fin extranjero */ + + + return $this->render('solicitudes/permisos_index.html.twig', array( + 'formSabatico' => $formSabatico->createView(), + 'formEstudio' => $formEstudio->createView(), + 'formExtranjero' => $formExtranjero->createView() )); } diff --git a/src/AppBundle/Entity/DocentePermisoTiempo.php b/src/AppBundle/Entity/DocentePermisoTiempo.php new file mode 100644 index 0000000..4bcf77b --- /dev/null +++ b/src/AppBundle/Entity/DocentePermisoTiempo.php @@ -0,0 +1,137 @@ +id; + } + + /** + * Set fecha_inicio + * + * @param \DateTime $fechaInicio + * @return DocentePermisoTiempo + */ + public function setFechaInicio($fechaInicio) + { + $this->fecha_inicio = $fechaInicio; + + return $this; + } + + /** + * Get fecha_inicio + * + * @return \DateTime + */ + public function getFechaInicio() + { + return $this->fecha_inicio; + } + + /** + * Set fecha_final + * + * @param \DateTime $fechaFinal + * @return DocentePermisoTiempo + */ + public function setFechaFinal($fechaFinal) + { + $this->fecha_final = $fechaFinal; + + return $this; + } + + /** + * Get fecha_final + * + * @return \DateTime + */ + public function getFechaFinal() + { + return $this->fecha_final; + } + + /** + * Set idDocenteServicio + * + * @param \AppBundle\Entity\DocenteServicio $idDocenteServicio + * @return DocentePermisoTiempo + */ + public function setIdDocenteServicio(\AppBundle\Entity\DocenteServicio $idDocenteServicio = null) + { + $this->idDocenteServicio = $idDocenteServicio; + + return $this; + } + + /** + * Get idDocenteServicio + * + * @return \AppBundle\Entity\DocenteServicio + */ + public function getIdDocenteServicio() + { + return $this->idDocenteServicio; + } +} diff --git a/src/AppBundle/Entity/DocenteServicio.php b/src/AppBundle/Entity/DocenteServicio.php index a56499b..a80162a 100644 --- a/src/AppBundle/Entity/DocenteServicio.php +++ b/src/AppBundle/Entity/DocenteServicio.php @@ -51,6 +51,13 @@ class DocenteServicio { * }) */ protected $idRolInstitucion; + + + /** + * @ORM\OneToMany(targetEntity="AppBundle\Entity\DocentePermisoTiempo", mappedBy="idDocenteServicio",cascade={"all"}) + * @var \Doctrine\Common\Collections\ArrayCollection + */ + private $docentePermisoTiempo; /** @@ -201,4 +208,44 @@ class DocenteServicio { { return $this->fechaUltimaActualizacion; } + /** + * Constructor + */ + public function __construct() + { + $this->docentePermisoTiempo = new \Doctrine\Common\Collections\ArrayCollection(); + } + + /** + * Add docentePermisoTiempo + * + * @param \AppBundle\Entity\DocentePermisoTiempo $docentePermisoTiempo + * @return DocenteServicio + */ + public function addDocentePermisoTiempo(\AppBundle\Entity\DocentePermisoTiempo $docentePermisoTiempo) + { + $this->docentePermisoTiempo[] = $docentePermisoTiempo; + + return $this; + } + + /** + * Remove docentePermisoTiempo + * + * @param \AppBundle\Entity\DocentePermisoTiempo $docentePermisoTiempo + */ + public function removeDocentePermisoTiempo(\AppBundle\Entity\DocentePermisoTiempo $docentePermisoTiempo) + { + $this->docentePermisoTiempo->removeElement($docentePermisoTiempo); + } + + /** + * Get docentePermisoTiempo + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getDocentePermisoTiempo() + { + return $this->docentePermisoTiempo; + } } diff --git a/src/AppBundle/Form/PermisoEstudioType.php b/src/AppBundle/Form/PermisoEstudioType.php new file mode 100644 index 0000000..3dba415 --- /dev/null +++ b/src/AppBundle/Form/PermisoEstudioType.php @@ -0,0 +1,113 @@ +add('fechaInicio',DateType::class, array( + 'widget' => 'choice', + 'label' => 'Permisio inicia desde', + 'label_attr' => array('class' => 'form-group'), + 'years' => range(date("Y")-4, date("Y")), + 'placeholder' => array( + 'year' => 'Año', 'month' => 'Mes', 'day' => 'Día', + ), + 'constraints' => array( + new NotBlank(), + new Date() + ) + )) + ->add('tiempo', ChoiceType::class, array( + 'placeholder' => 'Tiempo Solicitado', + 'choices' => array( + '1' => "1 Mes", + '2' => "2 meses", + '3' => "3 meses", + ), + 'constraints' => array( + new NotBlank(), + ) + )) + ->add('permisoSocioAcademico', FileType::class, array( + 'label' => 'Digital aprobación socio-académico', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + ->add('permisoCoordRegional', FileType::class, array( + 'label' => 'Digital aprobación coordinación regional del CEA', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + + ->add('cartaTesis', FileType::class, array( + 'label' => 'Digital carta de culminación de materias', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + + ->add('send', SubmitType::class, array( + 'label' => 'Enviar motivo', + 'attr' => array( + 'class' => 'btn btn-success btn-block', + 'data-loading-text' => " Procesando Solicitud..." + ) + )) + ; + } + + +} diff --git a/src/AppBundle/Form/PermisoExtranjeroType.php b/src/AppBundle/Form/PermisoExtranjeroType.php new file mode 100644 index 0000000..a4182f4 --- /dev/null +++ b/src/AppBundle/Form/PermisoExtranjeroType.php @@ -0,0 +1,115 @@ +add('fechaInicio',DateType::class, array( + 'widget' => 'choice', + 'label' => 'Permisio inicia desde', + 'label_attr' => array('class' => 'form-group'), + 'years' => range(date("Y"), date("Y") +4), + 'placeholder' => array( + 'year' => 'Año', 'month' => 'Mes', 'day' => 'Día', + ), + 'constraints' => array( + new NotBlank(), + new Date() + ) + )) + ->add('fechaFinal',DateType::class, array( + 'widget' => 'choice', + 'label' => 'Permisio finaliza', + 'label_attr' => array('class' => 'form-group'), + 'years' => range(date("Y"), date("Y") +4), + 'placeholder' => array( + 'year' => 'Año', 'month' => 'Mes', 'day' => 'Día', + ), + 'constraints' => array( + new NotBlank(), + new Date() + ) + )) + ->add('permisoSocioAcademico', FileType::class, array( + 'label' => 'Digital aprobación socio-académico', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + ->add('permisoCoordRegional', FileType::class, array( + 'label' => 'Digital aprobación coordinación regional del CEA', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + + ->add('cartaInvitacion', FileType::class, array( + 'label' => 'Digital carta de invitación al extranjero', + 'constraints' => array( + new NotBlank(), + new File(array( + 'maxSize' => '1024K', + 'mimeTypes' => [ + 'application/pdf', + 'application/x-pdf', + 'image/png', + 'image/jpg', + 'image/jpeg' + ], + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' + )) + ) + )) + + ->add('send', SubmitType::class, array( + 'label' => 'Enviar motivo', + 'attr' => array( + 'class' => 'btn btn-success btn-block', + 'data-loading-text' => " Procesando Solicitud..." + ) + )) + ; + } + + +} diff --git a/src/AppBundle/Form/PermisoSabaticoType.php b/src/AppBundle/Form/PermisoSabaticoType.php index 10b52fd..a22a7be 100644 --- a/src/AppBundle/Form/PermisoSabaticoType.php +++ b/src/AppBundle/Form/PermisoSabaticoType.php @@ -10,9 +10,11 @@ namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\Extension\Core\Type\SubmitType; +use Symfony\Component\Validator\Constraints\Date; use Symfony\Component\Validator\Constraints\File; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Form\Extension\Core\Type\FileType; @@ -23,6 +25,20 @@ class PermisoSabaticoType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options) { $builder + + ->add('fechaInicio',DateType::class, array( + 'widget' => 'choice', + 'label' => 'Permisio inicia desde', + 'label_attr' => array('class' => 'form-group'), + 'years' => range(date("Y"), date("Y")+2), + 'placeholder' => array( + 'year' => 'Año', 'month' => 'Mes', 'day' => 'Día', + ), + 'constraints' => array( + new NotBlank(), + new Date() + ) + )) ->add('motivo', FileType::class, array( 'label' => 'Digital Carta Exposición de Motivos',