Commit ecef989b42c654de3e42ef4bd56ef08441dd6d0e

Authored by Wilmer
1 parent 3078db6fb6
Exists in master

Gran cambio: Actualizado Ascensos a nueva forma de controlar documentos; Cargado…

… y mostrado al coordinador, falta actualizar y aprobar
app/Resources/views/cea/ascenso_mostar.html.twig
... ... @@ -3,6 +3,99 @@
3 3 {{ parent() }}
4 4 <link href="{{ asset('assets/vendor/lightbox2/dist/css/lightbox.css') }}" rel="stylesheet">
5 5 <link rel="stylesheet" href="{{ asset('assets/vendor/chosen/chosen.min.css') }}">
  6 + <style>
  7 + .wrapper {
  8 + width: 6.9rem;
  9 + height: 2rem;
  10 + position: relative;
  11 + margin: 0rem auto;
  12 + border-radius: 2rem;
  13 + background: gray;
  14 + }
  15 +
  16 + .wrapper .toggle {
  17 + width: 1.8rem;
  18 + height: 1.8rem;
  19 + position: absolute;
  20 + left: 2.5rem;
  21 + top: 0.1rem;
  22 + border-radius: 50%;
  23 + box-sizing: border-box;
  24 + border: 0.1rem solid #ff6c00;
  25 + background: #ff8933;
  26 + box-shadow: 0 0 0.2rem 0.1rem #ff6c00 inset, 0 0 0.2rem 0.1rem #ff6c00;
  27 + transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  28 + }
  29 +
  30 + .wrapper label {
  31 + cursor: pointer;
  32 + width: 2rem;
  33 + height: 2rem;
  34 + position: absolute;
  35 + margin: 0;
  36 + padding: 0;
  37 + z-index: 1;
  38 + display: inline-block;
  39 + text-align: center;
  40 + line-height: 2rem;
  41 + text-transform: uppercase;
  42 + font-family: FontAwesome;
  43 + font-style: normal;
  44 + font-weight: normal;
  45 + color: white;
  46 +
  47 + }
  48 +
  49 + .wrapper input {
  50 + position: absolute;
  51 + left: 0;
  52 + margin: 0;
  53 + padding: 0;
  54 + opacity: 0;
  55 + }
  56 +
  57 + .yes_radio:checked ~ .toggle {
  58 + border: 0.1rem solid #008000;
  59 + background: #00b300;
  60 + box-shadow: 0 0 0.2rem 0.1rem #008000 inset, 0 0 0.2rem 0.1rem #008000;
  61 + left: 0.1rem;
  62 + }
  63 +
  64 + .no_radio:checked {
  65 + background: red;
  66 + }
  67 +
  68 + .no_radio:checked ~ .toggle {
  69 + border: 0.1rem solid #ff0000;
  70 + background: #ff3333;
  71 + box-shadow: 0 0 0.2rem 0.1rem #ff0000 inset, 0 0 0.2rem 0.1rem #ff0000;
  72 + left: 4.97rem;
  73 + }
  74 +
  75 + .maybe_radio, .maybe-lbl {
  76 + left: 33.33333%;
  77 + }
  78 +
  79 + .no_radio, .no-lbl {
  80 + left: 66.66667%;
  81 + }
  82 +
  83 + .maybe-lbl {
  84 + -webkit-animation-delay: 2s;
  85 + -o-animation-delay: 2s;
  86 + -moz-animation-delay: 2s;
  87 + animation-delay: 2s;
  88 + }
  89 +
  90 + .no-lbl {
  91 + -webkit-animation-delay: 4s;
  92 + -o-animation-delay: 4s;
  93 + -moz-animation-delay: 4s;
  94 + animation-delay: 4s;
  95 + }
  96 +
  97 +
  98 + </style>
6 99 {% endblock %}
7 100  
8 101 {%block body %}
... ... @@ -15,8 +108,7 @@
15 108 <div class="row">
16 109 <div class="col-md-9">
17 110 <h4 class="page-head-line">Solicitud de Ascenso nรบmero <code>{{ascenso.id}}</code>:
18   - {{ ascenso.idRolInstitucion.idRol.idPersona.primerNombre }},
19   - {{ ascenso.idRolInstitucion.idRol.idPersona.primerApellido }}
  111 + {{ docente }}
