Commit ea074776e5739755674fa169580eaea6ab03e7aa

Authored by Wilmer
1 parent 93ea29315d
Exists in master

controla el permiso sabatico de los docentes

app/Resources/views/cea/servicios.html.twig
@@ -86,6 +86,13 @@ @@ -86,6 +86,13 @@
86 <a href="{{ path('cea_reconocimientoEscala_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a> 86 <a href="{{ path('cea_reconocimientoEscala_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
87 {% elseif servicio.idServicioCe.id == 7 %} 87 {% elseif servicio.idServicioCe.id == 7 %}
88 <a href="{{ path('cea_acta_defensa_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a> 88 <a href="{{ path('cea_acta_defensa_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  89 + {% elseif servicio.idServicioCe.id == 6 %}
  90 + <a href="{{ path('cea_reconocimientoEscala_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  91 + {% elseif servicio.idServicioCe.id == 7 %}
  92 + <a href="{{ path('cea_acta_defensa_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  93 + {% elseif servicio.idServicioCe.id > 7 %}
  94 + <a href="{{ path('cea_servicio_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i>
  95 +
89 {% endif %} 96 {% endif %}
90 </td> 97 </td>
91 </tr> 98 </tr>
app/Resources/views/cea/servicios_mostar.html.twig
@@ -284,7 +284,7 @@ @@ -284,7 +284,7 @@
284 <div class="wrapper"> 284 <div class="wrapper">
285 <label for="yes_radio{{ loop.index }}" class="yes-lbl"><i class="fa fa-check"></i> 285 <label for="yes_radio{{ loop.index }}" class="yes-lbl"><i class="fa fa-check"></i>
286 </label> 286 </label>
287 - <input type="radio" value="1" name="{{ documento.idTipoDocumentos.identificador }}" class="yes_radio" id="yes_radio{{ loop.index }}" {% if documento.idEstatus.id == 1 %} checked="checked" {% endif %} disabled> 287 + <input type="radio" value="1" name="{{ documento.idTipoDocumentos.identificador }}" class="yes_radio" id="yes_radio{{ loop.index }}" {% if documento.idEstatus.id == 1 %} checked="checked" {% endif %} >
288 <label for="maybe_radio{{ loop.index }}" class="maybe-lbl"> 288 <label for="maybe_radio{{ loop.index }}" class="maybe-lbl">
289 <i class="fa fa-question"></i> 289 <i class="fa fa-question"></i>
290 </label> 290 </label>
@@ -293,7 +293,7 @@ @@ -293,7 +293,7 @@
293 class="fa fa-close"></i></label><input type="radio" value="3" 293 class="fa fa-close"></i></label><input type="radio" value="3"
294 name="{{ documento.idTipoDocumentos.identificador }}" 294 name="{{ documento.idTipoDocumentos.identificador }}"
295 class="no_radio" 295 class="no_radio"
296 - id="no_radio{{ loop.index }}" {% if documento.idEstatus.id == 3 %} checked="checked" {% endif %} disabled> 296 + id="no_radio{{ loop.index }}" {% if documento.idEstatus.id == 3 %} checked="checked" {% endif %} >
297 297
298 <div class="toggle"></div> 298 <div class="toggle"></div>
299 </div> 299 </div>
@@ -324,7 +324,29 @@ @@ -324,7 +324,29 @@
324 var buttonpressed; 324 var buttonpressed;
325 $('#aprobado').click(function() { 325 $('#aprobado').click(function() {
326 //alert("click"); return false; 326 //alert("click"); return false;
327 - buttonpressed = $(this).attr('name') 327 + buttonpressed = $(this).attr('name');
  328 + console.log($(':radio:checked').length);
  329 + for (var i = 0; i < $(':radio:checked').length; i ++){
  330 + console.log($(':radio:checked')[i]);
  331 + if ( ($(':radio:checked')[i].value == "")) {
  332 + alert('Debes revisar todos los documentos para poder enviar la solicitud!');
  333 + $("#aprobado").button('reset');
  334 + return false;
  335 + }
  336 +
  337 + }
  338 + console.log($("input[type=submit][clicked=true]").val());
  339 + if (buttonpressed == "aprobado") {
  340 + for (var i = 0; i < $(':radio:checked').length; i++) {
  341 + console.log($(':radio:checked')[i]);
  342 + if (($(':radio:checked')[i].value == "3")) {
  343 + alert('No puedes aprobar una solicitud con documentos en estatus de rechazado');
  344 + $("#aprobado").button('reset');
  345 + return false;
  346 + }
  347 +
  348 + }
  349 + }
328 }); 350 });
329 351
330 $('#rechazar').click(function() { 352 $('#rechazar').click(function() {
app/Resources/views/solicitudes/index.html.twig
@@ -74,6 +74,9 @@ @@ -74,6 +74,9 @@
74 <a href="{{ path('servicio_defensa_imprimir', { 'id': servicio.id }) }}" target="_blank" class="btn btn-xs btn-info"><i class="fa fa-print"> </i></a> 74 <a href="{{ path('servicio_defensa_imprimir', { 'id': servicio.id }) }}" target="_blank" class="btn btn-xs btn-info"><i class="fa fa-print"> </i></a>
75 {% endif %} 75 {% endif %}
76 {%endif%} 76 {%endif%}
  77 + {% if servicio.idServicioCe.id > 7 %}
  78 + <a href="{{ path('adscripcion_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  79 + {% endif %}
77 </td> 80 </td>
78 </tr> 81 </tr>
79 {% endfor %} 82 {% endfor %}
app/Resources/views/solicitudes/permisos_index.html.twig
@@ -2,9 +2,17 @@ @@ -2,9 +2,17 @@
2 {% block body %} 2 {% block body %}
3 3
4 <div class="container"> 4 <div class="container">
5 - {% for message in app.session.flashBag.get('notice') %} 5 + {% for message in app.session.flashBag.get('success') %}
6 <h4 class="alert alert-success">{{ message }}</h4> 6 <h4 class="alert alert-success">{{ message }}</h4>
7 {%endfor %} 7 {%endfor %}
  8 +
  9 + {% for message in app.session.flashBag.get('warning') %}
  10 + <h4 class="alert alert-warning">{{ message }}</h4>
  11 + {%endfor %}
  12 +
  13 + {% for message in app.session.flashBag.get('danger') %}
  14 + <h4 class="alert alert-danger">{{ message }}</h4>
  15 + {%endfor %}
8 <hr> 16 <hr>
9 <div class="col-md-5"> 17 <div class="col-md-5">
10 <div class="panel panel-default"> 18 <div class="panel panel-default">
@@ -74,7 +82,14 @@ @@ -74,7 +82,14 @@
74 <div id="3" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree3"> 82 <div id="3" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree3">
75 <div class="panel-body"> 83 <div class="panel-body">
76 Al tener el escalafón de asistente, puedes solicitar tu año sabático, siempre y 84 Al tener el escalafón de asistente, puedes solicitar tu año sabático, siempre y
77 - cuando lo hayas contemplado dentro de tus actividades del PIDA 85 + cuando lo hayas contemplado dentro de tus actividades del PIDA y
  86 + nos incluyas una exposición de motivos
  87 + <br><br>
  88 +
  89 + {% form_theme formSabatico 'bootstrap_3_layout.html.twig' %}
  90 + {{ form_start(formSabatico, {'attr': {'novalidate': 'novalidate'}}) }}
  91 + {{ form_widget(formSabatico) }}
  92 + {{ form_end(formSabatico) }}
78 </div> 93 </div>
79 </div> 94 </div>
80 </div> 95 </div>
src/AppBundle/Controller/AdscripcionController.php
@@ -434,21 +434,24 @@ class AdscripcionController extends Controller @@ -434,21 +434,24 @@ class AdscripcionController extends Controller
434 array('form' => $form->createView()) 434 array('form' => $form->createView())
435 ); 435 );
436 } 436 }
437 -  
438 - 437 +
  438 +
  439 +
439 /** 440 /**
440 * Solicita información al docente sobre su PIDA 441 * Solicita información al docente sobre su PIDA
441 * 442 *
442 - * @Route("/solicitud/pida/{id}", name="solicitud_pida") 443 + * @Route("/solicitud/pida/", name="solicitud_pida")
443 * @Method({"GET", "POST"}) 444 * @Method({"GET", "POST"})
444 */ 445 */
445 - public function pidaAction(DocenteServicio $servicio, Request $request) 446 + public function pidaAction(Request $request)
446 { 447 {
447 - 448 +
  449 + //var_dump($servicio->getId()); exit;
  450 +
448 //verificar en las solicitudes la adscripcion del docente 451 //verificar en las solicitudes la adscripcion del docente
449 $adscripcion = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')-> 452 $adscripcion = $this->getDoctrine()->getRepository('AppBundle:DocenteServicio')->
450 findOneBy(array( 453 findOneBy(array(
451 - 'idRolInstitucion' => $servicio->getIdRolInstitucion()->getId(), 454 + 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion()->getId(),
452 'idServicioCe' => 2 455 'idServicioCe' => 2
453 )); 456 ));
454 //si no ha solicitado adscripción regresa a la pagina de adscripcion 457 //si no ha solicitado adscripción regresa a la pagina de adscripcion
@@ -458,6 +461,11 @@ class AdscripcionController extends Controller @@ -458,6 +461,11 @@ class AdscripcionController extends Controller
458 461
459 462
460 $pid = false; 463 $pid = false;
  464 + $servicio = $this->getDoctrine()->getRepository("AppBundle:DocenteServicio")->findOneBy(array(
  465 + 'idRolInstitucion' => $this->getUser()->getIdRolInstitucion()->getId(),
  466 + 'idServicioCe' => 4
  467 + ));
  468 +
461 if($servicio) { 469 if($servicio) {
462 //si el servicio está cadudado, debe solicitar uno nuevo 470 //si el servicio está cadudado, debe solicitar uno nuevo
463 if ($servicio->getIdEstatus()->getId() == 5) { 471 if ($servicio->getIdEstatus()->getId() == 5) {
@@ -501,19 +509,19 @@ class AdscripcionController extends Controller @@ -501,19 +509,19 @@ class AdscripcionController extends Controller
501 $em = $this->getDoctrine()->getManager(); 509 $em = $this->getDoctrine()->getManager();
502 //Crear la solicitud de Servicio 510 //Crear la solicitud de Servicio
503 if(!$servicio) { 511 if(!$servicio) {
504 - $serv = new DocenteServicio(); 512 + $servicio = new DocenteServicio();
505 513
506 - $serv->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());  
507 - $serv->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(4));  
508 - $serv->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));  
509 - $em->persist($serv); 514 + $servicio->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  515 + $servicio->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(4));
  516 + $servicio->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
  517 + $em->persist($servicio);
510 } 518 }
511 519
512 520
513 521
514 $pida->setIdRolInstitucion($this->getUser()->getIdRolInstitucion()); 522 $pida->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
515 $pida->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(2)); 523 $pida->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(2));
516 - $pida->setIdDocenteServicio($serv); 524 + $pida->setIdDocenteServicio($servicio);
517 foreach($pida->getPidaTareaEspecifico() as $especifico){ 525 foreach($pida->getPidaTareaEspecifico() as $especifico){
518 //var_dump($especifico); exit; 526 //var_dump($especifico); exit;
519 $especifico->setAdscripcionPidaId($pida); 527 $especifico->setAdscripcionPidaId($pida);
src/AppBundle/Controller/AppController.php
@@ -65,7 +65,7 @@ class AppController extends Controller { @@ -65,7 +65,7 @@ class AppController extends Controller {
65 $em = $this->getDoctrine()->getManager(); 65 $em = $this->getDoctrine()->getManager();
66 if(!$pida){ 66 if(!$pida){
67 $this->addFlash('warning', 'Estimado Docente Mientras se verifica su adscripción, le solicitamos que por favor cree su PIDA.'); 67 $this->addFlash('warning', 'Estimado Docente Mientras se verifica su adscripción, le solicitamos que por favor cree su PIDA.');
68 - return $this->redirectToRoute('solicitud_pida', array('id' => $servicioAdscripcion->getId())); 68 + return $this->redirectToRoute('solicitud_pida');
69 }else{ 69 }else{
70 $caducidad = $this->getDoctrine()->getRepository("AppBundle:PidaCaducidad")->findOneByIdDocenteServicio($pida); 70 $caducidad = $this->getDoctrine()->getRepository("AppBundle:PidaCaducidad")->findOneByIdDocenteServicio($pida);
71 if($caducidad){ 71 if($caducidad){
@@ -265,6 +265,14 @@ class AppController extends Controller { @@ -265,6 +265,14 @@ class AppController extends Controller {
265 $user->addRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ESTUDIANTE")); 265 $user->addRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ESTUDIANTE"));
266 $em->persist($user); 266 $em->persist($user);
267 } 267 }
  268 +
  269 + $parametros = $request->request->all();
  270 +
  271 + //Guardar el resultado de la verificación de Documentos de los permisos sabaticos
  272 + if($servicios->getIdServicioCe()->getId() == 8){
  273 + verificar_documentos4($servicios->getIdRolInstitucion(), 18, 1, $em, "", $servicios);
  274 + }
  275 +
268 276
269 277
270 }else{ 278 }else{
@@ -275,6 +283,11 @@ class AppController extends Controller { @@ -275,6 +283,11 @@ class AppController extends Controller {
275 $user->removeRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ESTUDIANTE")); 283 $user->removeRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ESTUDIANTE"));
276 $em->persist($user); 284 $em->persist($user);
277 } 285 }
  286 +
  287 + //Guardar el resultado de la verificación de Documentos de los permisos sabaticos
  288 + if($servicios->getIdServicioCe()->getId() == 8){
  289 + verificar_documentos4($servicios->getIdRolInstitucion(), 18, 3, $em, "", $servicios);
  290 + }
278 } 291 }
279 292
280 $em->persist($servicios); 293 $em->persist($servicios);
@@ -282,7 +295,7 @@ class AppController extends Controller { @@ -282,7 +295,7 @@ class AppController extends Controller {
282 295
283 $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($servicios->getIdRolInstitucion()); 296 $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($servicios->getIdRolInstitucion());
284 297
285 - $message = \Swift_Message::newInstance() 298 + /*$message = \Swift_Message::newInstance()
286 ->setSubject('Resultado Solicitud de Servicio Docente CEA@UBV') 299 ->setSubject('Resultado Solicitud de Servicio Docente CEA@UBV')
287 ->setFrom('wilmer.ramones@gmail.com') 300 ->setFrom('wilmer.ramones@gmail.com')
288 ->setTo($user->getEmail()) 301 ->setTo($user->getEmail())
@@ -299,7 +312,7 @@ class AppController extends Controller { @@ -299,7 +312,7 @@ class AppController extends Controller {
299 'text/html' 312 'text/html'
300 ) 313 )
301 ; 314 ;
302 - $this->get('mailer')->send($message); 315 + $this->get('mailer')->send($message);*/
303 316
304 $this->addFlash('notice', 'Servicio Actualizada Correctamente, hemos enviado un correo al docente notificandole los cambios.'); 317 $this->addFlash('notice', 'Servicio Actualizada Correctamente, hemos enviado un correo al docente notificandole los cambios.');
305 318
@@ -320,10 +333,31 @@ class AppController extends Controller { @@ -320,10 +333,31 @@ class AppController extends Controller {
320 333
321 } 334 }
322 335
  336 +
323 337
324 -  
325 -  
326 -  
327 -  
328 } 338 }
329 -  
330 \ No newline at end of file 339 \ No newline at end of file
  340 +
  341 +function verificar_documentos4($idRolInstitucion, $tipo, $estatus, $em, $ubicacion="", $servicio){
  342 + $existe = $em->getRepository("AppBundle:DocumentosVerificados")->findOneBy(array(
  343 + 'idRolInstitucion' => $idRolInstitucion,
  344 + 'idTipoDocumentos' => $tipo
  345 + ));
  346 +
  347 + if(!$existe) {
  348 + $verificacion = new DocumentosVerificados();
  349 + $verificacion->setIdEstatus($em->getRepository("AppBundle:Estatus")->findOneById($estatus));
  350 + $verificacion->setIdRolInstitucion($idRolInstitucion);
  351 + $verificacion->setIdServicio($servicio);
  352 + $verificacion->setIdTipoDocumentos($em->getRepository("AppBundle:TipoDocumentos")->findOneById($tipo));
  353 + $verificacion->setUbicacion($ubicacion);
  354 + $em->persist($verificacion);
  355 + $em->flush();
  356 + }else{
  357 + $existe->setIdEstatus($em->getRepository("AppBundle:Estatus")->findOneById($estatus));
  358 + $em->persist($existe);
  359 + $em->flush();
  360 + }
  361 +
  362 +}
  363 +
  364 +
src/AppBundle/Controller/PermisosController.php
@@ -34,15 +34,185 @@ class PermisosController extends Controller @@ -34,15 +34,185 @@ class PermisosController extends Controller
34 /** 34 /**
35 * @Route("/solicitud/permisos", name="permisos_index") 35 * @Route("/solicitud/permisos", name="permisos_index")
36 */ 36 */
37 - public function permisosIndexAction() 37 + public function permisosIndexAction( Request $request)
38 { 38 {
  39 + $em = $this->getDoctrine()->getManager();
  40 + $docente = $this->getUser()->getIdRolInstitucion();
  41 + $escalafones = $em->getRepository("AppBundle:DocenteEscala")->findOneBy(array(
  42 + 'idRolInstitucion' => $docente,
  43 + 'idEscala' => $em->getRepository("AppBundle:Escalafones")->findOneById(2)
  44 + ));
  45 +
  46 + if(!$escalafones){
  47 + $this->addFlash('danger', 'Estimado Docente, debe ser mínimo Asistente para poder realizar esta solicitud');
  48 + return $this->redirect($this->generateUrl('permisos_index'));
  49 + }
  50 +
  51 +
  52 + /* Permiso sabatico */
  53 + $sabatico = $this->getDoctrine()->getRepository("AppBundle:DocenteServicio")->findOneBy(array(
  54 + 'idRolInstitucion' => $docente, 'idServicioCe' => 8 ),
  55 + array('id' => 'DESC')
  56 + );
  57 +
  58 + if($sabatico && ($sabatico->getIdEstatus()->getId() == 1 || $sabatico->getIdEstatus()->getId() == 2 )){
  59 + $tiempoEspera = $sabatico->getFechaSolicitud()->diff(new \DateTime("now"));
  60 + if($tiempoEspera->y >= 7 && $sabatico->getIdEstatus()->getId() == 1){
  61 + $sabatico->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4));
  62 + $em->persist($sabatico);
  63 + $em->flush();
  64 + }else {
  65 + $this->addFlash('warning', 'Ya posee una solicitud en espera o activa, no puede realizar otra solicitud.');
  66 + return $this->redirect($this->generateUrl('servicios_index'));
  67 + }
  68 + }
  69 +
  70 +
  71 + $formSabatico = $this->createForm('AppBundle\Form\PermisoSabaticoType');
  72 + $formSabatico->handleRequest($request);
  73 + if ($formSabatico->isSubmitted() && $formSabatico->isValid()) {
  74 +
  75 + $servicios = new DocenteServicio();
  76 +
  77 + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  78 + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(8));
  79 + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
  80 + $em->persist($servicios);
  81 + $em->flush();
  82 +
  83 + $motivo = $formSabatico->get('motivo')->getData();
  84 + $nombreMotivo = md5(uniqid()).'.'.$motivo->guessExtension();
  85 +
  86 + $motivo->move(
  87 + $this->container->getParameter('permiso_directory'),
  88 + $nombreMotivo
  89 + );
  90 + thumbnail3($nombreMotivo, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory'));
  91 +
  92 + verificar_documentos3($servicios->getIdRolInstitucion(),18,2,$em,$nombreMotivo, $servicios);
  93 + $this->addFlash('success', 'Permiso solicitado satisfactoriamente');
  94 + return $this->redirect($this->generateUrl('servicios_index'));
  95 + }
  96 +
  97 + /* Fin Sabatico */
  98 +
  99 +
  100 +
  101 +
  102 +
  103 + /* Permiso Estudio */
  104 + $estudio = $this->getDoctrine()->getRepository("AppBundle:DocenteServicio")->findOneBy(array(
  105 + 'idRolInstitucion' => $docente, 'idServicioCe' => 9 ),
  106 + array('id' => 'DESC')
  107 + );
  108 +
  109 + if($estudio && ($estudio->getIdEstatus()->getId() == 1 || $estudio->getIdEstatus()->getId() == 2 )){
  110 + $tiempoEspera = $estudio->getFechaSolicitud()->diff(new \DateTime("now"));
  111 + if($tiempoEspera->y >= 1 && $estudio->getIdEstatus()->getId() == 1){
  112 + $estudio->setIdEstatus($this->getDoctrine()->getRepository("AppBundle:Estatus")->findOneById(4));
  113 + $em->persist($estudio);
  114 + $em->flush();
  115 + }else {
  116 + $this->addFlash('warning', 'Ya posee una solicitud en espera o activa, no puede realizar otra solicitud.');
  117 + return $this->redirect($this->generateUrl('servicios_index'));
  118 + }
  119 + }
  120 +
  121 +
  122 + $formSabatico = $this->createForm('AppBundle\Form\PermisoSabaticoType');
  123 + $formSabatico->handleRequest($request);
  124 + if ($formSabatico->isSubmitted() && $formSabatico->isValid()) {
  125 +
  126 + $servicios = new DocenteServicio();
  127 +
  128 + $servicios->setIdRolInstitucion($this->getUser()->getIdRolInstitucion());
  129 + $servicios->setIdServicioCe($this->getDoctrine()->getRepository('AppBundle:ServiciosCe')->findOneById(8));
  130 + $servicios->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:estatus')->findOneById(2));
  131 + $em->persist($servicios);
  132 + $em->flush();
  133 +
  134 + $motivo = $formSabatico->get('motivo')->getData();
  135 + $nombreMotivo = md5(uniqid()).'.'.$motivo->guessExtension();
  136 +
  137 + $motivo->move(
  138 + $this->container->getParameter('permiso_directory'),
  139 + $nombreMotivo
  140 + );
  141 + thumbnail3($nombreMotivo, $this->container->getParameter('permiso_directory'), $this->container->getParameter('permiso_thumb_directory'));
  142 +
  143 + verificar_documentos3($servicios->getIdRolInstitucion(),18,2,$em, $nombreMotivo, $servicios);
  144 + $this->addFlash('success', 'Permiso solicitado satisfactoriamente');
  145 + return $this->redirect($this->generateUrl('servicios_index'));
  146 + }
  147 +
  148 + /* Fin Estudio */
  149 +
  150 +
39 return $this->render('solicitudes/permisos_index.html.twig', array( 151 return $this->render('solicitudes/permisos_index.html.twig', array(
  152 + 'formSabatico' => $formSabatico->createView()
40 153
41 )); 154 ));
42 } 155 }
43 156
44 157
  158 +
  159 +
  160 +
  161 +
  162 +}
  163 +
  164 +
  165 +
  166 +function thumbnail3 ($filename, $fuente, $destino){
  167 + $im = false;
  168 + if(preg_match('/[.](jpeg)$/', $filename)) {
  169 + $im = imagecreatefromjpeg($fuente . "/" . $filename);
  170 + } else if (preg_match('/[.](jpg)$/', $filename)) {
  171 + $im = imagecreatefromjpeg($fuente . "/" . $filename);
  172 + }else if (preg_match('/[.](gif)$/', $filename)) {
  173 + $im = imagecreatefromgif($fuente . "/" . $filename);
  174 + } else if (preg_match('/[.](png)$/', $filename)) {
  175 + $im = imagecreatefrompng($fuente . "/" . $filename);
  176 + }
  177 + if($im){
  178 + $ox = imagesx($im);
  179 + $oy = imagesy($im);
  180 +
  181 + $nx = 80;
  182 + $ny = 80;
  183 +
  184 + $nm = imagecreatetruecolor($nx, $ny);
  185 +
  186 + imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
  187 +
  188 + imagejpeg($nm, $destino . "/" . $filename);
  189 + }else{
  190 + move_uploaded_file($filename, $destino);
  191 + }
45 } 192 }
46 193
47 -  
48 - 194 +
  195 +
  196 +function verificar_documentos3($idRolInstitucion, $tipo, $estatus, $em, $ubicacion="", $servicio = 2){
  197 + $existe = $em->getRepository("AppBundle:DocumentosVerificados")->findOneBy(array(
  198 + 'idRolInstitucion' => $idRolInstitucion,
  199 + 'idTipoDocumentos' => $tipo,
  200 + 'idServicio' => $servicio
  201 + ));
  202 +
  203 + if(!$existe) {
  204 + $verificacion = new DocumentosVerificados();
  205 + $verificacion->setIdEstatus($em->getRepository("AppBundle:Estatus")->findOneById($estatus));
  206 + $verificacion->setIdRolInstitucion($idRolInstitucion);
  207 + $verificacion->setIdServicio($servicio);
  208 + $verificacion->setIdTipoDocumentos($em->getRepository("AppBundle:TipoDocumentos")->findOneById($tipo));
  209 + $verificacion->setUbicacion($ubicacion);
  210 + $em->persist($verificacion);
  211 + $em->flush();
  212 + }else{
  213 + $existe->setIdEstatus($em->getRepository("AppBundle:Estatus")->findOneById($estatus));
  214 + $em->persist($existe);
  215 + $em->flush();
  216 + }
  217 +
  218 +}
49 \ No newline at end of file 219 \ No newline at end of file
src/AppBundle/Form/PermisoSabaticoType.php
@@ -11,23 +11,21 @@ namespace AppBundle\Form; @@ -11,23 +11,21 @@ namespace AppBundle\Form;
11 11
12 use Symfony\Component\Form\AbstractType; 12 use Symfony\Component\Form\AbstractType;
13 use Symfony\Component\Form\FormBuilderInterface; 13 use Symfony\Component\Form\FormBuilderInterface;
14 -use Symfony\Component\OptionsResolver\OptionsResolver;  
15 use Symfony\Component\Form\Extension\Core\Type\SubmitType; 14 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
16 15
17 use Symfony\Component\Validator\Constraints\File; 16 use Symfony\Component\Validator\Constraints\File;
18 use Symfony\Component\Validator\Constraints\NotBlank; 17 use Symfony\Component\Validator\Constraints\NotBlank;
19 use Symfony\Component\Form\Extension\Core\Type\FileType; 18 use Symfony\Component\Form\Extension\Core\Type\FileType;
20 19
21 -use Symfony\Bridge\Doctrine\Form\Type\EntityType;  
22 20
23 -class ReconocimientoEscalaType extends AbstractType 21 +class PermisoSabaticoType extends AbstractType
24 { 22 {
25 public function buildForm(FormBuilderInterface $builder, array $options) 23 public function buildForm(FormBuilderInterface $builder, array $options)
26 { 24 {
27 $builder 25 $builder
28 26
29 - ->add('reconocimiento', FileType::class, array(  
30 - 'label' => 'Digital Aprobación de Escala', 27 + ->add('motivo', FileType::class, array(
  28 + 'label' => 'Digital Carta Exposición de Motivos',
31 'constraints' => array( 29 'constraints' => array(
32 new NotBlank(), 30 new NotBlank(),
33 new File(array( 31 new File(array(
@@ -44,7 +42,7 @@ class ReconocimientoEscalaType extends AbstractType @@ -44,7 +42,7 @@ class ReconocimientoEscalaType extends AbstractType
44 ) 42 )
45 )) 43 ))
46 ->add('send', SubmitType::class, array( 44 ->add('send', SubmitType::class, array(
47 - 'label' => 'Enviar reconocimiento de Escala', 45 + 'label' => 'Enviar motivo',
48 'attr' => array( 46 'attr' => array(
49 'class' => 'btn btn-success btn-block', 47 'class' => 'btn btn-success btn-block',
50 'data-loading-text' => "<i class='fa fa-circle-o-notch fa-spin'></i> Procesando Solicitud..." 48 'data-loading-text' => "<i class='fa fa-circle-o-notch fa-spin'></i> Procesando Solicitud..."