Commit 32adfbad7bf2100bdee5d1b4e3ea823b74d0494c

Authored by Wilmer Ramones
1 parent 901bbe6e0a
Exists in master

creada la estructura, la entidad, el controlador, la vista y la plantilla para solicitar ascenso

app/Resources/views/base_app.html.twig
... ... @@ -59,7 +59,7 @@
59 59 </a>
60 60 <ul class="dropdown-menu">
61 61 <li><a href="{{ path('servicios_index') }}">Mis Servicios</a></li>
62   - <li><a href="#">Solicitar Ascenso</a></li>
  62 + <li><a href="{{ path('cea_solicitud_ascenso') }}">Solicitar Ascenso</a></li>
63 63 <li><a href="{{ path( 'cea_solicitudes_estado_academico' ) }}">Solicitar Estado Académico</a></li>
64 64 <li><a href="{{ path('cea_solicitudes_recocimiento_antiguedad') }}">Reconocimiento de Antiguedad</a></li>
65 65 </ul>
... ...
app/Resources/views/solicitudes/ascenso.html.twig
... ... @@ -0,0 +1,60 @@
  1 +{% extends 'base_app.html.twig' %}
  2 +
  3 +{% block stylesheets %}
  4 + {{ parent() }}
  5 +
  6 + <style>
  7 + .esc_oposicion, .esc_asistente, .esc_agregado, .esc_asociado, .esc_titular{
  8 + display: none;
  9 + }
  10 +
  11 + h1, h4{
  12 + margin:0;
  13 + }
  14 +
  15 + .container{
  16 + margin-bottom: 0;
  17 + }
  18 + </style>
  19 +{% endblock %}
  20 +
  21 +
  22 +
  23 +{% block body %}
  24 + <div class="container">
  25 + <h4 class="alert alert-info"><i class="fa fa-info-circle"></i>
  26 + Estimado (a) Docente
  27 + <strong>{{app.user.idRolInstitucion.idRol.idPersona.primerNombre}}
  28 + {{app.user.idRolInstitucion.idRol.idPersona.primerApellido}}</strong>,
  29 + En este apartado usted podrá solicitar el ascenso al siguiente escalafón.
  30 +
  31 + </h4>
  32 + </div>
  33 + <div class="account-container register">
  34 + <div class="content clearfix">
  35 + <h1>Solicitud de Ascenso</h1>
  36 + {% form_theme form 'bootstrap_3_layout.html.twig' %}
  37 + {{ form_start(form) }}
  38 + {{ form_widget(form) }}
  39 + {{ form_end(form) }}
  40 + </div>
  41 +
  42 + </div>
  43 +
  44 +
  45 +{% endblock %}
  46 +
  47 +
  48 +
  49 +
  50 +{% block javascripts %}
  51 + {{ parent() }}
  52 + <script type="text/javascript">
  53 + $('#ascenso_tipoTrabajoInvestigacion').click(function() {
  54 +
  55 + $('.esc_oposicion')[this.checked ? "show" : "hide"]();
  56 +
  57 + });
  58 +
  59 + </script>
  60 +{% endblock %}
