UC00078 - Cadastro de produto acabado

De Wiki Java - Interno
Ir para: navegação, pesquisa

Conteúdo

[editar] Objetivo

  • Manter cadastro de produto acabado

[editar] Atores

  • Usuário

[editar] Pré-requisitos

[editar] Resultado esperado

  • Incluir, alterar, excluir, consultar e pesquisar produtos acabados no sistema.

[editar] Diagrama de classes

Produto.png TributacaoServicos.png

[editar] Fluxo de eventos

[editar] Fluxos principais

Fluxo 1

  1. Usuário acessa Menu -> Cadastros -> Faturamento -> Item -> Produto acabado.
  2. Usuário aciona o botão <Adicionar produto acabado>.
    • Sistema exibe a tela de cadastro de produto conforme regras de negócio RN01 a RN07.
  3. Usuário preenche os dados do produto que deseja cadastrar e aciona o botão <Salvar>.
    • Sistema procede conforme regra de negócio RN010.


Fluxo 2

  1. No grid da tela inicial da rotina em questão o usuário seleciona um determinado produto já cadastrado para alteração.
    • Sistema exibe a tela de cadastro do mesmo com os campos automaticamente preenchidos com os dados já gravados e habilitados para alteração.
  2. Usuário altera os dados do produto da maneira que desejar e aciona o botão <Salvar>.
    • Sistema procede conforme regra de negócio RN010.


Fluxo 3

  1. No grid da tela inicial da rotina em questão o usuário seleciona um determinado produto já cadastrado para exclusão.
    • Sistema verifica se o produto cujo usuário tenta excluir já foi movimentado.
    • Se sim, a exclusão será abortada e a seguinte mensagem será exibida: Este produto já foi movimentado e portanto não será permitido excluí-lo. Sugestão: Altere seu cadastro e marque-o como inativo.
    • Se não, será exibida ao usuário uma mensagem de confirmação perguntando se ele deseja realmente excluir o produto. Caso usuário clique em <Sim> na mensagem o produto será permanentemente excluído. Caso clique em não, a exclusão deverá ser abortada.

[editar] Fluxos alternativos

Fluxo 1: Em modo de inclusão usuário adiciona variações de grade para o produto.

  • Sistema procede conforme itens 22 a 26 da regra de negócio RN01.


Fluxo 2: Em modo de inclusão ou alteração, usuário acessa a aba Preços do cadastro de produtos.

  • Sistema exibe todas as tabelas de preço cujo cadastro possui marcada a filial logada.
  • Sistema exibe a tabela de preço marcada como padrão como primeira da lista e com seu nome em negrito.
  • Sistema só permite que o produto seja salvo se houver preço informado para todas as tabelas listadas na aba Preços.

[editar] Fluxos de exceções

Fluxo 1: Em modo de alteração usuário adiciona/exclui variações de grade para o produto.

  • Sistema procede conforme regra de negócio RN11.


Fluxo 2: Em modo de alteração usuário ativa/desativa o parâmetro Usa série do cadastro de um determinado produto.

  • Sistema procede conforme determina a regra de negócio RN13.


Fluxo 3: Usuário acessa o cadastro de um determinado produto em modo de alteração e tenta alterar as unidades padrão, de entrada e de saída do mesmo.

  • Caso produto já tenha sido movimentado na unidade padrão, o respectivo campo ficará desabilitado sempre que a aba Unidades for acessada. Caso contrário o campo ficará habilitado e o usuário poderá selecionar uma unidade diferente.
  • Caso usuário tente excluir do grid de unidades de entrada uma unidade na qual o produto já foi movimentado, o sistema abortará a exclusão e emitirá ao usuário a mensagem O produto em questão já foi movimentado com esta unidade de entrada, portando não será permitido exclui-la. Caso produto não tenha sido movimentado na unidade, a exclusão da mesma será permitida.
  • Caso usuário tente excluir do grid de unidades de saída uma unidade na qual o produto já foi movimentado, o sistema abortará a exclusão e emitirá ao usuário a mensagem O produto em questão já foi movimentado com esta unidade de saída, portando não será permitido exclui-la.


Fluxo 4: Usuário ao cadastrar/alterar um produto, informa no campo Referência da aba Gerais uma referência já utilizada em outro produto.

  • Sistema emite um alerta, mas, permite a gravação.


Fluxo 5: Usuário ao cadastrar/alterar um produto, informa em suas unidades de entrada ou saída, uma referência já utilizada em outro produto/unidade.

  • Sistema avise que já existe um outro produto/unidade com esta mesma referência e aborta a gravação.


Fluxo 6: Usuário acessa o cadastro de produtos para inclusão ou alteração sem que haja nenhuma tabela de preço marcada como padrão para a filial logada.

  • Sistema não permite que o usuário entre em modo de inclusão ou alteração e emite ao usuário a seguinte mensagem de alerta: Não há tabela de preço padrão definida para a filial logada. Verifique o cadastro de tabelas de preço e tente novamente..

[editar] Regras de negócio

