Commit 26d06cf947bfa7c19b92d9708c6adcd7d10f3f5a

Authored by Wilmer Ramones
1 parent cd280b1e95
Exists in master

comenzado a crear la vista solicitando los tutores junto con el AJAX que busca en la Base de datos

app/Resources/views/solicitudes/ascenso.html.twig
@@ -45,11 +45,45 @@ @@ -45,11 +45,45 @@
45 </div> 45 </div>
46 46
47 </div> 47 </div>
  48 +
  49 + <!-- Ventanas Modales -->
  50 +
  51 + <!-- Ventana de buscar adscripcion -->
  52 + <div class="modal fade bs-example-modal-sm" id="buscarTutores" tabindex="-1" role="dialog">
  53 + <div class="modal-dialog" role="document">
  54 + <div class="modal-content">
  55 + <div class="modal-header">
  56 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  57 + <h4 class="modal-title" id="myModalLabel">El tutor debe tener la escala de {{ nueva_escala.nombre }} o superior</h4>
  58 + </div>
  59 + <div class="modal-body">
  60 +
  61 + <h2>Introduzla la cedula y presione buscar</h2>
  62 + {% form_theme tutorForm 'bootstrap_3_layout.html.twig' %}
  63 +
  64 +
  65 +
  66 + {{ form_start(tutorForm) }}
  67 +
  68 + {{ form_widget(tutorForm) }}
  69 + {{ form_end(tutorForm) }}
  70 +
  71 + </div>
  72 + <div class="modal-footer">
  73 + <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
  74 + <button class="btn btn-primary" type="submit">Buscar Adscripcion</button>
  75 + </div>
  76 + </div>
  77 + </div>
  78 + </div><!-- Fin de la ventanta modal buscar adscripcion -->
48 79
49 80
50 {% endblock %} 81 {% endblock %}
51 82
52 83
  84 +
  85 +
  86 +
53 87
54 88
55 {% block javascripts %} 89 {% block javascripts %}
@@ -59,7 +93,40 @@ @@ -59,7 +93,40 @@
59 93
60 $('.esc_oposicion')[this.checked ? "show" : "hide"](); 94 $('.esc_oposicion')[this.checked ? "show" : "hide"]();
61 95
62 - }); 96 + });
  97 +
  98 + $( "#tutores_ascenso_buscarTutor" ).click(function() {
  99 + if($("#tutores_ascenso_cedulaPasaporte").val() == ""){
  100 + alert("cedula no puede estar vacia");
  101 + return false;
  102 + }
  103 + $.ajax({
  104 + method: "GET",
  105 + url: "{{ url('ajax_buscar_tutor') }}",
  106 + async: true,
  107 + cache: false,
  108 + data: ({cedula: $("#tutores_ascenso_cedulaPasaporte").val(), documento: $("#tutores_ascenso_idDocumentoIdentidad").val()}),
  109 + success: function (data) {
  110 +
  111 + var posts = JSON.parse(data.posts);
  112 + console.log(posts);
  113 + if (posts == ""){
  114 + $('.oculto').removeClass('hidden');
  115 + }else{
  116 + $('#ascenso_tutores_asignados').append($('<option>', {
  117 + value: 1,
  118 + text: 'My option'
  119 + }));
  120 + }
  121 +
  122 + },
  123 + error: function (XMLHttpRequest, textStatus, errorThrown) {
  124 + console.log(errorThrown);
  125 +
  126 + }
  127 +
  128 + });
  129 + });
