~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Estornar Requisição ====== Este caso de uso tem o objetivo de cancelar uma requisição. O estorno deverá ser utilizado quando houver algum erro ao cadastrar a requisição. Estornar a requisição implicará em seu cancelamento, além de impossibilitar o seu prosseguimento. Envolvidos: Todos os usuários de unidades que enviam requisições e os usuários dos setores que possuem papel de executor de orçamento global. Pre-condição: Ter sido cadastrado no sistema a requisição e o tipo de requisição. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: //SIPAC -> Orçamento -> Requisições -> Requisições -> Estornar Requisição//. O sistema solicita ao Gestor que informe: * **Número***: Tipo - NUMÉRICO. * **Ano***: Formato - AAAA, Tipo - NUMÉRICO. * **Tipo da Requisição***: Tipo - TEXTO. O sistema lista todos os tipos de requisição cadastrados. Ao informar os dados da requisição e confirmar a busca ([[#principais regras de negócio|RN01, RN02]]), o sistema exibe as informações Gerais da Requisição: * **__Requisição__**: Formato - NÚMERO/AAAA, Tipo - NUMÉRICO. *Opção para visualizar os dados da requisição. Os dados podem ser visualizados através do caso de uso [[desenvolvimento:especificacoes:sipac:atendimento_de_requisicoes:casos_de_uso:auxilio_financeiro:atendimento:buscar_requisicoes|Buscar Requisição]] onde está descrito "Opção para visualizar os dados das REQUISIÇÕES". * **__Tipo da Requisição__**: Tipo - TEXTO. * **__Unidade Solicitante__**: Formato - CÓDIGO-NOME DA UNIDADE SOLICITANTE, Tipo - NUMÉRICO e TEXTO * **__Unidade de Custo__**: Formato - CÓDIGO-NOME DA UNIDADE SOLICITANTE, Tipo - NUMÉRICO e TEXTO * **__Status__**: Tipo - TEXTO. * **__Valor__**: Tipo - NUMÉRICO. * **__Data de Cadastro__**: Formato - DD/MM/AAAA HH:MM, Tipo - DATA. * **__Justificativa do Estorno__**: Tipo - TEXTO. Permite informar no máximo 300 caracteres. Confirmando o estorno da requisição, o sistema exibe a mensagem de sucesso da requisição. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01** - Uma requisição não pode ser estornada estando com o status FINALIZADA ATENDIMENTO. * **RN02** - Uma requisição não pode ser estornada se ela não tiver sido requisitada pela sua unidade. * **RN03** - Caso o parâmetro CANCELA_PROCESSO_SE_ESTORNAR_REQUISICAO_ASSOCIADA seja verdadeiro, caso a requisição a ser estornada esteja associado a um processo de protocolo, o mesmo é cancelado, caso contrário, o processo continua ativo. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela ^ | br.ufrn.sipac.requisicoes.diarias.dominio.RequisicaoDiarias | administrativo.requisicoes.requisicao_diaria | | br.ufrn.sipac.requisicoes.passagens.dominio.RequisicaoPassagem | administrativo.requisicoes.requisicao_passagem | | br.ufrn.sipac.requisicoes.servico.dominio.RequisicaoServico | administrativo.requisicoes.requisicao_servicos | | br.ufrn.sipac.requisicoes.supfundos.dominio.ReqSuprFundos | administrativo.requisicoes.req_suprimento_fundos | | br.ufrn.sipac.requisicoes.material.dominio.RequisicaoMaterial | administrativo.requisicoes.requisicao_material | | br.ufrn.sipac.requisicoes.livrocontrato.dominio.RequisicaoLivroContrato | administrativo.requisicoes.requisicao_livro_contrato | | br.ufrn.sipac.protocolo.dominio.Processo | administrativo.protocolo.processo | ===== Plano de Teste ===== Sistema: SIPAC Módulo: Orçamento Link(s): Requisições -> Requisições -> Estornar Requisição Usuário: jbb Papel que usuário deve ter: * ScoPapeis.EXECUTOR_CONVENIO, * ScoPapeis.EXECUTOR_ESPECIAL, * ScoPapeis.EXECUTOR_ORCAMENTO, * ScoPapeis.EXECUTOR_ORCAMENTO, * ScoPapeis.EXECUTOR_ORCAMENTO_GLOBAL, * ScoPapeis.GESTOR_DOTACAO_ORCAMENTARIA ===== Cenários de Teste ===== Verificar as regras de negocio ===== Dados para o Teste ===== Para alterar o parâmetro da **RN03**, podemos usar: UPDATE comum.parametro SET valor = 'true' WHERE nome = 'CANCELA_PROCESSO_SE_ESTORNAR_REQUISICAO_ASSOCIADA' Possíveis requisições associadas a um processo que poderão ser estornadas (**RN03**) select numero, num_processo, ano_processo from requisicoes.requisicao_diaria where id_status NOT IN (104,106,105,490,480,470,1013) and ano = 2011 and num_processo is not null and num_processo > 0 and ano_processo is not null and ano_processo > 0 Para saber se o processo está cancelado, podemos usar a seguinte consulta: select status from protocolo.processo where num_protocolo = and ano = Onde o status cancelado tem o valor **2**