Commit 5e5022702ba6fb822bb71dd572a9873b8bb6cd2c
1 parent
0505ef2c6b
Exists in
master
crea el acta de defensa
Showing
7 changed files
with
488 additions
and
21 deletions
Show diff stats
app/Resources/views/base_acta.html.twig
... | ... | @@ -0,0 +1,201 @@ |
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | + <head> | |
4 | + <meta charset="UTF-8" /> | |
5 | + <title>{% block title %}CEA | UBV!{% endblock %}</title> | |
6 | + {% block stylesheets %} | |
7 | + <link rel="stylesheet" href="{{ asset('assets/vendor/bootstrap/dist/css/bootstrap.min.css') }}"> | |
8 | + <link rel="stylesheet" href="{{ asset('assets/vendor/font-awesome/css/font-awesome.min.css') }}"> | |
9 | + <style> | |
10 | + p{ | |
11 | + padding: 0; | |
12 | + margin: 0; | |
13 | + } | |
14 | + | |
15 | + | |
16 | + .cuerpo-memo{ | |
17 | + line-height: 33px; | |
18 | + text-indent: 30px; | |
19 | + padding: 10px; | |
20 | + } | |
21 | + | |
22 | + header p{ | |
23 | + font-size: 12px; | |
24 | + } | |
25 | + | |
26 | + .firma{ | |
27 | + margin-top: 60px; | |
28 | + } | |
29 | + .firma p{ | |
30 | + | |
31 | + font-size: 10px; | |
32 | + } | |
33 | + | |
34 | + footer{ | |
35 | + margin-top:20px; | |
36 | + } | |
37 | + | |
38 | + footer p{ | |
39 | + font-size: 10px; | |
40 | + } | |
41 | + </style> | |
42 | + {% endblock %} | |
43 | + <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" /> | |
44 | + </head> | |
45 | + <body > | |
46 | + <div class="container"> | |
47 | + {% block encabezado %} | |
48 | + | |
49 | + <header> | |
50 | + <table> | |
51 | + <tr> | |
52 | + <td> | |
53 | + <div > | |
54 | + <img width="50%" src="{{ asset('bundles/framework/images/portal/logo_ubv.png')}}" /> | |
55 | + </div> | |
56 | + </td> | |
57 | + <td > | |
58 | + <div class="text-center"> | |
59 | + <p>República Bolivariana de Venezuela</p> | |
60 | + <p>Ministerio para el Poder Popular de la Educación Universitaria</p> | |
61 | + <p>Universidad Bolivariana de Venezuela</p> | |
62 | + <p>Rectorado</p> | |
63 | + <p>Dirección General de Apoyo Socio Administrativo</p> | |
64 | + <p>Centro de Estudios Ambientales</p> | |
65 | + </div> | |
66 | + </td> | |
67 | + </tr> | |
68 | + </table> | |
69 | + </header> | |
70 | + | |
71 | + {% endblock %} | |
72 | + | |
73 | + | |
74 | + <div class="row"> | |
75 | + <div class="text-center"><br><br> | |
76 | + <p><strong>ACTA DE ASCENSO A LA CATEGORÍA ACADÉMICA</strong></p> | |
77 | + <p><strong>INFORME DE PERTINENCIA DE TRABAJO ESPECIAL DE GRADO O INVESTIGACIÓN</strong></p> | |
78 | + </div> | |
79 | + </div> | |
80 | + | |
81 | + {%block cuerpo %} | |
82 | + <div class="cuerpo-memo"> | |
83 | + <p class="text-justify"> | |
84 | + Quienes suscriben: (Nombres, Apellidos, Nº Cédula de Identidad y Categoría Académica)</p> | |
85 | + <table class="table table-condensed tabler-bordered"> | |
86 | + {% block jurados %} {% endblock %} | |
87 | + </table> | |
88 | + | |
89 | + <p> | |
90 | + Miembros del Comité Académico designado por el Consejo Universitario de la Universidad Bolivariana de | |
91 | + Venezuela conforme a la Resolución N° {% block resolucion %}{% endblock %}, para valorar, | |
92 | + CONTEXTUALIZACIÓN, PRESENTACIÓN Y ARTICULACIÓN DEL Trabajo de Ascenso presentado por la | |
93 | + Profesora: {% block docente %} {% endblock %} bajo la Modalidad de {% block modalidad1 %} {% endblock %} | |
94 | + a los fines de su Ascenso en el Escalafón Universitario a la Categoría de {% block categoria1 %}{% endblock %} | |
95 | + dejan constancia de lo siguiente: | |
96 | + </p> | |
97 | + <ol> | |
98 | + <li> | |
99 | + Actuó como Coordinador(a) del Comité Académico el (la) Profesor(a) {% block presidente %}{% endblock %} | |
100 | + </li> | |
101 | + | |
102 | + <li> | |
103 | + Se revisó, por cada uno de los Miembros del Comité Académico, el Trabajo de | |
104 | + Investigación como Trabajo de Ascenso, titulado: {% block titulo %}{% endblock %} | |
105 | + </li> | |
106 | + | |
107 | + <li> | |
108 | + Reunidos el día 03 de abril de 2017, en Sede: {% block eje %}{% endblock %}, UBV, a las _______, | |
109 | + se dio lugar la instalación del Acto Académico Público a fin de proceder a la presentación con | |
110 | + el/la autor(a) y el Comité Académico de conformidad con lo establecido en la Ley de Universidades | |
111 | + y el Reglamento Interno de la Universidad Bolivariana de Venezuela para los/as Trabajadores/as | |
112 | + Académicos/as a optar a la Categoría de profesores/as: {% block categoria2 %}{% endblock %} | |
113 | + </li> | |
114 | + | |
115 | + <li> | |
116 | + Finalizada la presentación, el comité académico procedió a deliberar y a elaborar el acta de | |
117 | + ascenso a Asistente correspondiente a la Modalidad de {% block modalidad2 %}{% endblock %} | |
118 | + | |
119 | + </li> | |
120 | + | |
121 | + <li> | |
122 | + Decisión: De conformidad con la Ley de Universidades y el Reglamento Interno de la | |
123 | + Universidad Bolivariana de Venezuela para los/as Trabajadores/as Académicos/as a | |
124 | + optar a la Categoría de profesores/as: {% block categoria3 %}{% endblock %} se acordó | |
125 | + por: _____________ la decisión de: __________ el Trabajo de Investigación. | |
126 | + <p>Por considerar: _______________________________________________________________________________________ | |
127 | + _______________________________________________________________________________________ | |
128 | + __________________________________________________________________________________</p> | |
129 | + </li> | |
130 | + | |
131 | + <li> | |
132 | + Observación (Si fuere el caso): ________________________________________________________ | |
133 | + </li> | |
134 | + | |
135 | + <li> | |
136 | + Mención Publicación (Si fuere el caso): _________________________________________________________ | |
137 | + _________________________________________________________________________________________________ | |
138 | + _________________________________________________________________________________________________ | |
139 | + </li> | |
140 | + </ol> | |
141 | + | |
142 | + | |
143 | + <p> | |
144 | + En fe de lo cual se levanta la presente Acta, en Guanadito a los tres (03) días del mes de Abril de 2017. | |
145 | + </p> | |
146 | + | |
147 | + | |
148 | + | |
149 | + | |
150 | +</div> | |
151 | + {% endblock %} | |
152 | + | |
153 | + <div class="text-center firma"> | |
154 | +<br><br><br><br> | |
155 | + <table class="table table-condensed tabler-bordered"> | |
156 | + {% block firmas %}{% endblock %} | |
157 | + </table> | |
158 | + | |
159 | + </div> | |
160 | + | |
161 | + {% block pie %} | |
162 | + | |
163 | +<footer> | |
164 | + <div class="row "> | |
165 | + | |
166 | + <div class="col-xs-10 text-right"> | |
167 | + <p>Av. Leonardo Da Vinci</p> | |
168 | + <p>Edif. Universidad Bolivariana de Venezuela</p> | |
169 | + <p>Piso 8. Los Chaguaramos</p> | |
170 | + <p>Telf. 0212- 606.3449</p> | |
171 | + <p>RIF. G - 20003773-3</p> | |
172 | + <p>www.ubv.edu.ve - @ubv</p> | |
173 | + <p class="text-center">"Sembramos Saberes Cosechamos Patria"</p> | |
174 | + </div> | |
175 | + <div class="col-xs-2 push-left"> | |
176 | + <img width="80%" src="{{ asset('bundles/framework/images/memorando/logoJuventud.jpg')}}" /> | |
177 | + </div> | |
178 | + | |
179 | + | |
180 | + </div> | |
181 | + | |
182 | + | |
183 | + </footer> | |
184 | + </div> | |
185 | + | |
186 | + | |
187 | + {% endblock %} | |
188 | + | |
189 | + </div><!-- Containter --> | |
190 | + {% block body %} | |
191 | + | |
192 | + {% block principal %} {% endblock %} | |
193 | + | |
194 | + {% endblock %} | |
195 | + | |
196 | + {% block javascripts %} | |
197 | + <script type="text/javascript" src="{{ asset('assets/vendor/jquery/dist/jquery.min.js') }}"></script> | |
198 | + <script type="text/javascript" src="{{ asset('assets/vendor/bootstrap/dist/js/bootstrap.min.js') }}" ></script> | |
199 | + {% endblock %} | |
200 | + </body> | |
201 | +</html> | ... | ... |
app/Resources/views/cea/acta_defensa_mostar.html.twig
... | ... | @@ -101,7 +101,8 @@ |
101 | 101 | </style> |
102 | 102 | {% endblock %} |
103 | 103 | |
104 | -{%block body %} | |
104 | +{%block body %} | |
105 | + <form action="{{ path('cea_acta_defensa_actualizar', { 'id': ascenso.id }) }}" method="POST"> | |
105 | 106 | {% set cantidadJurado = 6 %} |
106 | 107 | <div class="content-wrapper"> |
107 | 108 | <div class="container"> |
... | ... | @@ -140,7 +141,7 @@ |
140 | 141 | |
141 | 142 | {% if escalas is not null %} |
142 | 143 | <div class="form-group"> |
143 | - <label for="Escalafones">{{ cantidadJurado }}Escalafones Obtenidos:</label> | |
144 | + <label for="Escalafones">Escalafones Obtenidos:</label> | |
144 | 145 | <table class="table table-striped table-bordered"> |
145 | 146 | <th>Escalafón</th> |
146 | 147 | <th>Fecha</th> |
... | ... | @@ -153,10 +154,12 @@ |
153 | 154 | <td>{{escala.idTipoEscala }}</td> |
154 | 155 | </tr> |
155 | 156 | {%endfor %} |
156 | - </table> | |
157 | - | |
157 | + </table> | |
158 | + | |
158 | 159 | <p><strong>Escalafón Solicita:</strong> {{ ascenso.idEscalafones.nombre }} </p> |
159 | 160 | {% set anadirJurado = false %} |
161 | + {% set actualizado = false %} | |
162 | + {% set resolucion = "" %} | |
160 | 163 | {% if (ascenso.tesisUbv or ascenso.tipoTrabajoInvestigacion == 'investigacion') %} |
161 | 164 | <h4>Jurados propuestos por el Docente</h4> |
162 | 165 | {% set anadirJurado = true %} |
... | ... | @@ -173,13 +176,32 @@ |
173 | 176 | <li id="well_{{tutor.id}}"> |
174 | 177 | |
175 | 178 | <strong>{{ tutor.idTutor.nombres }} {{ tutor.idTutor.apellidos }}:</strong> |
176 | - {{ tutor.idTutor.institucion }} -> {{ tutor.idTutor.idEscala.nombre }} | |
177 | - <input type="button" class="btn btn-warning btn-xs" value="act" id="actualizar_tutor"> | |
178 | - <input type="button" class="btn btn-danger btn-xs eliminar_jurado" value="X" id="{{ tutor.id }}"> | |
179 | + {{ tutor.idTutor.institucion }} -> {{ tutor.idTutor.idEscala.nombre }}<br> | |
180 | + {% if tutor.idEstatusTutor == NULL %} | |
181 | + {% set actualizado = false %} | |
182 | + <input type="button" class="btn btn-warning btn-xs" value="act" id="actualizar_tutor"> | |
183 | + <input type="button" class="btn btn-danger btn-xs eliminar_jurado" value="X" id="{{ tutor.id }}"> | |
184 | + <input type="radio" name="jurado_{{ tutor.id }}" value="1" > Pdte. | |
185 | + <input type="radio" name="jurado_{{ tutor.id }}" value="2" > Ppal. | |
186 | + <input type="radio" name="jurado_{{ tutor.id }}" value="3" > Supl. | |
187 | + {% else %} | |
188 | + {% set actualizado = true %} | |
189 | + {% set resolucion = tutor.resolucion %} | |
190 | + {% if tutor.idEstatusTutor.id == 1 %} Jurado Presidente {% endif %} | |
191 | + {% if tutor.idEstatusTutor.id == 2 %} Jurado Principal {% endif %} | |
192 | + {% if tutor.idEstatusTutor.id == 3 %} Jurado Suplente {% endif %} | |
193 | + {% endif %} | |
179 | 194 | </li> |
180 | - | |
181 | 195 | {% endfor %} |
196 | + | |
197 | + | |
182 | 198 | </ul> |
199 | + {% if actualizado == false %} | |
200 | + <label for="resolucion">Resolución Jurados:</label> | |
201 | + <input type="text" placeholder="Numero de Resolución..." name="resolucion" id="resolucion" > | |
202 | + {% else %} | |
203 | + <p>Aprobados Bajo Resolución N°: <strong>{{ resolucion }}</strong></p> | |
204 | + {% endif %} | |
183 | 205 | </div> |
184 | 206 | {% endif %} |
185 | 207 | {% if anadirJurado and ascenso.idEstatus.id == 2 %} |
... | ... | @@ -233,7 +255,7 @@ |
233 | 255 | |
234 | 256 | </div> |
235 | 257 | </div> |
236 | - <form action="{{ path('cea_ascenso_actualizar', { 'id': ascenso.id }) }}" method="POST"> | |
258 | + | |
237 | 259 | <div class="col-md-5"> |
238 | 260 | <h3>Documentos Consignados</h3> |
239 | 261 | <div class="widget-content"> |
... | ... | @@ -465,8 +487,8 @@ |
465 | 487 | |
466 | 488 | if (buttonpressed == "aprobado") { |
467 | 489 | for (var i = 0; i < $(':radio:checked', this).length; i++) { |
468 | - console.log($(':radio:checked', this)[i]); | |
469 | - if (($(':radio:checked', this)[i].value == "3")) { | |
490 | + console.log($(':radio:checked', this)[i].name); | |
491 | + if (($(':radio:checked', this)[i].value == "3") && (!$(':radio:checked', this)[i].name.include("jurado"))) { | |
470 | 492 | alert('No puedes aprobar una solicitud con documentos en estatus de rechazado'); |
471 | 493 | $("#aprobado").button('reset'); |
472 | 494 | return false; | ... | ... |
app/Resources/views/memorando/acta_defensa.html.twig
... | ... | @@ -0,0 +1,66 @@ |
1 | +{% extends 'base_acta.html.twig' %} | |
2 | + | |
3 | + | |
4 | + {% block jurados %} | |
5 | + <th>Nombres y Apellidos</th> | |
6 | + <th>Cédula Identidad</th> | |
7 | + <th>Categoría</th> | |
8 | + {% for jurado in jurados %} | |
9 | + <tr> | |
10 | + <td>{{ jurado.idTutor.nombres }}</td> | |
11 | + <td>{{ jurado.idTutor.cedulaPasaporte }}</td> | |
12 | + <td>{{ jurado.idTutor.idEscala.nombre }}</td> | |
13 | + </tr> | |
14 | + | |
15 | + {% endfor %} | |
16 | + | |
17 | + {% endblock %} | |
18 | + | |
19 | + {% block resolucion %} | |
20 | + {{ resolucion }} | |
21 | + {% endblock %} | |
22 | + | |
23 | + {% block presidente %} | |
24 | + {{ presidente.idTutor.nombres }} {{ presidente.idTutor.apellidos }} {{ presidente.idTutor.cedulaPasaporte }} | |
25 | + {% endblock %} | |
26 | + | |
27 | + {% block titulo %} | |
28 | + {{ ascenso.tituloTrabajo }} | |
29 | + {% endblock %} | |
30 | + | |
31 | + {% block categoria1 %} | |
32 | + {{ categoria }} | |
33 | + {% endblock %} | |
34 | + {% block categoria2 %} | |
35 | + {{ categoria }} | |
36 | + {% endblock %} | |
37 | + {% block categoria3 %} | |
38 | + {{ categoria }} | |
39 | + {% endblock %} | |
40 | + | |
41 | + {% block modalidad1 %} | |
42 | + {{ ascenso.tipoTrabajoInvestigacion }} | |
43 | + {% endblock %} | |
44 | + | |
45 | + {% block modalidad2 %} | |
46 | + {{ ascenso.tipoTrabajoInvestigacion }} | |
47 | + {% endblock %} | |
48 | + | |
49 | + {% block firmas %} | |
50 | + <tr> | |
51 | + {% for jurado in jurados %} | |
52 | + <td> {{ jurado.idTutor.cedulaPasaporte }} <br><br></td> | |
53 | + {% endfor %} | |
54 | + </tr> | |
55 | + {% endblock %} | |
56 | + | |
57 | + {%block javascripts %} | |
58 | + {{ parent() }} | |
59 | + <script type="text/javascript"> | |
60 | + | |
61 | + window.onload = function () { | |
62 | + window.print(); //invoca la impresora tan pronto se carga el documento | |
63 | + setTimeout(function () { window.close(); }, 100); //cierra la venta si cierra el dialog de imprimir | |
64 | + } | |
65 | +</script> | |
66 | + {% endblock %} | ... | ... |
app/Resources/views/solicitudes/index.html.twig
... | ... | @@ -64,6 +64,12 @@ |
64 | 64 | {% if servicio.idServicioCe.id == 6 %} |
65 | 65 | <a href="{{ path('adscripcion_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a> |
66 | 66 | {% endif %} |
67 | + | |
68 | + {% if servicio.idServicioCe.id == 7 %} | |
69 | + {% if servicio.idEstatus.id == 1 %} | |
70 | + <a href="{{ path('servicio_defensa_imprimir', { 'id': servicio.id }) }}" target="_blank" class="btn btn-xs btn-info"><i class="fa fa-print"> </i></a> | |
71 | + {% endif %} | |
72 | + {%endif%} | |
67 | 73 | </td> |
68 | 74 | </tr> |
69 | 75 | {% endfor %} | ... | ... |
src/AppBundle/Controller/AscensoController.php
... | ... | @@ -506,16 +506,17 @@ class AscensoController extends Controller |
506 | 506 | } |
507 | 507 | |
508 | 508 | |
509 | - $solicitudAscenso = $this->getDoctrine()->getRepository('AppBundle:Ascenso')->findOneBy( | |
509 | + $solicitudDefensa = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')->findOneBy( | |
510 | 510 | array( |
511 | 511 | 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion(), |
512 | - 'idEstatus' => 1 | |
513 | - ) | |
512 | + 'idServicioCe' => 7 | |
513 | + ), | |
514 | + array('id' => 'DESC') | |
514 | 515 | ); |
515 | 516 | |
516 | 517 | |
517 | - if(!$solicitudAscenso){ | |
518 | - $this->addFlash('danger', 'Estimado Docente, No posee ninguna solicitud de Ascenso Activa.'); | |
518 | + if($solicitudDefensa->getIdEstatus()->getId() == 1 || $solicitudDefensa->getIdEstatus()->getId() == 2 ){ | |
519 | + $this->addFlash('warning', 'Estimado Docente, Ya posee una solicitud Activa.'); | |
519 | 520 | return $this->redirect($this->generateUrl('cea_index')); |
520 | 521 | } |
521 | 522 | |
... | ... | @@ -560,7 +561,7 @@ class AscensoController extends Controller |
560 | 561 | 'solicitudes/acta_defensa.html.twig', |
561 | 562 | array( |
562 | 563 | 'form' => $form->createView(), |
563 | - 'tipo' => 'Ascenso ' . $solicitudAscenso->getIdEscalafones()->getNombre() | |
564 | + 'tipo' => 'Ascenso ' . $solicitudDefensa->getIdEscalafones()->getNombre() | |
564 | 565 | ) |
565 | 566 | ); |
566 | 567 | |
... | ... | @@ -891,6 +892,87 @@ class AscensoController extends Controller |
891 | 892 | return $this->redirect($this->generateUrl('cea_ascenso_show', array('id' => $serviciosAscenso->getId()))); |
892 | 893 | |
893 | 894 | } |
895 | + | |
896 | + | |
897 | + | |
898 | + /** | |
899 | + * Encuentra y muestra una entidad de tipo Adscripción. | |
900 | + * | |
901 | + * @Route("/solicitudes/acta_defensa_edit/{id}", name="cea_acta_defensa_actualizar") | |
902 | + * @Method({"GET", "POST"}) | |
903 | + * @Security("has_role('ROLE_COORDINADOR_REGIONAL')") | |
904 | + */ | |
905 | + public function actaDefensaEditAction(Ascenso $ascenso, Request $request) | |
906 | + { | |
907 | + $mensaje = ""; | |
908 | + //$adscripciones = $this->getDoctrine()->getRepository('AppBundle:Adscripcion')->findOneById($adscripcion->getId()); | |
909 | + $servicioDefensa = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')->findOneBy(array( | |
910 | + 'idRolInstitucion' => $ascenso->getIdRolInstitucion(), | |
911 | + 'idServicioCe' => 7, | |
912 | + 'idEstatus' => 2 | |
913 | + )); | |
914 | + | |
915 | + $parametros = $request->request->all(); | |
916 | + $resolucion = $parametros["resolucion"]; | |
917 | + | |
918 | + $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($ascenso->getIdRolInstitucion()); | |
919 | + | |
920 | + if(isset($parametros['aprobado'])) { | |
921 | + $servicioDefensa->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(1)); | |
922 | + | |
923 | + }else{ | |
924 | + $mensaje = $request->request->get('message-text'); | |
925 | + $servicioDefensa->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); | |
926 | + } | |
927 | + | |
928 | + $em = $this->getDoctrine()->getManager(); | |
929 | + | |
930 | + | |
931 | + //Guardar el resultado de la verificación de Documentos | |
932 | + foreach ($parametros as $key => $value){ | |
933 | + if($key === 'defensa') { | |
934 | + verificar_documentos2($user->getIdRolInstitucion(), 17, $value, $em, "", $servicioDefensa); | |
935 | + } | |
936 | + if (strpos($key, "jurado") !== false) { | |
937 | + $jur = explode("_", $key); | |
938 | + $actualizar = $this->getDoctrine()->getRepository("AppBundle:AscensoTutores")->findOneById($jur[1]); | |
939 | + $estatusTutor = $this->getDoctrine()->getRepository("AppBundle:EstatusTutor")->findOneById($value); | |
940 | + $actualizar->setIdEstatusTutor($estatusTutor); | |
941 | + $actualizar->setResolucion($resolucion); | |
942 | + $actualizar->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(1)); | |
943 | + $em->persist($actualizar); | |
944 | + $em->flush(); | |
945 | + | |
946 | + } | |
947 | + } | |
948 | + $em->persist($servicioDefensa); | |
949 | + $em->flush(); | |
950 | + | |
951 | + $message = \Swift_Message::newInstance() | |
952 | + ->setSubject('Resultado Acta de defensa CEA@UBV') | |
953 | + ->setFrom('wilmer.ramones@gmail.com') | |
954 | + ->setTo($user->getEmail()) | |
955 | + ->setBody( | |
956 | + $this->renderView( | |
957 | + 'correos/actualizar_ascenso.html.twig', | |
958 | + array( | |
959 | + 'nombres' => $user->getIdRolInstitucion()->getIdRol()->getIdPersona()->getPrimerNombre(), | |
960 | + 'apellidos' => $user->getIdRolInstitucion()->getIdRol()->getIdPersona()->getPrimerApellido(), | |
961 | + 'estatus' => $servicioDefensa->getIdEstatus(), | |
962 | + 'mensaje' => $mensaje | |
963 | + ) | |
964 | + ), | |
965 | + 'text/html' | |
966 | + ) | |
967 | + ; | |
968 | + $this->get('mailer')->send($message); | |
969 | + | |
970 | + $this->addFlash('notice', 'Solicitud Actualizada Correctamente, hemos enviado un correo al docente notificandole los cambios.'); | |
971 | + | |
972 | + | |
973 | + return $this->redirect($this->generateUrl('cea_acta_defensa_show', array('id' => $servicioDefensa->getId()))); | |
974 | + | |
975 | + } | |
894 | 976 | |
895 | 977 | |
896 | 978 | |
... | ... | @@ -972,6 +1054,70 @@ class AscensoController extends Controller |
972 | 1054 | |
973 | 1055 | |
974 | 1056 | } |
1057 | + | |
1058 | + | |
1059 | + | |
1060 | + /** | |
1061 | + * Muestra la página donde explica brevemente el reconocimiento de Antiguedad | |
1062 | + * y permite realizar la solicitud | |
1063 | + * | |
1064 | + * @Route("/mis_servicios/acta_defensa/imprimir/{id}", name="servicio_defensa_imprimir") | |
1065 | + * @Method({"GET", "POST"}) | |
1066 | + */ | |
1067 | + public function serviciosDefensaImprimirAction(DocenteServicio $servicio){ | |
1068 | + | |
1069 | + | |
1070 | + if ($servicio->getIdEstatus()->getId() == 1){ | |
1071 | + | |
1072 | + | |
1073 | + $ascenso = $this->getDoctrine()->getRepository('AppBundle:Ascenso')->findOneByIdRolInstitucion($servicio->getIdRolInstitucion()); | |
1074 | + $eje = $ascenso->getIdRolInstitucion()->getIdInstitucion()->getIdEjeParroquia()->getIdEje()->getAbreviacion(); | |
1075 | + $tutores = $ascenso->getTutores(); | |
1076 | + $resolucion = $tutores[0]->getResolucion(); | |
1077 | + | |
1078 | + $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findOneBy( | |
1079 | + array('idRolInstitucion' => $this->getUser()->getIdRolInstitucion()), | |
1080 | + array('id' => 'DESC') | |
1081 | + ); | |
1082 | + | |
1083 | + if(!$escala){ | |
1084 | + $this->addFlash('danger', 'Estimado Docente, todavia no ha concursado, debe concursar primero para poder realizar una solicitud de ascenso.'); | |
1085 | + return $this->redirect($this->generateUrl('cea_index')); | |
1086 | + } | |
1087 | + | |
1088 | + $escalafones = $this->getDoctrine()->getRepository("AppBundle:Escalafones")->findOneById($escala->getIdEscala()->getId() + 1); //tiempo para el proximo escalafon | |
1089 | + foreach ($tutores as $tutor) { | |
1090 | + if ($tutor->getIdEstatusTutor()->getId() == 1){ | |
1091 | + $presidente = $tutor; | |
1092 | + } | |
1093 | + | |
1094 | + } | |
1095 | + | |
1096 | + return $this->render('memorando/acta_defensa.html.twig', array( | |
1097 | + 'ascenso' => $ascenso, | |
1098 | + 'eje' => $eje, | |
1099 | + 'resolucion' => $resolucion, | |
1100 | + 'presidente' => $presidente, | |
1101 | + 'categoria' => $escalafones, | |
1102 | + 'jurados' => $tutores | |
1103 | + )); | |
1104 | + | |
1105 | + }else{ | |
1106 | + $this->addFlash('danger', 'No Puede Imprimir el reconocimiento de Adscripcion hasta que esté aprobado por el coordinador del CEA.'); | |
1107 | + | |
1108 | + $servicios = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')->findByIdRolInstitucion($this->getUser()->getIdRolInstitucion()); | |
1109 | + $adscripcion = $this->getDoctrine()->getRepository('AppBundle:Adscripcion')->findByIdRolInstitucion($this->getUser()->getIdRolInstitucion()); | |
1110 | + | |
1111 | + | |
1112 | + return $this->render('solicitudes/index.html.twig', array( | |
1113 | + 'servicios' => $servicios, | |
1114 | + 'adscripcion' => $adscripcion | |
1115 | + )); | |
1116 | + } | |
1117 | + | |
1118 | + | |
1119 | + } | |
1120 | + | |
975 | 1121 | |
976 | 1122 | |
977 | 1123 | ... | ... |
src/AppBundle/Entity/Ascenso.php
... | ... | @@ -49,16 +49,14 @@ class Ascenso |
49 | 49 | */ |
50 | 50 | protected $idEscalafones; |
51 | 51 | |
52 | + | |
53 | + | |
52 | 54 | /** |
53 | 55 | * @ORM\OneToMany(targetEntity="AppBundle\Entity\AscensoTutores", mappedBy="idAscenso") |
54 | 56 | */ |
55 | 57 | private $tutores; |
56 | - | |
57 | 58 | |
58 | 59 | |
59 | - | |
60 | - | |
61 | - | |
62 | 60 | /** |
63 | 61 | * @ORM\Column(name="nombre_nucleo", type="string", nullable=true, options={"comment" = "Nombre del núcleo de investigación"}) |
64 | 62 | * @Assert\NotBlank(message="El nombre del núcleo de investigación es obligatorio.") | ... | ... |
src/AppBundle/Entity/AscensoTutores.php
... | ... | @@ -54,6 +54,11 @@ class AscensoTutores |
54 | 54 | */ |
55 | 55 | protected $idTutor; |
56 | 56 | |
57 | + /** | |
58 | + * @ORM\Column(name="resolucion", type="string", nullable=true, options={"comment" = "resolucion aprobación de Jurado"}) | |
59 | + */ | |
60 | + private $resolucion; | |
61 | + | |
57 | 62 | |
58 | 63 | |
59 | 64 | /** |
... | ... | @@ -182,4 +187,27 @@ class AscensoTutores |
182 | 187 | { |
183 | 188 | return $this->idEstatus; |
184 | 189 | } |
190 | + | |
191 | + /** | |
192 | + * Set resolucion | |
193 | + * | |
194 | + * @param string $resolucion | |
195 | + * @return AscensoTutores | |
196 | + */ | |
197 | + public function setResolucion($resolucion) | |
198 | + { | |
199 | + $this->resolucion = $resolucion; | |
200 | + | |
201 | + return $this; | |
202 | + } | |
203 | + | |
204 | + /** | |
205 | + * Get resolucion | |
206 | + * | |
207 | + * @return string | |
208 | + */ | |
209 | + public function getResolucion() | |
210 | + { | |
211 | + return $this->resolucion; | |
212 | + } | |
185 | 213 | } | ... | ... |