[editar] RN01 - Aba "Gerais"

  1. Código: Campo somente para leitura que exibirá o código do produto. Este código é gerado automaticamente pelo sistema quando o produto é cadastrado.
  2. Ativo: Parâmetro que determina se um produto está ativo ou não. Produtos inativos não serão sequer visualizados nas demais rotinas do sistema (buscas, consultas e pesquisas).
  3. Bloqueado: Parâmetro que determina se um produto está bloqueado para uso ou não. Produtos bloqueados serão visualizados em outras rotinas do sistema, mas não poderão ser movimentados.
  4. Controla estoque: Este parâmetro determina se o produto movimentará estoque.
  5. Permite estoque negativo: Este parâmetro somente ficará habilitado caso parâmetro Controla estoque esteja ativado. Quando ativado, o parâmetro em questão permitirá que o produto seja movimentado mesmo que não haja estoque disponível, fazendo com que o estoque fique negativo.
  6. Referência: Campo onde poderá ser informada uma referência para o produto, geralmente, o código de barras do mesmo (EAN).
  7. Ref. Fabricante: Campo onde poderá ser informada uma referência de fabricante para o produto, geralmente, um código interno do produto em questão em seu fabricante.
  8. Descrição: Campo onde deverá ser informada a descrição principal do produto.
  9. Descrição reduzida: Campo onde poderá ser informada uma descrição mais resumida para o produto. Estas descrições resumidas podem ser utilizadas em relatórios/consultas que possuem muitas colunas para ocupar menos espaço.
  10. Descrição estendida: Campo onde poderá ser informada uma descrição mais detalhada para o produto.
  11. Alerta: Campo onde poderá ser atribuída uma mensagem de alerta para o produto. Sendo assim em todas as rotinas de movimento quando o produto for selecionado este alerta será exibido ao usuário.
  12. Grupo: Neste campo onde serão listados todos os grupos cadastrados no sistema para que o usuário selecione um único grupo a qual o produto em questão irá pertencer.
  13. Subgrupo: Neste campo serão listados todos os subgrupos cadastrados que estão vinculados ao grupo já selecionado.
  14. Família: Neste campo serão listadas todas as famílias cadastradas no sistema para que o usuário selecione uma única a qual o produto irá pertencer.
  15. Comissão: Campo onde poderá ser informado um percentual de comissão exclusivo do produto.
  16. Peso: Campo onde poderá ser informado o peso do produto (em quilogramas).
  17. Volume: Campo onde poderá ser informado o volume do produto (em metros cúbicos).
  18. Classificação fiscal: Campo onde serão listadas as classificações fiscais cadastradas no sistema para que o usuário selecione uma única a ser utilizada no produto. Deverão ser listadas somente as classificações que possuem informado em seu cadastro o código NCM.
  19. Perfil de imposto: Campo onde serão listados todos os perfis de imposto cadastrados para que o usuário selecione um único perfil a ser utilizado com o produto.
  20. Estoque: Nos campos abaixo serão exibidas as informações de estoque atuais do produto, lembrando que estas considerarão sempre a unidade padrão do mesmo.
    • Estoque: Quantidade geral de estoque para o produto. Esta quantidade considerará as reservas de estoque, soma dos estoques de cada grade e etc.
    • Estoque reservado: Quantidade em estoque do produto que está bloqueada por uma ou mais reservas. Caso haja reserva de grades, estas serão sumarizadas aqui.
    • Estoque disponível: Quantidade em estoque do produto que está disponível para ser movimentada. Em resumo é o estoque subtraído do estoque reservado..
    • Estoque mínimo: Campo onde pode ser informada uma quantidade mínima de estoque (disponível) para o produto.
    • Estoque máximo: Campo onde pode ser informada uma quantidade máxima de estoque (disponível) para o peoduto.
  21. Usa série: Parâmetro que determina se as movimentações de entrada/saída do produto controlarão números de série.
  22. Usa grade: Parâmetro que determina se o produto terá variações de grade. Quando ativo este parâmetro habilitará o campo Perfil de grade e o botão <Personalizar> (sempre visíveis). Em modo de alteração, caso produto possua grades já movimentadas, este checkbox deverá permanecer ativado e desabilitado.
  23. Personalizar: Quando este botão for acionado será exibida ao usuário a tela de relacionamento de grades. A tela de relacionamento de grades permitirá ao usuário criar novas combinações de grade para o produto ou personalizar as grades a serem relacionadas no produto a partir de um perfil já selecionado.
  24. Limpar: Quando este botão for acionado todos os dados ainda não gravados referentes a grade do produto serão limpos. Em modo de alteração, caso produto possua grades já movimentadas, estas não serão removidas do grid quando o botão em questão for acionado. Apenas grades não movimentadas serão limpas.
  25. Grid de grades: Neste grid serão exibidas as grades do perfil de grade selecionado, as grades/relacionamentos personalizadas e/ou as grades já vinculadas ao produto. Para cada grade/relacionamento listado no grid serão visíveis as seguintes colunas:
    • ATIVA: Checkbox que determina se uma combinação está ativa ou não. Este campo deverá vir marcado por padrão e no cabeçalho da coluna, deverá existir uma opção que permita marcar/desmarcar todos os registros.
    • COMBINAÇÃO: Combinação/relacionamento de grades.
    • REFERÊNCIA: Referência ou código de barras da combinação de grades.
    • EST.: Estoque atual da combinação de grade.
    • EST. MIN.: Estoque mínimo para a combinação de grades.
    • EST. MAX.: Estoque máximo para a combinação de grades.
    • PREÇO: Preço de venda específico para a combinação de grades.
    • P. CUSTO: Preço de custo atual da combinação de grades.
    • C. MÉDIO: Preço médio de custo da combinação de grades calculado automaticamente pelo sistema.
    • As colunas REFERÊNCIA, ATIVA, EST. MIN., EST. MAX., PREÇO e P. CUSTO serão editáveis e o usuário poderá alterá-las a qualquer momento desde que o cadastro de produtos esteja em modo de inclusão ou alteração.
    • Se necessário, o grid poderá gerar barra de rolagem dentro dele mesmo (horizontal ou vertical), sem gerar barra de rolagem no browser.
  26. Perfil de grade: Neste campo serão listados todos os perfis de grade cadastrados no sistema para que o usuário selecione um único perfil a ser utilizado no produto. Em modo de alteração, caso produto possua grades já movimentadas, este campo deverá ficar fazio e desabilitado. Sempre que um perfil de grade for selecionado o sistema poderá agir de duas formas:
