Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Permitir filtrar e ordenar movimentos de separação
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | Wms |
Segmento Executor | Distribuição e Logistica | ||
Projeto1 | IRM1 | ||
Requisito1 | Subtarefa1 | PDRDL-7733 | |
Chamado2 |
| ||
Release de Entrega Planejada | 12.1.11 | Réplica | Sim |
País | (X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Permitir ao operador filtrar e ordenar os movimentos de separação, proporcionando maior agilidade na operação.
Será criada uma opção para filtrar os movimentos, onde estarão disponíveis para filtro os campos: Código de barras do endereço, coordenada 1, coordenada2, coordenada3, coordenada4.
Durante o processo de separação o usuário terá a opção de indicar o endereço mais próximo em que ele se encontra, para então filtrar os movimentos de separação associados a uma das coordenadas escolhidas (Bloco, Rua, Coluna, Andar, etc) através de uma nova função "Filtrar"
Além disso, o usuário, também terá a opção "Ordenar" para escolher a ordem de exibição dos movimentos, utilizando informações como Coordenadas do endereço, código de barras do endereço e código do produto podendo efetuar a ordenação de forma ascendente ou descendente.
Regra 1 – Funcionamento padrão:
- Ao selecionar a lista de separação o usuário deverá ter uma opção para filtrar os endereços. Opção F9
- Ao acionar a nova funcionalidade, o usuário deverá bipar o endereço onde ele se encontra fisicamente.
- O programa irá verificar o novo parâmetro wms_maior_coord_filt_sep, para saber a partir de qual coordenada deve verificar onde o operador se encontra.
- Digamos que o novo parâmetro está marcado com a coordenada 2 para a maior coordenada a filtrar.
- Primeiro o operador deverá bipar o endereço onde ele se encontra.
- Então o operador bipou o endereço 32, cujas coordenadas são coord_1 = “1” coord_2 = “A” coord_3 = “8” coord_4 = 1, então como está parametrizado para maior coordenada do filtro ser a 2, deverá montar 2 Selects na tabela wms_endereco filtrando pelas coordenadas desse endereço bipado, ou seja no filtro do select ficaria assim: where coord_1 = “1” and coord_2 = “A”.
- O primeiro select deve buscar o código de barras do endereço Máximo com esses filtros, e comparar para saber se o endereço encontrado no select é o mesmo bipado, se for igual, quer dizer que ele está no final, então a ordenação dos movimentos da lista deverá ocorrer de forma decrescente para que ele possa voltar. Gravar uma variável informando que é o endereço máximo.
- Caso não seja o Maximo, montar um select similar porém buscando o endereço Minimo.
- Caso seja o mínimo quer dizer que está no começo, então deverá ordenar de forma ascendente. Gravar uma variável também.
- No order by do select dos movimentos de separação deverá ver qual das duas variáveis está preenchida e verificar o parâmetro wms_maior_coord_filt_sep, para saber onde aplicar o order by.
- No exemplo acima, está marcado coordenada 2, então no order by, na coordenada 2, deverá incluir ASC ou DESC de acordo com os selects de máximo ou mínimo.
- Caso não seja nenhum dos dois, manter o order by padrão do programa: coorden_1, coorden_2, coorden_3, coorden_4, e não aplicar nenhum tipo de filtro.
- Após criar a regra de ordenação, deverá verificar se no wms6499 foi marcado algum filtro. As coordenadas marcadas no wms6499 deverão ser aplicadas no select e gravadas em uma variável modular. Para fazer isso, buscar na tabela wms_filtro_coletor_atributo onde wms_filtro_coletor_atributo.rotina = ‘wms6214’ AND wms_filtro_coletor_atributo.mostra_filtro = 'S'. E Montar um where_clause das coordenadas marcadas, de acordo com as coordenadas do endereço bipado.
- Caso no wms6499 esteja parametrizado que deve filtrar pela coordenada 1 e coordenada 2. Então deverá montar um where_clause encima da coordenada 1 e 2 do endereço bipado, assim como é feito o filtro dos select max e min.
- Caso o usuário queira fazer uma ordenação diferente das regras selecionadas acima, então ele deve acionar a nova opção F6 – F11 – Ordenação dos movimentos.
- Nessa nova tela ele pode informar qual a ordenação que ele quer usar, assim irá ignorar a regra de MAX/MIN.
- Então acionando a função F6F11, ele pode marcar que quer ordenar sempre, coorden_1 Asc, coorden_2 Asc, Coorden_3 Des, coorden_4 Asc.
- Ao informar essa nova ordenação, esses parâmetros deverão ser gravados na tabela wms_parametro_usuario, assim irá sempre ordenar dessa forma. A partir do momento que acionou essa nova função, não deverá mais fazer as validações de MAX/MIN e sempre respeitar essa ordenação informada.
- Assim deverá ler novamente os movimentos à serem separados aplicando os filtros e o order by.
- Ao terminar de separar os movimentos filtrados, deverá novamente ler a lista de separação, zerando a variável que guarda o where_clause do wms6499
Regra 2
- Caso o operador chame a função do filtro, e não informe nenhum endereço e confirme.
- Verificar a tabela wms_parametro_usuario se ele tem alguma ordenação e aplica-la no select, sem filtros.
Regra 3 – Nenhum filtro informado no wms6499:
Caso não haja nenhum filtro informado e marcado no wms6499 para o programa wms6214, ao acionar a opção F9, deverá gerar a seguinte mensagem: “Não há filtros parametrizados, favor verificar o programa wms6499”.
Alterações nos programas:
Wms6214:
Na função wms6214_exibe_array_movimentos disponibilizar duas novas opções F9/Ctrl-F - Filtrar e F6F11/Ctrl-D - Ordenar.
- Função F9/Ctrl-F Filtrar:
1 – Abrir uma nova tela conforme protótipo 1, onde o operador deverá ler o código de barras do endereço.
2 – Essa nova tela deverá ter duas opções: “Enter/Esc – Confirmar, Ctrl-c Cancelar”
3 - Após confirmar, deverá verificar se foi informado algum endereço, e alimentar a variável m_endereco_filtro.
4 – Chamar a nova função wms6214_monta_filtros_movimentos para montar um where_clause_filtro.
A nova função deverá funcionar da seguinte maneira:
a) Verificar se a variável m_endereco_filtro foi informada, caso não foi informada, limpar a variável m_where_clause_end e chamar wms6214_exibe_array_movimentos.
b) Caso a variável m_endereco_filtro estiver preenchida, buscar na tabela wms_endereco as coordenadas do endereço pelo código de barras informado.
c) Verificar novo parametro " wms_maior_coord_filt_sep", até qual coordenada deverá fazer o filtro, digamos que no parâmetro está até a coordenada 2, então alimentar variável m_where_clause_end e incluir coord 1 e coord 2. Exemplo: Vamos dizer que o operador bipou um código de barras '1234', com esse código você deverá ler a tabela WMS_ENDERECO onde o código de barras (e não o código do endereço) seja "1234" vamos dizer que você encontrou o endereço de código "9988", que tem as coordenadas 1='A' e coodernada 2= '1' e está parametrizado para filtrar até a coordenada 2.
d) Então deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.
e) Então deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.
Caso acione a tela de filtro, e não bipe um endereço, então terá que trazer todos os endereços, sem buscar max, min,
- Função F6F11/Ctrl-D Ordenar
1 - Abrir o nova tela wms62148.per onde o usuário poderá selecionar a ordem em que os movimentos serão apresentados. Esta tela deverá conter uma grid com 3 campos, conforme protótipo 1.
Na grid os três campos são: 1-Código 2-Descrição 3-Forma ordenação. Somente o primeiro e o terceiro campo estarão disponíveis para edição.
O campo código, deverá conter um zoom com as opções das coordenadas 1 a coordenada 4 e de Item. Para buscar as coordenadas do zoom, criar nova função wms6214_busca_desc_coordenadas_zoom(). Dentro da função utilizar:
a - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_1')
RETURNING l_des_coorden_1, l_status
b - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_2')
RETURNING l_des_coorden_2, l_status
c - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_3')
RETURNING l_des_coorden_3, l_status
d - CALL log2250_busca_parametro(mr_wms_tela.empresa,'des_coorden_4')
RETURNING l_des_coorden_4, l_status
2 - O Campo Forma ordenação deverá conter duas opções: 1-Ascendente 2-Descendente.
3 - Não deverá permitir duplicar os campos.
4 - A sequência de ordenação será conforme a ordem selecionada na grid.
5 – Buscar na tabela wms_parametro_usuario, filtrando pela empresa =p_cod_empresa, usuário =p_user e (parâmetro =’coordenada_1’ or parâmetro=’coordenada_2’ or parâmetro=’coordenada_3’ or parâmetro = ‘coordenada_4’). Caso encontre algum registro ordenar os campos na grid conforme o campo sequencia_parametro, e a forma de ordenação conforme o campo val_parametro. Caso não encontre registros, trazer como padrão a ordenação coorde_1, coorde_2, coorde_3, coorde_4, todos com a forma de ordenação “A”.
6 - Esse novo programa deverá alimentar variáveis modulares que serão lidas dentro do wms6214 no cursor CQ_LISTA_MOVTOS antes de fazer o PREPARE para poder ordenar conforme informado.
7 - Os parâmetros de ordenação devem ser gravados na tabela wms_parametro_usuario, sendo que deverão ser gravados 4 registros. Os campos empresa, usuário e rotina deverão receber as variáveis p_cod_empresa, p_user, ‘6214’ para todos os 4 registros. Já o campo parâmetro devera receber, coordenada_1, coordenada_2, coordenada_3, coordenada_4. O campo sequencia_parametro deverá receber a sequência de ordenação e o campo val_parametro, a forma de ordenação sendo “A” ou “D”.
8 - Após sair da tela de filtros deve chamar novamente a função wms6214_exibe_array_movimentos para atualizar a lista de movimentos.
Alteração na função wms6214_carrega_movimentos_lista.
Dentro da função wms6214_carrega_movimentos_lista, no cursor cq_lista_movtos verificar as variáveis m_where_clause, e m_where_clause_end, caso estejam preenchidas, incluir no where do cursor.
Também deve ser verificada as variáveis modulares de ordenação, e incluir no order by do cursor CQ_LISTA_MOVTOS caso estejam preenchidas. Caso contrário, deixar o order by como está.
Ao confirmar e voltar pra tela de movimentos, deverá atualizar a lista, ordenando conforme parametrizado.
Wms6499 - Filtros genéricos
Na função wms6499_verifica_atributos antes do END FUNCTION, incluir INSERT para novos atributos conforme abaixo:
INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_1','N','WMS_ENDERECO','C','4','Coorden 1',null,'N',null,'N',null)
INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_2','N','WMS_ENDERECO','C','4','Coorden 2',null,'N',null,'N',null)
INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)
VALUES ('WMS6214','COORDEN_3','N','WMS_ENDERECO','N','5','Coorden 3',null,'N',null,'N',null)
INSERT INTO wms_filtro_coletor_atributo (rotina, atributo, mostra_filtro, tabela_atributo, tip_dado, tamanho, descricao_exibicao, legenda, obrigatorio, val_inicial, considera_parcial, validacao)VALUES ('WMS6214','COORDEN_4','N','WMS_ENDERECO','N','5','Coorden 4',null,'N',null,'N',null)
LOG00086 - Parâmetros
- Criar novo parâmetro no sistema:
- Conversor: wms00524.cnv (fazer checkin deste conversor no projeto/tarefa):
- Parâmetro:
- Código: wms_maior_coord_filt_sep
- Descrição: "Maior coordenada para filtro de movimentos para separação"
- Área: 9 - LOGIX WMS
- Sistema: 407 - LOGIX WMS
- Rotina: 292
- Tipo conteúdo: N - Numérico
- Permitir nulo?: S
- Case sensitive: NULL
- Auto-incremento: N
- Situação: A – Ativo
- Efetuar replicação: N
- Replicação opcional: N
- Cliente: 105 – TOTVS
- Valor padrão: 2
- Comentário rodapé: NULL
- Help: Após acionar o Filtrar na separação(wms6214), o programa irá verificar o novo parâmetro para saber a maior coordenada que deve utilizar para o filtro dos movimentos para separação.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
wms6214 | [Alteração] | ||
wms6499 |
|
|
Protótipo de Tela
Protótipo 1
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|