Commit 4f04c720caa249e5b4374e0fe44da1c91cf15d62
1 parent
532c8a5785
Exists in
master
pasada la validación y el formulario a syfmony del reconocmiento de Escala
Showing
2 changed files
with
175 additions
and
11 deletions
Show diff stats
app/Resources/views/cea/reconocimiento_escala_mostrar.html.twig
... | ... | @@ -123,7 +123,8 @@ |
123 | 123 | </div> |
124 | 124 | |
125 | 125 | </div> |
126 | - <form name="input" action="{{ path('cea_escala_actualizar', { 'id': servicio.id, 'escala': 'escalafones', 'estatus' : 'true' }) }}" method="post"> | |
126 | + {% form_theme form 'bootstrap_3_layout.html.twig' %} | |
127 | + {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }} | |
127 | 128 | <div class="row"> |
128 | 129 | |
129 | 130 | <div class="col-md-6"> |
... | ... | @@ -173,8 +174,18 @@ |
173 | 174 | <input type="text" value="{{ escalafones }}" readonly /> |
174 | 175 | <input type="hidden" name="escala" value="{{ escalafones.id }}" /> |
175 | 176 | {% endif %} |
176 | - <br><label for="fecha_escala"> Fecha de Escalafón: </label> <input type="date" name="fecha_escala" /> | |
177 | - <br><button type="submit" class="btn btn-success btn-sm" ><span class="fa fa-check"></span> Aprobar</button> | |
177 | + <br> | |
178 | + | |
179 | + {{ form_widget(form) }} | |
180 | + | |
181 | + {% if servicio.idEstatus.id == 3 %} | |
182 | + <button class="btn btn-success btn-sm" type="submit" name="aprobado" id="aprobado" ><span class="fa fa-check" ></span> Aprobar</button> | |
183 | + {% elseif servicio.idEstatus.id == 2 %} | |
184 | + <button class="btn btn-success btn-sm" type="submit" name="aprobado" id="aprobado" ><span class="fa fa-check" ></span> Aprobar</button> | |
185 | + <a id="modal_rechazo" class="btn btn-danger btn-sm" data-toggle="modal" data-target="#motivo_rechazo" ><span class="fa fa-close"></span> Rechazar</a> | |
186 | + {% endif %} | |
187 | + | |
188 | + | |
178 | 189 | |
179 | 190 | |
180 | 191 | {% endif %} |
... | ... | @@ -182,7 +193,10 @@ |
182 | 193 | </div> |
183 | 194 | |
184 | 195 | </div> |
185 | - | |
196 | + | |
197 | + | |
198 | + | |
199 | + | |
186 | 200 | <div class="col-md-5"> |
187 | 201 | <h3>Documentos Consignados</h3> |
188 | 202 | <div class="widget-content"> |
... | ... | @@ -229,14 +243,43 @@ |
229 | 243 | </div> |
230 | 244 | |
231 | 245 | </div> |
246 | + | |
247 | + | |
232 | 248 | |
233 | 249 | |
234 | 250 | |
235 | 251 | </div> |
236 | - </form> | |
252 | + | |
253 | + | |
254 | + <div class="modal fade" id="motivo_rechazo" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> | |
255 | + <div class="modal-dialog" role="document"> | |
256 | + <div class="modal-content"> | |
257 | + <div class="modal-header"> | |
258 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> | |
259 | + <h4 class="modal-title" id="myModalLabel">Rechazo de Solicitud</h4> | |
260 | + </div> | |
261 | + | |
262 | + <div class="modal-body"> | |
263 | + | |
264 | + | |
265 | + <div class="form-group"> | |
266 | + <label for="message-text" class="control-label">Mensaje:</label> | |
267 | + <textarea class="form-control" id="message-text" name="message-text"></textarea> | |
268 | + </div> | |
269 | + | |
270 | + </div> | |
271 | + <div class="modal-footer"> | |
272 | + <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> | |
273 | + <button type="submit" name="rechazar" id="rechazar" class="btn btn-primary">Enviar Rechazo</button> | |
274 | + </div> | |
275 | + </div> | |
276 | + | |
277 | + </div> | |
278 | + </div> | |
237 | 279 | </div> |
238 | 280 | |
239 | 281 | </div> |
282 | + {{ form_end(form) }} | |
240 | 283 | |
241 | 284 | {% endblock %} |
242 | 285 | |
... | ... | @@ -244,4 +287,48 @@ |
244 | 287 | {% block javascripts %} |
245 | 288 | {{ parent() }} |
246 | 289 | <script type="text/javascript" src="{{ asset('assets/vendor/lightbox2/dist/js/lightbox.min.js') }}"></script> |
290 | + <script> | |
291 | + var buttonpressed; | |
292 | + $('#aprobado').click(function() { | |
293 | + //alert("click"); return false; | |
294 | + buttonpressed = $(this).attr('name') | |
295 | + }); | |
296 | + | |
297 | + $('#rechazar').click(function() { | |
298 | + buttonpressed = $(this).attr('name') | |
299 | + }); | |
300 | + | |
301 | + | |
302 | + $('form').submit(function() { | |
303 | + console.log($(':radio:checked', this).length); | |
304 | + for (var i = 0; i < $(':radio:checked', this).length; i ++){ | |
305 | + console.log($(':radio:checked', this)[i]); | |
306 | + if ( ($(':radio:checked', this)[i].value == "")) { | |
307 | + alert('Debes revisar todos los documentos para poder enviar la solicitud!'); | |
308 | + $("#aprobado").button('reset'); | |
309 | + return false; | |
310 | + } | |
311 | + | |
312 | + } | |
313 | + | |
314 | + if (buttonpressed == "aprobado") { | |
315 | + for (var i = 0; i < $(':radio:checked', this).length; i++) { | |
316 | + console.log($(':radio:checked', this)[i]); | |
317 | + if (($(':radio:checked', this)[i].value == "3")) { | |
318 | + alert('No puedes aprobar una solicitud con documentos en estatus de rechazado'); | |
319 | + $("#aprobado").button('reset'); | |
320 | + return false; | |
321 | + } | |
322 | + | |
323 | + } | |
324 | + } | |
325 | + | |
326 | + | |
327 | + }); | |
328 | + | |
329 | + $('#motivo_rechazo').on('hidden.bs.modal', function (e) { | |
330 | + $("#modal_rechazo").button('reset'); | |
331 | + $('#rechazar').button('reset'); | |
332 | + }) | |
333 | + </script> | |
247 | 334 | {% endblock %} |
248 | 335 | \ No newline at end of file | ... | ... |
src/AppBundle/Controller/AscensoController.php
... | ... | @@ -10,6 +10,8 @@ namespace AppBundle\Controller; |
10 | 10 | |
11 | 11 | |
12 | 12 | use AppBundle\Entity\DocumentosVerificados; |
13 | +use Symfony\Component\Form\Extension\Core\Type\BirthdayType; | |
14 | +use Symfony\Component\Form\Extension\Core\Type\DateType; | |
13 | 15 | use Symfony\Component\Form\FormError; |
14 | 16 | use Symfony\Component\HttpFoundation\File\UploadedFile; |
15 | 17 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
... | ... | @@ -24,6 +26,8 @@ use AppBundle\Entity\TutoresAscenso; |
24 | 26 | |
25 | 27 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; |
26 | 28 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; |
29 | +use Symfony\Component\Validator\Constraints\Date; | |
30 | +use Symfony\Component\Validator\Constraints\NotBlank; | |
27 | 31 | |
28 | 32 | class AscensoController extends Controller |
29 | 33 | { |
... | ... | @@ -525,10 +529,10 @@ class AscensoController extends Controller |
525 | 529 | * Encuentra y muestra una entidad de tipo Adscripción. |
526 | 530 | * |
527 | 531 | * @Route("/reconocimientoEscala/{id}", name="cea_reconocimientoEscala_show") |
528 | - * @Method("GET") | |
532 | + * @Method({"GET", "POST"}) | |
529 | 533 | * @Security("has_role('ROLE_COORDINADOR_REGIONAL')") |
530 | 534 | */ |
531 | - public function reconocimientoEscalaShowAction(DocenteServicio $servicio) | |
535 | + public function reconocimientoEscalaShowAction(DocenteServicio $servicio, Request $request) | |
532 | 536 | { |
533 | 537 | $em = $this->getDoctrine()->getManager(); |
534 | 538 | $docente = $em->getRepository("AppBundle:RolInstitucion")->findOneById($servicio->getIdRolInstitucion()->getId()); |
... | ... | @@ -552,9 +556,81 @@ class AscensoController extends Controller |
552 | 556 | }else{ |
553 | 557 | $escalafones = $this->getDoctrine()->getRepository('AppBundle:Escalafones')->findOneById($ascenso->getIdEscalafones()->getId()); |
554 | 558 | } |
555 | - | |
556 | - | |
557 | - | |
559 | + | |
560 | + | |
561 | + $form = $this->createFormBuilder() | |
562 | + | |
563 | + ->add('fechaAscenso', BirthdayType::class, array( | |
564 | + 'widget' => 'choice', | |
565 | + 'label' => 'Fecha de Ascenso', | |
566 | + 'years' => range(2003, date("Y")), | |
567 | + 'placeholder' => array( | |
568 | + 'year' => 'Año', 'month' => 'Mes', 'day' => 'Día', | |
569 | + ), | |
570 | + 'constraints' => array( | |
571 | + new NotBlank(), | |
572 | + new Date() | |
573 | + ) | |
574 | + )) | |
575 | + ->getForm(); | |
576 | + $form->handleRequest($request); | |
577 | + | |
578 | + if($form->isSubmitted() && $form->isValid()){ | |
579 | + $parametros = $request->request->all(); | |
580 | + $verificado = $this->getDoctrine()->getRepository("AppBundle:DocumentosVerificados")->findOneByIdServicio($servicio); | |
581 | + $ServicioAscenso = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')->findOneBy(array( | |
582 | + 'idRolInstitucion' => $servicio->getIdRolInstitucion(), | |
583 | + 'idServicioCe' => 5, | |
584 | + 'idEstatus' => 1 | |
585 | + )); | |
586 | + | |
587 | + | |
588 | + $ascenso = $this->getDoctrine()->getRepository('AppBundle:Ascenso')->findOneBy(array( | |
589 | + 'idRolInstitucion' => $servicio->getIdRolInstitucion(), | |
590 | + 'idEstatus' => 1 | |
591 | + )); | |
592 | + if(isset($parametros['aprobado'])) { | |
593 | + $verificado->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(1)); | |
594 | + $escala_docente = new DocenteEscala(); | |
595 | + $escala_docente->setIdRolInstitucion($servicio->getIdRolInstitucion()); | |
596 | + $escala_docente->setidEscala($this->getDoctrine()->getRepository('AppBundle:Escalafones')->findOneById($this->get('request')->request->get('escala'))); | |
597 | + $escala_docente->setFechaEscala(new \DateTime($this->get('request')->request->get('fecha_escala'))); | |
598 | + $escala_docente->setIdTipoEscala($this->getDoctrine()->getRepository('AppBundle:TipoAscenso')->findOneById($this->get('request')->request->get('tipo'))); | |
599 | + $em->persist($escala_docente); | |
600 | + | |
601 | + | |
602 | + $servicio->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(4)); | |
603 | + | |
604 | + | |
605 | + $ServicioAscenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(4)); | |
606 | + $ascenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(4)); | |
607 | + | |
608 | + }else{ | |
609 | + //$mensaje = $request->request->get('message-text'); | |
610 | + $verificado->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); | |
611 | + $servicio->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); | |
612 | + $ascenso = $this->getDoctrine()->getRepository('AppBundle:Ascenso')->findOneBy(array( | |
613 | + 'idRolInstitucion' => $servicio->getIdRolInstitucion(), | |
614 | + 'idEstatus' => 1 | |
615 | + )); | |
616 | + | |
617 | + $servicio->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); | |
618 | + | |
619 | + | |
620 | + $ServicioAscenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(4)); | |
621 | + $ascenso->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(4)); | |
622 | + } | |
623 | + | |
624 | + $em->persist($ServicioAscenso); | |
625 | + $em->persist($ascenso); | |
626 | + $em->persist($verificado); | |
627 | + $em->flush(); | |
628 | + $this->addFlash('success', 'Escala Agregada Satisfactoriamente'); | |
629 | + return $this->redirect($this->generateUrl('cea_index')); | |
630 | + | |
631 | + } | |
632 | + | |
633 | + | |
558 | 634 | return $this->render('cea/reconocimiento_escala_mostrar.html.twig', array( |
559 | 635 | 'ascenso' => $ascenso, |
560 | 636 | 'adscripcion' => $adscripcion, |
... | ... | @@ -562,7 +638,8 @@ class AscensoController extends Controller |
562 | 638 | 'escalas' => $escala, |
563 | 639 | 'pida' => $pida, |
564 | 640 | 'escalafones' => $escalafones, |
565 | - 'docente' => $docente | |
641 | + 'docente' => $docente, | |
642 | + 'form' => $form->createView() | |
566 | 643 | |
567 | 644 | )); |
568 | 645 | } | ... | ... |