/**
 * @todo Refatorar...
 */
function inserirDesen($arrayData)
{
    $id = Util::RecuperaIdProcesso($arrayData['processo']);
    $usuario = Controlador::getInstance()->usuario;
    Controlador::getInstance()->getConnection()->connection->beginTransaction();
    $id_unidade_usuario = Controlador::getInstance()->usuario->ID_UNIDADE;
    $id_usuario = $usuario->ID;
    $nome_usuario = $usuario->NOME;
    $id_unidade = $usuario->ID_UNIDADE;
    $oDiretoria = DaoUnidade::getUnidade($id_unidade);
    $diretoria = $oDiretoria['nome'];
    $tx_diretoria = $oDiretoria['nome'] . ' - ' . $oDiretoria['sigla'];
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS\n                (NUMERO_PROCESSO, ID_USUARIO, USUARIO, ID_UNIDADE, DIRETORIA, ACAO, ORIGEM, DESTINO, DT_TRAMITE)\n                 VALUES(?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
    $stmt->bindParam(1, $arrayData['processo'], PDO::PARAM_STR);
    $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT);
    $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR);
    $stmt->bindParam(4, $id_unidade, PDO::PARAM_INT);
    $stmt->bindParam(5, $diretoria, PDO::PARAM_STR);
    $stmt->bindValue(6, str_replace("<?>", format($arrayData['peca']), "As pecas <?> foram desentranhadas do processo."));
    $stmt->bindParam(7, $tx_diretoria);
    $stmt->bindValue(8, "XXXXX");
    $stmt->execute();
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_DESENTRANHAMENTO \n        (NUMERO_PROCESSO, NUMERO_PECA, JUSTIFICATIVA, ID_SOLICITANTE, DT_ACAO, ID_USUARIO,ID_UNIDADE_USUARIO)\n        VALUES (?, ?, ?, ?, CLOCK_TIMESTAMP(), ?,?)");
    $stmt->bindParam(1, $id);
    $stmt->bindParam(2, $arrayData['peca']);
    $stmt->bindParam(3, $arrayData['justif']);
    $stmt->bindParam(4, $id_unidade);
    $stmt->bindParam(5, $id_usuario);
    $stmt->bindParam(6, $id_unidade_usuario);
    $stmt->execute();
    $id = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_PROCESSOS_DESENTRANHAMENTO_ID_DESEN_SEQ');
    Controlador::getInstance()->getConnection()->connection->commit();
    return $id;
}
 /**
  * 
  */
 public static function alterarProcesso(Processo $processo)
 {
     try {
         Controlador::getInstance()->getConnection()->connection->beginTransaction();
         $processo->processo->fg_prazo = $processo->processo->fg_prazo == 'true' ? 1 : 0;
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_PROCESSOS_CADASTRO SET \n                ASSUNTO = ?,\n                ASSUNTO_COMPLEMENTAR = ?,\n                INTERESSADO = ?,\n                ORIGEM = ?,\n                DT_AUTUACAO = ?,\n                DT_PRAZO = ?,\n                FG_PRAZO = ?,\n                PROCEDENCIA = ?\n                WHERE NUMERO_PROCESSO = ?");
         $stmt->bindParam(1, $processo->processo->assunto, PDO::PARAM_INT);
         //DATA_ENTRADA' ,
         $stmt->bindParam(2, $processo->processo->assunto_complementar, PDO::PARAM_STR);
         //TIPO' ,
         $stmt->bindParam(3, $processo->processo->interessado, PDO::PARAM_INT);
         //NUMERO' ,
         $stmt->bindParam(4, $processo->processo->origem, PDO::PARAM_INT);
         //ORIGEM' ,
         $stmt->bindParam(5, Util::formatDate($processo->processo->dt_autuacao), PDO::PARAM_STR);
         //INTERESSADO' ,
         $stmt->bindParam(6, Util::formatDate($processo->processo->dt_prazo), PDO::PARAM_STR);
         //ASSUNTO' ,
         $stmt->bindParam(7, $processo->processo->fg_prazo, PDO::PARAM_INT);
         //INTERNO = 1 , ExTERNO = 0' ,
         $stmt->bindParam(8, $processo->processo->procedencia, PDO::PARAM_STR);
         //CARGO' ,
         $stmt->bindParam(9, $processo->processo->numero_processo, PDO::PARAM_STR);
         //ASSINATURA' ,
         $stmt->execute();
         $acao = "Cadastrado complementado.";
         $destino = "XXXXX";
         $usuario = Controlador::getInstance()->usuario;
         $id_usuario = $usuario->ID;
         $nome_usuario = $usuario->NOME;
         $id_unidade = $usuario->ID_UNIDADE;
         $oDiretoria = DaoUnidade::getUnidade($id_unidade);
         $diretoria = $oDiretoria['nome'];
         $tx_diretoria = $oDiretoria['nome'] . ' - ' . $oDiretoria['sigla'];
         $stmm = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS" . " (NUMERO_PROCESSO,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES(?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
         $stmm->bindParam(1, $processo->processo->numero_processo, PDO::PARAM_STR);
         $stmm->bindParam(2, $id_usuario, PDO::PARAM_INT);
         $stmm->bindParam(3, $nome_usuario, PDO::PARAM_STR);
         $stmm->bindParam(4, $id_unidade, PDO::PARAM_INT);
         $stmm->bindParam(5, $diretoria, PDO::PARAM_STR);
         $stmm->bindParam(6, $acao, PDO::PARAM_STR);
         $stmm->bindParam(7, $tx_diretoria, PDO::PARAM_STR);
         $stmm->bindParam(8, $destino, PDO::PARAM_STR);
         $stmm->execute();
         Controlador::getInstance()->getConnection()->connection->commit();
         return new Output(array('success' => 'true'));
     } catch (PDOException $e) {
         Controlador::getInstance()->getConnection()->connection->rollback();
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }
 /**
  * 
  */
 public function __construct($array = array())
 {
     /* Padronizar caixa baixa pra indice de array */
     $array = array_change_key_case($array, CASE_LOWER);
     $usuario = Zend_Auth::getInstance()->getIdentity();
     /* Variaveis do usuario */
     $this->despacho->usuario = $usuario->NOME;
     $this->despacho->id_usuario = $usuario->ID;
     $this->despacho->id_unidade = $usuario->ID_UNIDADE_ORIGINAL;
     $this->despacho->diretoria = DaoUnidade::getUnidade($this->despacho->id_unidade, 'nome');
     /* Variaveis do despacho especifico */
     foreach ($array as $key => $value) {
         $this->despacho->{$key} = $value;
     }
 }
 /**
  *Começa aqui a função recursiva
  * @param type $id
  * @return type 
  */
 public function getHierarquiaUnidade($id)
 {
     $array = array();
     $rs = DaoUnidade::getUnidade($id);
     $array['id'] = $id;
     $array['nome'] = $rs['nome'];
     $array['sigla'] = $rs['sigla'];
     $array['uf'] = $rs['uf'];
     if ($rs['id'] > 0) {
         $superior = (int) $rs['superior'];
         if ($superior > 0) {
             $this->_hierarquia[] = $this->getHierarquiaUnidade($superior);
         }
     }
     return $array;
 }
 /**
  *
  * @param type $idUnidade
  * @return type
  */
 public function filho($idUnidade, $idUnidadeDefault)
 {
     $where = array('SUPERIOR' => $idUnidade);
     $unidades = DaoUnidade::listUnidades($where);
     $aux = array();
     if ($unidades->resultado == true) {
         foreach ($unidades->resultado as $dados) {
             $children = array_change_key_case($dados, CASE_LOWER);
             //checa se já existe tramite.
             $children['checked'] = $this->verificaTramite($idUnidadeDefault, $children['id']);
             //add os filhos.
             $children['filhos'] = $this->filho($children['id'], $idUnidadeDefault);
             $aux[] = $children;
         }
     }
     return $aux;
 }
 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;
     }
 }
 $numero_processo = $documento->numero;
 if ($documento->tipo_vinculacao != "") {
     $documento->numero .= " " . $documento->tipo_vinculacao . $documento->numero_peca;
 }
 unset($documento->documento->tipo_vinculacao);
 unset($documento->documento->numero_peca);
 $processo = DaoProcesso::getProcesso($numero_processo);
 if (!Processo::validarProcessoAreaDeTrabalho($numero_processo)) {
     $out = new Output(array('success' => 'false', 'error' => 'Processo não se encontra na área de trabalho do ARQUIVO'));
     print json_encode($out->toArray());
     exit;
 }
 $processo['nm_interessado'] = Processo::getInteressado($processo['interessado'], 'interessado');
 $processo['nm_assunto'] = Processo::getAssunto($processo['assunto'], 'assunto');
 if ($processo['procedencia'] == 'I') {
     $processo['nm_origem'] = DaoUnidade::getUnidade($processo['origem'], 'nome');
 } else {
     $tmp = Processo::getOrigemExterna($processo['origem'], 'origem');
     $processo['nm_origem'] = $tmp['origem'];
 }
 $processo['dt_autuacao'] = Util::formatDate($processo['dt_autuacao']);
 $documento->data_documento = $processo['dt_autuacao'];
 $documento->data_entrada = $processo['dt_autuacao'];
 $documento->origem = $processo['nm_origem'];
 $documento->tipo = "DIGITALIZACAO DE PROCESSO";
 $documento->assunto = 2;
 // Abertura de Processo
 $documento->interessado = $processo['nm_interessado'];
 $documento->id_unid_area_trabalho = $processo['id_unid_area_trabalho'];
 $documento->assunto_complementar = $processo['assunto_complementar'];
 $documento->procedencia = $processo['procedencia'];
<?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
 * */
$aColumns = array('ID', 'PAI', 'DIAS_RESTANTES', 'NUMERO_PROCESSO', 'INTERESSADO', 'ASSUNTO', 'ORIGEM', 'ULTIMO_TRAMITE', 'ID');
$aColumnsFTS = array('INTERESSADO', 'ASSUNTO', 'ORIGEM', 'ULTIMO_TRAMITE');
$sIndexColumn = "ID";
$sTable = "VW_AREA_TRABALHO_PROCESSOS";
$sExtraQuery = "ID_UNID_AREA_TRABALHO = " . DaoUnidade::getUnidade(null, 'id');
print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, $conexao, $sExtraQuery, $aColumnsFTS);
 public static function numDigitalDisponivelSic()
 {
     try {
         $id_unidade = DaoUnidade::getUnidade(null, 'id');
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("\n                SELECT DIGITAL FROM TB_DIGITAL WHERE ID_UNIDADE = ? AND USO != '1' LIMIT 1\n            ");
         $stmt->bindParam(1, $id_unidade, PDO::PARAM_INT);
         $stmt->execute();
         $out = $stmt->fetch(PDO::FETCH_ASSOC);
         if (!empty($out)) {
             return new Output(array('success' => 'true', 'digital' => $out['DIGITAL']));
         } else {
             return new Output(array('success' => 'false', 'error' => 'Nenhuma digital disponivel'));
         }
     } catch (PDOException $e) {
         throw $e;
     }
 }
 /**
  * 
  */
 public static function registrarHistoricoDeTramiteDocumentos($digital, $acao, $origem = 'XXXXX', $destino = 'XXXXX')
 {
     try {
         $id_usuario = $this->_usuario->id;
         $id_unidade = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE;
         $id_unidade_original = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE_ORIGINAL;
         $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME;
         $diretoria = DaoUnidade::getUnidade($id_unidade_original, 'nome');
         $stmm = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
         $stmm->bindParam(1, $digital, PDO::PARAM_STR);
         $stmm->bindParam(2, $id_usuario, PDO::PARAM_INT);
         $stmm->bindParam(3, $nome_usuario, PDO::PARAM_STR);
         $stmm->bindParam(4, $id_unidade, PDO::PARAM_INT);
         $stmm->bindParam(5, $diretoria, PDO::PARAM_STR);
         $stmm->bindParam(6, $acao, PDO::PARAM_STR);
         $stmm->bindParam(7, $origem, PDO::PARAM_STR);
         $stmm->bindParam(8, $destino, PDO::PARAM_STR);
         $stmm->execute();
         return Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_HISTORICO_TRAMITE_DOCUMENTOS_ID_SEQ');
     } catch (PDOException $e) {
         throw new Exception($e->getMessage());
     }
 }
        $cont == 0 ? $apensos .= $current['NM_APENSO'] : ($apensos .= ", " . $current['NM_APENSO']);
    } else {
        $iterator->count() == 1 ? $apensos .= $current['NM_APENSO'] : ($apensos .= " e " . $current['NM_APENSO']);
    }
    $datafile['apensados'] = $apensos;
    $iterator->next();
    $cont++;
}
$fp = fopen($dir . $file, "r");
$output = fread($fp, filesize($dir . $file));
fclose($fp);
$output = str_replace("<<DATA>>", $datafile['data'], $output);
$output = str_replace("<<DIRETORIA>>", $datafile['solicitante'], $output);
$output = str_replace("<<NUMERO_PROCESSO>>", $datafile['processo'], $output);
$output = str_replace("<<APENSADOS>>", $datafile['apensados'], $output);
$output = str_replace("<<DIRETORIA_LOGADO>>", DaoUnidade::getUnidade($auth->ID_UNIDADE, 'nome'), $output);
$output = str_replace("<<NOME_COMPLETO>>", strtoupper($auth->NOME), $output);
/**
 * Output
 */