Caso hajam alterações no grid Caso não hajam alterações no grid
Se para as combinações de grade do perfil já selecionado foram inseridas informações no grid, quando o usuário selecionar um perfil diferente será exibida a seguinte mensagem de confirmação: Já foram inseridas no grid informações para as combinações de grade do perfil selecionado anteriormente. Ao selecionar outro perfil estas informações serão descartadas. Deseja continuar?. Caso usuário clique em <Sim> as combinações referentes ao novo perfil selecionado serão carregadas no grid descartando as alterações realizadas no perfil anterior. Caso usuário clique em <Não> o sistema manterá o perfil de grade já selecionado e nenhuma ação será realizada. Se no grid nenhuma informação foi inserida para as combinações de grade referentes ao perfil selecionado, quando um novo perfil for selecionado o grid será limpo e preenchido novamente com as combinações do novo perfil.

[editar] Referências antigas

À direita do campo Referência deverá ser exibido um ícone (+) que possibilite ao usuário informar para um determinado produto referências antigas. O ícone e a tela onde serão informadas as referências antigas deverão se comportar conforme segue abaixo:

  1. O ícone deverá:
    • Exibir o hint Referências antigas.
    • Ficar habilitado para uso somente quando o produto já possuir gravada no banco uma referência atual.
    • Ficar visível em tela somente em modo de consulta e alteração.
  2. A tela de referências antigas:
    • Apresentará na parte superior esquerda o campo Referência atual, que exibirá a referência atual do produto gravada no banco. Este campo é somente leitura, portanto o usuário não poderá editá-lo.
    • Logo abaixo da referência atual será exibido o campo Referência antiga, que permitirá que o usuário informe uma referência antiga para o produto.
    • Exibir à direita do campo Referência antiga o botão <Adicionar>, que quando acionado inclui no grid a referência antiga informada pelo usuário.
    • Exibir um grid que listará todas as referências antigas do produto já gravadas e também as que estão sendo adicionadas no momento. O grid terá uma única coluna (REFERÊNCIA) e para cada registro, exibirá a opção de exclusão do mesmo no grid.
  3. Regras e validações:
    • Não será permitido adicionar uma referência antiga que já esteja listada no grid.
    • Não será permitido adicionar como referência antiga, a referência atual do produto em questão.
    • Uma referência antiga poderá, eventualmente, ser idêntica à referencia de outro produto, seja ela atual, antiga ou referência de fabricante.
    • Quando o cadastro de produto estiver em modo de consulta, somente será permitido visualizar referências antigas (caso existam).

