~~ODT~~
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.
O caso de uso começa com o usuário informando os seus dados para acessar a aplicação:
Caso o usuário possua mais de uma unidade associada ao mesmo, deve indicar sua unidade de trabalho:
Nesse passo pode ser escolhido qual tipo de movimentação que se deseja realizar:
O caso de uso é finalizado.
Para o recebimento:
Para o envio:
Para ambos:
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 |
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
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;