header("Content-type: application/msword; charset=iso-8859-1;");
header("Content-Disposition: inline, filename={$file}");
print $output;
/**
 * @todo Refatorar...
 * @deprecated
 */
function processosVinc($processo, $tipo_vinc, $idUsuario)
{
    $id = getIdProcesso($processo);
    $sql = "SELECT MAX(BLOCO_IMPRESSAO) AS BLOCO \r\n              FROM TB_PROCESSOS_VINCULACAO \r\n             WHERE ID_PROCESSO_PAI = ? \r\n               AND ID_VINCULACAO = ?";
     $out = DaoUnidade::deleteUnidade($_REQUEST['id'], $_REQUEST['status'])->toArray();
     break;
 case 'alterar-visibilidade':
     try {
         $out = Tramite::alterarVisibilidadeTramite($_REQUEST['id_unidade'], $_REQUEST['id_referencia'], $_REQUEST['status']);
     } catch (Exception $e) {
         $out = array('success' => 'false', 'error' => $e->getMessage());
     }
     break;
 case 'cadastrar':
     $unidade = new Unidade($_REQUEST);
     $out = DaoUnidade::inserirUnidade($unidade)->toArray();
     break;
 case 'alterar':
     $unidade = new Unidade($_REQUEST);
     $out = DaoUnidade::alterarUnidade($unidade)->toArray();
     if ($_REQUEST['tipo'] != $_REQUEST['clear']) {
         DaoTramite::clearAllTramitesByIdUnidade($_REQUEST['id']);
     }
     break;
 case 'pesquisar':
     try {
         unset($_SESSION['PESQUISAR_UNIDADES']);
         foreach ($_REQUEST as $key => $value) {
             if ($key != 'acao' && $value && strtolower($value) != 'null') {
                 $_SESSION['PESQUISAR_UNIDADES'][$key] = $value;
             }
         }
         $out = array('success' => 'true');
     } catch (Exception $e) {
         $out = array('success' => 'false', 'error' => $e->getMessage());
Exemple #13
0
$inputData['SOLICITACAO'] = $_REQUEST['SOLICITACAO'];
$inputData['DIGITAL_REFERENCIA'] = $_REQUEST['DIGITAL_REFERENCIA'];
$priority = getPriority($_REQUEST['PRIORIDADE']);
$inputData['NM_PRIORIDADE'] = $priority->PRIORIDADE;
$inputData['PRIORIDADES'] = array();
$inputData['PRIORIDADES'][] = $_REQUEST['PRIORIDADE'];
if (isset($_REQUEST['extras']['PRIORIDADES'])) {
    foreach ($_REQUEST['extras']['PRIORIDADES']['id_campo'] as $prioridade) {
        $inputData['PRIORIDADES'][] = $prioridade;
    }
}
$inputData['TRAMITES'] = array();
$inputData['TRAMITES'][$_REQUEST['ID_UNID_CAIXA_ENTRADA']] = DaoUnidade::getUnidade($_REQUEST['ID_UNID_CAIXA_ENTRADA'], 'nome');
if (isset($_REQUEST['extras']['TRAMITES'])) {
    foreach ($_REQUEST['extras']['TRAMITES']['id_campo'] as $tramite) {
        $inputData['TRAMITES'][$tramite] = DaoUnidade::getUnidade($tramite, 'nome');
    }
}
$responses = array();
$digitaisOk = array();
$sucesso = true;
foreach ($inputData['TRAMITES'] as $tramite => $nome_tramite) {
    $inputData['ID_UNID_CAIXA_ENTRADA'] = $tramite;
    $inputData['DESTINO'] = $nome_tramite;
    $response = adicionaDemanda($inputData, $usuario);
    $responses[] = $response;
    if (!$response['success']) {
        $sucesso = false;
    } else {
        $digitaisOk[] = $response['digital'];
    }
/**
 * 
 */
function geraPdfSic(Documento $documento)
{
    //ENDEREÇO ONDE SERÁ GERADO O PDF
    $end_final = __CAM_UPLOAD__ . '/' . aleatorio() . ".pdf";
    $tipo_pdf = "F";
    //PREPARA PARA GERAR O PDF
    $pdf = new PDFSic($documento);
    $pdf->SetFont('times', '', 12);
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->ln(2);
    $pdf->SetFont('Arial', '', 9);
    $pdf->Text(170, 12, __ETIQUETA__);
    $pdf->Code128(165, 14, $documento->digital, 30, 9);
    $pdf->Text(173, 27, $documento->digital);
    $pdf->Cell(5, 5, "", 0, 0, 'C');
    $pdf->Cell(180, 5, "", 0, 0, 'R');
    $pdf->Cell(5, 5, "", 0, 1, 'L');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(180, 5, utf8_decode("Informações do Documento"), 0, 1, 'C');
    $pdf->Cell(5, 5, "", 0, 0, 'C');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(16, 5, "DIGITAL: ", 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(100, 5, $pdf->documento->digital, 0, 0, 'L');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(27, 5, "Data do Documento:  ", 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(40, 5, $pdf->documento->data_documento, 0, 1, 'R');
    $pdf->Cell(5, 5, "", 0, 0, 'C');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(16, 5, "Origem:", 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(100, 5, utf8_decode($pdf->documento->origem), 0, 0, 'L');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(27, 5, utf8_decode("Número Solicitação:  "), 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(40, 5, utf8_decode($pdf->documento->numero), 0, 1, 'R');
    $pdf->Cell(5, 5, "", 0, 0, 'C');
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(16, 5, "Solicitante:", 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(100, 5, utf8_decode($pdf->documento->nome), 0, 0, 'L');
    if (!is_null($pdf->documento->cpf)) {
        // Existe CPF/CNPJ para esta solicitação
        // Descobrir qual deles
        $rotulo = "CPF:  ";
        if (strlen($pdf->documento->cpf) > 14) {
            // CNPJ
            $rotulo = "CNPJ:  ";
        }
        $pdf->SetFont("Arial", "B", 8);
        $pdf->Cell(27, 5, $rotulo, 0, 0, 'L');
        $pdf->SetFont("Arial", "", 8);
        $pdf->Cell(40, 5, $pdf->documento->cpf, 0, 0, 'R');
    } else {
        if (!is_null($pdf->documento->email)) {
            // Existe email para esta solicitação
            $pdf->SetFont("Arial", "B", 8);
            $pdf->Cell(27, 5, "Email: ", 0, 0, 'L');
            $pdf->SetFont("Arial", "", 8);
            $pdf->Cell(40, 5, utf8_decode($pdf->documento->email), 0, 0, 'R');
        }
    }
    $pdf->Ln();
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(5, 5, "", 0, 0, 'C');
    $pdf->Cell(15, 5, "Assunto:", 0, 0, 'L');
    $pdf->SetFont("Arial", "", 8);
    $pdf->MultiCell(165, 5, utf8_decode(DaoAssuntoDocumento::getAssunto($pdf->documento->assunto, 'assunto')), 0, 1);
    $pdf->Ln();
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(180, 5, utf8_decode("Informações da Solicitação"), 0, 1, 'C');
    $pdf->Ln();
    //EXIBE OS REGISTROS
    $diretoria = utf8_decode(DaoUnidade::getUnidade($pdf->documento->diretoria, 'nome'));
    $pdf->Cell(8, 5, "", 0, 0, 'C');
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(40, 5, "Ao ponto focal - {$diretoria}", 0, 1, 'L');
    $pdf->Ln();
    $pdf->SetFont("Arial", "", 8);
    $pdf->Cell(8, 5, "", 0, 0, 'L');
    $pdf->Write(5, utf8_decode($pdf->texto));
    $pdf->Ln();
    $pdf->Ln();
    $pdf->SetFont("Arial", "B", 8);
    $pdf->Cell(8, 5, "", 0, 0, 'L');
    $pdf->Write(5, utf8_decode($pdf->rodape));
    //SAIDA DO PDF
    $pdf->Output("{$end_final}", "{$tipo_pdf}");
    return $end_final;
}
<?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
 * */
$aColumns = array('ID', 'NU_REF', 'INTERESSADO', 'NU_RES', 'NM_USUARIO_DESTINO', 'NM_UNIDADE_DESTINO', 'NM_USUARIO_ORIGEM', 'NM_UNIDADE_ORIGEM', 'NULL', 'NULL', 'DT_PRAZO', 'DT_RESPOSTA', 'DIAS_RESPOSTA');
$aColumnsFTS = array('NU_REF', 'INTERESSADO', 'NU_RES', 'NM_USUARIO_DESTINO', 'NM_UNIDADE_DESTINO', 'NM_USUARIO_ORIGEM', 'NM_UNIDADE_ORIGEM');
$sIndexColumn = "ID";
$sTable = "VW_PRAZOS_RESPONDIDOS_USUARIOS";
$sExtraQuery = "ID_UNIDADE_DESTINO = " . DaoUnidade::getUnidade(null, 'id');
print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, null, $sExtraQuery, $aColumnsFTS);
Exemple #16
0
 /**
  * @return Output
  */
 public function comment()
 {
     $out = array();
     $unidade = DaoUnidade::getUnidade($this->post['setor'], 'nome');
     $usuario = DaoUsuario::getUsuario((int) $this->post['usuario']);
     $mensagem = "O volume {$this->post['volume']} deste processo está aos cuidados de {$usuario['nome']} - {$unidade}.";
     Controlador::getInstance()->getConnection()->connection->beginTransaction();
     $id_usuario = Zend_Auth::getInstance()->getIdentity()->ID;
     $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME;
     $id_unidade_historico = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE_ORIGINAL;
     $diretoria = DaoUnidade::getUnidade($id_unidade_historico, 'nome');
     try {
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("\n                INSERT INTO TB_COMENTARIOS_PROCESSOS \n                    (NUMERO_PROCESSO, ID_USUARIO, USUARIO, DT_CADASTRO, TEXTO_COMENTARIO, ID_UNIDADE, DIRETORIA)\n                VALUES\n                    (?,?,?,CLOCK_TIMESTAMP(),?,?,?)\n            ");
         $stmt->bindValue(1, $this->getProcesso());
         $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT);
         $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR);
         $stmt->bindParam(4, $mensagem);
         $stmt->bindParam(5, $id_unidade_historico, PDO::PARAM_INT);
         $stmt->bindParam(6, $diretoria, PDO::PARAM_STR);
         $stmt->execute();
         $last_id = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_COMENTARIOS_PROCESSOS_ID_SEQ');
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare('UPDATE TB_PROCESSOS_VOLUME SET ID_COMENTARIO = ? WHERE ID = ?');
         $stmt->bindParam(1, $last_id);
         $stmt->bindParam(2, $this->post['idvolume']);
         $stmt->execute();
         Controlador::getInstance()->getConnection()->connection->commit();
         $out = array('success' => 'true');
         $this->print = $out;
     } catch (Exception $e) {
         Controlador::getInstance()->getConnection()->connection->rollback();
         $out = array('success' => 'false', 'message' => 'Não foi possível registrar o comentário deste volume!');
     }
     return new Output($out);
 }
/**
 * 
 */
function desvincularProcesso($arrayData)
{
    $usuario = Controlador::getInstance()->usuario;
    /* recupera id do processo */
    $numero_processo = getIdProcesso($arrayData['numero_processo']);
    /* mensagem padrão do historico de tramite do tipo desanexar */
    $mensagem_tramite_pai = "O processo <?> foi desapensado deste processo.";
    $mensagem_tramite_filho = "O processo foi desapensado do processo <?>.";
    /* sequencial para controle de impressão do termo. */
    $bloco_impressao = getLastBloc($numero_processo, 2);
    $anexos = array_unique(explode(',', $arrayData['processos']));
    $data_acao = date('Y-m-d h:m:s');
    $id_usuario = $usuario->ID;
    $nome_usuario = $usuario->NOME;
    $id_unidade = $usuario->ID_UNIDADE;
    $oDiretoria = DaoUnidade::getUnidade($id_unidade);
    $diretoria = $oDiretoria['nome'];
    $tx_diretoria = $oDiretoria['nome'] . ' - ' . $oDiretoria['sigla'];
    Controlador::getInstance()->getConnection()->connection->beginTransaction();
    try {
        $iterator = new ArrayIterator($anexos);
        while ($iterator->valid()) {
            $numero_apenso = getIdProcesso($iterator->current());
            /*             * ************************* TRAMITE PAI ************************* */
            $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS\n                (NUMERO_PROCESSO, ID_USUARIO, USUARIO, ID_UNIDADE, DIRETORIA, ACAO, ORIGEM, DESTINO, DT_TRAMITE)\n                 VALUES(?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
            $stmt->bindParam(1, $arrayData['numero_processo'], PDO::PARAM_STR);
            $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT);
            $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR);
            $stmt->bindParam(4, $id_unidade, PDO::PARAM_INT);
            $stmt->bindParam(5, $diretoria, PDO::PARAM_STR);
            $stmt->bindValue(6, str_replace("<?>", $iterator->current(), $mensagem_tramite_pai));
            $stmt->bindParam(7, $tx_diretoria);
            $stmt->bindValue(8, "XXXXX");
            $stmt->execute();
            $id_tramite_pai = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_HISTORICO_TRAMITE_PROCESSOS_ID_SEQ');
            /*             * **************************************************************** */
            /*             * ************************* TRAMITE FILHO ************************ */
            $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS\n                (NUMERO_PROCESSO, ID_USUARIO, USUARIO, ID_UNIDADE, DIRETORIA, ACAO, ORIGEM, DESTINO, DT_TRAMITE)\n                 VALUES(?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
            $stmt->bindParam(1, $iterator->current(), PDO::PARAM_STR);
            $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT);
            $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR);
            $stmt->bindParam(4, $id_unidade, PDO::PARAM_INT);
            $stmt->bindParam(5, $diretoria, PDO::PARAM_STR);
            $stmt->bindValue(6, str_replace("<?>", $arrayData['numero_processo'], $mensagem_tramite_filho));
            $stmt->bindParam(7, $tx_diretoria);
            $stmt->bindValue(8, "XXXXX");
            $stmt->execute();
            $id_tramite_filho = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_HISTORICO_TRAMITE_PROCESSOS_ID_SEQ');
            /*             * ************************** ATUALIZAR MOVIMENTAÇÃO ************** */
            $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_PROCESSOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE ID = ?");
            $data = date("d/m/Y " . " - " . "H:i:s");
            $ultimo_tramite = str_replace(".", " ", $mensagem_tramite_filho);
            $ultimo_tramite .= "por {$nome_usuario} em {$data}.";
            $stmt->bindParam(1, str_replace("<?>", $arrayData['numero_processo'], $ultimo_tramite), PDO::PARAM_STR);
            $stmt->bindParam(2, $numero_apenso, PDO::PARAM_INT);
            $stmt->execute();
            /*             * **************************************************************** */
            $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_PROCESSOS_VINCULACAO\n                                    SET DT_EXCLUSAO_FORM = ?, ID_SOLICITANTE = ?, FG_ATIVO = ?, BLOCO_IMPRESSAO = ?, ID_HISTORICO_TRAMITE_PAI = ?, ID_HISTORICO_TRAMITE_FILHO = ? , DT_ACAO = ?\n                                    WHERE ID_PROCESSO_PAI = ? AND ID_PROCESSO_FILHO = ? AND ST_ATIVO = 1 AND ID_VINCULACAO = 2");
            $stmt->bindParam(1, format($arrayData['data_exclusao']), PDO::PARAM_STR);
            $stmt->bindParam(2, $arrayData['diretoria'], PDO::PARAM_STR);
            $stmt->bindValue(3, 0, PDO::PARAM_INT);
            $stmt->bindParam(4, $bloco_impressao, PDO::PARAM_STR);
            $stmt->bindParam(5, $id_tramite_pai, PDO::PARAM_INT);
            $stmt->bindParam(6, $id_tramite_filho, PDO::PARAM_INT);
            $stmt->bindParam(7, $data_acao, PDO::PARAM_STR);
            $stmt->bindParam(8, $numero_processo, PDO::PARAM_STR);
            $stmt->bindParam(9, $numero_apenso, PDO::PARAM_INT);
            $stmt->execute();
            $iterator->next();
        }
        Controlador::getInstance()->getConnection()->connection->commit();
    } catch (PDOException $e) {
        throw $e;
    }
}
<?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
 * */
$aColumns = array('ID', 'PAI', 'DIAS_RESTANTES', 'DIGITAL', 'DT_CADASTRO', 'ASSUNTO', 'NUMERO', 'TIPO', 'ORIGEM', 'ULTIMO_TRAMITE', 'ID_UNID_CAIXA_SAIDA');
$aColumnsFTS = array('DIGITAL', 'ASSUNTO', 'NUMERO', 'TIPO', 'ORIGEM', 'ULTIMO_TRAMITE');
$sIndexColumn = "ID";
$sTable = "VW_CAIXA_SAIDA_DOCUMENTOS";
$sExtraQuery = "ID_UNID_CAIXA_SAIDA = " . DaoUnidade::getUnidade(null, 'id');
print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, null, $sExtraQuery, $aColumnsFTS);
 /**
  * @return string
  */
 public function salvarCadastro()
 {
     try {
         Controlador::getInstance()->getConnection()->connection->beginTransaction();
         /* Cadastrar Processo */
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_CADASTRO(NUMERO_PROCESSO,ORIGEM,ASSUNTO,\n                    ASSUNTO_COMPLEMENTAR,DT_AUTUACAO,DT_PRAZO,DT_CADASTRO,USUARIO,INTERESSADO,ID_UNID_AREA_TRABALHO,ULTIMO_TRAMITE,\n                    PROCEDENCIA,ID_UNIDADE_USUARIO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
         /**
          * BugFix Notice
          */
         $numero_processo = $this->numero_processo;
         $origem = $this->origem;
         $assunto = $this->assunto;
         $assunto_complementar = $this->assunto_complementar;
         $dt_autuacao = $this->dt_autuacao;
         $dt_prazo = $this->dt_prazo;
         $dt_cadastro = $this->dt_cadastro;
         $interessado = $this->interessado;
         $ultimo_tramite = $this->ultimo_tramite;
         $procedencia = $this->procedencia;
         $id_usuario = $this->_usuario->id;
         $nome_usuario = $this->_usuario->nome;
         $id_unidade = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE;
         $id_unidade_historico = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE;
         $diretoria = DaoUnidade::getUnidade($id_unidade_historico, 'nome');
         $objOrigem = DaoUnidade::getUnidade($id_unidade);
         $tx_origem = $objOrigem['nome'] . ' - ' . $objOrigem['sigla'];
         $id_unidade_usuario = Controlador::getInstance()->usuario->ID_UNIDADE;
         $stmt->bindParam(1, $numero_processo, PDO::PARAM_STR);
         //numero_processo
         $stmt->bindParam(2, $origem, PDO::PARAM_INT);
         //origem
         $stmt->bindParam(3, $assunto, PDO::PARAM_INT);
         //assunto
         $stmt->bindParam(4, $assunto_complementar, PDO::PARAM_STR);
         //assunto_complementar
         $stmt->bindParam(5, $dt_autuacao, PDO::PARAM_STR);
         //autuacao
         $stmt->bindParam(6, $dt_prazo, PDO::PARAM_STR);
         //data_prazo
         $stmt->bindParam(7, $dt_cadastro, PDO::PARAM_STR);
         //dt_cadastro
         $stmt->bindParam(8, $id_usuario, PDO::PARAM_INT);
         //usuario
         $stmt->bindParam(9, $interessado, PDO::PARAM_INT);
         //interessado
         $stmt->bindParam(10, $id_unidade, PDO::PARAM_INT);
         //id_unid_area_trabalho
         $stmt->bindParam(11, $ultimo_tramite, PDO::PARAM_STR);
         //ultimo_tramite
         $stmt->bindParam(12, $procedencia, PDO::PARAM_INT);
         //procedencia
         $stmt->bindParam(13, $id_unidade_usuario, PDO::PARAM_INT);
         //procedencia
         $stmt->execute();
         /* Registrar o primeiro volume do processo */
         $volume = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_VOLUME (ID_PROCESSO_CADASTRO, NU_VOLUME, FL_INICIAL, DT_ABERTURA,ID_USUARIO,ID_UNIDADE) VALUES (?, 1, 1,?,?,?)");
         $volume->bindParam(1, Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_PROCESSOS_CADASTRO_ID_SEQ'), PDO::PARAM_INT);
         //id do processo
         $volume->bindParam(2, $dt_autuacao, PDO::PARAM_STR);
         //usar a data da autuacao para informar a data de inicio do primeiro volume.
         $volume->bindParam(3, $id_usuario, PDO::PARAM_INT);
         $volume->bindParam(4, $id_unidade_usuario, PDO::PARAM_INT);
         $volume->execute();
         /* Inserir o historico de tramite do processo */
         /* Complemento do Historico do Processo */
         $acao = "Processo Cadastrado.";
         $destino = "XXXXX";
         $historico_processo = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS" . " (NUMERO_PROCESSO,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES(?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
         $historico_processo->bindParam(1, $numero_processo, PDO::PARAM_STR);
         $historico_processo->bindParam(2, $id_usuario, PDO::PARAM_INT);
         $historico_processo->bindParam(3, $nome_usuario, PDO::PARAM_STR);
         $historico_processo->bindParam(4, $id_unidade_historico, PDO::PARAM_INT);
         $historico_processo->bindParam(5, $diretoria, PDO::PARAM_STR);
         $historico_processo->bindParam(6, $acao, PDO::PARAM_STR);
         $historico_processo->bindParam(7, $tx_origem, PDO::PARAM_STR);
         $historico_processo->bindParam(8, $destino, PDO::PARAM_STR);
         $historico_processo->execute();
         Controlador::getInstance()->getConnection()->connection->commit();
         $this->out = array('success' => 'true', 'mensagem' => "Processo {$numero_processo} cadastrado com sucesso!");
     } catch (PDOException $e) {
         Controlador::getInstance()->getConnection()->connection->rollback();
         throw new BasePDOException($e);
     }
 }
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(23, 5, "TRAMITADO POR: ", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(172, 5, utf8_decode(DaoUsuario::getUsuario(null, 'nome')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(18, 5, "DATA - HORA: ", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(178, 5, date("d/m/Y " . " - " . "H:i:s"), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(28, 5, "ORIGEM DO TRAMITE:", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(152, 5, utf8_decode(DaoUnidade::getUnidade(null, 'nome')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(21, 5, utf8_decode("DESTINATÁRIO:"), 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(159, 5, utf8_decode(Session::get('_processos_recibo_destinatario')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(10, 5, "LOCAL:", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(170, 5, utf8_decode(Session::get('_processos_recibo_local')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(23, 5, "TRAMITADO POR: ", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(172, 5, utf8_decode(DaoUsuario::getUsuario(null, 'nome')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(18, 5, "DATA - HORA: ", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(178, 5, date("d/m/Y " . " - " . "H:i:s"), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(28, 5, "ORIGEM DO TRAMITE:", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(152, 5, DaoUnidade::getUnidade(null, 'nome'), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(21, 5, utf8_decode("DESTINATÁRIO:"), 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(159, 5, utf8_decode(Session::get('_digitais_recibo_destinatario')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
$pdf->Cell(10, 5, "LOCAL:", 0, 0, 'L');
$pdf->SetFont("Arial", "", 7);
$pdf->Cell(170, 5, utf8_decode(Session::get('_digitais_recibo_local')), 0, 0, 'L');
$pdf->Cell(5, 5, "", 0, 1, 'L');
$pdf->Cell(5, 5, "", 0, 0, 'C');
$pdf->SetFont("Arial", "B", 7);
<?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
 * */
//COLUNAS DA TABELA DO BANCO
$aColumns = array('ID', 'PAI', 'DIAS_RESTANTES', 'DIGITAL', 'DT_CADASTRO', 'DT_DOCUMENTO', 'ASSUNTO', 'NUMERO', 'TIPO', 'ORIGEM', 'INTERESSADO', 'ID_UNID_AREA_TRABALHO', 'PERMITE_ACAO');
//COLUNAS ONDE A PESQUISA TEXTUAL SERÁ FEITA
$aColumnsFTS = array('DIGITAL', 'ASSUNTO', 'NUMERO', 'TIPO', 'ORIGEM', 'INTERESSADO');
$sIndexColumn = "ID";
$sTable = "ext__snas__vw_area_trabalho_documentos";
$sExtraQuery = "area_busca = " . DaoUnidade::getUnidade(null, 'id');
print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, null, $sExtraQuery, $aColumnsFTS);
  * 
  */
 case 'get-unidades-ativas':
     $manterTramite['ID'] = (int) $_POST['idUnidade'];
     $rsUnidades = DaoTramite::listTramiteAtivo($manterTramite);
     $out = toUtf8($rsUnidades->resultado);
     break;
     /**
      * 
      */
 /**
  * 
  */
 case 'get-unidade':
     $idUnidade = (int) $_POST['idUnidade'];
     $nomeUnidade = DaoUnidade::getUnidade($idUnidade, 'NOME');
     if (isset($nomeUnidade) && !empty($nomeUnidade)) {
         $out = array('success' => true, 'nome' => $nomeUnidade);
     } else {
         throw new Exception('Ocorreu algum erro, tente novamente!');
     }
     break;
     /**
      * 
      */
 /**
  * 
  */
 case 'salvar-tramite':
     $manterTramite['ID_REFERENCIA'] = (int) $_POST['idReferencia'];
     $manterTramite['ID_UNIDADE'] = (int) $_POST['idUnidade'];
 /**
  * @param type $pai
  * @param type $filho
  * @param type $vinculacao
  * @return \Output
  */
 public function desvincularDocumento($pai, $filho, $vinculacao)
 {
     try {
         /* Valida se o vínculo é associação (que não tem regra de validação de área de trabalho)
          * OU
          * Validar se os documentos pai e filho ainda estao na area de trabalho do usuario
          * OU
          * Privilegio total para usuarios com permissao 
          */
         $controller = Controlador::getInstance();
         $auth = $controller->usuario;
         // permissao desanexar documento = 310114
         if ($vinculacao == 3 || DocumentoDemanda::validarDocumentoAreaDeTrabalho($pai) || $vinculacao == 1 && AclFactory::checaPermissao($controller->acl, $auth, DaoRecurso::getRecursoById(31120616))) {
             if ($vinculacao == 3 || DocumentoDemanda::validarDocumentoAreaDeTrabalho($filho) || $vinculacao == 1 && AclFactory::checaPermissao($controller->acl, $auth, DaoRecurso::getRecursoById(31120616))) {
                 switch ($vinculacao) {
                     case 1:
                         $operacao = 'desanexado';
                         break;
                     case 2:
                         $operacao = 'desapensado';
                         break;
                     case 3:
                         $operacao = 'desassociado';
                         break;
                     default:
                         break;
                 }
                 /* Inicar transacao */
                 Controlador::getInstance()->getConnection()->connection->beginTransaction();
                 /* Verificar se existe um vinculo existe ativo e quais sao os historicos de tramite */
                 $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT\n                            DV.ID AS ID_VINCULO,\n                            HF.ID AS ID_HISTORICO_FILHO,\n                             HP.ID AS ID_HISTORICO_PAI,\n                             DCF.DIGITAL AS FILHO,\n                             DCP.DIGITAL AS PAI\n                            FROM TB_DOCUMENTOS_VINCULACAO DV\n                             INNER JOIN TB_DOCUMENTOS_CADASTRO DCP ON DV.ID_DOCUMENTO_PAI = DCP.ID\n                             INNER JOIN TB_DOCUMENTOS_CADASTRO DCF ON DV.ID_DOCUMENTO_FILHO = DCF.ID\n                             LEFT JOIN TB_HISTORICO_TRAMITE_DOCUMENTOS HP ON DV.ID_HISTORICO_TRAMITE_PAI = HP.ID\n                             LEFT JOIN TB_HISTORICO_TRAMITE_DOCUMENTOS HF ON DV.ID_HISTORICO_TRAMITE_FILHO = HF.ID\n                            WHERE\n                             DCP.DIGITAL = ? AND\n                             DCF.DIGITAL = ? AND\n                             DV.ID_VINCULACAO = ? AND\n                             DV.FG_ATIVO = 1 AND DV.ST_ATIVO = 1 LIMIT 1");
                 $stmt->bindParam(1, $pai, PDO::PARAM_STR);
                 $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                 $stmt->bindParam(3, $vinculacao, PDO::PARAM_INT);
                 $stmt->execute();
                 $out = $stmt->fetch(PDO::FETCH_ASSOC);
                 /* Se desanexacao */
                 if (!empty($out) && $vinculacao == 1) {
                     /* Desvincular */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_VINCULACAO SET FG_ATIVO = 0 WHERE ID = ?");
                     $sthp->bindParam(1, $out['ID_VINCULO'], PDO::PARAM_INT);
                     $sthp->execute();
                     /* Log Vinculo */
                     new Log('TB_DOCUMENTOS_VINCULACAO', $out['ID_VINCULO'], $auth->ID, 'desanexar');
                     /* Remover historico tramite pai */
                     if (!is_null($out['ID_HISTORICO_PAI'])) {
                         $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_HISTORICO_TRAMITE_DOCUMENTOS SET ST_ATIVO = 0 WHERE ID = ?");
                         $sthp->bindParam(1, $out['ID_HISTORICO_PAI'], PDO::PARAM_INT);
                         $sthp->execute();
                         /* Log Historico Pai */
                         new Log('HISTORICO_TRAMITE', $out['ID_HISTORICO_PAI'], $auth->ID, 'excluir');
                     }
                     /* Remover historico tramite filho */
                     if (!is_null($out['ID_HISTORICO_FILHO'])) {
                         $sthf = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_HISTORICO_TRAMITE_DOCUMENTOS SET ST_ATIVO = 0 WHERE ID = ?");
                         $sthf->bindParam(1, $out['ID_HISTORICO_FILHO'], PDO::PARAM_INT);
                         $sthf->execute();
                         /* Log Historico Filho */
                         new Log('HISTORICO_TRAMITE', $out['ID_HISTORICO_FILHO'], $auth->ID, 'excluir');
                     }
                 }
                 /* Se desapensacao */
                 if (!empty($out) && $vinculacao == 2) {
                     /* Variaveis do historico de tramite */
                     $acao_filho = "Este documento foi {$operacao} do documento {$pai}";
                     // historico filho
                     $acao_pai = "O documento {$filho} foi {$operacao}.";
                     // historico pai
                     $ultimo_tramite = "Este documento foi {$operacao} do documento {$pai}.";
                     //ultimo tramite filho
                     $destino = "XXXXX";
                     $origem = "XXXXX";
                     $id_usuario = $auth->ID;
                     $id_unidade = $auth->ID_UNIDADE_ORIGINAL;
                     $nome_usuario = $auth->NOME;
                     $diretoria = DaoUnidade::getUnidade($id_unidade, 'nome');
                     /* Desvincular */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_VINCULACAO SET FG_ATIVO = 0 WHERE ID = ?");
                     $sthp->bindParam(1, $out['ID_VINCULO'], PDO::PARAM_INT);
                     $sthp->execute();
                     /* Adicionar historico tramite pai */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP(0))");
                     $sthp->bindParam(1, $pai, PDO::PARAM_STR);
                     //digital pai
                     $sthp->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthp->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthp->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthp->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthp->bindParam(6, $acao_pai, PDO::PARAM_STR);
                     //acao pai
                     $sthp->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthp->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthp->execute();
                     /* Adicionar historico tramite filho */
                     $sthf = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP(0))");
                     $sthf->bindParam(1, $filho, PDO::PARAM_STR);
                     //digital filho
                     $sthf->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthf->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthf->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthf->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthf->bindParam(6, $acao_filho, PDO::PARAM_STR);
                     //acao filho
                     $sthf->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthf->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthf->execute();
                     /* Ultimo tramite - Documento Filho */
                     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE DIGITAL = ?");
                     $stmt->bindParam(1, $ultimo_tramite, PDO::PARAM_STR);
                     //acao
                     $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                     //digital filho
                     $stmt->execute();
                 }
                 /* Se desassociação */
                 if (!empty($out) && $vinculacao == 3) {
                     /* Variaveis do historico de tramite */
                     $acao_filho = "Este documento foi {$operacao} do documento {$pai}";
                     // historico filho
                     $acao_pai = "O documento {$filho} foi {$operacao}.";
                     // historico pai
                     $ultimo_tramite = "Este documento foi {$operacao} do documento {$pai}.";
                     //ultimo tramite filho
                     $destino = "XXXXX";
                     $origem = "XXXXX";
                     $id_usuario = $auth->ID;
                     $id_unidade = $auth->ID_UNIDADE_ORIGINAL;
                     $nome_usuario = $auth->NOME;
                     $diretoria = DaoUnidade::getUnidade($id_unidade, 'nome');
                     /* Desvincular */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_VINCULACAO SET FG_ATIVO = 0 WHERE ID = ?");
                     $sthp->bindParam(1, $out['ID_VINCULO'], PDO::PARAM_INT);
                     $sthp->execute();
                     /* Adicionar historico tramite pai */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP(0))");
                     $sthp->bindParam(1, $pai, PDO::PARAM_STR);
                     //digital pai
                     $sthp->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthp->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthp->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthp->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthp->bindParam(6, $acao_pai, PDO::PARAM_STR);
                     //acao pai
                     $sthp->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthp->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthp->execute();
                     /* Adicionar historico tramite filho */
                     $sthf = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP(0))");
                     $sthf->bindParam(1, $filho, PDO::PARAM_STR);
                     //digital filho
                     $sthf->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthf->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthf->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthf->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthf->bindParam(6, $acao_filho, PDO::PARAM_STR);
                     //acao filho
                     $sthf->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthf->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthf->execute();
                     /* Ultimo tramite - Documento Filho */
                     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE DIGITAL = ?");
                     $stmt->bindParam(1, $ultimo_tramite, PDO::PARAM_STR);
                     //acao
                     $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                     //digital filho
                     $stmt->execute();
                 }
                 /* Comitar */
                 Controlador::getInstance()->getConnection()->connection->commit();
                 return new Output(array('success' => 'true', 'message' => "Documento {$operacao} com sucesso!"));
             } else {
                 /* Retorna quando o documento filho nao esta na area de trabalho do usuario */
                 return new Output(array('success' => 'false', 'error' => "O documento {$filho} não está na sua área de trabalho!"));
             }
         } else {
             /* Retorna quando o documento pai nao esta na area de trabalho do usuario */
             return new Output(array('success' => 'false', 'error' => "O documento {$pai} não está na sua área de trabalho!"));
         }
     } catch (PDOException $e) {
         Controlador::getInstance()->getConnection()->connection->rollBack();
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }
 }
 $documento = new Documento($_POST);
 $documento->nome = $nome;
 if ($cpf) {
     $documento->cpf = $cpf;
 }
 if ($email) {
     $documento->email = $email;
 }
 $out = DaoDocumento::validarNumSolicitacaoSic($documento->numero)->toArray();
 if ($out['success'] != 'true') {
     // Numero de solicitacao já cadastrado
     print json_encode($out);
     exit;
 }
 $oDestino = DaoUnidade::getUnidade(null);
 $documento->digital = $dig['digital'];
 $documento->tipo = "INFORMACAO SIC";
 $documento->origem = "CGU";
 $documento->destino = $oDestino['nome'] . ' - ' . $oDestino['sigla'];
 $documento->tecnico_responsavel = "RESPONSÁVEL SIC";
 $documento->assunto_complementar = $ocr;
 $documento->interessado = $interessado;
 $documento->assinatura = NULL;
 $documento->cargo = NULL;
 $documento->procedencia = "E";
 $documento->data_entrada = date('d/m/Y');
 $documento->recibo = Zend_Auth::getInstance()->getIdentity()->NOME;
 $documento->diretoria = $_POST['id_unidade_destino'];
 $out = DaoDocumento::salvarDocumento($documento)->toArray();
 if ($out['success'] == 'true') {
 }
 fwrite($fp, "\n----- DEMANDA " . ($i + 1) . " -----\n");
 foreach ($arrOpcSel as $opt) {
     if ($opt != 'prz-ppa' && $opt != 'prz-exec_orc') {
         if (substr($opt, 0, 3) == 'prz') {
             /*
             										 if (!isset($arrSaidaPrz[$prazo['sq_prazo']])) {
             										$arrSaidaPrz[$prazo['sq_prazo']] = array();
             										}*/
             $arrTmp = getOpcao($arrOpcoes, 'id', $opt);
             //$arrCabecalho[] = $arrTmp[0]['label'];
             //$arrSaidaPrz[$prazo['sq_prazo']][] = $prazo[$arrTmp[0]['campo']];
             $prz_label = $arrTmp[0]['label'];
             $prz_campo = $prazo[$arrTmp[0]['campo']];
             if ($opt == 'prz-id_unid_destino') {
                 $prz_campo = DaoUnidade::getUnidade($prazo[$arrTmp[0]['campo']], 'nome');
             }
             fwrite($fp, $prz_label . ': ' . $prz_campo . "\n");
         }
     }
 }
 if ($buscarPPA || $buscarExecOrc) {
     $arrPpa = DaoPrazoDemanda::listarObjetivosMetasPpa($prazo['sq_prazo']);
     if ($arrPpa !== false) {
         fwrite($fp, "\n----- OBJETIVOS E METAS PPA/LOA -----\n");
         for ($j = 0; $j < count($arrPpa); $j++) {
             fwrite($fp, 'Programa: ' . $arrPpa[$j]['PROGRAMA'] . "\n");
             fwrite($fp, 'Exercício: ' . $arrPpa[$j]['EXERCICIO'] . "\n");
             fwrite($fp, 'Objetivo: ' . $arrPpa[$j]['OBJETIVO'] . "\n");
             fwrite($fp, 'Meta: ' . $arrPpa[$j]['META'] . "\n\n");
         }
/*
 * 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
 * */
$DIRETORIA = DaoUnidade::getUnidade(null, 'id');
$REQUEST = isset($_GET['request']) ? $_GET['request'] : NULL;
$out = null;
if ($REQUEST == 'D') {
    $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT DIGITAL FROM TB_DOCUMENTOS_CADASTRO WHERE ID_UNID_AREA_TRABALHO = ? ORDER BY DIGITAL;");
    $stmt->bindParam(1, $DIRETORIA, PDO::PARAM_INT);
    $stmt->execute();
    $resul = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if (empty($resul)) {
        $out = array('success' => 'false');
    } else {
        foreach ($resul as $value) {
            $doc = array();
            $doc['numero'] = $value['DIGITAL'];
            $array[] = $doc;
        }