[editar] RN02 - Aba "Preços"

  1. Preço médio de custo: Campo somente para leitura que exibirá o preço médio de custo do produto, que é calculado com a seguinte fórmula: (Estoque anterior * Preço médio anterior) + (Qtde NF Entrada * Preço de custo NF Entrada)(Estoque anterior + Qtde NF Entrada).
    • Caso item controle grade, este campo exibirá a média dos preços médios das grades ativas. Esta média será calculada pela seguinte fórmula: soma(preço médio de cada grade * estoque da grade) / soma(estoque das grades).
  2. Preço de custo: Campo onde será exibido/definido o preço de custo atual do produto. Caso parâmetro Calcular preço e markup automaticamente? esteja ativado, se o valor do custo for alterado o sistema calculará os preços de venda correspondentes para cada tabela de preço com base no markup atual de cada uma.
    • Caso item controle grade, este campo exibirá a média dos preços de custo das grades através da seguinte fórmula: soma(preço de custo de cada grade) / soma(variações de grade).
  3. Calcular preço e markup automaticamente? Quando habilitado este parâmetro (checkbox) ativa as funções do sistema que calculam automaticamente o markup e o preço de venda de cada tabela com base no custo. Por padrão este parâmetro ficará sempre desmarcado. Ainda que o usuário o ative e salve as alterações, ao acessar novamente o cadastro do produto este parâmetro estará desmarcado, ou seja, ele somente será utilizado em tempo de execução para fazer automaticamente os cálculos em questão.
  4. Tabelas de preço: Nesta seção serão exibidas todas as tabelas de preço cadastradas e configuradas nos parâmetros da rotina em questão, onde cada tabela representará um preço diferente para o produto. A tabela de preço que estiver marcada como Tabela padrão em seu cadastro deverá ter esta informação destacada para o usuário e deverá ser posicionada como primeira da lista. Em cada tabela/preço deverão ser informados:
    • Markup: Campo onde poderá ser informado o percentual de markup do item. Caso parâmetro Calcular preço e markup automaticamente? esteja ativado, com base no preço de custo e no markup informado o sistema calculará automaticamente o preço do item para a tabela.
    • Preço: Campo onde poderá ser informado o preço de venda para o item em cada tabela. Caso parâmetro Calcular preço e markup automaticamente? esteja ativado, uma vez que o preço for informado, com base no preço de custo o sistema calculará automaticamente o markup.
    
    Formula para calcular preço de venda: (custo * markup / 100) + custo
    
    Formula para calcular percentual de markup: (preço - custo) / custo * 100
    
    Para itens que controlam grade, será exibido à direita do parâmetro Calcular preço e markup automaticamente o seguinte aviso: 
    Preço médio de custo e preço de custo são médias ponderadas com base nas variações de grade do item.

A seção onde serão exibidas as tabelas de preço deverá possuir sua própria barra de rolagem. Sendo assim, se houver uma grande quantidade de tabelas de preço será gerada barra de rolagem somente na seção em questão e não no browser.


À direita das tabelas de preço, quando em modo de consulta/alteração, será exibido um grid que listará todas as alterações realizadas no preço do item em questão. O grid terá o estilo do grid utilizado no cadastro de usuários (ExtendedDataTable), que para algumas colunas possibilita

[editar] RN03 - Aba "Localizações"

  1. Localização: Neste campo poderá ser informada uma localização para o estoque do produto. Somente poderão ser utilizadas localizações já cadastradas no sistema.
  2. Prioridade na baixa de estoque: Campo onde deverá ser informado um valor numérico que definirá a prioridade de baixa de estoque de uma determinada localização. Localizações diferentes não poderão utilizar a mesma prioridade de baixa no estoque.
  3. Localização principal: Este parâmetro determina se uma determinada localização será a localização principal do produto. Caso uma localização seja marcada como principal, o campo Prioridade na baixa de estoque da mesma será limpo e desabilitado, pois a localização principal terá prioridade na baixa de estoque em relação as demais localizações.
  4. Inserir nova localização: Este botão é responsável por adicionar as localizações informadas em um grid logo abaixo, facilitando a visualização, alteração, inclusão e exclusão de localizações. Antes de uma determinada localização ser inserida no grid será verificado se a mesma já existe no grid e se a prioridade de baixa de estoque informada já está em uso.
  5. Grid de localizações: Neste grid serão listadas as localizações adicionadas para o produto com as informações:
    • CÓDIGO
    • DESCRIÇÃO
    • PRINCIPAL
    • PRI. BX. ESTOQUE

Obs.: O grid de localizações não deverá gerar barra de rolagem horizontal e deverá ter sua própria barra de rolagem vertical, sem influenciar/gerar barra de rolagem no browser.

[editar] RN04 - Aba "Unidades"

  • Unidade padrão: Campo onde serão listadas todas as unidades de medida cadastradas para que o usuário selecione apenas uma. A unidade selecionada como padrão será utilizada para movimentar estoque, calcular estoque disponível e etc. O sistema só permitirá que seja selecionada como unidade padrão uma unidade cujo fator de conversão é igual a 1.
    1. Venda múltiplo: Campo onde poderá ser estipulado um valor de múltiplo para venda do produto na unidade padrão.
    2. Venda mínima: Campo onde poderá ser estipulada uma quantidade mínima de venda do produto na unidade padrão.
    3. Produto a baixar/Fator: Produto a ser baixado com respectivo fator de conversão quando o produto em questão for movimentado.
    4. Produto a entrar/Fator: Produto a ser alimentado com respectivo fator de conversão quando o produto em questão for movimentado.


  • Unidades de entrada: Seção onde poderão ser incluídas para o produto uma ou mais unidades de entrada.
    1. Unidade: Campo onde serão listadas todas as unidades de medida cadastradas. Nele o usuário poderá selecionar uma única unidade para vincula-la ao produto como unidade de entrada.
    2. Fator de conversão: Campo somente para leitura que exibirá o fator de conversão da unidade selecionada.
    3. Referência/Cód. Barras: Campo onde o usuário poderá, opcionalmente, informar uma referência ou código de barras para o produto em uma determinada unidade (embalagem).
    4. Adicionar: Quando este botão for acionado ele incluirá no grid de unidades de entrada do produto a unidade selecionada.


  • Unidades de saída: Seção onde poderão ser incluídas para o produto uma ou mais unidades de saída.
    1. Unidade: Campo onde serão listadas todas as unidades de medida cadastradas. Nele o usuário poderá selecionar uma única unidade para vincula-la ao produto como unidade de saída.
    2. Fator de conversão: Campo somente para leitura que exibirá o fator de conversão da unidade selecionada.
    3. Referência/Cód. Barras: Campo onde o usuário poderá, opcionalmente, informar uma referência ou código de barras para o produto em uma determinada unidade (embalagem).
    4. Adicionar: Quando este botão for acionado ele incluirá no grid de unidades de entrada do produto a unidade selecionada.

