UC00114 - Consulta estoque mín-máx/sugestão de compra

De Wiki Java - Interno
Edição feita às 08h38min de 22 de outubro de 2014 por Daniel (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Conteúdo

[editar] Objetivo

  • Manter consulta de sugestão de compra e produtos no estoque mínimo/máximo.

[editar] Atores

  • Usuário

[editar] Pré-requisitos

  • Considerar documento Padrões de desenvolvimento.
  • No projeto da rotina, em confsrc > META-INF > messages > view.properties definir o nome como Estoque mín-máx/sugestão de compra. Este nome será utilizado para criar a página no Wiki.
  • Excluir tanto do menu quanto do fonte do sistema o Relatório de estoque mínimo/máximo, uma vez que este será embutido dentro da nova rotina em questão.


Desenvolver um novo componente para ser utilizado na filtragem com as seguintes características:

  1. O componente deverá ter aparência de um combobox, apesar de poder não ser um combobox propriamente dito.
  2. Quando renderizado em tela o componente deverá apresentar o texto padrão Selecione como item selecionado do suposto combobox.
  3. Quando usuário clicar sobre qualquer parte do componente deverá ser exibido uma espécie de painel simulando a abertura da lista de um combobox.
    • Na parte superior deste painel exibir um campo chamado Filtro, para que o usuário digite o nome do(s) registro(s) que deseja selecionar ou parte do nome do(s) registro(s). À medida que o usuário digitar a lista de dados exibida no painel deverá ser reformulada exibindo somente dados coerentes com os digitados.
    • Logo abaixo do campo de filtragem exibir uma listagem de dados dividida em duas colunas, tendo como primeiro item da lista o valor fixo TODOS. Este valor fixo significará que todos os itens da lista serão considerados em uma determinada consulta. Esta lista de dados poderá variar, dependendo de em qual filtro será utilizado o novo componente, exemplo: Grupo, subgrupo, família e etc.
    • Para os itens da lista, ter a possibilidade de exibi-lo como um item normal ou como um item de checklist box, permitindo que o usuário selecione dois ou mais itens da listagem. Esta opção de seleção simples ou como item de checklist box irá depender do tipo de filtragem.
    • Exibir o nome do item selecionado ou a quantidade de itens selecionados no campo com a lista/painel fechada.
    • Utilizar como base o componente/combobox de filtragem da página Vrum

[editar] Resultado esperado

  • Com base nas entradas e saídas realizadas para os itens, sugerir para os mesmos quantidade a comprar para repor seu estoque e visualizar produtos que se encontram atualmente no estoque mínimo/máximo.

[editar] Diagrama de classes

Produto.png MovimentoEstoquePreco.png

[editar] Layouts sugeridos

[editar] Fluxo de eventos

[editar] Fluxos principais

Fluxo 1: Usuário loga no sistema e acessa Menu -> Consultas -> Faturamento -> Estoque mín-máx/sugestão de compra.

  • Sistema exibe ao usuário a aba com os filtros da consulta conforme determina a regra de negócio RN01. Lembrando que neste momento, o grid da aba Estoque mínimo/máximo já estará preenchido com todos os produtos/grades que atualmente se encontram com o estoque atual igual ou menor que seu estoque mínimo.


Fluxo 2: Usuário informa os filtros desejados e em seguida aciona o botão [Consultar].

  • Com base nos dados informados nos três grupos de filtro o sistema irá buscar por produtos no estoque mínimo/máximo e/ou calcular a sugestão de compra.
  • O grid da aba Estoque mínimo/máximo será preenchido novamente com registros coerentes com os filtros informados no respectivo grupo de filtros descartando a filtragem que é feita assim que a rotina é acessada.
  • Será feito o calculo de sugestão de compra e os resultados serão exibidos no grid da aba Sugestão de compra, que também ficará visível.
  • A exibição do resultado da consulta se dará conforme regra de negócio RN02.

[editar] Fluxos alternativos

Fluxo 1: Na consulta de dados para sugestão de compra, usuário informa filtros que abrangem produtos que ainda não possuem entrada através de uma nota.

  • Na coluna R$ ÚLT. ENT. do item e da grade, será exibido o valor 0,00 para os itens/grades que se encontrarem na situação proposta acima.

[editar] Fluxos de exceção

[editar] Regras de negócio

[editar] RN01 - Filtragem

Uma vez que esta consulta tem o objetivo de listar tanto produtos no estoque mínimo/máximo quanto gerar sugestão de compra, serão necessários 3 grupos de filtros distintos onde:

  • Gerais: Conjunto de filtros (sempre visíveis) que são em comum tanto para consulta de estoque mínimo/máximo quanto para sugestão de compra.
  1. Filial: Campo onde o usuário poderá selecionar uma ou mais filiais para filtragem dos dados. A filial logada será marcada como padrão e somente serão listadas as filiais cujo usuário logado tem acesso.
  2. Fornecedor: Este campo utilizará o novo componente mencionado nos pré-requisitos. Nele o usuário poderá filtrar/selecionar um ou mais fornecedores a serem considerados na consulta.
  3. Grupo: Campo onde o usuário poderá selecionar/filtrar um ou mais grupos de produtos a serem considerados na consulta (utilizar novo componente).
  4. Subgrupo: Habilitado somente se pelo menos um grupo (que tenha subgrupo) for selecionado, este campo permitirá que o usuário filtre/selecione um ou mais subgrupos a serem utilizados na consulta. Serão listados somente subgrupos que estejam vinculados ao(s) grupo(s) selecionado(s) no campo Grupo (utilizar novo componente).
  5. Família: Campo onde o usuário poderá selecionar/filtrar uma ou mais famílias a serem consideradas na consulta (utilizar novo componente).
  6. Fabricante: Campo onde o usuário poderá selecionar/filtrar um ou mais fabricantes a serem considerados na consulta (utilizar novo componente).
  7. Marca: Campo onde o usuário poderá selecionar/filtrar uma ou mais marcas de produtos a serem consideradas na consulta (utilizar novo componente).
  8. Considerar: Campo onde o usuário poderá selecionar o tipo de item a ser considerado na consulta com as opções Ambos, Produto acabado e Matéria prima.
  9. Ordenação: Campo onde o usuário poderá selecionar a forma de ordenação em que os produtos serão listados no grid. As opções serão as seguintes:
    • Código
    • Descrição
    • Referência
    • Referência do fabricante
  10. Classificação: Campo onde o usuário poderá selecionar uma classificação de produto quanto a curva A B C. Por padrão, as três opções serão marcadas.
  • Estoque mínimo/máximo: Conjunto de filtros específicos que em conjunto com os filtros gerais vão consultaro produtos no estoque mínimo/máximo. Os resultados referentes à estoque mínimo ou máximo serão exibidos na aba Estoque mínimo/máximo.
  1. Estoque: Campo onde o usuário poderá informar como deseja filtrar produtos com estoque mínimo ou máximo. As opções serão as seguintes:
    • Abaixo ou igual ao mínimo: Serão considerados somente produtos cujo estoque está abaixo ou igual ao estoque mínimo informado em seu cadastro.
    • Acima ou igual ao máximo: Serão considerados somente produtos cujo estoque está acima ou igual ao estoque máximo informado em seu cadastro.
    • Ambos: Opção padrão. Considera na consulta produtos cujo estoque é igual ou abaixo ao estoque mínimo e também produtos cujo estoque é igual ou maior que o estoque máximo. Neste caso, para a ordenação selecionada, produtos no estoque mínimo serão exibidos primeiro.
  • Sugestão de compra: Conjunto de filtros específicos para geração de sugestão de compra.
  1. Média mensal dos últimos X meses: Campo onde o usuário poderá selecionar quantos meses o sistema deverá considerar para calcular a sugestão de compra. A opção 6 será a padrão.
  2. Sugestão de compra para X dias: Campo onde o usuário deverá informar a quantidade em dias para qual o sistema deverá calcular a sugestão de compra.
  3. Somente produtos no estoque mínimo: Caso usuário marque este parâmetro serão considerados na sugestão de compra somente produtos/grades cujo estoque atual é igual ou menor que o estoque mínimo.

[editar] RN02 - Resultados da consulta

Os resultados da consulta poderão ser divididos em duas abas dependendo dos filtros utilizados e da versão do sistema. conforme descrito abaixo.

[editar] Estoque mínimo/máximo

Esta aba é responsável por exibir somente resultados que consideram os filtros Gerais e Estoque mínimo/máximo. Estes serão listados em um grid com as seguintes colunas:

  1. PRODUTO: Código + Descrição do item.
  2. UNIDADE: Unidade padrão informada no cadastro do item.
  3. GRADE: Descrição da grade caso exista. Caso produto não possua grade será exibido GRADE PADRÃO.
  4. ESTOQUE ATUAL: Quantidade atual em estoque para o item. Caso item possua grade, será considerado o estoque atual da grade exibida.
  5. ESTOQUE MÍN.: Estoque mínimo estipulado no cadastro do item. Caso item possua grade, será considerado o estoque mínimo informado para a grade.
  6. ESTOQUE MÁX: Estoque máximo estipulado no cadastro do item. Caso item possua grade, será considerado o estoque máximo informado para a grade.
    
    Por padrão assim que a rotina em questão for acessada esta aba exibirá, automaticamente, todos os produtos/grades que se encontram atualmente com o estoque atual 
    igual ou menor que seu estoque mínimo.

[editar] Sugestão de compra

Esta aba será exibida se e somente se houver valor informado no filtro Sugestão de compra para X dias. A sugestão de compra será exibida em um grid com as seguintes características:

Cabeçalho Primeira linha do grid (fixa) que formará seu cabeçalho (semelhante à consulte de vencimentos a receber) com as seguintes funcionalidades:

  1. Botão [Expandir todos os detalhes]: Botão que quando acionado, expande todos os dados detalháveis exibidos no grid. Se acionado novamente, todos os detalhes serão recolhidos.
  2. Tipo de agrupamento: Campo onde o usuário poderá escolher como deseja agrupar os resultados exibidos (de forma dinâmica) no grid com as seguintes opções:
    • Filial (opção padrão)
    • Fornecedor
    • Grupo
    • Família
    • Fabricante
    • Marca
  3. VALOR DA SUGESTÃO DE COMPRA: Coluna que exibirá, para o agrupamento selecionado, o valor total da sugestão de compra. O valor total da sugestão de compra se dará multiplicando a quantidade sugerida para a compra de cada item/grade pelo preço de custo de sua última entrada (NF).


Listagem de produtos Na primeira coluna do grid, à esquerda de cada agrupamento será exibido o botão [Detalhar agrupamento] que quando acionado exibe/oculta os itens pertencentes a um determinado agrupamento. Os itens de um agrupamento serão exibidos nas seguintes colunas (1º nível de detalhe):

  1. ITEM: Exibirá o código + descrição do item.
  2. UNIDADE: Exibirá a unidade padrão do item conforme informado em seu cadastro.
  3. ESTOQUE ATUAL: Exibe a quantidade em estoque do item. Caso item controle grade, o estoque atual dele será a soma do estoque de suas grades.
  4. R$ ÚLT. ENT.: Exibe o preço de custo informado na última entrada (NF) do item. Caso item controle grade, será exibido o maior custo dentre as grades que entraram.
  5. QTDE. EM OC: Quantidade do item existente em uma ou mais ordens de compra em aberto ou fechadas parcialmente. Caso item controle grade, a quantidade em OC será a soma das quantidades das grades existentes em OC.
  6. SUGESTÃO COMPRA: Exibe a quantidade sugerida para compra do item no período informado no campo Sugestão de compra para X dias na filtragem. Caso item controle grade, a sugestão exibida será a soma das quantidades sugeridas para cada grade. A sugestão de compra será feita considerando a venda média mensal do item/grade fazendo uma projeção para o período de sugestão informado pelo usuário. Exemplo: Se a venda média de um item é 5 e o período de sugestão informado foi 90 dias, então a sugestão de compra será 15. Se a venda média é 5 e o período de sugestão informado foi 15 dias, então a sugestão de compra será 2,5. Quantidades em estoque atual e também em ordens de compras geradas deverão ser deduzidas da quantidade sugerida.
  7. VENDA MÉDIA: Quantidade média de venda por mês do produto no período considerado na consulta. Caso produto controle grade, as quantidades vendidas para cada grade irão compor o cálculo da média do item que será feito na seguinte formula:
    1. Obter a quantidade vendida para o item (considerando a quantidade das grades se houver) em cada mês do período informado no filtro Média mensal dos últimos X meses.
    2. Somar as quantidades vendidas para o item em cada mês do período.
    3. Dividir a soma das quantidades vendidas para o item pela quantidade de meses do período considerado, obtendo como resultado a média mensal.
  8. MAIOR VENDA (QTDE.): Nesta coluna será exibida a maior venda realizada para o item. Neste caso serão verificados no período da consulta todos os pedidos de venda cujo item em questão está incluso buscando pelo pedido onde foi vendida a maior quantidade do mesmo. Uma vez que esta quantidade foi identificada como maior, ela será exibida na coluna em questão como maior venda do período. A quantidade a ser considerada será a do item, considerando a soma das quantidades vendidas nas grades em um determinado pedido como quantidade vendida para o item.
  9. QTDE. VENDA XX/XXXX: Esta coluna exibirá, para cada mês do período considerado, a quantidade vendida do item. Para cada mês do período o sistema deverá renderizar dinamicamente na tela uma nova coluna com a respectiva quantidade vendida. Caso item controle grade, a quantidade vendida será a soma das quantidades vendidas das grades.


Detalhamento das grades Na primeira coluna do detalhamento dos itens será exibido, somente para produtos que controlam grade, o botão [Detalhar item], que quando acionado irá detalhar as grades de um determinado item nas mesmas colunas do item (2º nível de detalhe):

  1. GRADE: Exibe o nome/descrição da combinação de grade. Esta coluna é exclusiva da grade, as demais informações/colunas deverão ser alinhadas com as colunas do item evitando a criação delas no detalhamento das grades.
  2. ESTOQUE ATUAL: Exibe o estoque atual da combinação de grade.
  3. R$ ÚlT. ENT.: Exibe o preço de custo informado na última entrada da grade (NF).
  4. QTDE. EM OC: Exibe a quantidade total da grade em questão existente em ordens de compra em aberto ou fechadas parcialmente.
  5. SUGESTÃO COMPRA: A exemplo de como é feita para o item, será sugerida uma quantidade de compra para a grade.
  6. VENDA MÉDIA: Exibe a média mensal de venda da grade, a exemplo de como é feito no item.
  7. MAIOR VENDA (QTDE): A exemplo de como é feito para o item, o sistema exibirá no período da consulta a maior venda de uma determinada grade.
  8. QTDE. VENDA XX/XXXX:' A exemplo de como é feito no item, estas colunas exibirão a quantidade vendida da grade em cada mês do período considerado na consulta.

[editar] RN03 - Impressão

Em cada aba, no canto superior direito de cada grid, será exibido o botão [Imprimir] a exemplo de como ocorre na consulta de vencimentos a receber. Quando usuário posicionar o mouse sobre o botão em questão, serão exibidas as opções de formato de impressão (PDF, Word e Excel).

A impressão dos relatórios deverá seguir os templates já existentes no sistema e também as determinações dos padrões de desenvolvimento.

    
    Para o grid de sugestão de compra, o detalhamento dos itens deverá ser impresso da forma em que estão listados no grid.

[editar] RN04 - Geração automática de cotação

No grid da aba Sugestão de compra, à direita de cada tipo de agrupamento será exibido um ícone que quando acionado invocará uma funcionalidade do sistema que irá abrir em uma nova aba do navegador a rotina de cotação de compras em modo de inclusão com os itens do agrupamento em questão já digitados. Será permitido que o usuário altere os dados digitados se desejar seguindo com as funcionalidades já existentes na rotina de cadastro de cotação.


No canto superior direito do grid, à esquerda do botão que gera a impressão, será exibido o mesmo ícone. Quando acionado este ícone considerará todos os produtos listados na sugestão fazendo a digitação automática dos mesmos na cotação.

Ferramentas pessoais
Espaços nominais

Variantes
Visualizações
Ações
Navegação
Ferramentas