wiki:product/CodigosDaTurma

Version 2 (modified by marlomk@…, 10 years ago) (diff)

--

Requisitos para permitir a Mudança do Código da Turma

Esta página documenta os requisitos a serem implementados para permitir a Mudança dos Códigos da Turma. Esta alteração visa atender a uma demanda da Fefisa, mas irá afetar todos os sistemas.

Requisitos Funcionais

Ao editar-se os dados da Turma, deverá se possível alterar também o campo "Código".

  • O código da turma deverá ser:
    • Único.
    • Palavra simples.
    • Sem espaços.
    • Ter no mínimo 3 caracteres. Caracteres aceitos: maiúsculas, números e o símbolo _.

Quando o usuário clicar em salvar o sistema deverá verificar se o código da Turma mudou. Caso afirmativo, os seguintes passos deverão ser realizados:

  1. Verificar se o código atende aos critérios acima estabelecidos.
  2. Converter os caracteres para maiúsculos.
  3. Garantir que o código informado não está atribuído a outra turma.
    1. Se o código já existir, salvar os demais campos e emitir uma mensagem de erro para o Código da Turma.
    2. Se não existir, salvar os campos do fumulário e inserir uma nova linha na tabela turma_codigo_historico os seguintes valores: Timestamp, ID_Agente, ID_Turma, Codigo_Antigo, Codigo_Novo, IP_Origem.

Banco de Dados

Criar a seguinte tabela:

CREATE TABLE `turma_codigo_historico` (
  `TimeStamp`     timestamp            NOT NULL DEFAULT NOW(),
  `ID_Agente`     int(11)              NOT NULL,
  `ID_Turma`      int(11)              NOT NULL,
  `Codigo_Antigo` varchar(20)          NOT NULL,
  `Codigo_Novo`   varchar(20)          NOT NULL,
  `IP_Origem`     int(11)     unsigned NOT NULL,
  KEY `idx__turma_codigo_historico__Codigo_Antigo` (`Codigo_Antigo`),
  KEY `idx__turma_codigo_historico__Codigo_Novo` (`Codigo_Novo`),
  CONSTRAINT `fk__turma_codigo_historico__tagente__ID_Agente` FOREIGN KEY (`ID_Agente`) REFERENCES `tagente` (`ID_Agente`),
  CONSTRAINT `fk__turma_codigo_historico__tturma__ID_Turma`   FOREIGN KEY (`ID_Turma`)  REFERENCES `tturma`  (`ID_Turma`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;