63 130
64 </script> 131 </script>
65 {% endblock %} 132 {% endblock %}
src/AppBundle/Controller/AjaxController.php
@@ -35,7 +35,7 @@ class AjaxController extends Controller { @@ -35,7 +35,7 @@ class AjaxController extends Controller {
35 * @Method({"GET"}) 35 * @Method({"GET"})
36 */ 36 */
37 public function contadorAction(Request $request){ 37 public function contadorAction(Request $request){
38 - if($request->isXmlHttpRequest()){ 38 + if($request->isXmlHttpRequest()){
39 $encoders = array(new JsonEncoder()); 39 $encoders = array(new JsonEncoder());
40 $normalizers = array(new ObjectNormalizer()); 40 $normalizers = array(new ObjectNormalizer());
41 41
@@ -71,4 +71,40 @@ class AjaxController extends Controller { @@ -71,4 +71,40 @@ class AjaxController extends Controller {
71 71
72 } 72 }
73 73
  74 +
  75 + /**
  76 + * @Route("/ajax/buscar_tutor", name="ajax_buscar_tutor")
  77 + * @Method({"GET"})
  78 + */
  79 + public function buscarTutorAction(Request $request){
  80 + if($request->isXmlHttpRequest()){
  81 + $encoders = array(new JsonEncoder());
  82 + $normalizers = array(new ObjectNormalizer());
  83 +
  84 + $serializer = new Serializer($normalizers, $encoders);
  85 + $cedula = filter_input(INPUT_GET, 'cedula', FILTER_SANITIZE_SPECIAL_CHARS);
  86 + $documento = filter_input(INPUT_GET, 'documento', FILTER_SANITIZE_SPECIAL_CHARS);
  87 +
  88 +
  89 + $repository = $this->getDoctrine()
  90 + ->getRepository('AppBundle:TutoresAscenso');
  91 + $query = $repository->createQueryBuilder('p')
  92 + ->where('p.cedulaPasaporte = :cedula')
  93 + ->andWhere('p.institucion = :documento')
  94 + ->setParameters(array('cedula'=> $cedula, 'documento' => $documento))
  95 + ->getQuery();
  96 +
  97 + $posts = $query->getResult();
  98 +
  99 + $response = new JsonResponse();
  100 + $response->setStatusCode(200);
  101 + $response->setData(array(
  102 + 'response' => 'success',
  103 + 'posts' => $serializer->serialize($posts, 'json')
  104 + ));
  105 + return $response;
  106 + }
  107 +
  108 + }
  109 +
74 } 110 }
src/AppBundle/Controller/AscensoController.php
@@ -122,8 +122,9 @@ class AscensoController extends Controller @@ -122,8 +122,9 @@ class AscensoController extends Controller
122 122
123 123
124 $form = $this->createForm('AppBundle\Form\AscensoType'); 124 $form = $this->createForm('AppBundle\Form\AscensoType');
  125 + $tutorForm = $this->createForm('AppBundle\Form\TutoresAscensoType');
125 $form->handleRequest($request); 126 $form->handleRequest($request);
126 - 127 +
127 128
128 if ($form->isSubmitted() && $form->isValid()) { 129 if ($form->isSubmitted() && $form->isValid()) {
129 130
@@ -245,6 +246,7 @@ class AscensoController extends Controller @@ -245,6 +246,7 @@ class AscensoController extends Controller
245 'solicitudes/ascenso.html.twig', 246 'solicitudes/ascenso.html.twig',
246 array( 247 array(
247 'form' => $form->createView(), 248 'form' => $form->createView(),
  249 + 'tutorForm' => $tutorForm->createView(),
248 'ultima_escala' => $escala, 250 'ultima_escala' => $escala,
249 'nueva_escala' => $nueva_escala, 251 'nueva_escala' => $nueva_escala,
250 'antiguedad' => $formalizarTiempo 252 'antiguedad' => $formalizarTiempo
src/AppBundle/Form/AscensoType.php
@@ -15,7 +15,7 @@ use Symfony\Component\Validator\Constraints\NotBlank; @@ -15,7 +15,7 @@ use Symfony\Component\Validator\Constraints\NotBlank;
15 use Symfony\Component\Form\AbstractType; 15 use Symfony\Component\Form\AbstractType;
16 use Symfony\Component\Form\FormBuilderInterface; 16 use Symfony\Component\Form\FormBuilderInterface;
17 use Symfony\Component\Form\Extension\Core\Type\TextType; 17 use Symfony\Component\Form\Extension\Core\Type\TextType;
18 -use Symfony\Component\Form\Extension\Core\Type\BirthdayType; 18 +use Symfony\Component\Form\Extension\Core\Type\ButtonType;
19 use Symfony\Component\Form\Extension\Core\Type\CheckboxType; 19 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
20 use Symfony\Component\Form\Extension\Core\Type\FileType; 20 use Symfony\Component\Form\Extension\Core\Type\FileType;
21 use Symfony\Component\Form\Extension\Core\Type\SubmitType; 21 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
@@ -111,7 +111,20 @@ class AscensoType extends AbstractType @@ -111,7 +111,20 @@ class AscensoType extends AbstractType
111 ->add('tutores_asignados', EntityType::class, array( 111 ->add('tutores_asignados', EntityType::class, array(
112 'placeholder' => 'Añadir Tutores...', 112 'placeholder' => 'Añadir Tutores...',
113 'class' => 'AppBundle:TutoresAscenso', 113 'class' => 'AppBundle:TutoresAscenso',
114 - 'label' => false 114 + 'label' => false,
  115 + 'multiple' => true,
  116 + 'attr' => array(
  117 + 'disabled' => 'true',
  118 + )
  119 + ))
  120 +
  121 + ->add('añadir_tutor', ButtonType::class, array(
  122 + 'label' => 'Añadir Tutor',
  123 + 'attr' => array(
  124 + 'class' => 'btn btn-success btn-sm',
  125 + 'data-toggle' => "modal",
  126 + 'data-target' => "#buscarTutores"
  127 + )
115 )) 128 ))
116 129
117 130
@@ -165,10 +178,10 @@ class AscensoType extends AbstractType @@ -165,10 +178,10 @@ class AscensoType extends AbstractType
165 178
166 179
167 180
168 - ->add('send', SubmitType::class, array(  
169 - 'label' => 'Crear Solicitud de Ascenso',  
170 - 'attr' => array('class' => 'btn btn-success btn-block')  
171 - )) 181 + ->add('send', SubmitType::class, array(
  182 + 'label' => 'Crear Solicitud de Ascenso',
  183 + 'attr' => array('class' => 'btn btn-success btn-block')
  184 + ))
172 185
173 186
174 ; 187 ;
src/AppBundle/Form/TutoresAscensoType.php
@@ -0,0 +1,93 @@ @@ -0,0 +1,93 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Form;
  4 +
  5 +use Symfony\Component\Form\AbstractType;
  6 +use Symfony\Component\Form\FormBuilderInterface;
  7 +use Symfony\Component\OptionsResolver\OptionsResolver;
  8 +use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9 +use Symfony\Component\Form\Extension\Core\Type\TextType;
  10 +use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  11 +use Symfony\Component\Form\Extension\Core\Type\ButtonType;
  12 +
  13 +
  14 +class TutoresAscensoType extends AbstractType
  15 +{
  16 + /**
  17 + * @param FormBuilderInterface $builder
  18 + * @param array $options
  19 + */
  20 + public function buildForm(FormBuilderInterface $builder, array $options)
  21 + {
  22 + $builder
  23 + ->add('idDocumentoIdentidad', EntityType::class, array(
  24 + 'label' => false,
  25 + 'placeholder' => 'Tipo Documento...',
  26 + 'class' => 'AppBundle:DocumentoIdentidad',
  27 + 'attr' => array(
  28 + 'class' => 'col-lg-4',
  29 + )
  30 + ))
  31 + ->add('cedulaPasaporte', TextType::class, array(
  32 + 'label' => false,
  33 + 'attr' => array(
  34 + 'placeholder' => 'introudzca la cédula',
  35 + 'class' => 'col-lg-4 form-control',
  36 + )
  37 + ))
  38 +
  39 + ->add('buscarTutor', ButtonType::class, array(
  40 + 'label' => 'Añadir',
  41 + 'attr' => array('class' => 'btn btn-primary col-lg-4'),
  42 + ))
  43 +
  44 + ->add('etiqueta', TextType::class, array(
  45 + 'label' => false,
  46 + 'data' => "Tutor no Encontrado, por favor Registre al nuevo Tutor",
  47 + 'attr' => array(
  48 + 'placeholder' => 'Nombres del tutor...',
  49 + 'class' => 'alert alert-warning col-lg-12 hidden oculto',
  50 + )
  51 + ))
  52 +
  53 +
  54 + ->add('nombres', TextType::class, array(
  55 + 'label' => 'nombres',
  56 + 'label_attr' => array('class' => 'hidden oculto'),
  57 + 'attr' => array(
  58 + 'class' => 'col-lg-6 form-control hidden oculto',
  59 + )
  60 + ))
  61 +
  62 + ->add('apellidos', TextType::class, array(
  63 + 'label' => false,
  64 + 'attr' => array(
  65 + 'placeholder' => 'apellidos del tutor...',
  66 + 'class' => 'col-lg-3 form-control hidden oculto',
  67 + )
  68 + ))
  69 + /*->add('correoElectronico', EmailType::class, array(
  70 + 'label' => false,
  71 + 'attr' => array(
  72 + 'placeholder' => 'introudzca correo Electrónico del tutor',
  73 + 'class' => 'col-lg-6 form-group',
  74 + )
  75 + ))
  76 + ->add('nombres')
  77 + ->add('apellidos')
  78 + ->add('institucion')
  79 + ->add('idEscala')*/
  80 + //->add('ascenso')
  81 + ;
  82 + }
  83 +
  84 + /**
  85 + * @param OptionsResolver $resolver
  86 + */
  87 + public function configureOptions(OptionsResolver $resolver)
  88 + {
  89 + $resolver->setDefaults(array(
  90 + 'data_class' => 'AppBundle\Entity\TutoresAscenso'
  91 + ));
  92 + }
  93 +}