20 112 </h4>
21 113 </div>
22 114 <div class="col-md-3">
... ... @@ -139,109 +231,37 @@
139 231 <div class="widget-content">
140 232  
141 233  
142   -
143   - <div class="col-xs-4">
144   - <div class="thumbnail">
145   - <a href="{{asset('uploads/ascenso/'~ ascenso.trabajo)}}" data-lightbox="trabajo">
146   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.trabajo) }}" />
147   - </a>
148   - <div class="caption">
149   - <p>Constancia de Trabajo Act.</p>
150   - </div>
151   - </div>
152   - </div>
153   -
154   -
155   - <div class="col-xs-4">
156   - <div class="thumbnail">
157   - <a href="{{asset('uploads/ascenso/'~ ascenso.expediente)}}" data-lightbox="expediente">
158   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.expediente) }}" />
159   - </a>
160   - <div class="caption">
161   - <p>Constancia Actualizaciรณn Expediente</p>
162   - </div>
163   - </div>
164   - </div>
165   -
166   -
167   - <div class="col-xs-4">
168   - <div class="thumbnail">
169   - <a href="{{asset('uploads/ascenso/'~ ascenso.pida)}}" data-lightbox="pida">
170   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.pida) }}" />
171   - </a>
172   - <div class="caption">
173   - <p>Constancia Socializaciรณn del PIDA</p>
174   - </div>
175   - </div>
176   - </div>
177   -
178   -
179   -
180   - <div class="col-xs-4">
  234 + {% for documento in docente.documentosVerificados %}
  235 + {% if documento.idServicio.id == servicio.id %}
  236 + <div class="col-xs-6">
181 237 <div class="thumbnail">
182   - <a href="{{asset('uploads/ascenso/'~ ascenso.nai)}}" data-lightbox="nai">
183   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.nai) }}" />
  238 + <a href="{{asset('uploads/ascenso/'~ documento.ubicacion)}}" data-lightbox="trabajo">
  239 + <img src="{{ asset('uploads/ascenso/thumb/'~ documento.ubicacion) }}" />
184 240 </a>
185 241 <div class="caption">
186   - <p>Constancia Aval del NAI</p>
187   - </div>
188   - </div>
189   - </div>
190   -
191   -
192   -
193   - <div class="col-xs-4">
194   - <div class="thumbnail">
195   - <a href="{{asset('uploads/ascenso/'~ ascenso.investigacion)}}" data-lightbox="investigacion">
196   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.investigacion) }}" />
197   - </a>
198   - <div class="caption">
199   - <p>Trabajo de Investigaciรณn / Tesis</p>
200   - </div>
201   - </div>
202   - </div>
203   -
204   - {% if ascenso.pertinencia is not null %}
205   - <div class="col-xs-4">
206   - <div class="thumbnail">
207   - <a href="{{asset('uploads/ascenso/'~ ascenso.pertinencia)}}" data-lightbox="pertinencia">
208   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.pertinencia) }}" />
209   - </a>
210   - <div class="caption">
211   - <p>Informe de Pertinencia de la Tesis</p>
212   - </div>
213   - </div>
214   - </div>
215   - {% endif %}
216   -
217   -
218   - {% if ascenso.aprobacion is not null %}
219   - <div class="col-xs-4">
220   - <div class="thumbnail">
221   - <a href="{{asset('uploads/ascenso/'~ ascenso.aprobacion)}}" data-lightbox="aprobacion">
222   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.aprobacion) }}" />
223   - </a>
224   - <div class="caption">
225   - <p>Acta de aprobaciรณn de la tesis</p>
226   - </div>
227   - </div>
228   - </div>
229   - {% endif %}
230   -
231   -
232   -
233   - {% if ascenso.curriculo is not null %}
234   - <div class="col-xs-4">
235   - <div class="thumbnail">
236   - <a href="{{asset('uploads/ascenso/'~ ascenso.curriculo)}}" data-lightbox="curriculo">
237   - <img src="{{ asset('uploads/ascenso/thumb/'~ ascenso.curriculo) }}" />
238   - </a>
239   - <div class="caption">
240   - <p>Sรญntesis Curricular de los posibles Jurados</p>
  242 + <p>{{ documento.idTipoDocumentos.nombre }}</p>
  243 + <div class="wrapper">
  244 + <label for="yes_radio{{ loop.index }}" class="yes-lbl"><i class="fa fa-check"></i>
  245 + </label>
  246 + <input type="radio" value="1" name="{{ documento.idTipoDocumentos.identificador }}" class="yes_radio" id="yes_radio{{ loop.index }}" {% if documento.idEstatus.id == 1 %} checked="checked" {% endif %}>
  247 + <label for="maybe_radio{{ loop.index }}" class="maybe-lbl">
  248 + <i class="fa fa-question"></i>
  249 + </label>
  250 + <input type="radio" value="" name="{{ documento.idTipoDocumentos.identificador }}" class="maybe_radio" id="maybe_radio{{ loop.index }}" {% if documento.idEstatus.id == 2 %} checked="checked" {% endif %} disabled>
  251 + <label for="no_radio{{ loop.index }}" class="no-lbl"><i
  252 + class="fa fa-close"></i></label><input type="radio" value="3"
  253 + name="{{ documento.idTipoDocumentos.identificador }}"
  254 + class="no_radio"
  255 + id="no_radio{{ loop.index }}" {% if documento.idEstatus.id == 3 %} checked="checked" {% endif %}>
  256 +
  257 + <div class="toggle"></div>
  258 + </div>
