~~ODT~~ ====== Cadastro de Requisições de Material/Serviço Contratados ====== O Caso de Uso descrito tem como função solicitar a aquisição de material/serviço contratado (auditórios, fornecimento de gás, chaveiro, carimbo, etc.), ou seja, por meio de um contrato celebrado. Descreve os procedimentos necessários para cadastro da requisição de item contratado. **Atores:**REQUISITOR ou REQUISITOR DE MATERIAL/SERVIÇO CONTRATADO. Pré-Condições **Login:** O Ator deverá estar logado no sistema com o perfil REQUISITOR ou REQUISITOR DE MATERIAL/SERVIÇO CONTRATADO para que possa ter acesso às funcionalidades oferecidas ao Caso de Uso. **Dependências:** É necessário que os Casos de Uso: Cadastrar Itens Contratados e Cadastrar Contrato (Módulo de Contratos) tenham sido executados. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: SIPAC -> Portal Administrativo -> Requisições -> Material/Serviço Contratado -> Cadastrar Requisição. **PASSO 1** O sistema exibe a tela de consulta do contrato e o Ator seleciona um dos ou mais opções da consulta: * **Objeto**: Objeto do Contrato. Tipo TEXTO. * **Contratado**: Descrição do Contratado. Tipo TEXTO. * **Natureza da Despesa**: Descrição da natureza da despesa ou código. Tipo texto. * **Listar todos os contratos vigentes atualmente e que possuem itens cadastrados**: Tipo - LÓGICO. O sistema exibe lista de todos os contratos disponíveis: * **__Contrato__**: Tipo - TEXTO. * **__Contratado__**: Tipo - TEXTO. Formato - CNPJ - NOME DA EMPRESA CONTRATADA * **__Telefone__**: Tipo - NUMÉRICO * **__Município/Estado__**: Tipo - TEXTO. * **__Objeto__**: Tipo - TEXTO. **PASSO 2** O usuário seleciona o contrato e o sistema exibe: * **__Número do Contrato__**: Tipo - NUMÉRICO. Formato - 99/9999 * **__Licitação__**: Tipo - NUMÉRICO. Formato - 99/9999 * **__Tipo do Contrato__**: Tipo - TEXTO. * **__Subtipo do Contrato__**: Tipo - TEXTO. * **__Status__**: Tipo - TEXTO. * **__Objeto do Contrato__**: Tipo - TEXTO. * **__Contratado__**: Tipo - TEXTO. Formato - CNPJ - NOME DA EMPRESA CONTRATADA * **__Data de Início__**: Tipo - DATA. * **__Data de Término__**: Tipo - DATA. * **__Data da Publicação__**: Tipo - DATA. * **__Continuado__**: Tipo - TEXTO. O sistema lista de itens do contrato e solicita quantidade de itens * **__Título__**: Título do item. Tipo - TEXTO. * **__Natureza da Despesa__**: Natureza da Despesa do item. Tipo - TEXTO. * **__Descrição__**: Descrição de item. Tipo - TEXTO. * **__Unid. Medida__**: Unidade de medida do item. Tipo - TEXTO. * **Quantidade Solicitada**: Quantidade de itens que o usuário quer inserir na requisição. Tipo - NUMÉRICO. * **__Quantidade Disponível para atendimento__**: Tipo - NUMÉRICO. Exibir se a quantidade de item for gerenciável. ([[#Principais Regras de Negócio|RN11]]), ([[#Principais Regras de Negócio|RN09]]) * **__Quantidade Licitada:__** Corresponde a quantidade cadastrada no item do contrato (módulo de contratos). Exibir se a quantidade de item for gerenciável. * **Descrição Detalhada**: Descrição Detalhada. Tipo - TEXTO. ([[#Principais Regras de Negócio|RN06]]) * **__Valor__**: Valor unitário do item. Tipo - NUMÉRICO ([[#Principais Regras de Negócio|RN06]]) * Opção de inserir o item na lista. ([[#Principais Regras de Negócio|RN07]]) O sistema disponibiliza consulta por título e descrição para consulta de itens: * **Título**: Tipo - TEXTO. * **Descrição**: Tipo - TEXTO. O usuário confirma inserção do item e o sistema exibe a lista de itens inseridos na requisição: * **__Título__**: Título do item. Tipo - TEXTO. * **__Natureza da Despesa__**: Natureza da Despesa do item. Tipo - TEXTO. * **__Descrição__**: Descrição de item. Tipo TEXTO. * **__Quantidade Solicitada__**: Tipo - NUMÉRICO. * **__Quantidade Disponível para atendimento:__** Tipo - NUMÉRICO. ([[#Principais Regras de Negócio|RN11]]). Exibir se a quantidade de item for gerenciável. * **__Quantidade Licitada:__** Corresponde a quantidade cadastrada no item do contrato (módulo de contratos). Exibir se a quantidade de item for gerenciável. * **__Valor__**: Valor unitário do item. Tipo NUMÉRICO. * **__Total__**: Quantidade x Valor. Tipo - NUMÉRICO. ([[#Principais Regras de Negócio|RN08]]) * **Alterar Item**: Permite alterar a quantidade de itens a serem inserido. Permite alterar o valor do item caso esse seja de valor variável. * **Remover Item**: Permite a remoção daquele item na requisição. **PASSO 3** O usuário confirma itens inseridos e o sistema exibe dados gerais do contrato, da requisição e lista de itens inseridos. O usuário pode inserir observação na requisição: * **__Número do Contrato__:** Tipo - Numérico, Formato: 9.../AAAA * **__Licitação__:** Tipo - Numérico, Formato - Modalidade - 9.../AAAA. * **__Tipo do Contrato__:** Tipo - Texto. * **__Subtipo do Contrato__:** Tipo - Texto. * **__Status__:** Tipo - Texto. * **__Objeto do Contrato__:** Tipo - Texto. * **__Contratado__:** Tipo - Texto, Formato 99.999.999/9999-99 - * **__Data de Início__:** Tipo - Data, Formato - DD/MM/AAAA * **__Data de Término__:** Tipo - Data, Formato: DD/MM/AAAA (Original: DD/MM/AAAA) * **__Data da Publicação__:** Tipo - Data, Formato - DD/MM/AAAA * **__Continuado__:** Tipo - LÓGICO. Dados da requisição: * **__Data__:** Tipo - Data, Formato - DD/MM/AAAA. * **__Tipo da Requisição__:** Tipo - Texto. * **__Unidade Requisitante__:** Tipo - Texto. * **__Unidade de Custo__:** Tipo - Texto. * **__Usuário__:** Tipo - Texto. * **__Valor da Requisição__:** Tipo - Numérico. Lista de Itens da Requisição com os dados: * **__Título do item__:** Tipo - Numérico. * **__Quantidade Solicitada__:** Tipo - Numérico. (tarefa 163074, alterado em 14/08/2015) * **__Quantidade disponível para atendimento__:** Tipo - Numérico. ([[#Principais Regras de Negócio|RN11]]) (tarefa 163074, adicionado em 14/08/2015). Exibir se a quantidade de item for gerenciável. * **__Quantidade Licitada:__** Corresponde a quantidade cadastrada no item do contrato (módulo de contratos). Exibir se a quantidade de item for gerenciável. * **__Valor__:** Tipo - Numérico. * **__Total__:** Tipo - Numérico. ([[#Principais Regras de Negócio|RN08]]) * Opção de Gravar e Enviar a requisição. * Opção de Gravar a requisição. * Opção de Cancelar a operação. * Opção de Voltar ao passo anterior. **PASSO 4** O usuário Grava e Envia a requisição e o sistema exibe [[desenvolvimento:especificacoes:sipac:fluxos:fluxo_vinculo_orcamentario_requisicoes| vínculo orçamentário das requisições]]. **PASSO 5** O sistema exibe as informações quando a requisição é apenas gravada: * **__Requisição__:** Tipo - NUMÉRICO. * **__Status__:** Tipo - TEXTO * **__Data__:** Tipo - DATA. * **__Tipo da Requisição__:** Tipo - TEXTO. * **__Unidade Requisitante__:** Tipo - TEXTO. * **__Unidade de Custo__:** Tipo - TEXTO. * **__Usuário__:** Tipo - TEXTO. * **__Valor da Requisição__:** Tipo - NUMÉRICO. * **__Quantidade Solicitada__:** Tipo - Numérico. Exibir se a quantidade de item seja gerenciável. (tarefa 163074, alterado em 14/08/2015) * **__Quantidade disponível para atendimento__:** Tipo - Numérico. Exibir se a quantidade de item for gerenciável. * **__Quantidade Licitada:__** Corresponde a quantidade cadastrada no item do contrato (módulo de contratos). Exibir se a quantidade de item for gerenciável. * Opção para cadastrar nova requisição * Opção para cadastrar nova requisição utilizando o contrato da requisição cadastrada. O sistema exibe as informações quando a requisição é gravada e enviada: * **__Requisição__:** Tipo - NUMÉRICO. * **__Tipo da Requisição__:** Tipo - TEXTO. * **__Status__:** Tipo - TEXTO * **__Opção Orçamentária__:** Tipo - TEXTO. * **__Unidade Requisitante__:** Tipo - TEXTO. * **__Unidade de Custo__:** Tipo - TEXTO. * **__Valor da Requisição__:** Tipo - NUMÉRICO. * **__Quantidade Solicitada__:** Tipo - Numérico. Exibir se a quantidade de item seja gerenciável. (tarefa 163074, alterado em 14/08/2015) * **__Quantidade disponível para atendimento__:** Tipo - Numérico. Exibir se a quantidade de item for gerenciável. * **__Quantidade Licitada:__** Corresponde a quantidade cadastrada no item do contrato (módulo de contratos). Exibir se a quantidade de item for gerenciável. * **__Solicitante__:** Tipo - TEXTO. * **__Data de Cadastro__:** Tipo - DATA. * Opção para cadastrar nova requisição * Opção para cadastrar nova requisição utilizando o contrato da requisição cadastrada. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01** - O valor total da requisição não pode ultrapassar o saldo do contrato. * **RN02** - Se o valor da requisição + soma do valor das requisições ainda não empenhadas para aquele contrato for maior que o saldo do contrato, então o sistema deve bloquear ao usuário. * **RN03** - Na inserção de itens da requisição só podem ser adicionados itens com a mesma natureza de despesa. * **RN04** - Caso seja escolhida a opção de utilizar o Orçamento da Unidade o status da requisição vai para PENDENTE ATENDIMENTO. * **RN05** - Caso seja escolhida a opção de Solicitar Autorização o status da requisição vai para AGUARD. AUTORIZAÇÃO ORÇAMENTÁRIA e ao ser atendida irá para o status de PENDENTE ATENDIMENTO. * **RN06** - Caso o item da requisição tenha valor variável o campo de Descrição detalhada aparece e o campo de Valor aparece como entrada de dados para o item. * **RN07** - Caso a quantidade de itens seja gerenciada (definida no caso de uso modulo de contratos -> Aba Geral -> Cadastrar Itens do Contrato ), sistema deve permitir apenas inserções, para cada item, que sejam menores ou iguais a quantidade disponível, caso o item esteja configurado como "sim" no caso de uso módulo de contratos -> aba geral -> cadastrar itens do contrato Mensagem de validação: A quantidade de itens solicitada é maior que a quantidade de itens licitada. Entrar em contato com o setor de contratos. (tarefa 163074, adicionado em 14/08/2015) * **RN08** - O campo total corresponde ao valor unitário do item X quantidade de itens solicitados. * **RN09** - **Caso o item seja gerenciável:** A quantidade disponível para atendimento corresponde a quantidade cadastrada no **caso de uso módulo de contratos -> Aba Geral -> Cadastrar Itens do contrato** menos a quantidade que já foi solicitada neste caso de uso. (tarefa 163074, adicionado em 14/08/2015) * **RN11** - O sistema deverá aplicar as regras RN07, RN09, RN12 se o item estiver configurado para permitir gerenciamento do saldo disponível no caso de uso Módulo de contratos -> aba Geral -> Cadastrar Item de contrato (Tarefa 162527, adicionado em 29/09/2015) * **RN12** - **Caso o item seja gerenciável:** Se a requisição seja gravada ou gravada e enviada, o sistema deve armazena a quantidade de item solicitada atualizando a quantidade disponível para atendimento. O sistema deverá descontingenciar a quantidade de item solicitada se a requisição for estornada ou negada. Caso a requisição seja estornada, a quantidade de item pedida deve retornar ao saldo disponível, caso contrário será debitada do saldo disponível licitado. (Tarefa 163074 , adicionado em 29/09/2015) ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sipac.requisicoes.itemcontratado.dominio.RequisicaoItemContratado | administrativo.requisicoes.requisicao_item_contratado| | br.ufrn.sipac.requisicoes.itemcontratado.dominio.ItemRequisicaoContrato | administrativo.requisicoes.item_requisicao_contrato | ====== Plano de Teste ====== Sistema: SIPAC Módulo: Requisições Link(s): Portal Admin. -> Requisições -> Material/Serviço Contratado -> Cadastrar Requisição Usuários: * lopes (REQUISITOR) * narasouza (REQUISITOR_ITEM_CONTRATADO) Papel que usuário deve ter: SipacPapeis.REQUISITOR, SipacPapeis.REQUISITOR_ITEM_CONTRATADO ===== Cenário de Teste ===== Selecionar um contrato, e na próxima tela do fluxo, realizar buscas, testar a inserção, alteração e remoção de itens do contrato, e continuidade do fluxo. Seguindo o fluxo Portal Admin. → Requisições → Material/Serviço Contratado → Cadastrar Requisição -> Selecionar Contrato, verificar se o sistema está bloqueando a solicitação da valores acima do saldo do contrato selecionado e advertendo o usuário caso coloque um valor menor que o saldo, porém com outras requisições cadastradas para o contrato que ainda não debitaram do saldo deste contrato. ===== Dados para o Teste ===== Soma do valor total das requisições para um contrato: select sum(requisicao0_.valor) as col_0_0_ from requisicoes.requisicao_item_contratado requisicao0_ join contratos.contrato c on (c.id = requisicao0_.id_contrato) where c.numero = ? and c.ano = ? and (requisicao0_.id_status in (101 , 104 , 105 , 106 , 108 , 1011 , 103 , 109 , 715 , 717 , 716 , 702 , 703 , 708 , 718))