~~ODT~~

Última atualização: 2017/04/03 18:22 (edição externa)

Código de Barras

A utilização da ferramenta de leitura de código de barra tem como finalidade facilitar o registro de movimentações de processos e documentos nas unidades que apresentam um maior de fluxo de processo, como as unidades de protocolo central ou setorial nas instituições.

Esse caso de uso é utilizado pelos responsáveis pelo recebimento e envio de processos (geralmente função atribuída aos secretários dos setores) com a finalidade de realizar o registro eletrônico do recebimento ou envio de processo(s) e de documento(s) entre unidades.

Esse caso de uso se inicia quando o usuário acessa o caminho: SIPAC → Portal Administrativo → Protocolo → CÓDIGO DE BARRAS.

Ao acessá-lo, o sistema irá disponibilizar para download um arquivo com a extensão .jnlp. Este arquivo, ao ser executado, executa a ferramenta de leitura de código de barra.

Passo 1

O caso de uso começa com o usuário informando os seus dados para acessar a aplicação:

  • Usuário*: Tipo TEXTO.
  • Senha*: Tipo TEXTO. Campo de Senha.

Caso o usuário possua mais de uma unidade associada ao mesmo, deve indicar sua unidade de trabalho:

  • Unidade: Tipo TEXTO, formato: CÓDIGO - DENOMINAÇÃO UNIDADE.

Passo 2

Nesse passo pode ser escolhido qual tipo de movimentação que se deseja realizar:

  • Recebimento de Processos/Documentos(RN01, RN02, RN03 e RN06).
    • Posicione o Leitor no Código de Barras do Processo/Documento: Formato - 99999999999999999, Tipo - NUMÉRICO.
    • Abaixo são mostrados os Processos/documentos Recebidos:
      • Número: Formato - RADICAL.NÚMERO/AAAA-DV, Tipo - NUMÉRICO.
      • Assunto: Tipo - TEXTO.
      • Origem: Formato - SIGLA DA UNIDADE(CÓDIGO DA UNIDADE), Tipo - NUMÉRICO.
  • Envio de Processos/Documentos(RN04, RN05 e RN06):
    • Unidade Destino: Tipo AUTOCOMPLETE, formato: CÓDIGO - DENOMINAÇÃO UNIDADE, entrada de dados: CÓDIGO ou DENOMINAÇÃO.
    • Tempo Esperado na Unidade de Destino: Formato - 999(Em Dias), Tipo - NUMÉRICO.
    • Posicione o Leitor no Código de Barras do Processo/Documento: Formato - 99999999999999999, Tipo - NUMÉRICO.
    • Abaixo são mostrados os Processos/documentos Enviados:
      • Número: Formato - 99999.999999/9999-99, Tipo - NUMÉRICO.
      • Assunto: Tipo - TEXTO.
      • Destino: Formato - SIGLA DA UNIDADE(CÓDIGO DA UNIDADE), Tipo - NUMÉRICO.

O caso de uso é finalizado.

Para o recebimento:

  • RN01 - Caso o Processo/Documento esteja na unidade do usuário, este já não pode ter sido recebido por ela.
  • RN02 - Não é possível receber um processo/documento que já foi recebido por outra unidade.
  • RN03 - Caso o processo/documento, que está sendo recebido, foi enviado para uma unidade externa. O mesmo só poderá ser recebido caso a unidade do usuário tenha a permissão de tramitação externa.

Para o envio:

  • RN04 - A unidade de destino selecionada deve possuir pelo menos um usuário cadastrado no sistema para receber processos/documentos.
  • RN05 - O processo/documento deve se encontrar na unidade do usuário.

Para ambos:

  • RN06 - Não é possível movimentar um Documento que está associado a um Processo.

Resoluções/Legislações Associadas

Não se Aplica.

Classe Tabela
br.ufrn.sipac.protocolo.dominio.Processo administrativo.protocolo.processo
br.ufrn.sipac.protocolo.dominio.Documento administrativo.protocolo.documento
br.ufrn.sipac.cadastro.dominio.Unidade administrativo.public.unidade
br.ufrn.sipac.protocolo.dominio.Movimento administrativo.protocolo.movimento

Plano de Teste