241 259 </div>
242 260 </div>
243 261 </div>
244   - {% endif %}
  262 + {% endif %}
  263 + {% endfor %}
  264 +
245 265  
246 266  
247 267  
... ...
src/AppBundle/Controller/AscensoController.php
... ... @@ -128,9 +128,20 @@ class AscensoController extends Controller
128 128 $form->handleRequest($request);
129 129  
130 130  
131   - if ($form->isSubmitted() && $form->isValid()) {
  131 + if ($form->isSubmitted() && $form->isValid()) {
  132 + $em = $this->getDoctrine()->getManager();
  133 + //Crear la solicitud de Servicio
  134 + $servicios = new DocenteServicio();
  135 +
  136 + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  137 + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(5));
  138 + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
  139 +
  140 + $em->persist($servicios);
  141 + $em->flush();
  142 +
132 143  
133   - $ascenso = new Ascenso();
  144 +
134 145 // $file stores the uploaded PDF file
135 146 /** @var UploadedFile $constanciaTrabajo */
136 147 $constanciaTrabajo = $form->get('trabajo')->getData();
... ... @@ -150,7 +161,6 @@ class AscensoController extends Controller
150 161 $nombreExpediente = md5(uniqid()).'.'.$constanciaExpediente->guessExtension();
151 162 $nombrePida = md5(uniqid()).'.'.$constanciaPida->guessExtension();
152 163 $nombreNai = md5(uniqid()).'.'.$constanciaNai->guessExtension();
153   - $nombreInvestigacion = md5(uniqid()).'.'.$constanciaInvestigacion->guessExtension();
154 164  
155 165 // Guardar el archivo y crear la miniatura de cada uno
156 166 $constanciaTrabajo->move(
... ... @@ -188,22 +198,27 @@ class AscensoController extends Controller
188 198 $nombreInvestigacion
189 199 );
190 200 thumbnail2($nombreInvestigacion, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
191   - $ascenso->setInvestigacion($nombreInvestigacion);
  201 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),15,2,$em,$nombreInvestigacion, $servicios);
192 202 }
193   - $em = $this->getDoctrine()->getManager();
194 203  
195   - $ascenso->setTrabajo($nombreTrabajo);
196   - $ascenso->setExpediente($nombreExpediente);
  204 +
  205 +
  206 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),1,2,$em,$nombreTrabajo, $servicios);
  207 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),11,2,$em,$nombreExpediente, $servicios);
  208 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),9,2,$em,$nombrePida, $servicios);
  209 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),12,2,$em,$nombreNai, $servicios);
  210 +
  211 + $ascenso = new Ascenso();
