Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Protheus | Módulo | SIGATEC |
Segmento Executor |
| ||
Projeto1 | M_SER_SER014 | IRM1 | PCREQ-4375 |
Requisito1 | PCREQ-4472 | Subtarefa1 | PDR_SER_TEC001-237 |
Chamado2 |
| ||
Release de Entrega Planejada | 12.1.8 | Réplica |
|
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros |
|
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Permitir que seja realizado o cadastro de restrições operacionais do atendente em determinados clientes ou locais de atendimento.
Definição da Regra de Negócio
Para que seja possível realizar controle de restrições para a alocação dos atendentes em determinados clientes e/ou locais de atendimento, será criado nova rotina no menu (SIGATEC > Atualizações > Atendentes > Restrições). Ao acessar este menu serão listados os atendentes. Ao selecionar o atendente será possível realizar as devidas manutenções das restrições.
Neste cadastro será apresentado tela conforme Protótipo 1, Protótipo 2. Será apresentada aba para cliente e local de atendimento onde será possível realizar o cadastro da restrição para a respectiva entidade (Cliente / Local de atendimento). Para cada aba serão disponibilizados para preenchimento os seguintes campos:
- Identificação Cliente / Local de Atendimento: Será informado o código de identificação da entidade de acordo com a aba selecionada;
- Tempo: Será possível informar se a restrição é por um tempo determinado ou indeterminado;
- Data: Este campo será carregado por padrão com a data do sistema, indicando a data em que foi incluída a restrição;
- Data fim: Caso o campo “Tempo” esteja preenchido como indeterminado este campo ficará em branco. Caso esteja preenchido como “Determinado” deverá ser preenchida uma data superior a data atual do sistema;
- Tipo de Restrição: Neste campo será informado o tipo de restrição de “Aviso” ou “Bloqueio”. Para a restrição de aviso, ao realizar a alocação do atendente no cliente ou local será apresentado somente uma mensagem de alerta e poderá ser possível prosseguir com a alocação. Para a restrição de “Bloqueio” não será possível realizar a alocação do atendente;
- Observações: Neste campo poderá ser informado o motivo do cadastro de restrição do atendente;
Não será permitido incluir uma restrição para o atendente que possuir uma agenda ativa e não atendida no cliente/local em questão. Essa validação irá verificar somente agendas em datas superiores ou igual a data de início da restrição e inferior ou igual a data fim da restrição.
Na rotina de Grupo/Perfil de acesso, será incluída regra de permissão para realização das manutenções das restrições. Caso o grupo do usuário não estiver com a devida permissão este cadastro será aberto somente para visualização.
Na mesa operacional poderá ser acessado o cadastro de restrições por cliente ou local de atendimento. Serão apresentados os atendentes que possuem restrições para o cliente ou local de atendimento posicionado. (Protótipo 3, Protótipo 4).
Definição tecnica
Criar novos fontes e inclui-los no arquivo PRJ do módulo.
Deverá ser criado os seguintes fontes para cadastro das restrições:
- TECA012 – Cadastro de Restrições (Protótipo 1, Protótipo 2)
- TECA012A – Cadastro de Restrições por Cliente. (Protótipo 3)
- TECA012B – Cadastro de Restrições por Local de Atendimento. (Protótipo 4)
A codificação deverá utilizar o padrão MVC. Como os 3 cadastros irão utilizar a mesma tabela, funções de validações deverão ser chamadas a partir do dicionário de dados.
TECA680 – GRUPO DE ACESSO/PERFIL
Na rotina TECA680 deverá ser adicionada na estrutura de permissões (Variável estática aPermissao), a nova opção “021” com a descrição “Define Restrição Operacional?”.
TECA012 – CADASTRO DE RESTRIÇÕES
Criar novo menu SIGATEC > Atualizações > Atendentes > Restrições.
Ao acessar a rotina deverá ser listado os atendentes atendente (AA1).
Deverá ser disponibilizada os botões Manutenção e Visualização.
A opção de manutenção poderá ser acessada somente se o usuário logado possuir a permissão de Manutenção de Restrições (021) do cadastro de “Grupo de Acesso/ Perfil”.
A opção de visualização poderá ser acessada por qualquer usuário.
Deverá ser apresentada tela de cadastro conforme Protótipo 1.
O campo TW2_TIPO não deverá ser apresentado em tela, pois será um controle para identificar o tipo de restrição por cliente ou local de atendimento. Assim ao ser preenchido as informações referente a aba de cliente este campo deverá ser salvo conforme opções (1=Cliente;2=Local de Atendimento)
O cabeçalho da tela deverá ser o código (AA1_CODTEC) e nome (AA1_NOME) do atendente posicionado no browser.
A grid da aba de clientes deverá ser a tabela TW2, considerando o campo AA1_CODTEC e o campo TW2_TIPO = ‘1’
A grid da aba de Local de Atendimento deverá ser a tabela TW2, considerando o campo AA1_CODTEC e o campo TW2_TIPO = ‘2’
Ao ser incluído um atendente na restrição deverá ser verificado se o atendente possui agenda no cliente ou local em questão. Deverá ser considerada agendas ativas (ABB_ATIVO = ‘1’) e não atendida (ABB_ATENDE = ‘2’) verificando sempre a agenda superior a data inicial da restrição. Caso o tempo de restrição seja determinado deverá ser verificado agendas dentro do período da restrição. Caso o tempo de restrição seja indeterminado deverá ser verificado agendas superiores a data inicial da restrição. Ao identificar a existência de agenda deverá ser apresentada mensagem “Atendente com alocação no período de restrição”.
Para verificar agenda para o local deverá ser considerado o campo ABB_LOCAL
Para verificar agenda para o cliente deverá ser considerado o campo ABS_CODIGO e ABS_LOJA. Para chegar na ABS através da Agenda (ABB) deverá ser utilizado o campo ABB_LOCAL
O campo TW2_DTFIM deverá ser habilitado para edição somente quando o campo TW2_TEMPO estiver como 2=Determinado.
Ao ser alterado o campo TW2_TEMPO para 1=Indeterminado deverá ser alterado o conteúdo do campo TW2_DTFIM para vazio.
TECA012A – CADASTRO DE RESTRIÇÕES POR CLIENTES
Deverá ser incluída nas “Outras opções” da rotina TECA190A (Mesa Operacional – Visão Contratos) a chamada para “Restrições do cliente” (TECA012A)
Deverá ser criada rotina TECA012A conforme Protótipo 3.
O cabeçalho dessa tela deverá ser o cliente (SA1) do local de atendimento posicionado na grid da mesa operacional – Visão Contratos.
A Grid deverá ser as informações da tabela TW2, do respectivo cliente (TW2_CLIENT+TW2_LOJA).
Somente poderá editar as informações dessa tela o usuário que tiver permissão 020 cadastrada no Grupo/Perfil de Acesso (TECA560). Caso não tenha permissão a tela deverá ser aberta somente como visualização.
As regras e validações dos campos deverão obedecer o dicionário de dados.
TECA012B – CADASTRO DE RESTRIÇÕES POR LOCAL DE ATENDIMENTO
Deverá ser incluída nas “Outras opções” da rotina TECA190A (Mesa Operacional – Visão Contratos) a chamada para “Restrições do local de atendimento” (TECA012B)
Deverá ser criada rotina TECA012B conforme Protótipo 4.
O cabeçalho dessa tela deverá ser o local de atendimento posicionado (ABS) NA grid da mesa operacional – Visão Contratos.
A Grid deverá ser as informações da tabela TW2, do respectivo local de atendimento (TW2_LOCAL).
Somente poderá editar as informações dessa tela o usuário que tiver permissão 020 cadastrada no Grupo/Perfil de Acesso (TECA560). Caso não tenha permissão a tela deverá ser aberta somente como visualização.
As regras e validações dos campos deverão obedecer o dicionário de dados.
Rotina | Tipo de Operação | Opção de Menu |
[TECA012 - Restrições por atendente] | [Criação] | [SIGATEC > Atualizações > Atendente > Restrições] |
[TECA012A – Restrições por cliente] | [Criação] | [SIGATEC > Atualizações > Alocação > Mesa Operacional – Visão de Contratos] |
[TECA012B – Restrições por local de atendimento] | [Criação] | [SIGATEC > Atualizações > Alocação > Mesa Operacional – Visão de Contratos] |
[TECA680 – Grupo de acesso/perfil ] | [Alteração] | [SIGATEC > Atualizações > Alocação > Grupo de Acesso/Perfil] |
[TECA190A – Mesa operacional por contrato] | [Alteração] | [SIGATEC > Atualizações > Alocação > Mesa operacional - visão de contratos] |
Tabelas Utilizadas
- AA1 - Atendentes
- ABB - Agendas
- ABS – Local de Atendimento
- SA1 - Clientes
- TW2 – Restrições
Protótipo de Tela
Protótipo 01 – Restrições Aba Clientes
Protótipo 02 – Restrições Aba Locais de Atendimento
Protótipo 03 – Restrições Cliente
Protótipo 04 – Restrições Local de Atendimento
Dicionário de Dados
Arquivo ou Código do Script: TW2 – Restrições
Índice | Chave |
01 | TW2_FILIAL+TW2_COD |
v
Campo | TW2_COD |
Tipo | C |
Tamanho | 6 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Código |
Descrição | Código |
Help de Campo | Preencher com o código |
Opções |
|
Validação | ExistChav() |
Consul. Padrão |
|
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | GETSXENUM("TW2", "TW2_COD") |
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_TIPO |
Tipo | C |
Tamanho | 1 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Visualizar |
Titulo | Tipo |
Descrição | Tipo de Restric. |
Help de Campo | Tipo de Restrição |
Opções | 1=Cliente;2=Local de Atendimento |
Validação | Pertence("12") |
Consul. Padrão |
|
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Não |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Não |
Campo | TW2_CODTEC |
Tipo | C |
Tamanho | 14 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Atendente |
Descrição | Atendente |
Help de Campo | Preencher com o código do atendente |
Opções |
|
Validação | ExistCpo("AA1") |
Consul. Padrão | AA1 |
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG | 116 |
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_NOME |
Tipo | C |
Tamanho | 30 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Nome |
Descrição | Nome Atendente |
Help de Campo | Nome do atendente |
Opções |
|
Validação |
|
Consul. Padrão |
|
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | IIF(!EMPTY(M->TW2_CODTEC),POSICIONE("AA1",1,XFILIAL("AA1")+M->TW2_CODTEC,"AA1_CODTEC") ,"") |
Inic. Browse | POSICIONE("AA1",1,XFILIAL("AA1")+TW2->TW2_CODTEC,"AA1_CODTEC") |
Grupo SXG |
|
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_CLIENT |
Tipo | C |
Tamanho | 6 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Cod. Cli. |
Descrição | Cod. Cliente |
Help de Campo | Código do Cliente |
Opções |
|
Validação | Vazio() .OR. ExistCPO("SA1") |
Consul. Padrão | SA1 |
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG | 001 |
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_LOJA |
Tipo | C |
Tamanho | 2 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Loja Cli. |
Descrição | Loja Cliente |
Help de Campo | Loja do cliente |
Opções |
|
Validação | Vazio() .OR. Existcpo("SA1",M->TW2_CLIENT+M->TW2_LOJA) |
Consul. Padrão |
|
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG | 002 |
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_NOMCLI |
Tipo | C |
Tamanho | 40 |
Decimal | 0 |
Picture | @! |
Contexto | Virtual |
Propriedade | Visualizar |
Titulo | Cliente |
Descrição | Cliente |
Help de Campo | Cliente |
Opções |
|
Validação |
|
Consul. Padrão |
|
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | IIF(!EMPTY(M->TW2_CLIENT),POSICIONE("SA1",1,XFILIAL("SA1")+M->TW2_CLIENT+M->TW2_LOJA,"A1_NOME") ,"") |
Inic. Browse | POSICIONE("SA1",1,XFILIAL("SA1")+SA1->A1_CLIENT,"A1_NOME") |
Grupo SXG |
|
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_LOCAL |
Tipo | C |
Tamanho | 8 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Local |
Descrição | Local de Atend |
Help de Campo | Local de Atendimento |
Opções |
|
Validação | Vazio() .OR. ExistCpo("ABS") |
Consul. Padrão | ABS |
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_DESLOC |
Tipo | C |
Tamanho | 50 |
Decimal | 0 |
Picture | @! |
Contexto | Virtual |
Propriedade | Visualizar |
Titulo | Descr. Local |
Descrição | Descrição Local |
Help de Campo | Descrição do Local de Atendimento |
Opções |
|
Validação |
|
Consul. Padrão |
|
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | IIF(!EMPTY(M->TW2_LOCAL),POSICIONE("ABS",1,XFILIAL("ABS")+M->TW2_LOCAL,"ABS_DESCRI") ,"") |
Inic. Browse | POSICIONE("AA1",1,XFILIAL("AA1")+TW2->TW2_CODTEC,"AA1_CODTEC") |
Grupo SXG |
|
Alt. Ordem | Não |
Alt. Tamanho | Não |
Campo | TW2_TEMPO |
Tipo | C |
Tamanho | 1 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Tempo |
Descrição | Tempo da Restr. |
Help de Campo | Tempo de Restrição |
Opções | 1=Indeterminado;2=Determinado |
Validação | Pertence("12") |
Consul. Padrão |
|
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | "1" |
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Não |
Campo | TW2_DTINI |
Tipo | D |
Tamanho | 8 |
Decimal | 0 |
Picture |
|
Contexto | Real |
Propriedade | Alterar |
Titulo | Data |
Descrição | Data |
Help de Campo | Data de início da restrição |
Opções |
|
Validação |
|
Consul. Padrão |
|
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | dDataBase |
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Não |
Campo | TW2_DTFIM |
Tipo | D |
Tamanho | 8 |
Decimal | 0 |
Picture |
|
Contexto | Real |
Propriedade | Alterar |
Titulo | Data Final |
Descrição | Data Final |
Help de Campo | Data Final da Restrição |
Opções |
|
Validação |
|
Consul. Padrão |
|
When | M->("TW2_TEMPO") == "2" |
Obrigatório | Não |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Não |
Campo | TW2_RESTRI |
Tipo | C |
Tamanho | 1 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Restrição |
Descrição | Restrição |
Help de Campo | Restrição |
Opções | 1=Aviso;2=Bloqueio |
Validação | Pertence("12") |
Consul. Padrão |
|
When |
|
Obrigatório | Sim |
Usado | Sim |
Browse | Sim |
Modulos | Todos |
Inic. Padrão | "2" |
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Não |
Campo | TW2_OBS |
Tipo | M |
Tamanho | 999 |
Decimal | 0 |
Picture | @! |
Contexto | Real |
Propriedade | Alterar |
Titulo | Observação |
Descrição | Observação |
Help de Campo | Observação da Restrição |
Opções |
|
Validação |
|
Consul. Padrão |
|
When |
|
Obrigatório | Não |
Usado | Sim |
Browse | Não |
Modulos | Todos |
Inic. Padrão |
|
Inic. Browse |
|
Grupo SXG |
|
Alt. Ordem | Sim |
Alt. Tamanho | Sim |
Gatilho
Campo | TW2_CODTEC |
Sequencia | 001 |
Regra | AA1->AA1_NOMTEC |
Contra Dominio | TW2_NOME |
Tipo | PrimárioPosicionamento |
PosicionaNão | Sim |
Alias | AA1 |
Ordem | 1 |
Chave | XFILIAL("AA1")+M->TW2_CODTEC |
Campo | TW2_CLIENT | |
Sequencia | 001 | |
RegraPOSICIONE("SA1",1,XFILIAL | SA1->A1_LOJA | |
Contra Dominio | TW2_LOJA | |
Tipo | Posicionamento | |
Posiciona | Sim | |
Alias | SA1 | |
Ordem | 1 | |
Chave | xFilial("SA1")+M->TW2_CLIENT+ | if(!Empty(MM->TW2_LOJA |
Campo | TW2_CLIENT |
Sequencia | 002 |
Regra | SA1->A1_NOME), M->TW2_LOJA, “”),”A1_LOJA”) |
Contra Dominio | TW2_LOJANOMCLI |
Tipo | PrimárioPosicionamento |
Posiciona | NãoSim |
Alias |
SA1 |
Ordem | Campo1 | TW2_CLIENT | |
Sequencia | 002 | ||
Chave | xFilial | Regra | POSICIONE("SA1",1,XFILIAL("SA1")+M->TW2_CLIENT+ | if(!Empty(M->TW2_LOJA), M->TW2_LOJA, “”),”A1_NOME”)
Contra Dominio | TW2_NOMCLI | ||
Tipo | Primário | ||
Posiciona | Não | ||
M->TW2_LOJA |
Campo | TW2_LOJA |
Sequencia | 001 |
RegraPOSICIONE("SA1",1,XFILIAL | SA1->A1_NOME |
Contra Dominio | TW2_NOMCLI |
Tipo | Posicionamento |
Posiciona | Sim |
Alias | SA1 |
Ordem | 1 |
Chave | xFilial("SA1")+M->TW2_CLIENT+M->TW2 | _LOJA, ”A1_NOME”)
Contra Dominio | TW2_NOMCLI |
Tipo | Primário |
Posiciona | Não |
_LOJA |
Campo | TW2_LOCAL |
Sequencia | 001 |
Regra | POSICIONE("ABS",1,XFILIAL("ABS")+M->TW2_LOCAL,”ABS_DESCRI”)->ABS_DESCRI |
Contra Dominio | TW2_DESLOC |
Tipo | PrimárioPosicionamento |
PosicionaNão | Sim |
Alias | ABS |
Ordem | 1 |
Chave | XFILIAL("ABS")+M->TW2_LOCAL |
Campo | TW2_TEMPO | ||
Sequencia | 001 | ||
Regra | “” | ||
Contra Dominio | TW2_DTFIM | ||
Tipo | Primário | ||
Posiciona | Não | Condição | M->TW2_TEMPO == “1” |
Relacionamento (X9)
Arquivo: TW2 - Restrições
País | ALL |
Tab.Dom-Pai | AA1 |
Exp.Dominio | AA1_CODTEC |
Exp.CDominio | TW2_CODTEC |
Tp.Lig.Dom. | 1 |
Tp.LigCDom. | N |
Usar Filial | Sim |
Habilitar | Sim |
Vinc. Filial | Não |
Chave Forte | Não |
País | ALL |
Tab.Dom-Pai | SA1 |
Exp.Dominio | A1_CLIENTE+A1_LOJA |
Exp.CDominio | TW2_CLIENT+TW2_LOJA |
Tp.Lig.Dom. | 1 |
Tp.LigCDom. | N |
Usar Filial | Sim |
Habilitar | Sim |
Vinc. Filial | Não |
Chave Forte | Não |
País | ALL |
Tab.Dom-Pai | ABS |
Exp.Dominio | ABS_LOCAL |
Exp.CDominio | TW2_LOCAL |
Tp.Lig.Dom. | 1 |
Tp.LigCDom. | N |
Usar Filial | Sim |
Habilitar | Sim |
Vinc. Filial | Não |
Chave Forte | Não |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|