[editar] RN05 - Aba "Fornecedores/Marca/Fabricante"

  1. Marca: Campo onde serão listadas todas as marcas cadastradas no sistema. Nele o usuário poderá vincular o produto a uma única marca.
  2. Fabricante: Campo onde serão listados todos os fabricantes cadastrados no sistema. Nele o usuário poderá vincular o produto a um único fabricante.
  3. Fornecedores: Nesta seção poderão ser informados um ou mais fornecedores para o produto.
    1. Fornecedor: Campo onde poderá ser informado um fornecedor previamente cadastrado no sistema.
    2. Padrão: Parâmetro que define se um determinado fornecedor é o fornecedor padrão do produto. Cada produto poderá ter somente 1 fornecedor padrão.
    3. Cód. Item: Campo onde poderá ser informado o código do produto em questão no fornecedor.
    4. Incluir: Quando acionado este botão incluirá o fornecedor selecionado no grid de fornecedores.

[editar] RN06 - Aba "Campos livres"

Nesta aba serão exibidos todos os campos livres cadastrados para entidade Item. Estes serão utilizados e validados conforme sua configuração no cadastro de campos livres.

[editar] RN07 - Aba "Imagens"

Nesta aba será possível atribuir imagens ao produto através de um campo de upload de arquivo. As regras para upload de imagens serão as seguintes:

  1. Serão permitidos para upload somente os formatos jpeg, png e gif.
  2. Tamanho máximo de 2MB para cada imagem.
  3. A imagem não poderá ser maior que 800x600 pixels.
  4. Cada produto poderá ter no máximo 5 fotos.

O sistema deverá validar as imagens antes de realizar o upload através do file api do HTML5. Ao gravar as imagens no banco de dados no servidor, esta validação será feita novamente por questões de segurança.

As imagens já inseridas serão apresentadas em uma galeria logo abaixo do campo de upload. Quando usuário clicar em qualquer uma das imagens da galeria deverá ser apresentado um slideshow de imagens conforme modelo no cabeçalho desta página.

[editar] RN08 - Relacionamento de grades

Sempre que esta tela for exibida serão automaticamente carregadas na mesma (se existirem) as combinações de grade listadas no grid do cadastro de produtos. Após criar/personalizar os relacionamentos/combinações de grade, o usuário deverá acionar o botão <Salvar> para que o grid do cadastro de produtos seja atualizado com as alterações feitas nesta tela. Uma vez que o grid do cadastro de produtos é atualizado através da tela de relacionamento de grades o campo Perfil de grade deverá ser limpo e desabilitado.


Se houver informações para uma ou mais combinações de grade no grid do cadastro de produtos, quando estas combinações forem carregadas na tela de relacionamento de grades o sistema deverá armazená-las em cache. Quando o botão <Salvar> da tela de relacionamento de grades for acionado, caso as grades cujas informações estão em cache tenham sido mantidas nas combinações resultantes, ao preenche-las novamente no grid do cadastro de produtos as informações de cada uma deverão ser restauradas conforme estavam antes da tela de relacionamento de grades ser exibida. Se ao salvar as alterações na tela de relacionamento de grades as grades cujas informações estão em cache não existirem mais nas combinações resultantes, suas informações serão desprezadas quando o grid do cadastro de produtos for preenchido novamente.


Para um produto que possui grades já movimentadas, na tela de relacionamento de grades o sistema deverá verificar antes de salvar se as grades já existentes/movimentadas permanecem no relacionamento. Se sim, o sistema irá salvar as alterações normalmente. Caso contrário a operação de salvamento será abortada e uma mensagem com a não conformidade será exibida ao usuário.


Quando o botão <Cancelar> for acionado o sistema deverá exibir ao usuário a seguinte mensagem de confirmação: Os relacionamentos/combinações criados ou alterados que ainda não foram salvos serão descartados. Deseja realmente cancelar?.

[editar] RN09 - Tela inicial