Sistema: SIPAC

Módulo: Portal Administrativo

Link(s): Protocolo → CÓDIGO DE BARRAS

Usuário: jbb, marcilia, bruma, jmcoelho, elizabete. (Todos apresentam ambos papeis abaixo)

Papel que usuário deve ter: ProtocoloPapeis.ENVIAR_PROTOCOLO, ProtocoloPapeis.RECEBER_PROTOCOLO

  • Realizar o recebimento e o envio de processo e documentos pela ferramenta de código de barras.
  • Pode-se verificar se o processo foi movimentado corretamente através do caso de uso SIPAC → Protocolo → Consultas/Relatórios → Consultas → Processo Detalhado
  • Pode-se verificar se o documento foi movimentado corretamente através do caso de uso SIPAC → Protocolo → Consultas/Relatórios → Consultas → Documentos
  • Nos caminhos acima também é possível a impressão da capa do processo e o comprovante do documentos. Documentos(capa e comprovante) estes que apresentam os códigos de barras de ambos

A consulta abaixo traz o processo caso este se encontre na unidade do usuário e que ainda não foi recebido (RN01, RN02):

SELECT p.radical, p.num_protocolo, p.ano, p.dv
FROM protocolo.processo p
	JOIN protocolo.movimento m ON m.id_movimento = p.id_movimento_atual
	JOIN comum.unidade un_destino ON un_destino.id_unidade = m.id_unidade_destino,
comum.usuario usuario 	
WHERE p.radical = <RADICAL_DO_PROCESSO>
AND p.num_protocolo = <NÚMERO_DO_PROCESSO>
AND p.ano = <ANO_DO_PROCESSO> 
AND p.dv = <DV_DO_PROCESSO>
AND m.data_recebimento_destino IS NULL -- Não recebido pela unidade
AND un_destino.id_unidade = usuario.id_unidade -- Na unidade do usuário
AND usuario.login = '<LOGIN_DO_USUÁRIO>'
ORDER BY p.radical, p.ano, p.num_protocolo

A consulta abaixo traz o documento caso este se encontre na unidade do usuário e que ainda não foi recebido (RN01, RN02):

SELECT d.radical_protocolo, d.numero_protocolo, d.ano_protocolo, d.dv_protocolo
FROM protocolo.documento d
	JOIN protocolo.movimento_documento m ON m.idmovimento_documento = d.id_movimento_atual
	JOIN comum.unidade un_destino ON un_destino.id_unidade = m.codigounidadedestino,
comum.usuario usuario 	
WHERE d.radical_protocolo = <RADICAL_DO_DOCUMENTO>
AND d.numero_protocolo = <NÚMERO_DO_DOCUMENTO>
AND d.ano_protocolo = <ANO_DO_DOCUMENTO> 
AND d.dv_protocolo = <DV_DO_DOCUMENTO>
AND m.datarecebimentodestino NOT NULL -- Não recebido pela unidade
AND un_destino.id_unidade = usuario.id_unidade -- Na unidade do usuário
AND usuario.login = '<LOGIN_DO_USUÁRIO>'
ORDER BY d.radical_protocolo, d.ano_protocolo, d.numero_protocolo

A consulta abaixo traz os dados da unidade caso esta apresente usuários com permissão de recebimento de processos (RN04):

-- Banco: sistemas_comum
SELECT id_unidade, codigo_unidade, nome_capa, nome FROM comum.unidade 
WHERE id_unidade IN (
	SELECT DISTINCT u.id_unidade 
	FROM comum.unidade u, comum.usuario us, comum.permissao pe, comum.papel pa
	WHERE us.id_unidade = u.id_unidade 
	AND pe.id_usuario = us.id_usuario 
	AND pa.id = pe.id_papel 
	AND pa.id = 6
	AND u.codigo_unidade = '<CÓDIGO_DA_UNIDADE>'
	UNION
	SELECT DISTINCT u.id_unidade 
	FROM comum.unidade u, comum.usuario_unidade us, comum.permissao pe, comum.papel pa 
	WHERE us.id_unidade = u.id_unidade 
	AND pe.id_usuario = us.id_usuario 
	AND pa.id = pe.id_papel 
	AND pa.id = 6
	AND u.codigo_unidade = '<CÓDIGO_DA_UNIDADE>'
) 

