UC00090 - Reajuste de preços por custo alterado
Conteúdo |
[editar] Objetivo
- Permitir ao usuário do sistema reajustar o preço de venda de seus produtos a partir das alterações de custo ocorridas nos mesmos.
[editar] Atores
- Usuário do sistema
[editar] Pré-requisitos
- Considerar documento Padrões de desenvolvimento.
- No projeto da rotina, em confsrc > META-INF > messages > view.properties definir o nome como Reajuste de preço por custo alterado. Este nome será utilizado para criar a página no Wiki.
[editar] Resultado esperado
- Atualizar preço de venda dos produtos.
[editar] Diagrama de classes
[editar] Fluxo de eventos
[editar] Fluxos principais
Fluxo 1: Usuário acessa a rotina Menu > Movimentos > Faturamento > Reajuste de preços > Por custo alterado.
- Sistema exibe a tela principal da rotina em questão com a aba de filtragem aberta, conforme layout sugerido Filtros.
Fluxo 2: Usuário informa os filtros desejados e aciona o botão [Consultar].
- Sistema lista resultados encontrados em um grid conforme descreve a regra de negócio RN01.
Fluxo 3: No grid o usuário marca para reajuste os produtos desejados, reajusta preço dos produtos selecionado uma das três opções de reajuste disponíveis, e aciona o botão [Salvar].
- Sistema procede, de acordo com a opção de reajuste utilizada, conforme descrito na regra de negócio RN02.
[editar] Fluxos alternativos
Fluxo 1: Usuário seleciona no grid os produtos cujo preço de venda deseja reajustar e opta pelo tipo de reajuste Manual acionando o botão [OK] logo em seguida.
- Sistema habilita, para os registros selecionados, as colunas NOVO % MARKUP e NOVO PREÇO DE VENDA.
Fluxo 2: No reajuste manual usuário informa no grid novo markup e/ou preço de venda somente para algumas tabelas de preço ou somente para alguns produtos, deixando alguns registros inalterados e acionando o botão [Salvar] em seguida.
- Ao exibir o grid, inicialmente o sistema exibe a coluna NOVO PREÇO DE VENDA já calculada com base no % MARKUP ATUAL e no CUSTO ALTERADO por padrão.
- Para registros que usuário não alterou manualmente o NOVO PREÇO DE VENDA ou NOVO % MARKUP o preço de venda será o preço de cada tabela calculado conforme tópico acima.
- Ao salvar o reajuste, serão considerados somente os novos preços de venda de produtos selecionados. Produtos que não foram selecionados não sofrerão nenhuma alteração no preço, apesar do mesmo ser calculado/exibido no grid.
- Caso usuário altere o novo markup o sistema calculará automaticamente o novo preço de venda com base no custo alterado. Caso usuário altere o novo preço de venda, o sistema calculará automaticamente o novo markup com base no custo alterado.
Fluxo 3: Em qualquer um dos 3 tipos de reajuste, os novos preços de venda dos produtos selecionados ficaram iguais ou abaixo do seu respectivo CUSTO ALTERADO.
- Quando botão <Salvar> for acionado o sistema procederá com o reajuste normalmente, mas exibirá ao usuário a seguinte mensagem de confirmação: Atenção! Após o reajuste o preço de venda dos produtos abaixo, em algumas tabelas de preço, ficará igual ou MENOR que seus respectivos preços de custo. Deseja realmente prosseguir?
| CÓDIGO | DESCRIÇÃO |
| 0000012701 | PLAYSTATION 4 |
| 0000008701 | XBOX 360 |
| 0000078901 | JACK DANIEL´S |
[editar] Fluxos de exceções
Fluxo 1: Na aba de consulta usuário informa filtros para os quais não existem produtos cujo preço de custo foi alterado acionando o botão [Consultar] logo em seguida.
- Após constatar que não existem resultados a serem exibidos sistema emite ao usuário a seguinte mensagem de alerta: Não há produtos com alteração no preço de custo que correspondam aos filtros utilizados.
Fluxo 2: Na rotina em questão usuário seleciona um dos 3 tipos de reajuste disponíveis e aciona o botão [OK] sem que nenhum registro esteja selecionado no grid.
- Sistema aborta a operação e emite ao usuário a seguinte mensagem de alerta: Antes de selecionar o tipo de reajuste desejado é necessário selecionar no grid quais produtos terão o preço reajustado.
Fluxo 3: Na tela de reajuste de preços, após filtrar/listar produtos no grid usuário aciona o botão [Salvar] sem selecionar nenhum produto no grid.
- Sistema aborta a operação e emite ao usuário a seguinte mensagem de alerta: Nenhum produto foi selecionado para reajuste.
Fluxo 4: Na aba de consulta usuário informa filtros para os quais existem produtos cujo preço de custo foi alterado, porém o custo alterado de algum desses é igual a seu custo anterior.
- Sistema lista no grid somente os registros cujo custo alterado é maior ou menor que o custo anterior. Registros cujo custo alterado é igual ao custo anterior serão descartados.
[editar] Regras de negócio
[editar] RN01 - Filtragem
- Fornecedor: Neste campo o usuário poderá filtrar por um fornecedor específico produtos que tiveram seu custo alterado no período informado.
- Tipo período: Campo em questão o usuário deverá informar o tipo de período que deseja utilizar escolhendo as opções Alteração manual, Entradas/saídas ou Notas de entrada. Caso no tipo de período seja selecionada a opção Alteração manual o campo Fornecedor deverá ser desabilitado.
- Período: Neste campo o usuário poderá filtrar produtos cujo preço de custo foi alterado via entrada de nota, entradas/saídas ou manualmente no período informado.
- Filtrar somente: Combobox onde o usuário poderá selecionar um tipo específico de produto a ser considerado na filtragem com as opções:
- Produtos com controle de grade: Considera somente itens que possuem marcado em seu cadastro o parâmetro Usa grade.
- Produtos sem controle de grade: Considera somente itens que possuem desmarcado em seu cadastro o parâmetro Usa grade. Neste caso o sistema irá travar o campo Tipo de reajuste na opção Manual e exibirá logo à sua direita o texto: Para produtos com controle de grade somente o tipo de reajuste manual poderá ser utilizado.
- Botão <Consultar>: Quando acionado buscará produtos cujo preço de custo foi alterado com base nos filtros informados listando os resultados encontrados no grid.
- Botão <Limpar>: Limpa todos os campos da aba de filtragem.
Os resultados encontrados serão listados no grid da seguinte maneira:
- SELECIONAR: Coluna que permite ao usuário selecionar um ou mais produtos ou todos os produtos, seguindo modelo da respectiva coluna no grid da liquidação em lote. Somente terão preço reajustado os produtos que estiverem selecionados no grid.
- ORIGEM ALTERAÇÃO: Nesta coluna será identificado o movimento que fez a alteração no custo do produto.
- Se a alteração no custo foi feita manualmente esta coluna exibirá o texto "MANUAL".
- Caso custo do produto tenha sido alterado em função de uma nota de entrada será exibido o número do lote + o número da nota. Caso a nota de entrada tenha importado o XML de uma NF-e será exibido também um ícone que quando acionado, exibirá em uma janela pop-up a nota de entrada em questão.
- Se o custo foi alterado através da rotina de entrada/saídas, será exibido "ENTRADA/SAÍDA".
- DATA: Data em que ocorreu alteração no custo.
- PRODUTO: Coluna que exibe o código e descrição do produto cujo custo sofreu alteração.
- GRADE: Para produtos que controlam grade será exibido o botão [Visualizar grades] (somente no reajuste manual) que quando acionado exibirá a tela de reajuste de preços de grade, cujas funcionalidades estão descritas na RN05. Para produtos que não controlam grade, será exibido o texto GRADE PADRÃO.
- UNIDADE: No caso de alteração manual, exibe a unidade padrão do produto. No caso de nota de entrada e entrada/saída, exibe a unidade em que o produto foi movimentado.
- CUSTO ALTERADO: Exibe o preço de custo do produto que foi alterado na movimentação em questão.
- CUSTO ANTERIOR: Exibe o preço de custo do produto anterior à alteração em questão.
- TABELA DE PREÇO: Nome das tabelas de preço relacionadas ao produto. Serão consideradas somente as tabelas de preço que em seu cadastro possuem marcada a filial logada e que foram relacionadas no cadastro de produtos. A tabela de preço padrão deverá ser exibida em negrito para facilitar que o usuário a identifique.
- MARKUP ATUAL: Percentual de markup configurado para as tabelas de preço no cadastro do produto.
- PREÇO DE VENDA ATUAL: Preço de venda configurado para as tabelas de preço no cadastro do produto.
- NOVO MARKUP: Nesta célula do grid, para cada tabela de preço, poderá ser digitado pelo usuário um novo percentual de markup para o produto. Assim que o markup for digitado, quando o foco for posicionado sobre a próxima célula o sistema calculará automaticamente o novo preço com base no novo markup e no custo alterado.
- NOVO PREÇO: Nesta célula do grid, para cada tabela de preço, poderá ser digitado pelo usuário um novo preço de venda para o produto. Assim que o preço for digitado, quando o foco for posicionado sobre o próximo campo o sistema calculará o novo markup com base no novo preço e no custo alterado.
Registros cujo custo alterado é igual ao custo anterior não deverão ser considerados na filtragem. Somente registros cujo custo alterado é menor ou maior que o custo anterior
poderão ser listados no grid.
Itens que controlam serão uma única ocorrência no grid e terão as informações e opções de reajuste de preço das grades no pop-up exibido quando o botão [Visualizar grades]
for acionado.
[editar] RN02 - Tipos de reajuste no preço de venda
O usuário poderá optar por reajustar o preço de venda dos produtos com base na alteração feita no custo dos mesmos de diferentes formas. Cada forma de reajuste terá suas particularidades e quando selecionada, habilitará ao usuário diferentes opções conforme tópicos abaixo.
Antes de selecionar o tipo de reajuste de preço desejado o usuário deverá selecionar no grid os produtos cujo
preço de venda deseja reajustar.
Uma vez que o usuário selecionar um tipo de reajuste de preço e acionar o botão [OK] logo à direita do mesmo, o sistema desabilitará para seleção os demais tipos de reajuste. Caso usuário deseje utilizar outro tipo de reajuste ele deverá acionar o botão [Limpar] na parte inferior da rotina. O botão limpar irá descartar todos os dados alterados no grid voltando a rotina a seu estado inicial, mas mantendo no grid a última consulta realizada.
[editar] Reajuste manual
Com esta opção ativada o usuário poderá alterar manualmente no grid, para cada produto selecionado, as colunas NOVO % MARKUP e NOVO PREÇO DE VENDA. Sempre que uma destas colunas for alterada, o sistema calculará o valor da outra automaticamente com base no novo valor e no CUSTO ALTERADO do produto.
Caso a filtragem tenha sido feita considerando somente produtos que controlam grade o usuário também poderá reajustar os preços das tabelas informando o NOVO MARKUP
e/ou NOVO PREÇO DE VENDA. Neste caso será considerada para o cálculo a média dos custos alterados/atuais das grades do item.
[editar] Reajuste com base na fórmula de preço de venda
Com esta opção selecionada, ao acionar o botão <OK> o sistema irá reajustar o preço de venda de todas as tabelas de preço de todos os produtos selecionados no grid com base na fórmula de preço de venda configurada para a filial logada.
Este tipo de reajuste só poderá ser selecionado quando na filtragem dos dados, no período for utilizo o tipo de período Notas de entrada.
[editar] Reajuste com base em uma tabela de preço
Com esta opção selecionada ao acionaro o botão <OK> o sistema exibirá uma tela pop-up com os seguintes dados:
- Tabela de preço padrão: Lista a tabela de preço preço cadastrada como padrão no sistema. Este campo é somente leitura.
- Grid: Lista as demais tabelas de preço cadastradas no sistema (com exceção da padrão) com as seguintes colunas:
- TABELA DE PREÇO: Nome da tabela de preço. Serão listadas somente tabelas de preço configuradas para a filial logada e inclusas nos parâmetros do cadastro de produtos.
- % DE REAJUSTE: Coluna onde o usuário poderá informar um percentual de reajuste para a tabela em questão com base na tabela padrão.
- TIPO DE REAJUSTE: Coluna onde o usuário deverá selecionar, caso tenha reajuste informado, se o mesmo será acima ou abaixo com base na tabela padrão.
- Botão <Limpar>: Limpa todos os dados informados voltando a tela a seu estado inicial.
- Botão <Salvar>: Salva as alterações feitas fechando a tela pop-up e transferindo-as para a tela anterior.
- Botão <Cancelar> : Fecha a tela e descarta todos as alterações feitas diante mensagem de confirmação.
[editar] RN03 - Regras gerais
- Os reajustes realizados nos preços de venda dos itens deverão ser registrados na estrutura de histórico de preços citada na regra de negócio RN14 do caso de uso UC00078 - Cadastro de produto acabado.
- Para a tabela de preço padrão, em função de uma validação já existente no sistema, não será permitido informar um preço de venda que faça com que o markup fique negativo. Quando esta situação ocorrer o sistema deverá manter o foco sobre a coluna NOVO PREÇO DE VENDA e exibir a seguinte mensagem de alerta: Não é permitido ter markup negativo para a tabela de preço padrão. Verifique o novo preço de venda.
[editar] RN04 - Etiquetas
Será possível emitir etiquetas de preço para os produtos que tiveram seu preço de custo/venda alterados através da rotina de emissão de etiquetas filtrando por período de alteração no preço (UC00079 - Impressão de Etiquetas).
[editar] RN05 - Reajuste de preços de grade
Esta tela será um pop-up que exibirá todas as grades relacionadas ao item cujo botão [Visualizar grades] foi acionado no grid. As grades serão exibidas em um grid com as seguintes colunas:
- SEL.: Colunas que permite ao usuário selecionar as grades que terão os preços reajustados. Alterações feitas em registros não selecionados não serão gravadas. A exemplo do grid da tela de reajuste, o usuário terá a opção de marcar/desmarcar todos os registros.
- GRADE: Nesta coluna será exibido o nome da grade/relacionamento.
- CUSTO ALTERADO: Esta coluna exibirá o valor do preço de custo de cada grade alterado em sua última entrada.
- CUSTO ANTERIOR: Esta coluna exibirá preço de custo de cada grade antes da alteração.
- % MARKUP ATUAL: Com base no preço de custo anterior e no preço de venda atual da grade, esta coluna calculará e exibirá ao usuário o percentual de markup atingido.
- R$ VENDA ATUAL: Esta coluna exibirá o preço de venda atual de cada grade.
- NOVO % MARKUP: Coluna editável onde o usuário poderá digitar um percentual de markup para cada grade. Assim que o novo markup for informado o sistema calculará automaticamente o novo preço de venda da grade com base no custo alterado. Por padrão esta coluna será preenchida com o mesmo valor da coluna % MARKUP ATUAL quando a tela for exibida.
- NOVO PREÇO DE VENDA: Coluna editável onde o usuário poderá digitar um valor para ser o novo preço de venda de cada grade. Assim que o novo preço for informado o sistema calculará automaticamente o percentual do novo markup com base no custo alterado. Por padrão esta coluna será preenchida com o mesmo valor da coluna R$ VENDA ATUAL quando a tela for exibida.
Abaixo do grid haverão dois botões:
- Botão [OK]: Quando acionado armazenará em memória as alterações realizadas nos preços das grades. Estas alterações só serão gravadas no banco de dados quando o botão [Salvar] da tela anterior for acionado.
- Botão [Cancelar]: Quando acionado aborta a operação descartando quaisquer alterações feitas nos preços das grades e fechando a tela em questão.
Esta tela somente será exibida caso usuário tenha selecionado o item cuja coluna grade possui o botão [Visualizar grades] juntamente com o tipo de reajuste manual.
Grades que não tiveram alteração no preço de custo ou que não possuem preço de venda também serão exibidas, permitindo ao usuário alterar/criar seu novo preço de venda.
[editar] Layout sugerido