Na tela inicial da rotina deverão ser exibidos:

  1. Botão <Adicionar produto acabado>.
  2. Botão <Parâmetros> somente para usuários com acesso total.
  3. Grid listando os produtos já cadastrados com as seguintes colunas (configurável):
    1. CÓDIGO
    2. DESCRIÇÃO
    3. ATIVO
    4. BLOQUEADO
    5. CONTROLA ESTOQUE
    6. PERM. ESTOQUE NEGATIVO
    7. ALERTA
    8. GRUPO
    9. SUBGRUPO
    10. FAMÍLIA
    11. GARANTIA
    12. PESO
    13. VOLUME
    14. CLASSIFICAÇÃO FISCAL
    15. PERFIL DE IMPOSTO
    16. ESTOQUE
    17. ESTOQUE RESERVADO
    18. ESTOQUE DISPONÍVEL
    19. ESTOQUE MÍNIMO
    20. ESTOQUE MÁXIMO
    21. USA GRADE
    22. USA SÉRIES
    23. LOCALIZAÇÃO PRINCIPAL
    24. UNIDADE PADRÃO
    25. MARCA
    26. FABRICANTE
    27. FORNECEDOR PRINCIPAL


No canto superior direito do grid deverá ser exibida uma lupa que quando acionada exibirá o campo para pesquisar produtos. A pesquisa de produtos poderá ser feita de acordo com o documento Pesquisa com lucene.

[editar] RN10 - Validações a serem feitas antes de salvar dados

Antes de salvar os dados de um produto, deverão ser feitas as seguintes validações:

Campos obrigatórios:

  1. Descrição
  2. Grupo
  3. Perfil de imposto
  4. Preço/Markup na tabela de preço padrão
  5. Unidade padrão


Em modo de alteração o usuário poderá alterar qualquer dado do produto e salvar estas alterações, desde que os campos obrigatórios citados acima estejam devidamente preenchidos.

[editar] RN11 - Regras para adicionar novas variações de grade no produto

Em modo de inclusão, o usuário poderá proceder com a inclusão de combinações de grade normalmente seguindo os passos 22 a 26 da regra de negócio RN01.


Em modo de alteração, o sistema verificará se o produto em questão já foi movimentado. Se sim, o parâmetro Usa grade ficará desabilitado e o usuário não poderá alterar seu estado. Em outras palavras, se um produto que não utilizava grade já foi movimentado, ele não poderá ter variações de grade. Neste caso o usuário deverá desativar o produto e cadastrar um novo adicionando as variações de grade desejadas.


Ainda, um produto já movimentado que controla grade e que possui variações de grade, não poderá ter as combinações de grade que já foram movimentadas excluídas. Se necessário, o usuário poderá adicionar novas combinações de grade.

[editar] RN12 - Regras para determinar uso de série

Na inclusão ou alteração de um produto o parâmetro Usa série poderá ser ativado/desativado normalmente, mas se o produto já foi movimentado este parâmetro não poderá ser alterado. Em outras palavras um produto que foi movimentado sem controlar série não poderá passar a controlar série, e um produto que controla série não poderá passar a não controlar.

[editar] RN13 - Histórico de preços

Sempre que um usuário acessar o cadastro de um determinado produto e alterar os preços de venda ou o preço de custo (seja na inclusão ou alteração), o sistema deverá registrar o movimento de alteração de preço nas classes MovimentoPrecoCusto e MovimentoPrecoVenda listadas no diagrama abaixo. Também deverão ser registradas alterações nos preços das grades (caso ocorra).


Na aba Preços à direita dos preços do produto será exibido um grid que mostrará o histórico de alterações nos preços do mesmo. O grid seguirá o modelo RichFaces, mesmo estilo de grid utilizado no cadastro de usuários. As informações do histórico de preço serão exibidas nas seguintes colunas:

  1. FILIAL: Filial em que a alteração no preço foi realizada.
  2. DATA/HORA: Data e hora em que ocorreu a alteração no preço. A filtragem dos registros desta coluna ocorrerá somente pela data, sem hora.
  3. USUÁRIO: Usuário responsável pela alteração.
  4. TIPO: Exibe a informação de onde e como o preço foi reajustado com as opções:
    • MANUAL: Alterações feitas manualmente no cadastro do produto.
    • REAJUSTE INDIVIDUAL: Alterações feitas na rotina de reajuste de preços individual.
    • REAJUSTE GERAL: Alterações feitas na rotina de reajuste de preços geral.
    • REAJUSTE CUSTO ALTERADO: Alterações feitas na rotina de reajuste de preços por custo alterado.
    • ENTRADA/SAÍDA: Alterações feitas na rotina de entradas/saídas.
  5. GRADE: Exibe a grade do produto cujo preço foi alterado. Caso produto não possua grade, exibirá GRADE PADRÃO.
  6. PREÇO DE CUSTO: Se a alteração foi no preço de custo, exibirá o valor gravado na alteração. Caso não haja alteração no custo, esta coluna ficará vazia para o registro em questão.
  7. TABELA DE PREÇO: Para alterações no preço de venda, exibe a(s) tabela(s) alterada(s).
  8. PREÇO DE VENDA: Se a alteração foi no preço de venda, exibirá o valor gravado na alteração. Caso não haja alteração no preço de venda, esta coluna ficará vazia para o registro em questão.