A consulta abaixo traz o processo caso este se encontre recebido pela unidade do usuário ou por uma das suas unidades filhas (RN05):

SELECT p.radical, p.num_protocolo, p.ano, p.dv
FROM protocolo.processo p
	JOIN protocolo.movimento m ON m.id_movimento = p.id_movimento_atual
	JOIN comum.unidade un_destino ON un_destino.id_unidade = m.id_unidade_destino,
comum.usuario usuario 	
WHERE p.radical = <RADICAL_DO_PROCESSO>
AND p.num_protocolo = <NÚMERO_DO_PROCESSO>
AND p.ano = <ANO_DO_PROCESSO> 
AND p.dv = <DV_DO_PROCESSO>
AND m.data_recebimento_destino IS NOT NULL -- Recebido pela unidade
AND (un_destino.id_unidade = usuario.id_unidade OR un_destino.unidade_responsavel = usuario.id_unidade)
AND usuario.login = '<LOGIN_DO_USUÁRIO>'
ORDER BY p.radical, p.ano, p.num_protocolo

A consulta abaixo traz o documento caso este se encontre recebido pela unidade do usuário ou por uma das suas unidades filhas (RN05):

SELECT d.radical_protocolo, d.numero_protocolo, d.ano_protocolo, d.dv_protocolo
FROM protocolo.documento d
	JOIN protocolo.movimento_documento m ON m.idmovimento_documento = d.id_movimento_atual
	JOIN comum.unidade un_destino ON un_destino.id_unidade = m.codigounidadedestino,
comum.usuario usuario 	
WHERE d.radical_protocolo = <RADICAL_DO_DOCUMENTO>
AND d.numero_protocolo = <NÚMERO_DO_DOCUMENTO>
AND d.ano_protocolo = <ANO_DO_DOCUMENTO> 
AND d.dv_protocolo = <DV_DO_DOCUMENTO>
AND m.datarecebimentodestino IS NOT NULL -- Recebido pela unidade
AND (un_destino.id_unidade = usuario.id_unidade OR un_destino.unidade_responsavel = usuario.id_unidade)
AND usuario.login = '<LOGIN_DO_USUÁRIO>'
ORDER BY d.radical_protocolo, d.ano_protocolo, d.numero_protocolo

A consulta abaixo traz o documento caso este não se encontre associado a um processo (RN06):

SELECT d.radical_protocolo, d.numero_protocolo, d.ano_protocolo, d.dv_protocolo
FROM protocolo.documento d
WHERE d.radical_protocolo = <RADICAL_DO_DOCUMENTO>
AND d.numero_protocolo = <NÚMERO_DO_DOCUMENTO>
AND d.ano_protocolo = <ANO_DO_DOCUMENTO> 
AND d.dv_protocolo = <DV_DO_DOCUMENTO>
AND d.id_processo IS NULL

Para a RN03:

A consulta abaixo traz os documentos que foram enviados para unidades externas:

SELECT d.radical_protocolo, d.numero_protocolo, d.ano_protocolo, d.dv_protocolo
FROM protocolo.documento d
	JOIN protocolo.movimento_documento m ON m.idmovimento_documento = d.id_movimento_atual
WHERE m.id_orgao_externo_destino IS NOT NULL

A consulta abaixo traz os processos que foram enviados para unidades externas:

SELECT p.radical, p.num_protocolo, p.ano, p.dv
FROM protocolo.processo p
	JOIN protocolo.movimento m ON m.id_movimento = p.id_movimento_atual
WHERE m.id_unidade_externa IS NOT NULL

A consulta abaixo lista as unidades que apresentam permissão de tramitação externa:

SELECT u.codigo_unidade, u.nome
FROM protocolo.unidade_tramitacao_externa ute
	JOIN comum.unidade u ON u.id_unidade = ute.id_unidade
WHERE ute.ativo = TRUE;
  • desenvolvimento/especificacoes/sipac/portal_administrativo/casos_de_uso/protocolo/codigo_de_barras.txt
  • Última modificação: 2017/04/03 18:22
  • (edição externa)