diminuir frete no total da nota
Pessoal,
Tenho esta query que calcula o total de notas fiscais. Porém quero diminuir o valor do frete (campo fretevenda na consulta) que é único para a nota.
No exemplo o frete vale 10,00. Nessa query esta diminuindo 100,00, pois esta somando 10,00 para cada item da nota e não no total. A nota possui 10 items. Se alguém puder dar uma força , fico muito grato.
select *,totnota1 - totprod as diferenca from(
select *,case when fretevenda is not null then (totnota - fretevenda) else totnota end as totnota1 from (
select tm.codfilial,tm.NUMEROMOV,f.nome,tm.IDMOV,tm.DATAEMISSAO,ttm.IDPRD,tp.codigoreduzido,tp.DESCRICAO,ttm.QUANTIDADE,ttm.PRECOUNITARIO as preconota
,ttm.precotabela as precoprod,cb.maxdesc,cb.acrescimo, (ttm.precounitario - ttm.precotabela) as difpreco,(ttm.precounitario * ttm.quantidade - ttm.precotabela * ttm.quantidade) as difprecotot, cb.qtdecesta
,ttm.precounitario*ttm.quantidade as totnota,ttm.precotabela*ttm.quantidade as totprod, CAST(replace(FRETEVENDA,',','.') as numeric(10,2)) as fretevenda
from TMOV tm
left join tmovcompl tmc on (tmc.idmov = tm.idmov)
inner join TITMMOV ttm on (ttm.IDMOV = tm.IDMOV)
inner join TPRD tp on (tp.IDPRD = ttm.IDPRD)
inner join FCFO f on (f.CODCFO = tm.codcfo)
left join FCFOCOMPL fc on (fc.codcfo = f.codcfo)
left join varejaocereais.dbo.cestabasica cb on (cb.codcesta = tmc.codigocestas collate database_default)
WHERE tm.DATAEMISSAO>='27/12/2012'
AND tm.DATAEMISSAO<='27/12/2012'
AND tm.STATUS <> 'C' AND tm.CODTMV = '2.2.01' and tm.codtmv <> '2.2.29' and tm.codtmv <>'2.2.04'
AND tm.codcfo not in('000337') and f.CODCFO <> '000337'
and f.codetd = 'MG'
and serie <> 'ECF' and tm.NUMEROMOV = '000023853'
and tm.codven1 = '0005'
)T1)T2
order by numeromov,dataemissao
Tenho esta query que calcula o total de notas fiscais. Porém quero diminuir o valor do frete (campo fretevenda na consulta) que é único para a nota.
No exemplo o frete vale 10,00. Nessa query esta diminuindo 100,00, pois esta somando 10,00 para cada item da nota e não no total. A nota possui 10 items. Se alguém puder dar uma força , fico muito grato.
select *,totnota1 - totprod as diferenca from(
select *,case when fretevenda is not null then (totnota - fretevenda) else totnota end as totnota1 from (
select tm.codfilial,tm.NUMEROMOV,f.nome,tm.IDMOV,tm.DATAEMISSAO,ttm.IDPRD,tp.codigoreduzido,tp.DESCRICAO,ttm.QUANTIDADE,ttm.PRECOUNITARIO as preconota
,ttm.precotabela as precoprod,cb.maxdesc,cb.acrescimo, (ttm.precounitario - ttm.precotabela) as difpreco,(ttm.precounitario * ttm.quantidade - ttm.precotabela * ttm.quantidade) as difprecotot, cb.qtdecesta
,ttm.precounitario*ttm.quantidade as totnota,ttm.precotabela*ttm.quantidade as totprod, CAST(replace(FRETEVENDA,',','.') as numeric(10,2)) as fretevenda
from TMOV tm
left join tmovcompl tmc on (tmc.idmov = tm.idmov)
inner join TITMMOV ttm on (ttm.IDMOV = tm.IDMOV)
inner join TPRD tp on (tp.IDPRD = ttm.IDPRD)
inner join FCFO f on (f.CODCFO = tm.codcfo)
left join FCFOCOMPL fc on (fc.codcfo = f.codcfo)
left join varejaocereais.dbo.cestabasica cb on (cb.codcesta = tmc.codigocestas collate database_default)
WHERE tm.DATAEMISSAO>='27/12/2012'
AND tm.DATAEMISSAO<='27/12/2012'
AND tm.STATUS <> 'C' AND tm.CODTMV = '2.2.01' and tm.codtmv <> '2.2.29' and tm.codtmv <>'2.2.04'
AND tm.codcfo not in('000337') and f.CODCFO <> '000337'
and f.codetd = 'MG'
and serie <> 'ECF' and tm.NUMEROMOV = '000023853'
and tm.codven1 = '0005'
)T1)T2
order by numeromov,dataemissao
Victor Pavia
Curtidas 0
Respostas
Perivaldo Martins
15/02/2013
Amigo, amanheci meio lento hj, não compreendi direito o que o amigo deseja, vc poderia usar um exemplo mais claro? Você quer diminuir o valor do frete do total das notas, por nota, como é que você está querendo fazer?
Boa sorte e bons códigos!
Boa sorte e bons códigos!
GOSTEI 0
Victor Pavia
15/02/2013
Algumas notas possuem uma taxa de frete embutida. Nessa consulta preciso mostrar o valor total da nota diminuindo o frete. Porém preciso mostrar também os items que compoem a nota. Nessa query o frete esta sendo calculado errado, pois esta multiplicando pela quantidade de items.
Ex: A nota vale 1000,00 e frete 10,00. São 10 items. O frete é embutido, ou seja, a nota vale 990,00, mas esta calculando 900,00. Esta multiplicando 10,00 pelo número de items da nota. Como se o frete fosse 100,00.
Ex: A nota vale 1000,00 e frete 10,00. São 10 items. O frete é embutido, ou seja, a nota vale 990,00, mas esta calculando 900,00. Esta multiplicando 10,00 pelo número de items da nota. Como se o frete fosse 100,00.
GOSTEI 0
Alex Lekao
15/02/2013
Oi Vitor, bom dia!!!
Eh necessário usar realmente as tabelas temporárias igual vc ta fazendo?
se não me engano na segunda tabela temporária(interna t1) esta usando os fretes.
Da uma olhada e ve se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
Eh necessário usar realmente as tabelas temporárias igual vc ta fazendo?
se não me engano na segunda tabela temporária(interna t1) esta usando os fretes.
Da uma olhada e ve se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
GOSTEI 0
Perivaldo Martins
15/02/2013
Esse projeto é seu ou vc está apenas fazendo a manutenção? Teria como vc exibir uma imagem de como está acontecendo e como vc gostaria q ficasse, talvez possamos melhorar essa consulta, só uma sugestão. Ao chegar em casa olharei essa consulta com mais calma.
Boa sorte bons códigos.
Boa sorte bons códigos.
GOSTEI 0
Victor Pavia
15/02/2013
resolvido.
Diminui o frete pegando o primeiro item da nota. Deu certo. Obrigado.
Diminui o frete pegando o primeiro item da nota. Deu certo. Obrigado.
GOSTEI 0
Joel Rodrigues
15/02/2013
Valeu pelo retorno, amigo.
Sendo assim, vou encerrar o tópico.
Abraço.
Sendo assim, vou encerrar o tópico.
Abraço.
GOSTEI 0