~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Alterar Documento ====== Um [[cadastrar_documento|documento]] reúne informações que podem tramitar por várias unidades ao longo do seu desenvolvimento. Cada unidade envolvida tem a possibilidade de incrementar informações no documento em forma de Despacho Eletrônico de Documento. Esse caso de uso tem a finalidade de realizar a alteração de um documento. Para alterar um documento esse deve ter sido [[cadastrar_documento| cadastrado]]. É utilizado pelos gestores de documentos nas unidades ou por servidores de unidades protocolizadoras. ===== Descrição do Caso de Uso ===== Esse caso de uso se inicia quando o usuário acessa o caminho: //SIPAC -> Protocolo -> Documentos -> Cadastro -> Alterar Documento//. === Passo 1 === O caso de uso começa com o usuário acessando o sistema e listando os documentos que estão na sua unidade e os quais podem ser selecionados para a alteração. Estes documentos podem ser buscados utilizando os seguintes filtros: * **Protocolo**: Formato - 99999.999999/AAAA-99 [RADICAL.NÚMERO-ANO/DÍGITO VERIFICADOR], Tipo - NUMÉRICO. * **Origem**: Formato - INTERNA | EXTERNA, Tipo - TEXTO. * **Identificador**: Tipo - TEXTO. * **Número**: Tipo - NUMÉRICO. * **Ano do Documento**: Formato - AAAA, Tipo - NUMÉRICO. * **Assunto do Documento**: Formato - CÓDIGO | DENOMINAÇÃO , Tipo - AUTOCOMPLETE. * **Tipo do Documento**: Formato - DENOMINAÇÃO DO TIPO DE DOCUMENTO, Tipo - TEXTO. * **Unidade de Origem**: Formato - CÓDIGO DA UNIDADE | NOME DA UNIDADE, Tipo - AUTOCOMPLETE. * **Órgão Externo de Origem**: Formato - NOME DO ÓRGÃO EXTERNO, Tipo - AUTOCOMPLETE. * **Período do Documento**: Formato - DD/MM/AAAA, Tipo - DATA. * **Período do Cadastro**: Formato - DD/MM/AAAA, Tipo - DATA. * **Todos os Documentos**: Tipo - LÓGICO * **__Dados da Última Movimentação__**: * **Unidade de Origem**: Formato - CÓDIGO DA UNIDADE | NOME DA UNIDADE, Tipo - AUTOCOMPLETE. * **Órgão Externo de Origem**: Formato - NOME DO ÓRGÃO EXTERNO, Tipo - AUTOCOMPLETE. * **Período do Envio**: Formato - DD/MM/AAAA, Tipo - DATA. * **Período do Recebimento**: Formato - DD/MM/AAAA, Tipo - DATA. Os documentos são listados exibindo os seguintes dados: * **__Protocolo__**: Formato - 23077.999999/AAAA-99 (radical.numero/ano-dv), Tipo - NUMÉRICO. * **__Identificador__**: Formato - IDENTIFICADOR DO DOCUMENTO, Tipo - TEXTO. * **__Número__**: Formato - NÚMERO DO DOCUMENTO, Tipo - NUMÉRICO. * **__Ano__**: Formato - AAAA, Tipo - NUMÉRICO. * **__Data de Cadastro__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Tipo do Documento__**: Formato - DENOMINAÇÃO DO TIPO DO DOCUMETO, Tipo - TEXTO. * **__Origem__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO * **__Assunto do Documento__**([[#principais_regras_de_negócio|RN05]]): Formato - 999.999 - NOME COMPLETO DA CLASSIFICAÇÃO CONARQ , Tipo - TEXTO. * **__Observação__**: Tipo - TEXTO . * Para cada documento existem as opções: * //Exibir Detalhes//, onde são exibidos os dados detalhados do documento: * **__Protocolo__**: Formato - 23077.999999/AAAA-99 (radical.numero/ano-dv), Tipo - NUMÉRICO. * **__Protocolo Original do Documento__**: Formato - XXXXXXXX , Tipo - NUMÉRICO e TEXTO. * **__Assunto do Documento__**([[#principais_regras_de_negócio|RN05]]): Formato - 999.999 - NOME COMPLETO DA CLASSIFICAÇÃO CONARQ , Tipo - TEXTO. * **__Tipo do Documento__**: Formato - DENOMINAÇÃO DO TIPO DO DOCUMETO, Tipo - TEXTO. * **__Documento__**: Formato - IDENTIFICADOR DO DOCUMENTO/AAAA, Tipo - TEXTO e NUMÉRICO. * **__Data do Documento__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Unidade de Origem__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO. Exibido caso seja um documento de origem interna. * **__Órgão Externo de Origem__**: Formato - NOME DO ÓRGÃO EXTERNO, Tipo - TEXTO. Exibido caso seja um documento de origem externa. * **__Data de Autuação Original__**: Formato - DD/MM/AAAA, Tipo - DATA. Exibido caso seja um documento externo. * **__Data de Autuação__**: Formato - DD/MM/AAAA, Tipo - DATA. Exibido caso seja um documento interno. * **__Usuário de Autuação__**: Formato - NOME DO USUÁRIO, Tipo - TEXTO. Exibido caso seja um documento interno. * **__Data de Cadastro__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Observação__**: Tipo - TEXTO . * **__Processo Associado__**: Formato - 23077.999999/AAAA-99 (radical.numero/ano-dv), Tipo - NUMÉRICO. Exibido caso o documento seja uma peça de um processo. * **__Memorando respondido__**: * **__Tipo__**: Formato - DENOMINAÇÃO DO TIPO, Tipo - TEXTO. * **//Visualizar Memorando//** * **__Data__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Documento__**: Formato - IDENTIFICADOR DO DOCUMENTO/AAAA, Tipo - TEXTO e NUMÉRICO. * **__Identificador__**: Formato - CÓDIGO DO MEMORANDO, Tipo - NUMÉRICO. * **__Origem__**: Formato - CÓDIGO UNIDADE - NOME DA UNIDADE, Tipo - NUMÉRICO e TEXTO. * **__Observação__**: Tipo - TEXTO. * **__Movimentações do Documento__**: * **__Data Origem__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Destino__**: Formato - SIGLA DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO e NUMÉRICO. * **__Enviado Por__**: Formato - LOGIN DO USUÁRIO, Tipo - TEXTO. * **__Recebido Em__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Recebido Por__**: Formato - LOGIN DO USUÁRIO, Tipo - TEXTO. * **__Obs.:__**: Tipo - TEXTO. * **__Despacho__**: Formato - DD/MM/AAAA - NOME DA UNIDADE (CODIGO DA UNIDADE) , Tipo - DATA, TEXTO e NUMÉRICO. * **__Ocorrências deste documento__**: * **__Ocorrência__**: Tipo - TEXTO. * **__Data do Cadastro__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Data Ocorrência__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Usuário__**: Formato - NOME DO USUÁRIO, Tipo - TEXTO. * **__Arquivos anexados ao Documento__**: * **__Nome__**: Formato - NOME DO ANEXO, Tipo - TEXTO. * **__Descrição__**: Formato - DESCRIÇÃO DO ARQUIVO ANEXADO, Tipo - TEXTO. * Para cada arquivo temos a opção: * **//Baixar Arquivo//**: Usado queria fazer o download do anexo. * //Selecionar Documento//, onde segue para o fluxo de [[cadastrar_documento|Cadastrar Documento]]. O caso de uso é finalizado ([[#principais_regras_de_negócio|RN08]]). ===== Principais Regras de Negócio ===== As mesmas RNs do caso de uso de [[cadastrar_documento|Cadastrar Documento]] e as seguintes: * **RN01** - Só é possível alterar documentos ativos que estejam na unidade do usuário e que tenham sido recebidos por ela. * **RN02** - Apenas os usuários de unidades protocolizadoras ou que apresentam a permissão de gestor de documentos na unidade na qual está logado no sistema podem acessar o caso de uso. Ou seja, além de ter o papel de gestor de documentos, o usuário deve ter permissão desse papel para a unidade que está acessando o sistema. * **RN03** - Na alteração de documento externos poderão ser alterados o número de protocolo original. Apenas no caso de alterar do número de protocolo original fora do padrão 9999.9999/9999-99, não haverá, no final, mudança do número do protocolo do documento. * **RN04** - No final, as alterações devem ser registradas em uma ocorrência, apenas para fins de informação. Essa ocorrências podem ser visualizados no documento detalhado. * **RN05** - Caso seja um memorando, ao invés do //Assunto do Documento// será exibido o //Assunto do Memorando//. Caso ambos não existam o assunto fica como //NÃO DEFINIDO//. * **RN06** - Na confirmação da alteração do documentos será verificado a duplicidade do mesmo seguindo os critérios do tipo, ano, origem, destino e interessado(s). Caso seja constato documentos com a mesma características será alertado ao usuário com a opção de cancelar a operação ou cadastrá-lo mesmo assim. ==== Resoluções/Legislações Associadas ==== {{:desenvolvimento:especificacoes:sipac:protocolo:portaria_normativa_5-2002.pdf | PORTARIA NORMATIVA Nº 5, DE 19 DE DEZEMBRO DE 2002}}: Dispõe sobre os procedimentos gerais para utilização dos serviços de protocolo, no âmbito da Administração Pública Federal, para os órgãos e entidades integrantes do Sistema de Serviços Gerais - SISG. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sipac.protocolo.dominio.Documento | administrativo.protocolo.documento | | br.ufrn.sipac.protocolo.dominio.MovimentoDocumento | administrativo.protocolo.movimento_documento | | br.ufrn.sipac.protocolo.dominio.ClassificacaoConarq | administrativo.protocolo.classificacao_conarq | ====== Plano de Teste ====== Sistema: SIPAC Módulo: Protocolo Link(s): Documentos -> Cadastro -> Alterar Documento Usuário: jbb (Gestor Documentos), anamaria (Unidade Protocolizadora) Papel que usuário deve ter: SipacPapeis.CADASTRAR_PROTOCOLO ===== Cenários de Teste ===== * Verificar se é informado o radical do documento pelo sistema corretamente no cadastro. (Ver 2º item abaixo). * Pode-se verificar se o documento foi alterado corretamente através do caso de uso //**SIPAC -> Protocolo -> Consultas/Relatórios -> Consultas -> Documentos**// ===== Dados para o Teste ===== Para a **RN02**, podemos usar: * Para encontrar usuários com a permissão de alterar documento e que apresentam mais de uma unidade, usamos : SELECT pa.nome, u.login FROM comum.usuario_unidade uu JOIN comum.usuario u ON u.id_usuario = uu.id_usuario JOIN comum.pessoa p ON p.id_pessoa = u.id_pessoa JOIN comum.unidade un ON un.id_unidade = uu.id_unidade JOIN comum.permissao pe ON pe.id_usuario = u.id_usuario JOIN comum.papel pa ON pa.id = pe.id_papel WHERE pe.id_papel = 15 GROUP BY pe.id_unidade_papel, pa.nome, u.login, uu.id_usuario ORDER BY u.login * Para saber quais das unidades o usuário tem permissão de alteração de documentos, usamos: SELECT pa.nome, u.login, un.codigo_unidade, un.nome FROM comum.usuario u JOIN comum.permissao pe ON pe.id_usuario = u.id_usuario JOIN comum.papel pa ON pa.id = pe.id_papel JOIN comum.unidade un ON un.id_unidade = pe.id_unidade_papel WHERE u.login like '' AND pe.id_papel = 15 Caso nenhuma unidade seja mostrada, significa que não tem restrição de unidade. Para sabermos os usuários das unidades protocolizadoras usamos: SELECT u.login, un.nome FROM comum.usuario u JOIN comum.unidade un ON un.id_unidade = u.id_unidade WHERE un.protocolizadora = true Para a **RN03**, podemos saber se um documento é externo verificando seu atributo: SELECT d.* FROM protocolo.documento d WHERE d.documento_externo = true;