Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
claudemir_dioto
Contributor III
Contributor III

Abater Devoluções por data

Olá Pessoal, muito bom dia.

Estou com uma situação em que não estou conseguindo solucionar.

Alguém poderia me ajudar?

Necessito efetuar os cálculos do total de faturamento, porém devo abater as devoluções.

O problema é que, tenho uma tabela onde se encontram os faturamentos e outra onde se encontram as devoluções.

A chave é o campo nota_fiscal.

O problema é que, se seleciono o ano de faturamento igual a 2015, serão filtradas somente notas de devolução que foram imputadas na tabela de devolução no ano de 2015, todavia, tenho devoluções que entraram em 2015, de notas de 2012 e 2014.

Como proceder para que ao selecionar o faturamento de 2015, traga TODAS as notas que foram lançadas na tabela de devolução para o ano_devolução também igual a 2015.

Segue prints e QVW para auxílio.

faturamneto.JPG

Devolucoes_2015.JPG

Muito obrigado a todos.

Claudemir Dioto

Labels (1)
1 Solution

Accepted Solutions
maiconmello
Creator III
Creator III

Claudemir, boa tarde, nesse caso você teria que fazer um concatenate.

Onde deixar os campos da nota de devolução iguais com o da nota.

Campos esses que são dimensão :

Exemplo : Nf : cliente, datanota, anonota, mesnota,representantecod, valornota

               Dev cliente,dataentrada,anoentrada,mesentrada,representantecod,vlentrada

Os campos devem ficar com a mesma nomenclatura :

Exemplo :

Load cliente,datanota as nfdata, anonota as anonf, mesnota as mesnf,representantecod as pkrepre, valornota from nota;

concatenate

load cliente,dataentrada as nfdata,anoentrada as as anonf,mesentrada as mesnf,representantecod as pkrepre,vlentrada;

Assim você pode fazer na expressão : sum(valornota) - sum(vlentrada) ou ainda no script o valor da entrada você multiplica -1 e renomeia para o mesmo nome do valor da nota. (valornota).

Espero que isso ajude.

View solution in original post

6 Replies
maiconmello
Creator III
Creator III

Claudemir, boa tarde, nesse caso você teria que fazer um concatenate.

Onde deixar os campos da nota de devolução iguais com o da nota.

Campos esses que são dimensão :

Exemplo : Nf : cliente, datanota, anonota, mesnota,representantecod, valornota

               Dev cliente,dataentrada,anoentrada,mesentrada,representantecod,vlentrada

Os campos devem ficar com a mesma nomenclatura :

Exemplo :

Load cliente,datanota as nfdata, anonota as anonf, mesnota as mesnf,representantecod as pkrepre, valornota from nota;

concatenate

load cliente,dataentrada as nfdata,anoentrada as as anonf,mesentrada as mesnf,representantecod as pkrepre,vlentrada;

Assim você pode fazer na expressão : sum(valornota) - sum(vlentrada) ou ainda no script o valor da entrada você multiplica -1 e renomeia para o mesmo nome do valor da nota. (valornota).

Espero que isso ajude.

maiconmello
Creator III
Creator III

Segue o exemplo :

claudemir_dioto
Contributor III
Contributor III
Author

Olá Malcon, bom dia.

Obrigado pelo retorno.

Utilizando sua dica do Concatenate até funciona da forma como está montado os dados, ou seja, em duas tabelas em Excel.

O problema é que tenho que fazer isso direto no script. Na tabela de devolução, não tenho o campo Ano.

Somente um campo para relacionar com a tabela de faturamento que é o número da nota fiscal.

Tentei ler separadamente a tabela de devolução com o concatenate porém, perco informações do faturamento.

Creio que teria que ser de outra forma.

maiconmello
Creator III
Creator III

Claudemir Dioto,

Não conheço o sistema, porém a maioria dos ERP que conheço tem suas tabelas de notas de entrada, onde a maioria da devoluções gera uma entrada.

A sua data seria data da entrada. 01/01/2016 e essa data você deve quebrar :

No seu script month(DataEntrada), Year(DataEntrada) e Day(DataEntrada).

Porque isso ?

A grande maioria das empresas, deduzem suas devoluções quando a mercadoria voltou para empresa :

Exemplo : Vendi em 10 de dezembro de 2015 .

Porém o cliente devolveu a mercadoria em 20/01/2016. Entendo que a devolução nesse caso vai abater sobre o faturamento de janeiro de 2016.

Não consigo entender que você só tem o campo para relacionar com a nota de saida.

Mas agora se você tem a nota de devolução e na devolução tem as chaves para ligar com a de saida, ou seu processo de deduzir a devolução seria no mês da nota de saida ??

Ou seja :

Em dezembro faturei 1 milhão . Em janeiro devolvi uma nota de dezembro de 100 mil .

Dessa forma o fechamento de dezembro seria 900 mil ?? Ou seja , deduz de faturamento retroativo ? Isso mesmo ??

Agora se for isso , você pode fazer o seguinte :

Pegue a nota de entrada , monta a chave da nota de entrada com a de saida. Isso em uma tabela temporaria.

Depois leia a nota de saida com a mesma chave e faça um Inner join com os dados da nota de saida, para a nota de entrada. Após isso feito ai sim faça um concatenate da entrada com a de saída.

Maicon Mello

leandro_gocosta
Contributor III
Contributor III

Cria devol.qvd fazendo um join entre a tabela de vendas e devolução completa os dados um com o outro criando uma linha idêntica a da venda só com valor negativo depois concatena os dados isso vai gerar a informação...

maiconmello
Creator III
Creator III

Sugiro marcar a resposta correta ou útil para fechamento do tópico !