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 | } | ... | ... |