... ...
src/AppBundle/Controller/AscensoController.php
... ... @@ -0,0 +1,173 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 09:08 AM
  7 + */
  8 +
  9 +namespace AppBundle\Controller;
  10 +
  11 +
  12 +use Symfony\Component\HttpFoundation\File\UploadedFile;
  13 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  14 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  15 +use Symfony\Component\HttpFoundation\Request;
  16 +use AppBundle\Entity\Ascenso;
  17 +use AppBundle\Entity\DocenteEscala;
  18 +use AppBundle\Entity\Memorando;
  19 +use AppBundle\Entity\DocenteServicio;
  20 +use AppBundle\Entity\AdscripcionPida;
  21 +
  22 +
  23 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  24 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  25 +
  26 +class AscensoController extends Controller
  27 +{
  28 + /**
  29 + * @Route("/solicitud/ascenso", name="cea_solicitud_ascenso")
  30 + */
  31 + public function ascensoAction(Request $request)
  32 + {
  33 +
  34 +
  35 + $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findOneBy(
  36 + array('idRolInstitucion' => $this->getUser()->getIdRolInstitucion()),
  37 + array('id' => 'DESC')
  38 + );
  39 +
  40 + $siguiente = $escala->getIdEscala()->getId() + 1;
  41 + $ascenso = new Ascenso();
  42 + if($siguiente < 6){
  43 + $nueva_escala = $this->getDoctrine()->getRepository('AppBundle:Escalafones')->findOneById($siguiente);
  44 + }
  45 +
  46 +
  47 +
  48 +
  49 +
  50 + $form = $this->createForm('AppBundle\Form\AscensoType');
  51 + $form->handleRequest($request);
  52 +
  53 +
  54 + if ($form->isSubmitted() && $form->isValid()) {
  55 +
  56 + $ascenso = new Ascenso();
  57 + // $file stores the uploaded PDF file
  58 + /** @var UploadedFile $constanciaTrabajo */
  59 + $constanciaTrabajo = $form->get('trabajo')->getData();
  60 + /** @var UploadedFile $constanciaPregrado */
  61 + $constanciaExpediente = $form->get('expediente')->getData();
  62 + /** @var UploadedFile $constanciaPregrado */
  63 + $constanciaPida = $form->get('pida')->getData();
  64 + /** @var UploadedFile $constanciaPregrado */
  65 + $constanciaNai = $form->get('nai')->getData();
  66 + /** @var UploadedFile $constanciaPregrado */
  67 + $constanciaInvestigacion = $form->get('investigacion')->getData();
  68 +
  69 +
  70 +
  71 + // Generate a unique name for the file before saving it
  72 + $nombreTrabajo = md5(uniqid()).'.'.$constanciaTrabajo->guessExtension();
  73 + $nombreExpediente = md5(uniqid()).'.'.$constanciaExpediente->guessExtension();
  74 + $nombrePida = md5(uniqid()).'.'.$constanciaPida->guessExtension();
  75 + $nombreNai = md5(uniqid()).'.'.$constanciaNai->guessExtension();
  76 + $nombreInvestigacion = md5(uniqid()).'.'.$constanciaInvestigacion->guessExtension();
  77 +
  78 + // Guardar el archivo y crear la miniatura de cada uno
  79 + $constanciaTrabajo->move(
  80 + $this->container->getParameter('ascenso_directory'),
  81 + $nombreTrabajo
  82 + );
  83 + thumbnail($nombreTrabajo, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  84 +
  85 +
  86 + $constanciaExpediente->move(
  87 + $this->container->getParameter('ascenso_directory'),
  88 + $nombreExpediente
  89 + );
  90 + thumbnail($nombreExpediente, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  91 +
  92 + $constanciaPida->move(
  93 + $this->container->getParameter('ascenso_directory'),
  94 + $nombrePida
  95 + );
  96 + thumbnail($nombrePida, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  97 +
  98 +
  99 + $constanciaNai->move(
  100 + $this->container->getParameter('ascenso_directory'),
  101 + $nombreNai
  102 + );
  103 + thumbnail($nombreNai, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  104 +
  105 + if($form->get('investigacion')->getData()) {
  106 + /** @var UploadedFile $constanciaPostgrado */
  107 + $constanciaInvestigacion = $form->get('investigacion')->getData();
  108 + $nombreInvestigacion = md5(uniqid()).'.'.$constanciaInvestigacion->guessExtension();
  109 + $constanciaInvestigacion->move(
  110 + $this->container->getParameter('ascenso_directory'),
  111 + $nombreInvestigacion
  112 + );
  113 + thumbnail($nombreInvestigacion, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  114 + $ascenso->setInvestigacion($nombreInvestigacion);
  115 + }
  116 + $em = $this->getDoctrine()->getManager();
  117 +
  118 + $ascenso->setTrabajo($nombreTrabajo);
  119 + $ascenso->setExpediente($nombreExpediente);
  120 + $ascenso->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  121 + $ascenso->setPida($nombrePida);
  122 + $ascenso->setNai($nombreNai);
  123 + $ascenso->setInvestigacion($nombreInvestigacion);
  124 + $ascenso->setTituloTrabajo($form->get('titulo_trabajo')->getData());
  125 + $ascenso->setIdEscalafones($nueva_escala);
  126 + $ascenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(2));
  127 +
  128 +
  129 + if ($form->get('pertinencia')->getData()){
  130 +
  131 + $constanciaPertinencia = $form->get('pertinencia')->getData();
  132 + $nombrePertinencia = md5(uniqid()).'.'.$constanciaPertinencia->guessExtension();
  133 + $constanciaPertinencia->move(
  134 + $this->container->getParameter('ascenso_directory'),
  135 + $nombrePertinencia
  136 + );
  137 + thumbnail($nombrePertinencia, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
  138 + $ascenso->setPertinencia($nombrePertinencia);
  139 + $ascenso->setIdLineaInvestigacion($form->get('lineas_investigacion')->getData());
  140 +
  141 + }
  142 +
  143 +
  144 +
  145 +
  146 + //Crear la solicitud de Servicio
  147 + $servicios = new DocenteServicio();
  148 +
  149 + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  150 + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(5));
  151 + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
  152 +
  153 + $em->persist($servicios);
  154 + $em->persist($ascenso);
  155 +
  156 + $em->flush(); //guarda en la base de datos
  157 +
  158 +
  159 +
  160 +
  161 + return $this->redirect($this->generateUrl('cea_index'));
  162 + }
  163 +
  164 + return $this->render(
  165 + 'solicitudes/ascenso.html.twig',
  166 + array('form' => $form->createView())
  167 + );
  168 + }
  169 +
  170 +
  171 +
  172 +}
  173 +
... ...
src/AppBundle/Entity/Ascenso.php
... ... @@ -0,0 +1,444 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Entity;
  4 +
  5 +use Doctrine\ORM\Mapping as ORM;
  6 +use Symfony\Component\Validator\Constraints as Assert;
  7 +
  8 +
  9 +/**
  10 + * Ascenso
  11 + *
  12 + * @ORM\Table(name="solicitud_ascenso", uniqueConstraints={@ORM\UniqueConstraint(name="ascenso_id_rol_institucion_docente_escalafones", columns={"id_rol_institucion", "id_escalafones"})})
  13 + * @ORM\Entity
  14 + * @ORM\HasLifecycleCallbacks()
  15 + */
  16 +class Ascenso
  17 +{
  18 +
  19 + /**
  20 + * @var integer
  21 + *
  22 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del Ascenso"})
  23 + * @ORM\Id
  24 + * @ORM\GeneratedValue(strategy="IDENTITY")
  25 + * @ORM\SequenceGenerator(sequenceName="adscripcion_id_seq", allocationSize=1, initialValue=1)
  26 + */
  27 + private $id;
  28 +
  29 +
  30 + /**
  31 + * @var \AppBundle\Entity\RolInstitucion
  32 + *
  33 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\RolInstitucion")
  34 + * @ORM\JoinColumns({
  35 + * @ORM\JoinColumn(name="id_rol_institucion", referencedColumnName="id", nullable=false)
  36 + * })
  37 + */
  38 + protected $idRolInstitucion;
  39 +
  40 +
  41 +
  42 + /**
  43 + * @var \AppBundle\Entity\Escalafones
  44 + *
  45 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Escalafones")
  46 + * @ORM\JoinColumns({
  47 + * @ORM\JoinColumn(name="id_escalafones", referencedColumnName="id", nullable=false)
  48 + * })
  49 + */
  50 + protected $idEscalafones;
  51 +
  52 +
  53 + /**
  54 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la constancia de trabajo"})
  55 + *
  56 + * @Assert\NotBlank(message="Debe cargar su constancia de Trabajo, es obligatoria.")
  57 + * @Assert\File(mimeTypes={ "application/pdf" })
  58 + */
  59 + private $trabajo;
  60 +
  61 +
  62 + /**
  63 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la constancia de actualización de Expediente"})
  64 + *
  65 + * @Assert\NotBlank(message="debe cargar su constancia de actualización de expediente, es obligatorio.")
  66 + * @Assert\File(mimeTypes={ "application/pdf" })
  67 + */
  68 + private $expediente;
  69 +
  70 +
  71 + /**
  72 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la socialización del PIDA"})
  73 + *
  74 + * @Assert\NotBlank(message="debe cargar su constancia de socializacion del PIDA, es obligatorio.")
  75 + * @Assert\File(mimeTypes={ "application/pdf" })
  76 + */
  77 + private $pida;
  78 +
  79 + /**
  80 + * @ORM\Column(type="string", nullable=false, options={"comment" = "digital del documento aval del nucleo academico de investigacion"})
  81 + *
  82 + * @Assert\NotBlank(message="debe cargar su constnacia aval del NAI, es obligatorio.")
  83 + * @Assert\File(mimeTypes={ "application/pdf" })
  84 + */
  85 + private $nai;
  86 +
  87 + /**
  88 + * @ORM\Column(type="string", nullable=false, options={"comment" = "digital del documento de Trabajo de investigacion"})
  89 + *
  90 + * @Assert\NotBlank(message="debe cargar su Trabajo de investigacion, es obligatorio.")
  91 + * @Assert\File(mimeTypes={ "application/pdf" })
  92 + */
  93 + private $investigacion;
  94 +
  95 +
  96 + /**
  97 + * @ORM\Column(type="string", nullable=true, options={"comment" = "ubicación del digital del informe de pertinencia en caso de ser tesis fuera de ubv"})
  98 + *
  99 + *
  100 + * @Assert\File(mimeTypes={ "application/pdf" })
  101 + */
  102 + private $pertinencia;
  103 +
  104 +
  105 + /**
  106 + * @ORM\Column(name="titulo_trabajo", type="string", nullable=false, options={"comment" = "titulo del trabajo de investigacion"})
  107 + * @Assert\NotBlank(message="Titulo del Trabajo es obligatorio.")
  108 + */
  109 + private $tituloTrabajo;
  110 +
  111 +
  112 + /**
  113 + * @ORM\Column(name="observacion", type="string", nullable=true, options={"comment" = "titulo del trabajo de investigacion"})
  114 + */
  115 + private $observacion;
  116 +
  117 +
  118 + /** @ORM\Column(type="datetime", nullable=false, options={"comment" = "Fecha de creación de la solicitud"})
  119 +
  120 + */
  121 +
  122 + private $fecha_creacion;
  123 +
  124 +
  125 + /** @ORM\Column(type="datetime", nullable=false, options={"comment" = "Fecha de actualizacion de la solicitud"})
  126 +
  127 + */
  128 +
  129 + private $fecha_ultima_actualizacion;
  130 +
  131 + /**
  132 + * @var \AppBundle\Entity\Estatus
  133 + *
  134 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Estatus")
  135 + * @ORM\JoinColumns({
  136 + * @ORM\JoinColumn(name="id_estatus", referencedColumnName="id", nullable=false)
  137 + * })
  138 + */
  139 + protected $idEstatus;
  140 +
  141 +
  142 + /**
  143 + * @ORM\PrePersist
  144 + */
  145 + public function setFechaCreacion()
  146 + {
  147 + $this->fecha_creacion = new \DateTime();
  148 + $this->fecha_ultima_actualizacion = new \DateTime();
  149 + }
  150 +
  151 + public function getFechaCreacion()
  152 + {
  153 + return $this->fecha_creacion;
  154 +
  155 + }
  156 +
  157 +
  158 + /**
  159 + * @ORM\PreUpdate
  160 + */
  161 + public function setFechaUltimaActualizacion()
  162 + {
  163 + $this->fecha_utlima_actualizacion = new \DateTime();
  164 + }
  165 +
  166 +
  167 +
  168 + /**
  169 + * Get id
  170 + *
  171 + * @return integer
  172 + */
  173 + public function getId()
  174 + {
  175 + return $this->id;
  176 + }
  177 +
  178 + /**
  179 + * Set trabajo
  180 + *
  181 + * @param string $trabajo
  182 + * @return Ascenso
  183 + */
  184 + public function setTrabajo($trabajo)
  185 + {
  186 + $this->trabajo = $trabajo;
  187 +
  188 + return $this;
  189 + }
  190 +
  191 + /**
  192 + * Get trabajo
  193 + *
  194 + * @return string
  195 + */
  196 + public function getTrabajo()
  197 + {
  198 + return $this->trabajo;
  199 + }
  200 +
  201 + /**
  202 + * Set expediente
  203 + *
  204 + * @param string $expediente
  205 + * @return Ascenso
  206 + */
  207 + public function setExpediente($expediente)
  208 + {
  209 + $this->expediente = $expediente;
  210 +
  211 + return $this;
  212 + }
  213 +
  214 + /**
  215 + * Get expediente
  216 + *
  217 + * @return string
  218 + */
  219 + public function getExpediente()
  220 + {
  221 + return $this->expediente;
  222 + }
  223 +
  224 + /**
  225 + * Set pida
  226 + *
  227 + * @param string $pida
  228 + * @return Ascenso
  229 + */
  230 + public function setPida($pida)
  231 + {
  232 + $this->pida = $pida;
  233 +
  234 + return $this;
  235 + }
  236 +
  237 + /**
  238 + * Get pida
  239 + *
  240 + * @return string
  241 + */
  242 + public function getPida()
  243 + {
  244 + return $this->pida;
  245 + }
  246 +
  247 + /**
  248 + * Set nai
  249 + *
  250 + * @param string $nai
  251 + * @return Ascenso
  252 + */
  253 + public function setNai($nai)
  254 + {
  255 + $this->nai = $nai;
  256 +
  257 + return $this;
  258 + }
  259 +
  260 + /**
  261 + * Get nai
  262 + *
  263 + * @return string
  264 + */
  265 + public function getNai()
  266 + {
  267 + return $this->nai;
  268 + }
  269 +
  270 + /**
  271 + * Set investigacion
  272 + *
  273 + * @param string $investigacion
  274 + * @return Ascenso
  275 + */
  276 + public function setInvestigacion($investigacion)
  277 + {
  278 + $this->investigacion = $investigacion;
  279 +
  280 + return $this;
  281 + }
  282 +
  283 + /**
  284 + * Get investigacion
  285 + *
  286 + * @return string
  287 + */
  288 + public function getInvestigacion()
  289 + {
  290 + return $this->investigacion;
  291 + }
  292 +
  293 + /**
  294 + * Set pertinencia
  295 + *
  296 + * @param string $pertinencia
  297 + * @return Ascenso
  298 + */
  299 + public function setPertinencia($pertinencia)
  300 + {
  301 + $this->pertinencia = $pertinencia;
  302 +
  303 + return $this;
  304 + }
  305 +
  306 + /**
  307 + * Get pertinencia
  308 + *
  309 + * @return string
  310 + */
  311 + public function getPertinencia()
  312 + {
  313 + return $this->pertinencia;
  314 + }
  315 +
  316 + /**
  317 + * Set tituloTrabajo
  318 + *
  319 + * @param string $tituloTrabajo
  320 + * @return Ascenso
  321 + */
  322 + public function setTituloTrabajo($tituloTrabajo)
  323 + {
  324 + $this->tituloTrabajo = $tituloTrabajo;
  325 +
  326 + return $this;
  327 + }
  328 +
  329 + /**
  330 + * Get tituloTrabajo
  331 + *
  332 + * @return string
  333 + */
  334 + public function getTituloTrabajo()
  335 + {
  336 + return $this->tituloTrabajo;
  337 + }
  338 +
  339 + /**
  340 + * Set observacion
  341 + *
  342 + * @param string $observacion
  343 + * @return Ascenso
  344 + */
  345 + public function setObservacion($observacion)
  346 + {
  347 + $this->observacion = $observacion;
  348 +
  349 + return $this;
  350 + }
  351 +
  352 + /**
  353 + * Get observacion
  354 + *
  355 + * @return string
  356 + */
  357 + public function getObservacion()
  358 + {
  359 + return $this->observacion;
  360 + }
  361 +
  362 + /**
  363 + * Get fecha_ultima_actualizacion
  364 + *
  365 + * @return \DateTime
  366 + */
  367 + public function getFechaUltimaActualizacion()
  368 + {
  369 + return $this->fecha_ultima_actualizacion;
  370 + }
  371 +
  372 + /**
  373 + * Set idRolInstitucion
  374 + *
  375 + * @param \AppBundle\Entity\RolInstitucion $idRolInstitucion
  376 + * @return Ascenso
  377 + */
  378 + public function setIdRolInstitucion(\AppBundle\Entity\RolInstitucion $idRolInstitucion)
  379 + {
  380 + $this->idRolInstitucion = $idRolInstitucion;
  381 +
  382 + return $this;
  383 + }
  384 +
  385 + /**
  386 + * Get idRolInstitucion
  387 + *
  388 + * @return \AppBundle\Entity\RolInstitucion
  389 + */
  390 + public function getIdRolInstitucion()
  391 + {
  392 + return $this->idRolInstitucion;
  393 + }
  394 +
  395 + /**
  396 + * Set idEstatus
  397 + *
  398 + * @param \AppBundle\Entity\Estatus $idEstatus
  399 + * @return Ascenso
  400 + */
  401 + public function setIdEstatus(\AppBundle\Entity\Estatus $idEstatus)
  402 + {
  403 + $this->idEstatus = $idEstatus;
  404 +
  405 + return $this;
  406 + }
  407 +
  408 + /**
  409 + * Get idEstatus
  410 + *
  411 + * @return \AppBundle\Entity\Estatus
  412 + */
  413 + public function getIdEstatus()
  414 + {
  415 + return $this->idEstatus;
  416 + }
  417 +
  418 +
  419 +
  420 +
  421 +
  422 + /**
  423 + * Set idEscalafones
  424 + *
  425 + * @param \AppBundle\Entity\Escalafones $idEscalafones
  426 + * @return Ascenso
  427 + */
  428 + public function setIdEscalafones(\AppBundle\Entity\Escalafones $idEscalafones)
  429 + {
  430 + $this->idEscalafones = $idEscalafones;
  431 +
  432 + return $this;
  433 + }
  434 +
  435 + /**
  436 + * Get idEscalafones
  437 + *
  438 + * @return \AppBundle\Entity\Escalafones
  439 + */
  440 + public function getIdEscalafones()
  441 + {
  442 + return $this->idEscalafones;
  443 + }
  444 +}
... ...
src/AppBundle/Entity/Ascenso.php~
... ... @@ -0,0 +1,421 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Entity;
  4 +
  5 +use Doctrine\ORM\Mapping as ORM;
  6 +use Symfony\Component\Validator\Constraints as Assert;
  7 +
  8 +
  9 +/**
  10 + * Ascenso
  11 + *
  12 + * @ORM\Table(name="solicitud_ascenso", uniqueConstraints={@ORM\UniqueConstraint(name="ascenso_id_rol_institucion_docente_escala", columns={"id_rol_institucion", "id_escala"})})
  13 + * @ORM\Entity
  14 + * @ORM\HasLifecycleCallbacks()
  15 + */
  16 +class Ascenso
  17 +{
  18 +
  19 + /**
  20 + * @var integer
  21 + *
  22 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del Ascenso"})
  23 + * @ORM\Id
  24 + * @ORM\GeneratedValue(strategy="IDENTITY")
  25 + * @ORM\SequenceGenerator(sequenceName="adscripcion_id_seq", allocationSize=1, initialValue=1)
  26 + */
  27 + private $id;
  28 +
  29 +
  30 + /**
  31 + * @var \AppBundle\Entity\RolInstitucion
  32 + *
  33 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\RolInstitucion")
  34 + * @ORM\JoinColumns({
  35 + * @ORM\JoinColumn(name="id_rol_institucion", referencedColumnName="id", nullable=false)
  36 + * })
  37 + */
  38 + protected $idRolInstitucion;
  39 +
  40 +
  41 +
  42 + /**
  43 + * @var \AppBundle\Entity\Escala
  44 + *
  45 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Escalafones")
  46 + * @ORM\JoinColumns({
  47 + * @ORM\JoinColumn(name="id_escala", referencedColumnName="id", nullable=false)
  48 + * })
  49 + */
  50 + protected $idEscalafones;
  51 +
  52 +
  53 + /**
  54 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la constancia de trabajo"})
  55 + *
  56 + * @Assert\NotBlank(message="Debe cargar su constancia de Trabajo, es obligatoria.")
  57 + * @Assert\File(mimeTypes={ "application/pdf" })
  58 + */
  59 + private $trabajo;
  60 +
  61 +
  62 + /**
  63 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la constancia de actualización de Expediente"})
  64 + *
  65 + * @Assert\NotBlank(message="debe cargar su constancia de actualización de expediente, es obligatorio.")
  66 + * @Assert\File(mimeTypes={ "application/pdf" })
  67 + */
  68 + private $expediente;
  69 +
  70 +
  71 + /**
  72 + * @ORM\Column(type="string", nullable=false, options={"comment" = "ubicacion de la socialización del PIDA"})
  73 + *
  74 + * @Assert\NotBlank(message="debe cargar su constancia de socializacion del PIDA, es obligatorio.")
  75 + * @Assert\File(mimeTypes={ "application/pdf" })
  76 + */
  77 + private $pida;
  78 +
  79 + /**
  80 + * @ORM\Column(type="string", nullable=false, options={"comment" = "digital del documento aval del nucleo academico de investigacion"})
  81 + *
  82 + * @Assert\NotBlank(message="debe cargar su constnacia aval del NAI, es obligatorio.")
  83 + * @Assert\File(mimeTypes={ "application/pdf" })
  84 + */
  85 + private $nai;
  86 +
  87 + /**
  88 + * @ORM\Column(type="string", nullable=false, options={"comment" = "digital del documento de Trabajo de investigacion"})
  89 + *
  90 + * @Assert\NotBlank(message="debe cargar su Trabajo de investigacion, es obligatorio.")
  91 + * @Assert\File(mimeTypes={ "application/pdf" })
  92 + */
  93 + private $investigacion;
  94 +
  95 +
  96 + /**
  97 + * @ORM\Column(type="string", nullable=true, options={"comment" = "ubicación del digital del informe de pertinencia en caso de ser tesis fuera de ubv"})
  98 + *
  99 + *
  100 + * @Assert\File(mimeTypes={ "application/pdf" })
  101 + */
  102 + private $pertinencia;
  103 +
  104 +
  105 + /**
  106 + * @ORM\Column(name="titulo_trabajo", type="string", nullable=false, options={"comment" = "titulo del trabajo de investigacion"})
  107 + * @Assert\NotBlank(message="Titulo del Trabajo es obligatorio.")
  108 + */
  109 + private $tituloTrabajo;
  110 +
  111 +
  112 + /**
  113 + * @ORM\Column(name="observacion", type="string", nullable=true, options={"comment" = "titulo del trabajo de investigacion"})
  114 + */
  115 + private $observacion;
  116 +
  117 +
  118 + /** @ORM\Column(type="datetime", nullable=false, options={"comment" = "Fecha de creación de la solicitud"})
  119 +
  120 + */
  121 +
  122 + private $fecha_creacion;
  123 +
  124 +
  125 + /** @ORM\Column(type="datetime", nullable=false, options={"comment" = "Fecha de actualizacion de la solicitud"})
  126 +
  127 + */
  128 +
  129 + private $fecha_ultima_actualizacion;
  130 +
  131 + /**
  132 + * @var \AppBundle\Entity\Estatus
  133 + *
  134 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Estatus")
  135 + * @ORM\JoinColumns({
  136 + * @ORM\JoinColumn(name="id_estatus", referencedColumnName="id", nullable=false)
  137 + * })
  138 + */
  139 + protected $idEstatus;
  140 +
  141 +
  142 + /**
  143 + * @ORM\PrePersist
  144 + */
  145 + public function setFechaCreacion()
  146 + {
  147 + $this->fecha_creacion = new \DateTime();
  148 + $this->fecha_ultima_actualizacion = new \DateTime();
  149 + }
  150 +
  151 + public function getFechaCreacion()
  152 + {
  153 + return $this->fecha_creacion;
  154 +
  155 + }
  156 +
  157 +
  158 + /**
  159 + * @ORM\PreUpdate
  160 + */
  161 + public function setFechaUltimaActualizacion()
  162 + {
  163 + $this->fecha_utlima_actualizacion = new \DateTime();
  164 + }
  165 +
  166 +
  167 +
  168 + /**
  169 + * Get id
  170 + *
  171 + * @return integer
  172 + */
  173 + public function getId()
  174 + {
  175 + return $this->id;
  176 + }
  177 +
  178 + /**
  179 + * Set trabajo
  180 + *
  181 + * @param string $trabajo
  182 + * @return Ascenso
  183 + */
  184 + public function setTrabajo($trabajo)
  185 + {
  186 + $this->trabajo = $trabajo;
  187 +
  188 + return $this;
  189 + }
  190 +
  191 + /**
  192 + * Get trabajo
  193 + *
  194 + * @return string
  195 + */
  196 + public function getTrabajo()
  197 + {
  198 + return $this->trabajo;
  199 + }
  200 +
  201 + /**
  202 + * Set expediente
  203 + *
  204 + * @param string $expediente
  205 + * @return Ascenso
  206 + */
  207 + public function setExpediente($expediente)
  208 + {
  209 + $this->expediente = $expediente;
  210 +
  211 + return $this;
  212 + }
  213 +
  214 + /**
  215 + * Get expediente
  216 + *
  217 + * @return string
  218 + */
  219 + public function getExpediente()
  220 + {
  221 + return $this->expediente;
  222 + }
  223 +
  224 + /**
  225 + * Set pida
  226 + *
  227 + * @param string $pida
  228 + * @return Ascenso
  229 + */
  230 + public function setPida($pida)
  231 + {
  232 + $this->pida = $pida;
  233 +
  234 + return $this;
  235 + }
  236 +
  237 + /**
  238 + * Get pida
  239 + *
  240 + * @return string
  241 + */
  242 + public function getPida()
  243 + {
  244 + return $this->pida;
  245 + }
  246 +
  247 + /**
  248 + * Set nai
  249 + *
  250 + * @param string $nai
  251 + * @return Ascenso
  252 + */
  253 + public function setNai($nai)
  254 + {
  255 + $this->nai = $nai;
  256 +
  257 + return $this;
  258 + }
  259 +
  260 + /**
  261 + * Get nai
  262 + *
  263 + * @return string
  264 + */
  265 + public function getNai()
  266 + {
  267 + return $this->nai;
  268 + }
  269 +
  270 + /**
  271 + * Set investigacion
  272 + *
  273 + * @param string $investigacion
  274 + * @return Ascenso
  275 + */
  276 + public function setInvestigacion($investigacion)
  277 + {
  278 + $this->investigacion = $investigacion;
  279 +
  280 + return $this;
  281 + }
  282 +
  283 + /**
  284 + * Get investigacion
  285 + *
  286 + * @return string
  287 + */
  288 + public function getInvestigacion()
  289 + {
  290 + return $this->investigacion;
  291 + }
  292 +
  293 + /**
  294 + * Set pertinencia
  295 + *
  296 + * @param string $pertinencia
  297 + * @return Ascenso
  298 + */
  299 + public function setPertinencia($pertinencia)
  300 + {
  301 + $this->pertinencia = $pertinencia;
  302 +
  303 + return $this;
  304 + }
  305 +
  306 + /**
  307 + * Get pertinencia
  308 + *
  309 + * @return string
  310 + */
  311 + public function getPertinencia()
  312 + {
  313 + return $this->pertinencia;
  314 + }
  315 +
  316 + /**
  317 + * Set tituloTrabajo
  318 + *
  319 + * @param string $tituloTrabajo
  320 + * @return Ascenso
  321 + */
  322 + public function setTituloTrabajo($tituloTrabajo)
  323 + {
  324 + $this->tituloTrabajo = $tituloTrabajo;
  325 +
  326 + return $this;
  327 + }
  328 +
  329 + /**
  330 + * Get tituloTrabajo
  331 + *
  332 + * @return string
  333 + */
  334 + public function getTituloTrabajo()
  335 + {
  336 + return $this->tituloTrabajo;
  337 + }
  338 +
  339 + /**
  340 + * Set observacion
  341 + *
  342 + * @param string $observacion
  343 + * @return Ascenso
  344 + */
  345 + public function setObservacion($observacion)
  346 + {
  347 + $this->observacion = $observacion;
  348 +
  349 + return $this;
  350 + }
  351 +
  352 + /**
  353 + * Get observacion
  354 + *
  355 + * @return string
  356 + */
  357 + public function getObservacion()
  358 + {
  359 + return $this->observacion;
  360 + }
  361 +
  362 + /**
  363 + * Get fecha_ultima_actualizacion
  364 + *
  365 + * @return \DateTime
  366 + */
  367 + public function getFechaUltimaActualizacion()
  368 + {
  369 + return $this->fecha_ultima_actualizacion;
  370 + }
  371 +
  372 + /**
  373 + * Set idRolInstitucion
  374 + *
  375 + * @param \AppBundle\Entity\RolInstitucion $idRolInstitucion
  376 + * @return Ascenso
  377 + */
  378 + public function setIdRolInstitucion(\AppBundle\Entity\RolInstitucion $idRolInstitucion)
  379 + {
  380 + $this->idRolInstitucion = $idRolInstitucion;
  381 +
  382 + return $this;
  383 + }
  384 +
  385 + /**
  386 + * Get idRolInstitucion
  387 + *
  388 + * @return \AppBundle\Entity\RolInstitucion
  389 + */
  390 + public function getIdRolInstitucion()
  391 + {
  392 + return $this->idRolInstitucion;
  393 + }
  394 +
  395 + /**
  396 + * Set idEstatus
  397 + *
  398 + * @param \AppBundle\Entity\Estatus $idEstatus
  399 + * @return Ascenso
  400 + */
  401 + public function setIdEstatus(\AppBundle\Entity\Estatus $idEstatus)
  402 + {
  403 + $this->idEstatus = $idEstatus;
  404 +
  405 + return $this;
  406 + }
  407 +
  408 + /**
  409 + * Get idEstatus
  410 + *
  411 + * @return \AppBundle\Entity\Estatus
  412 + */
  413 + public function getIdEstatus()
  414 + {
  415 + return $this->idEstatus;
  416 + }
  417 +
  418 +
  419 +
  420 +
  421 +}
... ...
src/AppBundle/Form/AscensoType.php
... ... @@ -0,0 +1,175 @@
  1 +<?php
  2 +/**
  3 + * Created by Netbeans.
  4 + * User: Wilmer Ramones
  5 + * Date: 29/06/16
  6 + * Time: 09:07 AM
  7 + * Modificado: 07/07/2016
  8 + */
  9 +
  10 +namespace AppBundle\Form;
  11 +
  12 +use Symfony\Component\Validator\Constraints\File;
  13 +use Symfony\Component\Validator\Constraints\NotBlank;
  14 +
  15 +use Symfony\Component\Form\AbstractType;
  16 +use Symfony\Component\Form\FormBuilderInterface;
  17 +use Symfony\Component\Form\Extension\Core\Type\TextType;
  18 +use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
  19 +use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  20 +use Symfony\Component\Form\Extension\Core\Type\FileType;
  21 +use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  22 +
  23 +use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  24 +use Doctrine\ORM\EntityRepository;
  25 +
  26 +class AscensoType extends AbstractType
  27 +{
  28 + public function buildForm(FormBuilderInterface $builder, array $options)
  29 + {
  30 + $builder
  31 +
  32 + ->add('trabajo', FileType::class, array(
  33 + 'label' => 'Digital Constancia Trabajo Actualizada',
  34 + 'constraints' => array(
  35 + new NotBlank(),
  36 + new File(array(
  37 + 'maxSize' => '1024K',
  38 + 'mimeTypes' => [
  39 + 'application/pdf',
  40 + 'application/x-pdf',
  41 + 'image/png',
  42 + 'image/jpg',
  43 + 'image/jpeg'
  44 + ],
  45 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  46 + ))
  47 + )
  48 + ))
  49 + ->add('expediente', FileType::class, array(
  50 + 'label' => 'Digital Actualización de Expediente',
  51 + 'constraints' => array(
  52 + new NotBlank(),
  53 + new File(array(
  54 + 'maxSize' => '1024K',
  55 + 'mimeTypes' => [
  56 + 'application/pdf',
  57 + 'application/x-pdf',
  58 + 'image/png',
  59 + 'image/jpg',
  60 + 'image/jpeg'
  61 + ],
  62 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  63 + ))
  64 + )
  65 + ))
  66 +
  67 + ->add('pida', FileType::class, array(
  68 + 'label' => 'Digital Socialización del PIDA',
  69 + 'required' => true,
  70 + 'constraints' => array(
  71 + new File(array(
  72 + 'maxSize' => '1024K',
  73 + 'mimeTypes' => [
  74 + 'application/pdf',
  75 + 'application/x-pdf',
  76 + 'image/png',
  77 + 'image/jpg',
  78 + 'image/jpeg'
  79 + ],
  80 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  81 + ))
  82 + )
  83 + ))
  84 +
  85 + ->add('nai', FileType::class, array(
  86 + 'label' => 'Digital Aval del NAI',
  87 + 'required' => true,
  88 + 'constraints' => array(
  89 + new File(array(
  90 + 'maxSize' => '1024K',
  91 + 'mimeTypes' => [
  92 + 'application/pdf',
  93 + 'application/x-pdf',
  94 + 'image/png',
  95 + 'image/jpg',
  96 + 'image/jpeg'
  97 + ],
  98 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  99 + ))
  100 + )
  101 + ))
  102 +
  103 + ->add('titulo_trabajo', TextType::class, array(
  104 + 'label' => 'Título del Trabajo de Investigación',
  105 +
  106 + 'required' => true,
  107 +
  108 + ))
  109 +
  110 +
  111 + ->add('investigacion', FileType::class, array(
  112 + 'label' => 'Digital Trabajo de investigación / Tesis',
  113 + 'required' => true,
  114 + 'constraints' => array(
  115 + new File(array(
  116 + 'maxSize' => '1024K',
  117 + 'mimeTypes' => [
  118 + 'application/pdf',
  119 + 'application/x-pdf',
  120 + 'image/png',
  121 + 'image/jpg',
  122 + 'image/jpeg'
  123 + ],
  124 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  125 + ))
  126 + )
  127 + ))
  128 +
  129 +
  130 + ->add('tipoTrabajoInvestigacion', CheckboxType::class, array(
  131 + 'label' => 'Si su trabajo de investigación es TESIS, responda ¿Fue dentro de la UBV?',
  132 + 'required' => false,
  133 + ))
  134 +
  135 + ->add('pertinencia', FileType::class, array(
  136 + 'label' => 'Informe de Pertinencia',
  137 + 'label_attr' => array( 'class' => 'esc_oposicion'),
  138 + 'required' => false,
  139 + 'attr' => array(
  140 + 'style' => 'display:none;',
  141 + 'class' => 'esc_oposicion'
  142 + ),
  143 + 'constraints' => array(
  144 + new File(array(
  145 + 'maxSize' => '1024K',
  146 + 'mimeTypes' => [
  147 + 'application/pdf',
  148 + 'application/x-pdf',
  149 + 'image/png',
  150 + 'image/jpg',
  151 + 'image/jpeg'
  152 + ],
  153 + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf'
  154 + ))
  155 + )
  156 + ))
  157 +
  158 +
  159 +
  160 +
  161 + ->add('send', SubmitType::class, array(
  162 + 'label' => 'Crear Solicitud de Ascenso',
  163 + 'attr' => array('class' => 'btn btn-success btn-block')
  164 + ))
  165 +
  166 +
  167 + ;
  168 +
  169 +
  170 + }
  171 +
  172 +
  173 +
  174 +
  175 +}
... ...