197 212 $ascenso->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
198   - $ascenso->setPida($nombrePida);
199   - $ascenso->setNai($nombreNai);
200   - $ascenso->setInvestigacion($nombreInvestigacion);
  213 +
201 214 $ascenso->setTituloTrabajo($form->get('titulo_trabajo')->getData());
202 215 $ascenso->setTipoTrabajoInvestigacion($form->get('tipoTrabajoInvestigacion')->getData());
203 216 $ascenso->setTesisUbv($form->get('tesisUbv')->getData());
204 217 $ascenso->setNombreNucelo($form->get('nombreNucleo')->getData());
205 218 $ascenso->setIdEscalafones($nueva_escala);
206 219 $ascenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(2));
  220 + $em->persist($ascenso);
  221 + $em->flush();
207 222  
208 223  
209 224 $tutores = $form->get('tutores_ascenso')->getData();
... ... @@ -221,7 +236,7 @@ class AscensoController extends Controller
221 236 $nombrePertinencia
222 237 );
223 238 thumbnail2($nombrePertinencia, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
224   - $ascenso->setPertinencia($nombrePertinencia);
  239 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),14,2,$em,$nombrePertinencia, $servicios);
225 240 //$ascenso->setIdLineaInvestigacion($form->get('lineas_investigacion')->getData());
226 241  
227 242 }
... ... @@ -236,7 +251,7 @@ class AscensoController extends Controller
236 251 $nombreAprobacion
237 252 );
238 253 thumbnail2($nombreAprobacion, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
239   - $ascenso->setAprobacion($nombreAprobacion);
  254 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),13,2,$em,$nombreAprobacion, $servicios);
240 255 //$ascenso->setIdLineaInvestigacion($form->get('lineas_investigacion')->getData());
241 256  
242 257 }
... ... @@ -255,22 +270,15 @@ class AscensoController extends Controller
255 270 $nombreCurriculo
256 271 );
257 272 //thumbnail2($nombreCurriculo, $this->container->getParameter('ascenso_directory'), $this->container->getParameter('ascenso_thumb_directory'));
258   - $ascenso->setCurriculo($nombreCurriculo);
  273 + verificar_documentos2($this->getUser()->getIdRolInstitucion(),16,2,$em,$nombreCurriculo, $servicios);
