Regras comerciais para pedidos

Exemplos de regras comerciais para pedidos

PEDIDOS.CAD_REGRAS_COMERCIAIS_PEDIDOS.FAQ-102385
Exemplos de Regras comerciais para pedidos.

MC total do pedido:

Exemplo de configuração para apresentar erro na emissão de pedidos de venda que possuam MC (margem de contribuição) total do pedido (soma das MCs dos itens) menor que 30% (definido preferência PEDVEN06.CAD_PRODUTOS_06.PERCENTUAL_MC_MINIMO), considerando o valor da última aquisição de cada produto como base para cálculo da MC:
select 'O percentual de MC do pedido está abaixo de ' || pref.valor || '%' as mensagem
from (
   select avg(((preco / custo) -1) * 100) as percentual
   from (
       select (ip.valor_unitario_item 
       * (ip.quantidade - coalesce(ip.quantidade_cancelada, 0)  - coalesce(ip.quantidade_devolvida, 0)))
       + ((ip.valor_total_item / p.valor_total) * coalesce(p.outros_valores_nao_influencia, 0)
       + (p.valor_frete * (ip.valor_total_item / p.valor_total))
       - (p.valor_desconto * (ip.valor_total_item / p.valor_total))) as preco
       , (me.custo / me.quantidade) as custo
       from itens_pedidos ip
       join pedidos p on p.id = ip.pedido_id
       join custos_produtos cp on cp.produto_id = ip.produto_id and cp.estabelecimento_id = p.estabelecimento_id
       join movimentos_estoques me on me.id = cp.ultima_aquisicao_id
       where p.id = ${id}
   ) q
) qq
left join preferencias pref on pref.preferencia = 'PEDVEN06.CAD_PRODUTOS_06.PERCENTUAL_MC_MINIMO'
where percentual < pref.valor::float



MC dos itens do pedido:

Exemplo de configuração para apresentar erro na emissão de pedidos de venda que possuam itens com MC (margem de contribuição) menor que 30% (definido preferência PEDVEN06.CAD_PRODUTOS_06.PERCENTUAL_MC_MINIMO):
select 'O percentual de MC do item ' || ip2.sequencia || ' está abaixo de ' || pref.valor || '%' as mensagem
from v_itens_pedidos ip
join itens_pedidos ip2 on ip2.id = ip.id
left join preferencias pref on pref.preferencia = 'PEDVEN06.CAD_PRODUTOS_06.PERCENTUAL_MC_MINIMO'
where ip.v_pedido_id = ${id}
and ip.percentual_margem < pref.valor::float