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 @@ | @@ -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,7 +101,8 @@ | ||
101 | </style> | 101 | </style> |
102 | {% endblock %} | 102 | {% endblock %} |
103 | 103 | ||
104 | -{%block body %} | 104 | +{%block body %} |
105 | + <form action="{{ path('cea_acta_defensa_actualizar', { 'id': ascenso.id }) }}" method="POST"> | ||
105 | {% set cantidadJurado = 6 %} | 106 | {% set cantidadJurado = 6 %} |
106 | <div class="content-wrapper"> | 107 | <div class="content-wrapper"> |
107 | <div class="container"> | 108 | <div class="container"> |
@@ -140,7 +141,7 @@ | @@ -140,7 +141,7 @@ | ||
140 | 141 | ||
141 | {% if escalas is not null %} | 142 | {% if escalas is not null %} |
142 | <div class="form-group"> | 143 | <div class="form-group"> |
143 | - <label for="Escalafones">{{ cantidadJurado }}Escalafones Obtenidos:</label> | 144 | + <label for="Escalafones">Escalafones Obtenidos:</label> |
144 | <table class="table table-striped table-bordered"> | 145 | <table class="table table-striped table-bordered"> |
145 | <th>Escalafón</th> | 146 | <th>Escalafón</th> |
146 | <th>Fecha</th> | 147 | <th>Fecha</th> |
@@ -153,10 +154,12 @@ | @@ -153,10 +154,12 @@ | ||
153 | <td>{{escala.idTipoEscala }}</td> | 154 | <td>{{escala.idTipoEscala }}</td> |
154 | </tr> | 155 | </tr> |
155 | {%endfor %} | 156 | {%endfor %} |
156 | - </table> | ||
157 | - | 157 | + </table> |
158 | + | ||
158 | <p><strong>Escalafón Solicita:</strong> {{ ascenso.idEscalafones.nombre }} </p> | 159 | <p><strong>Escalafón Solicita:</strong> {{ ascenso.idEscalafones.nombre }} </p> |
159 | {% set anadirJurado = false %} | 160 | {% set anadirJurado = false %} |
161 | + {% set actualizado = false %} | ||
162 | + {% set resolucion = "" %} | ||
160 | {% if (ascenso.tesisUbv or ascenso.tipoTrabajoInvestigacion == 'investigacion') %} | 163 | {% if (ascenso.tesisUbv or ascenso.tipoTrabajoInvestigacion == 'investigacion') %} |
161 | <h4>Jurados propuestos por el Docente</h4> | 164 | <h4>Jurados propuestos por el Docente</h4> |
162 | {% set anadirJurado = true %} | 165 | {% set anadirJurado = true %} |
@@ -173,13 +176,32 @@ | @@ -173,13 +176,32 @@ | ||
173 | <li id="well_{{tutor.id}}"> | 176 | <li id="well_{{tutor.id}}"> |
174 | 177 | ||
175 | <strong>{{ tutor.idTutor.nombres }} {{ tutor.idTutor.apellidos }}:</strong> | 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 | </li> | 194 | </li> |
180 | - | ||
181 | {% endfor %} | 195 | {% endfor %} |
196 | + | ||
197 | + | ||
182 | </ul> | 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 | </div> | 205 | </div> |
184 | {% endif %} | 206 | {% endif %} |
185 | {% if anadirJurado and ascenso.idEstatus.id == 2 %} | 207 | {% if anadirJurado and ascenso.idEstatus.id == 2 %} |
@@ -233,7 +255,7 @@ | @@ -233,7 +255,7 @@ | ||
233 | 255 | ||
234 | </div> | 256 | </div> |
235 | </div> | 257 | </div> |
236 | - <form action="{{ path('cea_ascenso_actualizar', { 'id': ascenso.id }) }}" method="POST"> | 258 | + |
237 | <div class="col-md-5"> | 259 | <div class="col-md-5"> |
238 | <h3>Documentos Consignados</h3> | 260 | <h3>Documentos Consignados</h3> |
239 | <div class="widget-content"> | 261 | <div class="widget-content"> |
@@ -465,8 +487,8 @@ | @@ -465,8 +487,8 @@ | ||
465 | 487 | ||
466 | if (buttonpressed == "aprobado") { | 488 | if (buttonpressed == "aprobado") { |
467 | for (var i = 0; i < $(':radio:checked', this).length; i++) { | 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 | alert('No puedes aprobar una solicitud con documentos en estatus de rechazado'); | 492 | alert('No puedes aprobar una solicitud con documentos en estatus de rechazado'); |
471 | $("#aprobado").button('reset'); | 493 | $("#aprobado").button('reset'); |
472 | return false; | 494 | return false; |
app/Resources/views/memorando/acta_defensa.html.twig
@@ -0,0 +1,66 @@ | @@ -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,6 +64,12 @@ | ||
64 | {% if servicio.idServicioCe.id == 6 %} | 64 | {% if servicio.idServicioCe.id == 6 %} |
65 | <a href="{{ path('adscripcion_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a> | 65 | <a href="{{ path('adscripcion_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a> |
66 | {% endif %} | 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 | </td> | 73 | </td> |
68 | </tr> | 74 | </tr> |
69 | {% endfor %} | 75 | {% endfor %} |
src/AppBundle/Controller/AscensoController.php
@@ -506,16 +506,17 @@ class AscensoController extends Controller | @@ -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 | array( | 510 | array( |
511 | 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion(), | 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 | return $this->redirect($this->generateUrl('cea_index')); | 520 | return $this->redirect($this->generateUrl('cea_index')); |
520 | } | 521 | } |
521 | 522 | ||
@@ -560,7 +561,7 @@ class AscensoController extends Controller | @@ -560,7 +561,7 @@ class AscensoController extends Controller | ||
560 | 'solicitudes/acta_defensa.html.twig', | 561 | 'solicitudes/acta_defensa.html.twig', |
561 | array( | 562 | array( |
562 | 'form' => $form->createView(), | 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,6 +892,87 @@ class AscensoController extends Controller | ||
891 | return $this->redirect($this->generateUrl('cea_ascenso_show', array('id' => $serviciosAscenso->getId()))); | 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,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,16 +49,14 @@ class Ascenso | ||
49 | */ | 49 | */ |
50 | protected $idEscalafones; | 50 | protected $idEscalafones; |
51 | 51 | ||
52 | + | ||
53 | + | ||
52 | /** | 54 | /** |
53 | * @ORM\OneToMany(targetEntity="AppBundle\Entity\AscensoTutores", mappedBy="idAscenso") | 55 | * @ORM\OneToMany(targetEntity="AppBundle\Entity\AscensoTutores", mappedBy="idAscenso") |
54 | */ | 56 | */ |
55 | private $tutores; | 57 | private $tutores; |
56 | - | ||
57 | 58 | ||
58 | 59 | ||
59 | - | ||
60 | - | ||
61 | - | ||
62 | /** | 60 | /** |
63 | * @ORM\Column(name="nombre_nucleo", type="string", nullable=true, options={"comment" = "Nombre del núcleo de investigación"}) | 61 | * @ORM\Column(name="nombre_nucleo", type="string", nullable=true, options={"comment" = "Nombre del núcleo de investigación"}) |
64 | * @Assert\NotBlank(message="El nombre del núcleo de investigación es obligatorio.") | 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,6 +54,11 @@ class AscensoTutores | ||
54 | */ | 54 | */ |
55 | protected $idTutor; | 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,4 +187,27 @@ class AscensoTutores | ||
182 | { | 187 | { |
183 | return $this->idEstatus; | 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 | } |