O projeto tem quatro perfis de usuário: cliente (qualquer funcionário de uma empresa cliente da Tecnoval / Valfilm / Laminados), representante de empresas, administrador e operador. Primeiramente os funcionários de empresas clientes e representantes de clientes são guardados em um banco de dados como candidatos a usuários. Um usuário com o perfil de administrador então aprova estes candidatos para os quais serão gerados login e senha. O administrador ainda pode exercer outras funcionalidades como remover o usuário e gerar outra senha para aquele que a esqueceu (sem ter acesso a ela). Uma vez com seu login e senha, o usuário pode fazer pedidos, que serão analisados por um usuário com o perfil de operador (o operador aprova ou não os pedidos), e também acompanhar o andamentos dos mesmos (se já foram aprovados ou não). É necessário garantir que os funcionários de uma empresa cliente tenham acesso somente aos dados da mesma, assim como os representantes de empresas. Durante o desenvolvimento foi constatada a necessidade de alguns métodos auxiliares a mais daqueles que estão listados em seguida, mas não houve nenhuma alteração quanto a especificação.
Apresentação detalhada da solução tecnológica adotada inicialmente, obedecendo a arquitetura Windows DNA com modelo de três camadas:
1. Camada de apresentação, constituída por páginas ASP/HTML, que são armazenadas e executadas em um equipamento com Windows NT Server e Internet Information Server (IIS). Contém o seguinte componente:
a. Componente de Apresentação para Validação de Campos, que implementa as seguintes funcionalidades:
i. CGC: conferência dos dígitos de controle;
ii. CPF: conferência dos dígitos de controle;
2. Camada de negócio, que contém dois componentes, a saber:
a. Componente de Negócio para Segurança, que implementa as funcionalidades:
i. TemplateCandidato: obtém a estrutura de um candidato, que será preenchida pelo usuário;
ii. InsereCandidato: efetua o cadastramento de proposta de novo candidato;
iii. ListaCandidatos: obtém os candidatos a serem avaliados;
iv. AprovaCandidato: efetua o cadastramento de novo usuário. A geração de usuário seguirá as seguintes regras:
1. Primeiro nome + inicial do sobrenome (Ex: alexandren);
2. Inicial do primeiro nome + sobrenome (Ex: anardi);
3. Igual ao item 1 + contador, a partir de 1 (Ex: alexandren3).
v. Login: autentica um usuário do sistema;
vi. AlteraSenha: permite a troca de senha do usuário do sistema;
vii. RemoveUsuário: elimina o acesso de um usuário ao sistema, removendo seu login e senha. Para que possa ser realizada auditoria, NÃO é removido o registro inteiro.
b. Componente de Negócio para Informações, que implementa as funcionalidades:
i. ConsultaCadastro: pesquisa de dados cadastrais;
ii. ConsultaTitulos: pesquisa de títulos a pagar;
iii. ConsultaPedidos: pesquisa de informações sobre pedidos em aberto;
iv. InserePedido: inserção de novo pedido;
v. TemplatePedido: obtém a estrutura de um pedido, que será preenchida pelo usuário;
vi. ListaPedidos: obtém os pedidos a serem analisados;
vii. AprovaPedido: efetua a inserção de novo pedido no "Magnus";
3. Camada de dados, formada por:
a. Banco de Dados Access, para armazenamento de informações de segurança e de pedidos em aberto;
b. Banco de Dados Progress Principal, que é utilizado pelo Magnus, e onde os componentes de dados (definidos a seguir) buscam a maior parte das informações necessárias;
c. Banco de Dados Progress Auxiliar, que contém uma tabela para inserção de pedidos com um gatilho para inclusão no Magnus;
d. Componente de Dados para Segurança, utilizado pelo componente de negócio para segurança, para interação com o banco de dados access. Implementa as seguintes funcionalidades:
i. AlteraSenha: permite que o usuário modifique sua senha;
ii. TemplateUsuario: obtém a estrutura de um candidato, que será preenchida pelo usuário;
iii. AlteraUsuario: permite modificações nos dados cadastrais de um candidato;
iv. ListaUsuarios: obtém relação de usuários de acordo com determinado filtro;
v. InsereUsuario: efetua o cadastramento de novo usuário;
vi. Login: autentica um usuário do sistema;
vii. VerificaLogin: pesquisa a existência de um login passado como parâmetro; Quando o usuário deixar de existir, o método AlteraUsuario deve ser invocado com login e senha nulos. O registro não é removido por completo para permitir a manutenção de histórico para auditoria.
e. Componente de Dados para Informações, utilizado pelo componente de negócio para informações, para interação com o banco de dados acima. Implementa as seguintes funcionalidades:
i. ConsultaCadastro: pesquisa de dados cadastrais a partir do Progress principal;
ii. ConsultaTitulos: pesquisa de títulos a pagar a partir do Progress principal;
iii. ConsultaPedidos: pesquisa de informações sobre pedidos em aberto a partir do Progress principal e do banco de dados Access;
iv. InserePedido: inserção de novo pedido no banco de dados Access;
v. TemplatePedido: obtém a estrutura de um pedido, que será preenchida pelo usuário;
vi. ListaPedidos: obtém os pedidos a serem analisados, a partir do banco Access;
vii.
AprovaPedido: efetua a inserção de novo pedido no banco Progress
Auxiliar, para inserção no Magnus, e remove o registro do
banco Access;
Cenários de Utilização
1. Usuário se autentica na tela de Login, e recebe seu perfil, que inclui permissões de acesso e lista de empresas que pode representar (uma no caso de cliente e mais de uma para representante);
2. Para clientes:
a. Tela padrão é a de cadastro;
b. As demais telas de consultas apenas apresentam as informações ao usuário;
3. Para representantes:
a. Tela padrão é a de cadastro, que apresenta dados da primeira empresa da lista;
b. As demais telas de consultas apenas apresentam as informações ao usuário;
c. Na tela de inserção de pedidos, está sendo verificada a necessidade do uso de look-ups;
4. Para administradores de usuários:
a. Tela padrão apresenta os candidatos a usuários, com dois radio buttons (Aprovado e Reprovado). Os candidatos reprovados devem ser contatados pelo pessoal da Tecnoval. Para os aprovados, será gerado senha (aleatória) e usuário, de acordo com as regras:
i. Primeiro nome + inicial do sobrenome (Ex: alexandren);
ii. Inicial do primeiro nome + sobrenome (Ex: anardi);
iii. Igual ao item i + contador, a partir de 1 (Ex: alexandren3).
b. Tela que apresenta os usuários existentes, com um checkbox ao lado de cada um. O usuário então pode selecionar um ou mais e deletá-los;
5. Para o operador (analisa os pedidos novos):
a. Tela padrão com
os pedidos novos em ordem cronológica, e botões de próximo,
anterior, primeiro, último e opção de busca pelo número
do pedido. Além disso, botões de Aprovado e Reprovado.