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,7 +123,8 @@ | ||
| 123 | </div> | 123 | </div> |
| 124 | 124 | ||
| 125 | </div> | 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 | <div class="row"> | 128 | <div class="row"> |
| 128 | 129 | ||
| 129 | <div class="col-md-6"> | 130 | <div class="col-md-6"> |
| @@ -173,8 +174,18 @@ | @@ -173,8 +174,18 @@ | ||
| 173 | <input type="text" value="{{ escalafones }}" readonly /> | 174 | <input type="text" value="{{ escalafones }}" readonly /> |
| 174 | <input type="hidden" name="escala" value="{{ escalafones.id }}" /> | 175 | <input type="hidden" name="escala" value="{{ escalafones.id }}" /> |
| 175 | {% endif %} | 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 | {% endif %} | 191 | {% endif %} |
| @@ -182,7 +193,10 @@ | @@ -182,7 +193,10 @@ | ||
| 182 | </div> | 193 | </div> |
| 183 | 194 | ||
| 184 | </div> | 195 | </div> |
| 185 | - | 196 | + |
| 197 | + | ||
| 198 | + | ||
| 199 | + | ||
| 186 | <div class="col-md-5"> | 200 | <div class="col-md-5"> |
| 187 | <h3>Documentos Consignados</h3> | 201 | <h3>Documentos Consignados</h3> |
| 188 | <div class="widget-content"> | 202 | <div class="widget-content"> |
| @@ -229,14 +243,43 @@ | @@ -229,14 +243,43 @@ | ||
| 229 | </div> | 243 | </div> |
| 230 | 244 | ||
| 231 | </div> | 245 | </div> |
| 246 | + | ||
| 247 | + | ||
| 232 | 248 | ||
| 233 | 249 | ||
| 234 | 250 | ||
| 235 | </div> | 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 | </div> | 279 | </div> |
| 238 | 280 | ||
| 239 | </div> | 281 | </div> |
| 282 | + {{ form_end(form) }} | ||
| 240 | 283 | ||
| 241 | {% endblock %} | 284 | {% endblock %} |
| 242 | 285 | ||
| @@ -244,4 +287,48 @@ | @@ -244,4 +287,48 @@ | ||
| 244 | {% block javascripts %} | 287 | {% block javascripts %} |
| 245 | {{ parent() }} | 288 | {{ parent() }} |
| 246 | <script type="text/javascript" src="{{ asset('assets/vendor/lightbox2/dist/js/lightbox.min.js') }}"></script> | 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 | {% endblock %} | 334 | {% endblock %} |
| 248 | \ No newline at end of file | 335 | \ No newline at end of file |
src/AppBundle/Controller/AscensoController.php
| @@ -10,6 +10,8 @@ namespace AppBundle\Controller; | @@ -10,6 +10,8 @@ namespace AppBundle\Controller; | ||
| 10 | 10 | ||
| 11 | 11 | ||
| 12 | use AppBundle\Entity\DocumentosVerificados; | 12 | use AppBundle\Entity\DocumentosVerificados; |
| 13 | +use Symfony\Component\Form\Extension\Core\Type\BirthdayType; | ||
| 14 | +use Symfony\Component\Form\Extension\Core\Type\DateType; | ||
| 13 | use Symfony\Component\Form\FormError; | 15 | use Symfony\Component\Form\FormError; |
| 14 | use Symfony\Component\HttpFoundation\File\UploadedFile; | 16 | use Symfony\Component\HttpFoundation\File\UploadedFile; |
| 15 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | 17 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
| @@ -24,6 +26,8 @@ use AppBundle\Entity\TutoresAscenso; | @@ -24,6 +26,8 @@ use AppBundle\Entity\TutoresAscenso; | ||
| 24 | 26 | ||
| 25 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; | 27 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; |
| 26 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; | 28 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; |
| 29 | +use Symfony\Component\Validator\Constraints\Date; | ||
| 30 | +use Symfony\Component\Validator\Constraints\NotBlank; | ||
| 27 | 31 | ||
| 28 | class AscensoController extends Controller | 32 | class AscensoController extends Controller |
| 29 | { | 33 | { |
| @@ -525,10 +529,10 @@ class AscensoController extends Controller | @@ -525,10 +529,10 @@ class AscensoController extends Controller | ||
| 525 | * Encuentra y muestra una entidad de tipo Adscripción. | 529 | * Encuentra y muestra una entidad de tipo Adscripción. |
| 526 | * | 530 | * |
| 527 | * @Route("/reconocimientoEscala/{id}", name="cea_reconocimientoEscala_show") | 531 | * @Route("/reconocimientoEscala/{id}", name="cea_reconocimientoEscala_show") |
| 528 | - * @Method("GET") | 532 | + * @Method({"GET", "POST"}) |
| 529 | * @Security("has_role('ROLE_COORDINADOR_REGIONAL')") | 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 | $em = $this->getDoctrine()->getManager(); | 537 | $em = $this->getDoctrine()->getManager(); |
| 534 | $docente = $em->getRepository("AppBundle:RolInstitucion")->findOneById($servicio->getIdRolInstitucion()->getId()); | 538 | $docente = $em->getRepository("AppBundle:RolInstitucion")->findOneById($servicio->getIdRolInstitucion()->getId()); |
| @@ -552,9 +556,81 @@ class AscensoController extends Controller | @@ -552,9 +556,81 @@ class AscensoController extends Controller | ||
| 552 | }else{ | 556 | }else{ |
| 553 | $escalafones = $this->getDoctrine()->getRepository('AppBundle:Escalafones')->findOneById($ascenso->getIdEscalafones()->getId()); | 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 | return $this->render('cea/reconocimiento_escala_mostrar.html.twig', array( | 634 | return $this->render('cea/reconocimiento_escala_mostrar.html.twig', array( |
| 559 | 'ascenso' => $ascenso, | 635 | 'ascenso' => $ascenso, |
| 560 | 'adscripcion' => $adscripcion, | 636 | 'adscripcion' => $adscripcion, |
| @@ -562,7 +638,8 @@ class AscensoController extends Controller | @@ -562,7 +638,8 @@ class AscensoController extends Controller | ||
| 562 | 'escalas' => $escala, | 638 | 'escalas' => $escala, |
| 563 | 'pida' => $pida, | 639 | 'pida' => $pida, |
| 564 | 'escalafones' => $escalafones, | 640 | 'escalafones' => $escalafones, |
| 565 | - 'docente' => $docente | 641 | + 'docente' => $docente, |
| 642 | + 'form' => $form->createView() | ||
| 566 | 643 | ||
| 567 | )); | 644 | )); |
| 568 | } | 645 | } |