Lógica da SP padronizada de Apuração das Vendas e Cancelamentos
Critérios
As buscas de pedidos de venda deverão respeitar as flags VENDA e CANCELAMENTO da tabela ACERTO_COMISSAO, que por sua vez foram preenchidas com base nas flags da pessoa alvo da comissão. Caso ambas estejam desmarcadas, a SP padronizada finalizará sem incluir nenhum dado na tabela ACERTO_COMISSAO_PEDIDO_VENDA. A apuração sobre vendas também deverá respeitar o campo VENDA_TIPO_DATA, que indica qual a data e comportamento utilizados na busca dos pedidos, e o campo PERCENTUAL, como percentual padrão de comissão sobre as vendas. Este último, se estiver nulo, deverá ser preenchido através de SP personalizada, podendo ter a finalização dos cálculos concluída através da SP padronizada COMISSAO_FINALIZAR_PEDIDO_VENDA.
Apuração das Vendas
A SP de apuração COMISSAO_APURAR_PEDIDO_VENDA buscará os pedidos de venda referente ao período da apuração através do campo de data informado no campo VENDA_TIPO_DATA da apuração:
- N = pela data de digitação, inclusive os não aprovados
- D = pela data de digitação, mas apenas os aprovados
- A = pela data de aprovação/liberação
Além do filtro de data, também filtrará de acordo com o tipo da pessoa, usando o Id da pessoa informada no registro da tabela de apuração:
- Tipo R (Representante) = PESSOA_ID_REPRESENTANTE
- Tipo V (Vendedor) = PESSOA_ID_VENDEDOR
- Tipo G (Guia) = PESSOA_ID_GUIA
- Qualquer outro tipo = PESSOA_ID
Pedidos de venda emitidos contra a própria pessoa deverão ser ignorados. Ou seja, quando o campo PESSOA_ID for igual ao PESSOA_ID_REPRESENTANTE, por exemplo.
Encontrados os pedidos, deverá juntar com os itens dos mesmos, para somar os valores dos itens com tipo da regra 1 (faturamento) ou 4 (devolução). Valores dos itens com regra tipo 1 (faturamento) deverão constar com valor bruto positivo na tabela de pedidos da apuração, e itens com regra tipo 4 (devolução), ou cancelamentos, deverão constar com valor bruto negativo, para que se abata da comissão a ser paga.
Cancelamentos
Caso a flag de venda cancelada esteja marcada, a SP deverá filtrar também pela data de cancelamento, visto que pode ser pago comissão num mês, e o cliente cancelar, parcial ou totalmente, no mês seguinte, ou depois ainda. Neste caso, o pedido deverá constar novamente na apuração, agora com valor bruto negativo, para que os cálculos de comissão resultem em abatimento de comissão a ser paga. Estando essa flag marcada, a apuração das vendas deverá considerar inclusive as canceladas, para que em seguida, elas sejam descontadas com base no cancelamento. Se não fosse desta forma o cancelamento seria descontado duas vezes.