259 274  
260 275 }
261 276  
262 277  
263 278  
264 279  
265   - //Crear la solicitud de Servicio
266   - $servicios = new DocenteServicio();
267 280  
268   - $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
269   - $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(5));
270   - $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
271 281  
272   - $em->persist($servicios);
273   - $em->persist($ascenso);
274 282 //si realizรณ la solicitud usando la antiguedad, esta se formaliza
275 283 if($formalizarTiempo){
276 284 $servicioAntiguedad->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4));
... ... @@ -438,7 +446,10 @@ class AscensoController extends Controller
438 446 * @Security("has_role('ROLE_COORDINADOR_REGIONAL')")
439 447 */
440 448 public function solicitudesAscensoShowAction(DocenteServicio $servicio)
441   - {
  449 + {
  450 +
  451 +
  452 + $docente = $this->getDoctrine()->getRepository("AppBundle:RolInstitucion")->findOneById($servicio->getIdRolInstitucion()->getId());
442 453 $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findBy(array(
443 454 'idRolInstitucion' => $servicio->getIdRolInstitucion()->getId()
444 455 ));
... ... @@ -470,7 +481,8 @@ class AscensoController extends Controller
470 481 'escalas' => $escala,
471 482 'pida' => $pida,
472 483 'antiguedad' => $antiguedad,
473   - 'form' => $form->createView(),
  484 + 'form' => $form->createView(),
  485 + 'docente' => $docente
474 486 ));
475 487 }
476 488  
... ...
src/AppBundle/Entity/Ascenso.php
... ... @@ -50,74 +50,7 @@ class Ascenso
50 50 protected $idEscalafones;
51 51  
52 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 53  
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(type="string", nullable=true, options={"comment" = "ubicaciรณn del digital del informe de pertinencia en caso de ser tesis fuera de ubv"})
107   - *
108   - *
109   - * @Assert\File(mimeTypes={ "application/pdf" })
110   - */
111   - private $aprobacion;
112   -
113   -
114   - /**
115   - * @ORM\Column(type="string", nullable=true, options={"comment" = "ubicaciรณn del digital del curriculo de los posibles jurados"})
116   - *
117   - *
118   - * @Assert\File(mimeTypes={ "application/pdf" })
119   - */
120   - private $curriculo;
121 54  
122 55  
123 56  
... ... @@ -232,143 +165,7 @@ class Ascenso
232 165 return $this->id;
233 166 }
234 167  
235   - /**
236   - * Set trabajo
237   - *
238   - * @param string $trabajo
239   - * @return Ascenso
240   - */
241   - public function setTrabajo($trabajo)
242   - {
243   - $this->trabajo = $trabajo;
244   -
245   - return $this;
246   - }
247   -
248   - /**
249   - * Get trabajo
250   - *
251   - * @return string
252   - */
253   - public function getTrabajo()
254   - {
255   - return $this->trabajo;
256   - }
257   -
258   - /**
259   - * Set expediente
260   - *
261   - * @param string $expediente
262   - * @return Ascenso
263   - */
264   - public function setExpediente($expediente)
265   - {
266   - $this->expediente = $expediente;
267   -
268   - return $this;
269   - }
270   -
271   - /**
272   - * Get expediente
273   - *
274   - * @return string
275   - */
276   - public function getExpediente()
277   - {
278   - return $this->expediente;
279   - }
280   -
281   - /**
282   - * Set pida
283   - *
284   - * @param string $pida
285   - * @return Ascenso
286   - */
287   - public function setPida($pida)
288   - {
289   - $this->pida = $pida;
290   -
291   - return $this;
292   - }
293   -
294   - /**
295   - * Get pida
296   - *
297   - * @return string
298   - */
299   - public function getPida()
300   - {
301   - return $this->pida;
302   - }
303 168  
304   - /**
305   - * Set nai
306   - *
307   - * @param string $nai
308   - * @return Ascenso
309   - */
310   - public function setNai($nai)
311   - {
312   - $this->nai = $nai;
313   -
314   - return $this;
315   - }
316   -
317   - /**
318   - * Get nai
319   - *
320   - * @return string
321   - */
322   - public function getNai()
323   - {
324   - return $this->nai;
325   - }
326   -
327   - /**
328   - * Set investigacion
329   - *
330   - * @param string $investigacion
331   - * @return Ascenso
332   - */
333   - public function setInvestigacion($investigacion)
334   - {
335   - $this->investigacion = $investigacion;
336   -
337   - return $this;
338   - }
339   -
340   - /**
341   - * Get investigacion
342   - *
343   - * @return string
344   - */
345   - public function getInvestigacion()
346   - {
347   - return $this->investigacion;
348   - }
349   -
350   - /**
351   - * Set pertinencia
352   - *
353   - * @param string $pertinencia
354   - * @return Ascenso
355   - */
356   - public function setPertinencia($pertinencia)
357   - {
358   - $this->pertinencia = $pertinencia;
359   -
360   - return $this;
361   - }
362   -
363   - /**
364   - * Get pertinencia
365   - *
366   - * @return string
367   - */
368   - public function getPertinencia()
369   - {
370   - return $this->pertinencia;
371   - }
372 169  
373 170 /**
374 171 * Set tituloTrabajo
... ... @@ -598,28 +395,7 @@ class Ascenso
598 395 return $this->nombreNucelo;
599 396 }
600 397  
601   - /**
602   - * Set curriculo
603   - *
604   - * @param string $curriculo
605   - * @return Ascenso
606   - */
607   - public function setCurriculo($curriculo)
608   - {
609   - $this->curriculo = $curriculo;
610   -
611   - return $this;
612   - }
613 398  
614   - /**
615   - * Get curriculo
616   - *
617   - * @return string
618   - */
619   - public function getCurriculo()
620   - {
621   - return $this->curriculo;
622   - }
623 399  
624 400 /**
625 401 * Set tipoTrabajoInvestigacion
... ...