O grid do RichFaces possibilita que o usuário filtre seu conteúdo através de filtros posicionados sobre suas colunas. No caso do histórico de preços, segue abaixo as colunas que terão esta filtragem e o tipo do filtro:

  1. FILIAL: Filtro em forma de combobox que lista todas as filiais cadastradas.
  2. DATA/HORA: Filtro em forma de input, permitindo ao usuário informar uma data (sem hora) específica.
  3. USUÁRIO: Filtro em forma de combobox que lista todos usuários cadastrados.
  4. TIPO: Filtro em forma de combobox que lista os tipos de alteração de preço mencionados na respectiva coluna.
  5. TABELA DE PREÇO: Filtro em forma de combobox que lista todas as tabelas de preço relacionadas para trabalhar com produtos.

MovimentoEstoquePreco.png


    
    Ao salvar os dados do produto o sistema deverá comparar os preços do produto e de suas grades (se houver) com os preços atuais (antes da gravação). 
    Somente deverá ser gerado log para o preço que sofrer alteração em relação ao que já está gravado.

[editar] RN14 - Regras específicas para produtos do tipo SERVIÇO

Muito semelhante ao cadastro de produto acabado, o cadastro de serviço pode ser acessado através do Menu -> Cadastros > Faturamento -> Item -> Serviço. A tela de manutenção da rotina de cadastro de serviços será composta por três abas, Gerais, Preços e Tributação.

[editar] Aba Gerais

  1. Código: Campo somente para leitura que exibirá o código do serviço. Este código é gerado automaticamente pelo sistema quando o serviço é cadastrado.
  2. Ativo: Parâmetro que determina se um serviço está ativo ou não. Serviços inativos não serão sequer visualizados nas demais rotinas do sistema (buscas, consultas e pesquisas).
  3. Bloqueado: Parâmetro que determina se um serviço está bloqueado para uso ou não. Serviços bloqueados serão visualizados em outras rotinas do sistema, mas não poderão ser movimentados.
  4. Referência: Campo onde poderá ser informada uma referência para o serviço, geralmente, o código de barras do mesmo (EAN).
  5. Descrição: Campo onde deverá ser informada a descrição principal do serviço.
  6. Descrição reduzida: Campo onde poderá ser informada uma descrição mais resumida para o serviço. Estas descrições resumidas podem ser utilizadas em relatórios/consultas que possuem muitas colunas para ocupar menos espaço.
  7. Comissão: Campo onde poderá ser informado um percentual de comissão exclusivo do serviço.
  8. Descrição estendida: Campo onde poderá ser informada uma descrição mais detalhada para o serviço.
  9. Alerta: Campo onde poderá ser atribuída uma mensagem de alerta para o serviço. Sendo assim em todas as rotinas de movimento quando o serviço for selecionado este alerta será exibido ao usuário.
  10. Unidade padrão: Campo onde deverá ser definida a unidade padrão do serviço.
  11. Grupo: Neste campo onde serão listados todos os grupos cadastrados no sistema para que o usuário selecione um único grupo a qual o serviço em questão irá pertencer.
  12. Subgrupo: Neste campo serão listados todos os subgrupos cadastrados que estão vinculados ao grupo já selecionado.
  13. Fornecedor principal: Neste campo deverá ser selecionado, opcionalmente, um fornecedor principal para o serviço.
  14. Classificação fiscal: Campo onde serão listadas as classificações fiscais cadastradas no sistema para que o usuário selecione uma única para ser utilizada no serviço. Deverão ser listadas somente as classificações que possuem informado em seu cadastro o código NBS.
  15. Perfil de imposto: Campo onde o usuário deverá selecionar, obrigatoriamente, um perfil de imposto a ser utilizado com o serviço em questão. As rotinas de entrada e saída de NF irão buscar no perfil de imposto do serviço dados como CST, CFOP, CST PIS, ALÍQUOTA PIS, CST COFINS e ALÍQUOTA COFINS, sempre permitindo que o usuário altere estes dados na digitação das NF´s.
     
    Todos os campos citados acima serão os mesmos que são utilizados no produto acabado, com as mesmas regras e validações.

[editar] Aba Preços

Será idêntica à do produto acabado.

[editar] Aba Tributação

