Ambiente Web/Android, na busca de preços do produto
Lógica:
Após a primeira validação se há preço fixo para o produto (idnprecofixo=1), a aplicação deverá realizar a busca abaixo para identificar preços por embalagem na filial selecionada no cabeçalho:
Sem Formato
select
preco,
idembalagem
from tabelaprecoproduto
where idlocalfilial = :filial_cabecalho
and idproduto = :produto_grid
and idnprecofixo = 0
and idembalagem is not null
Caso a busca retorne resultados, o preço de tabela exibido deve condizer com a embalagem informada no campo Embalagem no carrinho;
Se o vendedor mudar a embalagem selecionada, o preço de tabela também deve ser atualizado para corresponder à nova embalagem selecionada;
03.02.02 Validação de preço por embalagem - Parte II
A aplicação deve validar se a filial informada no cabeçalho utiliza ou não preço por embalagem. Se a filial estiver vinculada a operação 'PRECOEMBAL', significa que ela utiliza preço por embalagem e, consequentemente, o cálculo do Valor Total Produto será por embalagem:
Sem Formato
select
o.sgloperacao,
ol.idlocalfilial
from operacaolocal ol inner join operacao o
on o.idoperacao =ol.idoperacao
where o.sgloperacao ='PRECOEMBAL'
and ol.valor=1
Quando o preço for por embalagem, a aplicação deve ignorar o cálculo de multiplicação utilizando PRODUTOEMBALAGEM.FATORPRECO; esse cálculo não deve ser feito e o preço exibido para o item no campo Preço Tabela deve ser o valor retornado de TABELAPRECOPRODUTO.PRECO e o desconto/acréscimo da condição de pagamento (quando houver);
O cálculo para o campo Valor Total Produto deve olhar para Quantidade Embalagem, e não mais Quantidade, como é hoje:
Preço Venda * Quantidade Embalagem = Valor Total Produto
Quando a filial utilizar preço por embalagem, a aplicação deve buscar por preços aplicáveis ao pedido na seguinte ordem:
1° TABELAPRECOPRODUTO.PRECO + IDNPRECOFIXO =1 2° TABELAPRECOPRODUTO.PRECO + IDLOCALFILIAL + IDNPRECOFIXO =0 + IDEMBALAGEM IS NOT NULL
Não é mais necessária a 3° busca de preços como ocorre atualmente;
Persistir a quantidade de embalagens em PEDIDOPRODUTO.QUANTIDADEEMBALAGEM;
A quantidade embalagem deve ser persistida em todas as vendas sempre o campo Quantidade Embalagem estiver visível em tela;
Persistir em banco os campos PEDIDOPRODUTO.VALORTOTALLIQUIDO e PEDIDOPRODUTO.VALORTOTALBRUTO, em todas as vendas;
Para o caso de pedidos em que a filial utiliza preço por embalagem, os campos devem ser persistidos com o cálculo: VALORTOTALBRUTO = PREÇO TABELA X QUANTIDADE EMBALAGENS VALORTOTALLIQUIDO = PREÇO VENDA X QUANTIDADE EMBALAGENS
Para o caso de pedidos em que a filial NÃO utiliza preço por embalagem, os campos devem ser persistidos com o cálculo: VALORTOTALBRUTO = PREÇO TABELA X QUANTIDADE VALORTOTALLIQUIDO = PREÇO VENDA X QUANTIDADE
03.03 BI - Espelho pedido
Painel
borderColor
lightgray
Quando a filial utilizar Precificação por embalagem (Operação PRECOEMBAL), a coluna Valor Total Produto deve representar Preço Venda X Quantidade Embalagem