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.