Identificador de Regra
VEN-120ALPRE03
Módulo: VEN - Vendas.
Finalidade: é executado na busca de preço da tabela de preço quando o pedido for recalculado com busca de valores. Permite devolver o preço bruto, unitário, percentual de oferta ou acréscimo. Esses valores precisam ser devolvidos com coerência entre si (preço bruto - desconto1 - desconto2 - desconto item + acréscimo item = preço unitário), pois o sistema fará uma validação e poderá gerar uma mensagem de erro se encontrar inconsistências.
Também são enviados para a regra o preço unitário, bruto, oferta e acréscimo anteriores à busca da tabela de preço (ou seja, os valores informados inicialmente no pedido), caso seja necessário alguma verificação ou lógica com esses valores dentro da regra. O identificador de regra pode ser ligado à transação dos dados gerais do pedido (transação de produto).
Ao utilizar o identificador de regra VEN-120ALPRE03 e o VEN-120ALPRE04 ao mesmo tempo, os valores de VSUniAnt, VSBruAnt, VSOfeAnt e VSAcrAnt do identificador VEN-120ALPRE04 serão os valores passados nas variáveis VSPreUni, VSPreBru, VSPerOfe e VSPerAcr do identificador VEN-120ALPRE03.
Caso não seja passado nenhum valor para as variáveis VSPreUni, VSPreBru, VSPerOfe e VSPerAcr no identificador VEN-120ALPRE03, o sistema considerará como 0. Dessa forma, as variáveis VSUniAnt, VSBruAnt, VSOfeAnt e VSAcrAnt do identificador VEN-120ALPRE04 ficarão zeradas.
Tela: Pedidos
Transação: não se aplica.
Regra:
Definir Numero VSPreUni;
Definir Numero VSPreBru;
Definir Numero VSPerOfe;
Definir Numero VSPerOf1;
Definir Numero VSPerOf2;
Definir Numero VSPerAcr;
Definir Numero VSUniAnt;
Definir Numero VSBruAnt;
Definir Numero VSOfeAnt;
Definir Numero VSPerOf1;
Definir Numero VSPerOf2;
Definir Numero VSAcrAnt;
Definir Numero VVlrCal;
Definir Numero VVlrDif;
VVlrCal = VSPreBru;
@ se o preço bruto é diferente ao bruto anterior, existe a necessidade de calcular o oferta ou acréscimo para o novo bruto, sem alterar o unitário@
se (VSPreBru <> VSBruAnt)
inicio
VVlrDif = VSPreBru - VSUniAnt;
Arredonda(VVlrDif, 5);
VSPreUni = VSUniAnt; @ Garante que o preço unitário seguirá fixo pois devolve o anterior ao atual@
se (VVlrDif = 0)
inicio
VSPerOfe = 0;
VSPerAcr = 0;
fim;
se ((VVlrDif < 0) e (VSPreBru > 0))
inicio
VSPerOfe = 0;
VSPerAcr = -VVlrDif * 100/VSPreBru ;
Arredonda(VSPerAcr, 2);
fim;
se ((VVlrDif > 0) e (VSPreBru > 0))
inicio
VSPerAcr = 0;
VSPerOfe = VVlrDif * 100/VSPreBru;
Arredonda(VSPerOfe, 2);
fim;
fim;
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VSCodEmp | NÚMERO | Empresa do pedido | N |
VSCodFil | NÚMERO | Filial do pedido | N |
VSNumPed | NÚMERO | Número do pedido | N |
VSUniAnt | NÚMERO | Preço Unitário anterior do item pedido (antes da busca da tabela) | N |
VSBruAnt | NÚMERO | Preço Bruto anterior do item pedido (antes da busca da tabela) | N |
VSOfeAnt | NÚMERO | Percentual de Oferta anterior do item do pedido (antes da busca da tabela ou sugestões) | N |
VSAcrAnt | ALFA | Percentual de Acréscimo anterior do item pedido (antes da busca da tabela) | N |
VSPerOf1 | ALFA | Percentual de Oferta 1 dos dados gerais do pedido | N |
VSPerOf2 | ALFA | Percentual de Oferta 2 dos dados gerais do pedido | N |
VSPreUni | NÚMERO | Preço Unitário do item do pedido (calculado conforme bruto obtido da tabela + acrésicmos e descontos) | S |
VSPreBru | NÚMERO | Preço Bruto do item do pedido (obtido da tabela) | S |
VSPerOfe | NÚMERO | Percentual de Oferta do item do pedido (informado manualmente ou obtido por sugestão) | S |
VSPerAcr | NÚMERO | Percentual de Acréscimo do item do pedido (informando manualmente ou obtido por sugestão) | S |
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.