Nesta aba serão cadastradas informações pertinentes à tributação do serviço quando o mesmo fizer parte de uma NFS-e (nota fiscal de serviço eletrônica).

  1. Estado: Campo onde serão listados todos os estados cadastrados no sistema.
  2. Cidade: Campo onde o usuário poderá informar a cidade. Este campo terá funcionalidade de consulta ajax a exemplo de como ocorre para item e pessoa e somente aceitará cidades que estejam vinculadas ao estado selecionado.
  3. Lista de serviços: Campo onde serão exibidas as listas de serviços cadastradas para a cidade selecionada no campo anterior. Este campo ficará desabilitado até que uma cidade seja selecionada no campo anterior.
  4. CNAE/Código equivalente: Campo onde poderá ser informado um código local de uma determinada cidade que seja equivalente ao CNAE (CTISS em Belo Horizonte por exemplo). Por padrão, assim que a lista de serviços for selecionada o sistema preencherá automaticamente este campo com o código do CNAE vinculado à lista, permitindo que o usuário o altere se desejar. Este campo ficará desabilitado até que uma lista de serviços seja selecionada.
  5. Descrição: Campo onde será exibida a descrição do CNAE vinculado à lista de serviços selecionada. O usuário poderá alterar esta descrição se desejar. Este campo ficará desabilitado até que uma lista de serviços seja selecionada.
  6. Alíquota ISSQN: Campo onde será exibida a alíquota de ISS informada no cadastro da lista de serviços selecionada. O usuário poderá alterar a alíquota se desejar. Este campo ficará desabilitado até que uma lista de serviços seja selecionada.
  7. Botão <Adicionar>: Botão que quando acionado inclui no grid logo abaixo a cidade, a lista de serviços, código e descrição do CNAE ou equivalente e a alíquota de ISS, lembrando que todos estes dados são de preenchimento obrigatório para serem inclusos no grid.
  8. Grid: Listará os dados tributários já adicionados nas seguintes colunas:
    • CIDADE: Nome da cidade.
    • LISTA DE SERVIÇOS: Nome da lista de serviços.
    • CNAE/EQUIVALENTE: Código + descrição do CNAE ou equivalente.
    • ALÍQUOTA ISSQN: Alíquota de ISSQN.
    • EXCLUIR: Coluna que exibe, para cada registro, a opção de excluí-lo do grid.


Regras gerais:

  • Não será permitido incluir no grid mais de um registro com a mesma cidade.
  • A lista de serviços, CNAE e alíquota podem repetir, mas para cidades diferentes.

[editar] RN15 - Referência na combinação de grade

No grid onde é feito o relacionamento das grades/perfil de grade com o produto o usuário poderá informar na coluna REFERÊNCIA uma referência para cada relacionamento de grade. Esta referência será opcional e terá o tamanho máximo de até 20 caracteres podendo ser gerada nas seguintes formas:

  1. Manual: O usuário poderá clicar na célula da coluna REFERÊNCIA para cada relacionamento de grade e digitar manualmente a referência. Esta poderá ter de 1 a 20 caracteres de tamanho.
  2. Automática, na inclusão do produto: Quando cadastrando um novo produto o usuário terá a opção de gerar automaticamente referências para todos os relacionamentos de grade listados no grid ao salvar o produto. Para isto será exibido no canto superior direito do grid o botão Gerar referências: com as opções Sim e Não. Este botão deverá ser apresentado com o estilo de um interruptor conforme este modelo. Com o botão virado para a opção Sim, ao salvar o item o sistema irá gerar automaticamente e salvar junto com o item as referências para seus relacionamentos de grade.
  3. Automática, na alteração do produto: Em modo de alteração em um produto já cadastrado, o botão mencionado no item acima também será exibido para que as referências dos relacionamentos de grade (novos ou já existentes) sejam geradas automaticamente. Ao virar o botão Gerar referências para opção Sim o sistema irá preencher as referências de todos os relacionamentos de grade listados no grid cuja respectiva coluna está vazia. As referências já gravadas ou já informadas manualmente não serão alteradas pela geração automática. Caso usuário vire o botão para opção Não as referências que foram preenchidas automaticamente deverão ser removidas, sem alterar as referências já gravadas ou informadas manualmente pelo usuário.


[editar] Geração automática de referência

Referências geradas automaticamente deverão ser compostas pelo código do produto + sequencial. O sequencial começará sempre em zero e será incrementado até que a referência de todos os relacionamentos de grade sejam preenchidos.


Exemplo: Um determinado produto ao ser cadastrado obteve o código 06031983. No grid onde são listados os relacionamentos de grade o usuário atribuiu ao produto em questão quatro relacionamentos de grade e solicitou que as referências fossem geradas automaticamente obtendo o seguinte resultado:

ATIVA COMBINAÇÃO REFERÊNCIA ESTOQUE EST. MÍN. EST. MÁX. PREÇO
Sim Azul 30 060319831 0 0 0 0,00
Sim Azul 32 060319832 0 0 0 0,00
Sim Azul 34 060319833 0 0 0 0,00
Sim Azul 36 060319834 0 0 0 0,00
Sim Azul 38 060319835 0 0 0 0,00
Sim Azul 40 060319836 0 0 0 0,00
Sim Azul 42 060319837 0 0 0 0,00
Sim Azul 46 060319838 0 0 0 0,00
Sim Azul 48 060319839 0 0 0 0,00
Sim Azul 50 0603198310 0 0 0 0,00

[editar] Validações

Antes de salvar as referências no banco de dados o sistema verificará se nenhuma delas já existe para outro relacionamento de grade de um produto qualquer. Caso exista, a gravação será abortada e a seguinte mensagem de alerta será exibida ao usuário: A(s) referência(s) X, Y, Z já etão gravadas nos produtos A - AAAAAA, B - BBBBB. Onde X, Y e Z são as referências já existentes e A e B os produtos aos quais elas estão relacionadas, respectivamente.

[editar] Layouts de tela

Ferramentas pessoais
Espaços nominais

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