示例#1
0
 public function iniciar($proceso_id)
 {
     $proceso = Doctrine::getTable('Proceso')->find($proceso_id);
     if (!$proceso->canUsuarioIniciarlo(UsuarioSesion::usuario()->id)) {
         echo 'Usuario no puede iniciar este proceso';
         exit;
     }
     //Vemos si es que usuario ya tiene un tramite de proceso_id ya iniciado, y que se encuentre en su primera etapa.
     //Si es asi, hacemos que lo continue. Si no, creamos uno nuevo
     $tramite = Doctrine_Query::create()->from('Tramite t, t.Proceso p, t.Etapas e, e.Tramite.Etapas hermanas')->where('t.pendiente=1 AND p.id = ? AND e.usuario_id = ?', array($proceso_id, UsuarioSesion::usuario()->id))->groupBy('t.id')->having('COUNT(hermanas.id) = 1')->fetchOne();
     if (!$tramite) {
         $tramite = new Tramite();
         $tramite->iniciar($proceso->id);
     }
     $qs = $this->input->server('QUERY_STRING');
     redirect('etapas/ejecutar/' . $tramite->getEtapasActuales()->get(0)->id . ($qs ? '?' . $qs : ''));
 }