Definição da Regra de Negócio
Será utilizada a mesma regra de negócio de Configurador de Produtos em Progress, ou seja, serão utilizados os mesmo objetos de negócio existentes.
Para o correto funcionamento da configuração no HTML deverá ser usada a função de pré-salvamento, ou seja, a cada Avançar será salva a configuração.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
productconfigured-list.js | Alteração | | |
productconfigured.list.html | Alteração | | |
productconfigured.js | Alteração | | |
productconfigured-configuration.js | Criação | | |
productconfigured-configuration.html | Criação | | |
fchmanproductconfigured-configuration.p | Criação | | |
Configurar
O funcionamento deve ser o mesmo do programa CF0201, o que muda é a interface (protótipo de tela 1). As funções utilizadas são do objeto de negócio BOMF067 aonde se encontram todas as regras de negócio da configuração de produto.
A tela
São exibidos os seguintes campos:
- Item (cot-est-mast.item-cotacao)
- Disponível para o usuário informar
- A pesquisa para este campo será desenvolvida no requisito PCREQ-9407
- Validar se o registro informado existe na tabela modelo-cf.
- Descrição Item (item.desc-item) - Informação de acordo com o item informado
- Modelo (modelo-cf.mo-codigo) - Informação de acordo com o item informado
- Descrição Modelo (modelo-cf.descricao) - Informação de acordo com o item informado
- Configuração
- Gerado através da função retornaProxNrEstrut passando como parâmetro o item,
- Usuário pode alterar;
- Somente pode informar um número que ainda não possua configuração;
- Caso exista, apresentar mensagem de erro "Já existe configuração com o número informado"
- Descrição Configuração (cot-est-mast.descricao) - Disponível para o usuário informar.
- Nível - Inicia-se sempre no nível 1. Durante a navegação esse número é atualizado.
Abaixo é criada uma área aonde serão incluídas as variáveis da configuração.
Deverão ser incluídos o botão Voltar e Avançar, que permitem a navegação entre os níveis da configuração, além do botão Salvar que vai salvar as variáveis informadas.
- InicializaConfig
- RetornaTreeView - Retorna as informações que serão exibidas em tela.
Exibição das variáveis:
A primeira coisa a ser exibida na área de variáveis é o item, que vem através da tt-tree, registro 3. Colocar ao lado do item, a sua descrição (item.desc-item).
Existem 3 tipos de exibição (utilizar imagens similares as utilizadas no CF0201):
- Resultado Tabela, aonde o usuário precisará escolher uma opção entre várias. Exibir em formato de combo-box. (Nome tabela: registro 11 da tt-tree. Opções registro 5 não marcado e 9 marcado).
Ao salvar, chamar função IniciaEdicaoTreeView. - Resultado Família. São listados os vários itens relacionados à família e o usuário seleciona os itens e suas quantidades. Exibir em formato de check-box para selecionar o item e ao lado de cada item um campo para informar a quantidade. (Nome família: registro 6 da tt-tree. Opções registro 12 não marcado e 9 marcado)
Para salvar a alteração, para cada registro de item da família marcado, chamar a função IniciaEdicaoTreeView e RecalculaTotFamilia. - Resultado Caracter/Numérico/Fórmula. Exibir um campo respeitando o formato da variável. (Registro 4 da tt-tree)
Ao salvar, chamar a função IniciaEdicaoTreeView e ConfirmaEdicaoChr ou ConfirmaEdicaoDec.
Escolhendo as opções:
Durante o processo de configuração, cada variável pode possuir sua validação específica, sendo assim, se atentar ao salvar as variáveis para o retorno da função de confirmação. (ConfirmaEdicaoChr ou ConfirmaEdicaoDec).
Botões Voltar e Avançar
A navegação é feita através da função NavegaConfig, que recebe como parâmetro a ação "A" para avançar ou "V" para voltar. Ela retorna a disponibilidade de voltar e avançar (que habilita/desabilita os botões em tela) e do nível em que a configuração se encontra.
Quando a mesma retornar falso para o avançar, significa que já chegou no final da configuração.
Ao acionar Avançar:
- Posicionar a BO no nível que está em tela. (NavegaConfig até o nível)
- Salvar as variáveis alteradas em tela (ConfirmaEdicaoChr ou ConfirmaEdicaoDec);
- Variável Tabela: Chamar IniciaEdicaoTreeView com o registro de tt-tree.
- Variável Família: Para cada registro marcado, chama IniciaEdicaoTreeView para o registro marcado e RecalculaTotFamilia.
- Variável Caracter/Numérico/Fórmula: IniciaEdicaoTreeView e ConfirmaEdicaoDec para decimal, ou ConfirmaEdicaoChr para outros tipos.
- NavegaConfig para posicionar a BO na nova página;
- RetornaTreeView para trazer os dados do nível;
- PreSalvamento para salvar as informações;
- Atualiza o nível na tela.
Ao acionar Voltar:
- Posicionar a BO no nível que está em tela menos um. (NavegaConfig).
- RetornaTreeView para retornar as variáveis.
Botão Salvar
Caso o usuário queira salvar as variáveis informadas para que continue a configuração em um outro momento, é possível através da função salvar:
- Posicionar a BO no nível que está em tela. (NavegaConfig até o nível)
- Salvar as variáveis alteradas em tela de acordo com o tipo;
- PreSalvamento para salvar as informações.
Estrutura - Final Configuração
Ao final da configuração, quando não está mais disponível a opção voltar, a função RetornaTreeView retorna toda a estrutura formada durante a configuração que deverá ser exibida em forma de árvore, de acordo com protótipo de tela 2.
Utilizar imagens para diferenciar cada tipo de linha da árvore (operações, componentes e variáveis).
- Ações
- Mostra Operações - Ao selecionar, mostra também as operações da configuração:
- Posicionar a BO no último nível;
- Chamar ExibeEstruturaFinal;
- Pegar as informações através de RetornaTreeView.
- Variáveis (Nenhuma, Dados, Fórmula ou Todas) - Ao alterar:
- Posicionar a BO no último nível;
- Chamar ExibeEstruturaFinal;
- Pegar as informações através de RetornaTreeView.
- Narrativa - Disponível no final da configuração.
- É buscada através da função GeraNarrativa.
- Sugere-se já buscar a narrativa antes de mostrar os dados em tela, para que não seja necessário realizar uma nova pesquisa na BO do progress.
- Apresentar uma tela pequena com apenas a informação da narrativa e botão ok.
- Salvar
- Posicionar a BO no último nível;
- Chamar a função GravaDadosConfig para salvar e finalizar a configuração.
- Se param-cf.log-2 for igual a Sim, chamar a função verificaEstruturaFantasma. Se retornar OK, perguntar ao usuário "Gera nível na estrutura ?" (mensagem 27887).
- Caso responder não, chamar a função EliminaNiveis,
Reconfigurar
A reconfiguração utiliza a mesma tela da configuração (protótipo de tela 1), a diferença é que não poderá ser informado um item e não é gerado um novo número de configuração , pois já vai trazer posicionado no registro selecionado da listagem. Somente poderá ser feita reconfiguração quando situação da versão for Aberta ou Roteiro Aprovado.
Neste caso, as variáveis já estão preenchidas e permitem o usuário alterá-las.
Antes de iniciar a reconfiguração, é preciso realizar algumas validações para verificar se a configuração selecionada permite:
- VerificaPendenciaPedido, caso retorne erro, apresentar mensagem de erro - "Este item esta associado ao Pedido &1, que esta pendente de Configuração, ou seja, ainda não existe estrutura configurada para o Item &2, configuração &3 . Por este motivo a função Reconfiguração não pode ser utilizada."
- ValidaReconfig, caso retorno erro, apresentar a mensagem 26327 - Texto: "Confirma Reconfiguração?"
- Verificar parametrização do módulo. Caso param-cf.log-2 estiver como Sim apresentar mensagem 28557 - Texto: "ATENÇÃO: A função Reconfiguração está desabilitada."
- Validar sincronismo - VerificaSincronismo, retornando erro apresentar mensagem 28557 - Texto: "ATENÇÃO: A função Reconfiguração está desabilitada."
São exibidos os seguintes campos:
- Item (cot-est-mast.item-cotacao) - Registro selecionado em tela
- Descrição Item (item.desc-item) - Informação de acordo com o item informado
- Modelo (modelo-cf.mo-codigo) - Informação de acordo com o item informado
- Descrição Modelo (modelo-cf.descricao) - Informação de acordo com o item informado
- Configuração (cot-est-mast.nr-estrut) - Registro selecionado em tela
- Descrição Configuração (cot-est-mast.descricao) - Registro selecionado em tela
- Nível - Inicia-se sempre no nível 1. Durante a navegação esse número é atualizado.
Funcionamento:
- InicializaConfig
- RetornaTreeView - Retorna as informações que serão exibidas em tela.
Os botões de salvar, voltar a avançar possuem o mesmo funcionamento de função de configuração.
Detalhar
O detalhe somente irá visualizar a estrutura configurada em forma de árvore. Não será possível alterar as informações.
Será usada a mesma tela do final da configuração (Protótipo de tela 2), mas não serão exibidos os botões "Salvar" e "Voltar".
Para buscar os registros utilizar o NavegaConfig, indo até o último nível. O usuário poderá também escolher se quer ver as operações e as variáveis.
Tabelas Utilizadas
- cot-est-mast
- cot-estrut
- cot-oper