Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Meus amigos, estou precisando de outra ajuda....
TEnho um calculo de VL - Pedido, que o é o Valor Liquido do Pedido, esse valor liquido, é...
(Valor Faturamento - Desconto Financeiro) - (Valor Frete KG) - (Valor Comissao KG)
Minha formula esta na seguinte forma....
//Valor Bruto - Desconto financeiro
=((if(isnull(DESC_CLIENTE), sum(FATURAMENTO),
(((sum(FATURAMENTO) / sum(QUANTIDADE)) - (((sum(FATURAMENTO) / sum(QUANTIDADE)) * DESC_COMERCIAL) /100))* (sum(QUANTIDADE)))
))
-
//Valor Frete KG
(sum(Aggr(sum(QUANTIDADE) * sum(VALOR_FRETE),DIA,MES,DATA_EMISSAO,UF,CODIGO_REPRESENTANTE,REPRESENTANTE,CODIGO_CLIENTE,Grupo_Produto,CODIGO_PRODUTO
)
)
)
-
//Valor Comissão
(sum(aggr((if(isnull(DESC_CLIENTE), sum(FATURAMENTO),
(((sum(FATURAMENTO) / sum(QUANTIDADE)) - (((sum(FATURAMENTO) / sum(QUANTIDADE)) * DESC_COMERCIAL) /100))* (sum(QUANTIDADE)))
)
)
*
((AGGR((COMISSAO),DIA,MES,DATA_EMISSAO,UF,CODIGO_REPRESENTANTE,REPRESENTANTE,CODIGO_CLIENTE,Grupo_Produto,CODIGO_PRODUTO)) / 100),DIA,MES,DATA_EMISSAO,UF,CODIGO_REPRESENTANTE,REPRESENTANTE,CODIGO_CLIENTE,Grupo_Produto,CODIGO_PRODUTO
)
)
))
Até ai tudo bem funciona legal...
Mas eu tenho que verificar o Desc_Financeiro... (if(isnull(DESC_CLIENTE) ele faz uma coisa caso nao tenha outra..... OTIMO!!!
Só que na somatoria, ele soma tudo que eu tenho de desconto e subtrai do valor liquido total... e nesse ponto ele tinha que fazer apenas a soma...... do que realmente tenha de desconto.
Na imagem acima tenho a QTDE x VL-ITEM PEDIDO = VL-PEdido.... esta certinho, mas na soma abaixo ele nao esta somando certo, o que contatei que o DESC PROM nao esta levando em conta o item e sim toda a soma... que nesse caso é 3%... eu tenho que apenas somar os 2.... quando nao tenho nenhum DESC PROM fica certinho.
OBrigado mais uma vez pela ajuda...
Telles,
a sua formula esta bem complexa e fica dificil verificar aonde esta o erro.
Nao seria mais facil, no script trazer os valores para a linha do item?
assim, ao selecionar um item qualquer, voce pode saber na mesma linha do registro todos os valores e o calculo seria mais simples
sum(vlitem - vlimposto - vlcomissao - ......
pois o aggr cria tabela virtual para calcular e se tiver milhoes de registros, pode levar alguns bons segundos.....
sempre que a complexidade do calculo for para o script entendo que seja melhor.....
Como eu faria....
Roosevel, você teria que ir calculando essas expressões em passos no seu script.
Por exemplo: pegue a sua primeira expressão:
((if(isnull(DESC_CLIENTE), sum(FATURAMENTO),
(((sum(FATURAMENTO) / sum(QUANTIDADE)) - (((sum(FATURAMENTO) / sum(QUANTIDADE)) * DESC_COMERCIAL) /100))* (sum(QUANTIDADE)))
))
E já deixe pronto alguns cálculos, por exemplo:
(((FATURAMENTO / QUANTIDADE) * DESC_COMERCIAL) /100))* (QUANTIDADE)) as COLUNA_X
Lembre-se que esses campos devem estar dentro da mesma tabela. E se não estiver? Terá que fazer a união dessas tabelas.
Além de calcular no script, conselho você criar logo no primeiro passo o tratamento dos dados
Ex: If(Isnull(DESC_CLIENTE),0,DESC_CLIENTE) AS DESC_CLIENTE
Esta conseguindo resolver Roosevelt?
Oi... estava de licensa... voltei hoje... vou retomar... e aviso..., obrigado!
Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada
Amigo conseguiu resolver?
Se sim, favor marcar alguma resposta como certa ou útil se for o caso ou apresentar a solução utilizado;
Assim manteremos o fórum organizado para a comunidade ter acesso as resoluções das questões.
A dúvida de um, pode ser de outro.
Abraço.