public function assert(Core_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     $auth = Zend_Auth::getInstance();
     if (!$auth->hasIdentity()) {
         return false;
     }
     $controller = Controlador::getInstance();
     $usuario = $controller->usuario;
     if (!$controller->cache->test('privilegio_' . $usuario->ID . '_' . $resource->id)) {
         // não existe o cache, pegar o valor do banco
         $privilegio = DaoRecurso::getPrivilegioByUsuario($usuario, $resource);
         $controller->cache->save($privilegio, 'privilegio_' . $usuario->ID . '_' . $resource->id, array('acl_usuario_' . $usuario->ID, 'acl_unidade_' . $usuario->ID_UNIDADE));
     } else {
         $privilegio = $controller->cache->load('privilegio_' . $usuario->ID . '_' . $resource->id);
     }
     // Checa se o usuario tem permissao de acessar o recurso incondicionalmente
     if ($acl->has($resource) && $privilegio) {
         return true;
     } else {
         $contexto = $resource->getContexto();
         if (!is_null($contexto) && count($contexto) > 0) {
             // Existe um contexto, avaliar se o id_unid_area_trabalho do objeto contexto == ID_UNIDADE do usuario logado
             return $contexto['id_unid_area_trabalho'] == $usuario->ID_UNIDADE;
         } else {
             // Não existe objeto de contexto, retorna true se recurso original da requisicao for AREA DE TRABALHO
             return Controlador::getInstance()->recurso->id == 3;
         }
     }
     return false;
 }
 /**
  * @param integer
  * @return Object 
  */
 public static function listUnidadesTipo($idOrgaoSuperior = NULL)
 {
     $sucesso = new stdClass();
     try {
         $sql = "SELECT ID, TIPO, TIPO AS NOME FROM TB_UNIDADES_TIPO ORDER BY TIPO ASC";
         if (!is_null($idOrgaoSuperior)) {
             $sql = 'SELECT DISTINCT (T.ID), T.TIPO, T.TIPO AS NOME FROM TB_UNIDADES_TIPO T
                         INNER JOIN TB_UNIDADES U ON U.TIPO = T.ID 
                     WHERE U.UOP = ? ORDER BY T.TIPO ASC';
         }
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
         if (!is_null($idOrgaoSuperior)) {
             $stmt->bindParam(1, $idOrgaoSuperior);
         }
         $stmt->execute();
         $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
         $out = array_change_key_case($out, CASE_LOWER);
         $sucesso->sucesso = true;
         if (count($out) > 0) {
             $sucesso->resultado = $out;
         } else {
             $sucesso->resultado = false;
         }
     } catch (PDOException $e) {
         $sucesso->error = true;
         $sucesso->resultado = 'Error Query: [' . $e->getMessage() . ']';
     }
     return $sucesso;
 }
 public function assert(Core_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     $auth = Zend_Auth::getInstance();
     if (!$auth->hasIdentity()) {
         return false;
     }
     $controller = Controlador::getInstance();
     $usuario = $controller->usuario;
     $somenteUltimo = false;
     $contexto = $resource->getContexto($somenteUltimo);
     // Se houver um contexto, e o usuario tem permissao para o recurso
     if (!is_null($contexto)) {
         // Checa se o usuario tem permissao de acessar o recurso
         if (!$controller->cache->test('privilegio_' . $usuario->ID . '_' . $resource->id)) {
             // não existe o cache, pegar o valor do banco
             $privilegio = DaoRecurso::getPrivilegioByUsuario($usuario, $resource);
             $controller->cache->save($privilegio, 'privilegio_' . $usuario->ID . '_' . $resource->id, array('acl_usuario_' . $usuario->ID, 'acl_unidade_' . $usuario->ID_UNIDADE));
         } else {
             $privilegio = $controller->cache->load('privilegio_' . $usuario->ID . '_' . $resource->id);
         }
         if ($privilegio) {
             foreach ($contexto as $umContexto) {
                 // checa se o objeto do contexto tem a mesma area de trabalho do usuario
                 if ($umContexto['id_unid_area_trabalho'] == $usuario->ID_UNIDADE) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
示例#4
0
 /**
  * 
  */
 public static function getPessoa($pessoa = false, $campo = false)
 {
     try {
         $campo = $campo ? $campo : '*';
         $condicao = filter_var($pessoa, FILTER_VALIDATE_INT) ? 'ID_PESSOA' : 'NM_PESSOA';
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT {$campo} FROM TB_PESSOA WHERE {$condicao} = ? LIMIT 1");
         $stmt->bindParam(1, $pessoa, PDO::PARAM_STR);
         $stmt->execute();
         $out = $stmt->fetch(PDO::FETCH_ASSOC);
         if (empty($out)) {
             $out['success'] = 'false';
         } else {
             $out['success'] = 'true';
             /* Padronizar com caixa baixa o os indices dos arrays */
             $out = array_change_key_case($out, CASE_LOWER);
             if ($campo === '*') {
                 return $out;
             }
             return $out[$campo];
         }
         return false;
     } catch (PDOException $e) {
         throw new Exception($e);
     }
 }
 public function obtemNovoGrupo()
 {
     $sql = 'select max(id_grupo) as grupo from snas.tb_agrupamento_documentos;';
     $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
     $stmt->execute();
     $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
     return (int) $out[0]['GRUPO'] + 1;
 }
/**
 * @todo Refatorar...
 * @deprecated
 */
function getIdProcesso($processo)
{
    $sql = "SELECT ID \r\n              FROM TB_PROCESSOS_CADASTRO \r\n             WHERE NUMERO_PROCESSO = ? \r\n             LIMIT 1";
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
    $stmt->bindParam(1, $processo);
    $stmt->execute();
    $resul = $stmt->fetch(PDO::FETCH_ASSOC);
    return $resul['ID'];
}
 /**
  * @return boolean 
  */
 public function clearAllCache()
 {
     try {
         Controlador::getInstance()->cache->clean();
     } catch (Exception $e) {
         throw new \Exception('Erro na limpeza de cache: ' . $e->getMessage());
     }
     return $this;
 }
function acesso()
{
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT (DT_ACESSO - 'now'::text::date) AS DIAS FROM TB_CONTROLE_ACESSO ORDER BY ID DESC LIMIT 1");
    $stmt->execute();
    $resul = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!empty($resul) && $resul['DIAS'] <= -1) {
        return true;
    }
    return false;
}
示例#9
0
 /**
  * @todo Verificar se necessario continuar a funcionalidade de gráfico de gantt
  */
 public static function listGantt()
 {
     try {
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT DISTINCT DC.DIGITAL, DC.ID_ASSUNTO, P.SQ_PRAZO, TRIM(DC.INTERESSADO) AS INTERESSADO, \r\n                                    DC.DT_DOCUMENTO, P.DT_PRAZO, P.DT_RESPOSTA, TRIM(A.ASSUNTO) AS NM_ASSUNTO FROM TB_DOCUMENTOS_CADASTRO DC \r\n                                        INNER JOIN TB_DOCUMENTOS_ASSUNTO A ON A.ID = DC.ID_ASSUNTO\r\n                                        INNER JOIN TB_CONTROLE_PRAZOS P ON P.NU_PROC_DIG_REF = DC.DIGITAL \r\n                                    WHERE DC.DT_DOCUMENTO >= '2011-11-01' AND P.DT_PRAZO <= '2013-01-24'");
         $stmt->execute();
         return $stmt->fetchAll(PDO::FETCH_ASSOC);
     } catch (PDOException $e) {
         print $e->getMessage();
     }
 }
/**
 * @todo Refatorar...
 * @deprecated
 */
function getTermo($processo, $idtermo, $idUsuario)
{
    $id = Util::RecuperaIdProcesso($processo);
    $sql = "SELECT D.*\r\n                 , P.NUMERO_PROCESSO AS PROCESSO\r\n                 , (SELECT NOME FROM TB_UNIDADES WHERE (ID != UOP) AND SIGLA = U.SIGLA LIMIT 1) AS SOLICITANTE \r\n              FROM TB_PROCESSOS_DESENTRANHAMENTO AS D\r\n        INNER JOIN TB_PROCESSOS_CADASTRO AS P \r\n                ON D.NUMERO_PROCESSO = P.ID\r\n        INNER JOIN TB_UNIDADES AS U \r\n                ON D.ID_SOLICITANTE = U.ID\r\n             WHERE D.NUMERO_PROCESSO = ? \r\n               AND ID_USUARIO = ? \r\n               AND ID_DESEN = ? \r\n          ORDER BY ID_DESEN DESC \r\n             LIMIT 1";
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
    $stmt->bindParam(1, $id);
    $stmt->bindParam(2, $idUsuario);
    $stmt->bindParam(3, $idtermo);
    $stmt->execute();
    $resul = $stmt->fetch(PDO::FETCH_ASSOC);
    return $resul;
}
示例#11
0
 /**
  * 
  */
 public function __construct($tabela, $registro, $usuario, $operacao)
 {
     try {
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_LOGS (NM_TABELA,ID_REGISTRO,ID_USUARIO,TP_OPERACAO) VALUES (?, ?, ?, ?)");
         $stmt->bindParam(1, $tabela);
         $stmt->bindParam(2, $registro);
         $stmt->bindParam(3, $usuario);
         $stmt->bindParam(4, $operacao);
         return $stmt->execute();
     } catch (PDOException $e) {
         throw new Exception($e->getMessage());
     }
 }
 /**
  * @return boolean
  * @param array $permissions ARRAY(0=>ID_USUARIO 1=>ID_RECURSO 2=>IN_PERMISSAO)
  */
 public function updateDB($permissions)
 {
     $values = '';
     $query = 'INSERT INTO SGDOC.TB_PRIVILEGIOS_USUARIOS (ID_USUARIO,ID_RECURSO,PERMISSAO) VALUES %s';
     foreach ($permissions as $index => $permission) {
         $values .= "({$permission[0]},{$permission[1]},{$permission[2]}),";
     }
     try {
         Controlador::getInstance()->getConnection()->connection->prepare(sprintf($query, substr($values, 0, -1)))->execute();
         return true;
     } catch (Exception $e) {
         return false;
     }
 }
示例#13
0
 public function Pdf2Png(UploaderPdf $uploader)
 {
     $controller = Controlador::getInstance();
     $this->usuario = $controller->usuario->ID;
     $this->unidade = $controller->usuario->ID_UNIDADE;
     $this->conn = $controller->getConnection()->connection;
     foreach ($uploader as $key => $property) {
         if (property_exists($this, $key)) {
             $this->{$key} = $property;
         }
     }
     if ($uploader->pages > 1) {
         $this->extra_param .= '%03d';
     }
 }
示例#14
0
 public function __construct()
 {
     if (null === $this->_conn) {
         try {
             $this->_conn = Controlador::getInstance()->getConnection()->connection;
         } catch (PDOException $e) {
             var_dump($e->getMessage());
         }
     }
     try {
         $this->_wsConsultaOrgao = new SoapClient('http://www.siorg.redegoverno.gov.br/gestao/webservice/WSSiorg.asmx?WSDL', array('soap_version' => SOAP_1_2, 'exceptions' => true, 'trace' => 1));
     } catch (Exception $e) {
         var_dump($e->getMessage());
     }
     //Não precisa mais criar tabela, sistema já está estável.
 }
 /**
  *  Verificar se o documento informado esta na area de trabalho do usuario logado 
  */
 public static function validarDocumentoAreaDeTrabalho($digital, $unidade = false)
 {
     try {
         $unidade = $unidade ? $unidade : Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE;
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT 1 FROM TB_DOCUMENTOS_CADASTRO WHERE DIGITAL = ? AND ID_UNID_AREA_TRABALHO = ? LIMIT 1");
         $stmt->bindParam(1, $digital, PDO::PARAM_STR);
         $stmt->bindParam(2, $unidade, PDO::PARAM_INT);
         $stmt->execute();
         $out = $stmt->fetch(PDO::FETCH_ASSOC);
         if (!empty($out)) {
             return true;
         }
         return false;
     } catch (PDOException $e) {
         throw new BasePDOException($e);
     }
 }
 /**
  * @return PDOStatement
  * @param integer $id_caixa
  * @param integer $id_documento
  * @param integer $id_usuario
  * @param string $operacao
  */
 public function __construct($id_caixa, $id_documento, $id_usuario, $operacao)
 {
     try {
         $data_cadastro = Zend_Date::now()->get(Zend_Date::YEAR . '-' . Zend_Date::MONTH . '-' . Zend_Date::DAY);
         $id_unidade_usuario = Controlador::getInstance()->usuario->ID_UNIDADE;
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_CAIXAS_HISTORICOS (ID_CAIXA,ID_DOCUMENTO,ID_USUARIO,DS_ACAO,DT_CADASTRO,ID_UNIDADE_USUARIO) VALUES (?,?,?,?,?,?)");
         $stmt->bindParam(1, $id_caixa, PDO::PARAM_INT);
         $stmt->bindParam(2, $id_documento, PDO::PARAM_INT);
         $stmt->bindParam(3, $id_usuario, PDO::PARAM_INT);
         $stmt->bindParam(4, $operacao, PDO::PARAM_STR);
         $stmt->bindParam(5, $data_cadastro, PDO::PARAM_STR);
         $stmt->bindParam(6, $id_unidade_usuario, PDO::PARAM_STR);
         return $stmt->execute();
     } catch (PDOException $e) {
         throw new Exception($e->getMessage());
     }
 }
示例#17
0
 /**
  * 
  */
 public static function novaPessoa($origem, $tipo, $cpf = 'Em Branco', $homologado = false)
 {
     try {
         /* Novo Pessoa */
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PESSOA (NM_PESSOA,TP_PESSOA,HOMOLOGADO) VALUES (?,?,0)");
         $stmt->bindParam(1, $origem, PDO::PARAM_STR);
         $stmt->bindParam(2, $tipo, PDO::PARAM_STR);
         $stmt->execute();
         $out = array('success' => 'true', 'pessoa' => $origem, 'id' => Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_PESSOA_ID_PESSOA_SEQ'));
         if (!empty($out)) {
             return $out;
         }
         return null;
     } catch (PDOException $e) {
         throw new BasePDOException($e);
     }
 }
 /**
  * @return void
  */
 private function setDigitais($idUnidade, $lote)
 {
     $extraQuery = '';
     if (!is_null($lote)) {
         print $extraQuery = "AND LOTE = ?";
     }
     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT DIGITAL FROM TB_DIGITAL WHERE USO != '1' AND ID_UNIDADE = ? AND ID_USUARIO IS NULL {$extraQuery}");
     $stmt->bindParam(1, $idUnidade, PDO::PARAM_INT);
     if (!is_null($lote)) {
         $stmt->bindParam(2, $lote, PDO::PARAM_STR);
     }
     $stmt->execute();
     $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
     $this->setPaginas(count($out));
     foreach ($out as $value) {
         $this->digitais[] = $value['DIGITAL'];
     }
 }
/**
 * @todo Refatorar...
 * @deprecated
 */
function getTermo($processo, $idUsuario)
{
    $id = Util::RecuperaIdProcesso($processo);
    /**
     * TODO: modificar estrutura de usuario.ID_UNIDADE
     * AJUSTE REALIZADO NO SQL PARA RETORNAR SOMENTE UMA DAS UNIDADES, PORÉM
     * FALTA AINDA PERSISTIR EM TB_PROCESSOS_CADASTRO A INFORMAÇÃO DA UNIDADE
     * E REFAZER A CONSULTA
     */
    $sql = "\r\n        SELECT\r\n            A.*\r\n            , U.NUMERO_PROCESSO\r\n            , ( SELECT NOME \r\n                FROM TB_UNIDADES UN\r\n                    INNER JOIN TB_USUARIOS_UNIDADES UU ON UU.ID_UNIDADE = UN.ID\r\n                WHERE (UN.ID != UOP) AND U.ID = UU.ID_USUARIO\r\n                LIMIT 1) AS DIRETORIA \r\n        FROM TB_PROCESSOS_VOLUME AS A\r\n            INNER JOIN TB_PROCESSOS_CADASTRO AS U ON A.ID_PROCESSO_CADASTRO = U.ID\r\n            INNER JOIN TB_USUARIOS AS B ON A.ID_USUARIO = B.ID\r\n        WHERE A.ID_PROCESSO_CADASTRO = ? \r\n            AND A.DT_ENCERRAMENTO IS NOT NULL \r\n            AND A.ID_USUARIO =  ? \r\n            AND (A.ST_ATIVO = 1 AND A.FG_ATIVO = 1) \r\n        ORDER BY ID DESC \r\n        LIMIT 1\r\n    ";
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
    $stmt->bindParam(1, $id);
    $stmt->bindParam(2, $idUsuario);
    $stmt->execute();
    $resul = $stmt->fetch(PDO::FETCH_ASSOC);
    $resul['FOLHAS'] = $resul['FL_FINAL'] - $resul['FL_INICIAL'] + 1;
    $resul['PROX_VOLUME'] = $resul['NU_VOLUME'] + 1;
    return $resul;
}
示例#20
0
 /**
  * 
  */
 public static function getDemanda($demanda = false, $campo = false)
 {
     try {
         $campo = $campo ? $campo : '*';
         $condicao = filter_var($demanda, FILTER_VALIDATE_INT) ? 'ID' : 'CD_PROTOCOLO';
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT {$campo} FROM VW_ATENDIMENTO WHERE {$condicao} = ? LIMIT 1");
         $stmt->bindParam(1, $demanda, PDO::PARAM_STR);
         $stmt->execute();
         $out = $stmt->fetch(PDO::FETCH_ASSOC);
         if (!empty($out)) {
             /* Padronizar com caixa baixa o os indices dos arrays */
             $out = array_change_key_case($out, CASE_LOWER);
             if ($campo === '*') {
                 return $out;
             }
             return $out[$campo];
         }
         return false;
     } catch (PDOException $e) {
         throw new BasePDOException($e);
     }
 }
 public function assert(Core_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     // Secondly, we need a authenticated user
     $auth = Zend_Auth::getInstance();
     if (!$auth->hasIdentity()) {
         return false;
     }
     $controller = Controlador::getInstance();
     $usuario = $controller->usuario;
     $protocolizadora = DaoUnidade::getUnidade($usuario->ID_UNIDADE, 'up');
     if (intval($protocolizadora) == 1) {
         if (!$controller->cache->test('privilegio_' . $usuario->ID . '_' . $resource->id)) {
             // não existe o cache, pegar o valor do banco
             $privilegio = DaoRecurso::getPrivilegioByUsuario($usuario, $resource);
             $controller->cache->save($privilegio, 'privilegio_' . $usuario->ID . '_' . $resource->id, array('acl_usuario_' . $usuario->ID, 'acl_unidade_' . $usuario->ID_UNIDADE));
         } else {
             $privilegio = $controller->cache->load('privilegio_' . $usuario->ID . '_' . $resource->id);
         }
         return $privilegio;
     } else {
         return false;
     }
 }
// verifica a existencia da permissao para visualizar anexos/apensos
if (AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(3101))) {
    ?>
                    // Anexos/Apensos
                    $("<img/>", {
                        src: 'imagens/lista_anexos.png',
                        title: 'Anexos/Apensos',
                        'class': 'botao30'
                    }).bind("click", function() {
                        jquery_listar_vinculacao_documento(aData[3], false);
                    }).appendTo($line);

    <?php 
}
// verifica a existencia da permissao para detalhar documentos
if (array_key_exists('3102', Controlador::getInstance()->recurso->dependencias)) {
    ?>
                    // Alterar
                    $("<img/>", {
                        src: 'imagens/alterar.png',
                        title: 'Detalhar',
                        'class': 'botao30'
                    }).bind("click", function() {
                        jquery_detalhar_documento(aData[3]);
                    }).appendTo($line);

    <?php 
}
?>

                // Visualizar Imagens
示例#23
0
 /**
  * 
  */
 public function registerExtraordinaryAttributeUser($attr, $value)
 {
     $usuario = Controlador::getInstance()->usuario;
     $usuario->{strtolower($attr)} = $value;
     Session::set('_usuario', $usuario);
 }
 public static function updateGenerico($digital, $camposValores)
 {
     try {
         foreach ($camposValores as $campo => $valor) {
             $stmt = null;
             $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET {$campo} = ? WHERE DIGITAL = ?");
             $stmt->bindParam(1, $valor, PDO::PARAM_STR);
             $stmt->bindParam(2, $digital, PDO::PARAM_STR);
             $stmt->execute();
         }
         return true;
     } catch (PDOException $e) {
         throw $e;
     }
 }
 /**
  * Lista os vinculos de um documento
  * @param int $idDocumento
  * @param string $relacao = p ou f (pai ou filho)
  * @param int $vinculo = 1, 2 ou 3
  */
 public static function listarVinculados($idDocumento, $relacao, $vinculo)
 {
     try {
         if ($relacao != 'p' && $relacao != 'f') {
             throw new Exception('Relação inválida, informe "p" (pai) ou "f" (filho).');
         }
         if (in_array($vinculo, self::$vinculos) === false) {
             throw new Exception('Vinculo inválido, informe ' . implode(', ', self::$vinculos) . '.');
         }
         $sql = 'select v.' . ($relacao == 'p' ? 'id_documento_filho' : 'id_documento_pai') . ' as id_documento, d.digital ';
         $sql .= 'from sgdoc.tb_documentos_vinculacao v ';
         $sql .= 'inner join sgdoc.tb_documentos_cadastro d on (d.id=v.' . ($relacao == 'p' ? 'id_documento_filho' : 'id_documento_pai') . ') ';
         $sql .= 'where (v.st_ativo = 1) and (v.id_vinculacao = :vinc) ';
         $sql .= 'and (v.' . ($relacao == 'p' ? 'id_documento_pai' : 'id_documento_filho') . ' = :id) ';
         $sql .= 'order by d.digital;';
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare($sql);
         $stmt->bindParam('vinc', $vinculo, PDO::PARAM_INT);
         $stmt->bindParam('id', $idDocumento, PDO::PARAM_INT);
         $stmt->execute();
         $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
         if (!empty($out)) {
             $out = array_change_key_case($out, CASE_LOWER);
             return $out;
         }
         return false;
     } catch (PDOException $e) {
         throw $e;
     }
 }
 /**
  * Exclui os dados da resposta do prazo informado,
  * inclusive objetivos/metas e ações PPA/LOA, e arquivos anexos
  * @param string $idPrazo
  * @throws Exception
  * @return Output
  */
 public static function limparResposta($idPrazo = false)
 {
     try {
         if (!$idPrazo) {
             throw new Exception('Informe o prazo.');
         }
         $respostaPrazo = new Prazo();
         $respostaPrazo->prazo->sq_prazo = $idPrazo;
         $respostaPrazo->prazo->nu_proc_dig_res = null;
         $respostaPrazo->prazo->tx_resposta = '';
         //Este atributo setado como false, excluirá os vínculos com o PPA/LOA
         $respostaPrazo->prazo->ha_vinculo = false;
         $respostaPrazo->prazo->legislacao_situacao = 0;
         $respostaPrazo->prazo->legislacao_descricao = '';
         Controlador::getInstance()->getConnection()->connection->beginTransaction();
         //ANEXOS
         $anexos = self::listarArquivosAnexos($idPrazo);
         if (is_array($anexos)) {
             for ($i = 0; $i < count($anexos); $i++) {
                 self::excluirArquivoAnexo($anexos[$i]['ID']);
             }
         }
         self::salvarResposta($respostaPrazo);
         new Log('TB_CONTROLE_PRAZOS', $idPrazo, Zend_Auth::getInstance()->getIdentity()->ID, 'Limpar resposta');
         Controlador::getInstance()->getConnection()->connection->commit();
         return new Output(array('success' => 'true', 'message' => 'Os dados da resposta foram limpos com sucesso!'));
     } catch (PDOException $e) {
         Controlador::getInstance()->getConnection()->connection->rollBack();
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }
// verifica a existencia da permissao para visualizar anexos/apensos
if (AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(3101))) {
    ?>
                    // Anexos/Apensos
                    $("<img/>", {
                        src: 'imagens/lista_anexos.png',
                        title: 'Anexos/Apensos',
                        'class': 'botao30'
                    }).bind("click", function() {
                        jquery_listar_vinculacao_documento(aData[3], false);
                    }).appendTo($line);

    <?php 
}
// verifica a existencia da permissao para detalhar documentos
if (AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(3102))) {
    ?>
                    // Alterar
                    $("<img/>", {
                        src: 'imagens/alterar.png',
                        title: 'Detalhar',
                        'class': 'botao30'
                    }).bind("click", function() {
                        jquery_detalhar_documento(aData[3]);
                    }).appendTo($line);

    <?php 
}
?>

                // Visualizar Imagens
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
include "function/auto_load_statics.php";
$controller = Controlador::getInstance();
$auth = $controller->usuario;
?>
<html>
    <head>
        <title>Ferramentas de Administração</title>
        <script type="text/javascript">
            $(document).ready(function() {
                var items = $('#menus img').length;
                var largura = (items * 48);
                $('#central').width(largura);
            });
        </script>
        <style type="text/css">
            #central {
                padding: 10px;
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
$usuario = Controlador::getInstance()->usuario;
$aColumns = array('ID', 'NU_REF', 'INTERESSADO', 'NU_RES', 'NM_USUARIO_ORIGEM', 'NM_USUARIO_DESTINO', 'NM_UNIDADE_DESTINO', 'NM_USUARIO_RESPOSTA', 'NULL', 'NULL', 'DT_PRAZO', 'DT_RESPOSTA', 'DIAS_RESPOSTA');
$aColumnsFTS = array('NU_REF', 'INTERESSADO', 'NU_RES', 'NM_USUARIO_ORIGEM', 'NM_USUARIO_DESTINO', 'NM_UNIDADE_DESTINO', 'NM_USUARIO_RESPOSTA');
$sIndexColumn = "ID";
$sTable = "VW_PRAZOS_RESPOSTAS_SETOR";
$sExtraQuery = "ID_USUARIO_ORIGEM != {$usuario->ID} AND ID_UNIDADE_ORIGEM = {$usuario->ID_UNIDADE}";
print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, null, $sExtraQuery, $aColumnsFTS);
/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
$contexto = Controlador::getInstance()->getContexto();
?>

<script type="text/javascript" src="javascripts/form_abertura_volume.js"></script>
<script type="text/javascript" src="javascripts/form_encerramento_volume.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#processo_abertura").val(numero_processo);

        $.post("modelos/processos/volume.php", {
            action: "prepareOpen",
            processo: numero_processo
        }, function(response) {
            if (response.success == 'true') {
                if (response.action == "open") {
                    $("#volume_abertura").val(response.volume);