No artigo de hoje, vamos mostrar como utilizar a função MaRgrDesc para calcular o valor do desconto conforme as regras cadastradas no sistema.
Caso você utilize o cadastro de regras (tabelas ACO e ACP), ele é bem versátil para calcular descontos por clientes, condição de pagamento, produtos, grupo de produtos, entre outros.
Vamos levar como base o print abaixo de cadastro:
Note que para o cliente C00001 e para a condição de pagamento C01, nós temos regras de 5%, 10% e 15% para o grupo de produtos G001. E como funciona, até a quantidade 100 vai entrar na primeira regra, acima de 100 até 200 vai entrar na segunda regra e acima de 200 até 300 vai entrar na terceira regra.
Então se nós tivermos, um produto nesse grupo G001, que estamos vendendo 240 unidades, num valor total de R$ 100,00, ele deve cair na terceira faixa, e assim calcular 15%.
Assim, montamos o exemplo abaixo usando a função MaRgrDesc (se atente ao código do produto, que tem que ser enviado com a quantidade exata de caracteres):
cCodPro := AvKey("F0001", "B1_COD")
cCodCli := "C00001"
cLojCli := "01"
nQtdeFaixa := 240
cCondPg := "C01"
nTipoDesc := 1
nPreco := 100
nDesconto := MaRgrDesc(cCodPro, cCodCli, cLojCli, /*cTabPreco*/, nQtdeFaixa, cCondPg, /*cFormPg*/, nTipoDesc, /*aProds*/, /*aExc*/, /*cCodRegDe*/, nPreco)
ShowLog(;
"O desconto do produto '" + cCodPro + "' " + CRLF +;
"Com a quantidade de '" + cValToChar(nQtdeFaixa) + "' " + CRLF + ;
"No Valor de 'R$ " + cValToChar(nPreco) + "' " + CRLF + ;
"É de 'R$ " + cValToChar(nDesconto) + "'";
)
Executando então a função acima, abaixo o resultado da ShowLog:
Bom pessoal, por hoje é só.
Abraços e até a próxima.

