~~ODT~~
Alterar Destino da Requisição
Este caso de uso permite que uma requisição encaminhada para um almoxarifado de destino seja redirecionada para outro almoxarifado, caso o gestor de almoxarifado entenda que seja necessário. Este Caso de uso está especificado em Alterar destino da requisição do módulo Infraestrutura.
Principais Regras de Negócio
- RN01 - A requisição só pode ter seu destino alterado se seu status for
Enviada
. - RN02 - Se o almoxarifado da unidade do usuário for o
CENTRAL
, serão listados todos os almoxarifados, senão serão listados apenas os almoxarifados que podem atender a requisição de acordo com a unidade requisitante.
Plano de Teste
Sistema: SIPAC
Módulo: Almoxarifado
Link(s): Aba de Requisições → Material/Requisições → Alterar Destino da Requisição
Usuários: genibaldo
Papel que usuário deve ter: SipacPapeis.GESTOR_ALMOXARIFADO
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.almoxarifado.comuns.dominio.Almoxarifado | administrativo.almoxarifado.almoxarifado |
br.ufrn.comum.dominio.PessoaGeral | administrativo.comum.pessoa |
br.ufrn.comum.dominio.UsuarioGeral | administrativo.comum.usuario |
br.ufrn.sipac.requisicoes.material.dominio.GrupoMaterial | administrativo.public.grupo_material |
br.ufrn.sipac.requisicoes.material.dominio.RequisicaoMaterial | administrativo.requisicoes.requisicao_material |
br.ufrn.sipac.requisicoes.comuns.TipoRequisicao | administrativo.requisicoes.tipo_requisicao |
br.ufrn.sipac.requisicoes.material.dominio.Material | administrativo.comum.material |
Plano de Teste
Sistema: SIPAC
Módulo: Infra-Estrutura
Link(s): Sipac → Infa-Estrutura → Manutenção → Requisições → Requisições de Material → Alterar Destino da Requisição
Usuário: gustavo, brunormm
Papel que usuário deve ter: GESTOR_MEIO_AMBIENTE
Cenários de Teste
- Verificar se o fluxo do caso de uso está funcionando corretamente e se todas as regras de negócio são respeitadas.
Dados para o Teste
- Para encontrar requisições válidas para essa busca (testar a RN01), pode-se utilizar a consulta abaixo:
SELECT * FROM requisicoes.requisicao_material WHERE id_status = 101 AND id_tipo = 1;
- Para testar a RN02, pode-se utilizar a consulta abaixo informando o nome da unidade exibida no sistema para o usuário logado e verificar o tipo:
SELECT alm.tipo FROM almoxarifado.almoxarifado alm INNER JOIN comum.unidade un ON alm.id_unidade = un.id_unidade WHERE un.nome LIKE '?';
- Se o tipo do almoxarifado for 1 (que indica que o almoxarifado é o central), então o usuário pode escolher qualquer um dos almoxarifados cadastrados no banco, para conferir a lista de todos os almoxarifados, pode-se utilizar a seguinte consulta:
SELECT id, denominacao FROM almoxarifado.almoxarifado;
- Já se o tipo não for 1, ou seja, o almoxarifado não é o central, então deve-se descobrir a hierarquia da unidade requisitante da requisição selecionada com a seguinte consulta informando o número e o ano da requisição:
SELECT un.hierarquia FROM comum.unidade un INNER JOIN requisicoes.requisicao_material rm ON rm.id_unidade_req = un.id_unidade WHERE rm.numero = ? AND rm.ano = ?;
- De posse da hierarquia da unidade requisitante da requisição selecionada, deve utilizar a consulta abaixo informado os ids das unidades da hierarquia que são separados pelos
.
no local do?
separando cada id do outro por vírgula para encontrar oa almoxarifados que podem atender a requisição:
SELECT alm.id, alm.denominacao FROM almoxarifado.almoxarifado alm INNER JOIN comum.unidade un ON un.id_unidade = alm.id_unidade WHERE un.id_unidade IN (?) OR alm.id IN (1, 3);