Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with dfi as(
- Select DISTINCT dfi.*, nf.recebimento, nf.datacancelamento, df.emissao, df.status as statusdf
- FROM DocumentoFiscalItem dfi
- left outer join documentofiscalitemmovimentacaoalmoxarifado dm on (dm.fkdocumentofiscalitem = dfi.pkdocumentofiscalitem and dm.status = 0)
- left outer join movimentacaoalmoxarifado m on (dm.fkmovimentacaoalmoxarifado = m.pkmovimentacaoalmoxarifado and m.status = 0)
- left outer join movimentacaoalmoxarifado m2 on (cast(dfi.pkdocumentofiscalitem as VARCHAR) = m2.efk and m2.status = 0)
- , DocumentoFiscal df
- LEFT OUTER JOIN NotaFiscal nf ON nf.fkdocumentofiscal = df.pkdocumentofiscal
- , telaatributo ta
- WHERE df.status in (0, 10)
- and m is null
- and m2 is null
- and dfi.fkdocumentofiscal in (69092,69097,69104,69117,69125,69126,69129,69154,69158,69164,69167,69191,69193,69203,69209,69215,69234,69235,69240,69241,69243,69245,69248,69249)
- and ta.tipo = 16502
- and dfi.status not in (999)
- and ( (nf.situacao = 6295 AND DF.STATUS in (10) ) or
- (nf.situacao = 6294
- AND NF.dataautorizacao is NOT null
- )
- or
- (
- (nf.situacao NOT IN (6287, 6288) OR nf.situacao is null)
- AND df.emitxnome IS NOT NULL AND df.destxnome IS NOT NULL
- AND (nf.recebimento IS NOT NULL OR dfi.alimentaEstoque = false)
- )
- )
- and dfi.fkDocumentoFiscal = df.pkDocumentoFiscal
- AND dfi.alimentaEstoque = true
- AND dfi.fkproduto in (57453,47614,60120,48076,61299,60811,52502,45991,55550,51122,50537,48198,47649,67588,55750,49140,48745,48731,48757,52415,48789,48144,47646,47739,47630,53894,53927,53900,53508,53434,53451,53365,53969,53739,46130,48670,45995,56767,59059,64760,59015,44237,46022,59332,61398,67907,48433,48609,59668,56040,67821,43777,55297,60150,60787,59339,57853,57846,48788,57437,56031,48407,57844,56967,57396,57075,48701,57523,53105,43982,59079,56960,56180,54605,46721
- )
- AND (dfi.fkAlmoxarifado IS NOT NULL or dfi.fkprodutoalmoxarifadoestoque is not null)
- AND df.tipo = 1
- AND df.emissao >= cast(ta.valorstring as TIMESTAMP)
- AND df.emissao >= cast('2019-02-19 00:00:00' as TIMESTAMP)
- AND df.emissao >= cast('2019-07-17 00:00:00' as TIMESTAMP)
- ),
- m as(
- Select dfimv.fkDocumentoFiscalItem, ma.pkMovimentacaoAlmoxarifado, ma.fkProdutoAlmoxarifadoEstoque, ma.tipo, pae.fkalmoxarifado
- FROM DocumentoFiscalItemMovimentacaoAlmoxarifado dfimv
- inner join dfi dfi on (dfi.pkdocumentofiscalitem = dfimv.fkdocumentofiscalitem )
- , MovimentacaoAlmoxarifado ma
- inner join produtoalmoxarifadoestoque pae on (pae.pkprodutoalmoxarifadoestoque = ma.fkprodutoalmoxarifadoestoque )
- WHERE dfimv.fkMovimentacaoAlmoxarifado = ma.pkMovimentacaoAlmoxarifado
- and dfimv.status = 0
- and ma.status = 0
- ),
- cf as(
- Select DISTINCT dfi.pkDocumentoFiscalItem, cfop.tipoentradasaida
- FROM dfi as dfi, cfop cfop
- WHERE cfop.status = 0
- and ((dfi.fkCfop is not null and dfi.fkCfop = cfop.pkCfop ) or (dfi.fkCfop is null and dfi.fkCfopEntrada = cfop.pkCfop ))
- ),
- pae as(
- Select DISTINCT dfi.pkDocumentoFiscalItem, COALESCE(pae2.pkProdutoAlmoxarifadoEstoque, pae.pkProdutoAlmoxarifadoEstoque) AS pkProdutoAlmoxarifadoEstoque, dfi.fkalmoxarifado, dfi.fkproduto
- FROM DocumentoFiscalItem dfi
- LEFT OUTER JOIN produtoalmoxarifadoestoque pae on (pae.pkProdutoAlmoxarifadoEstoque = dfi.fkProdutoAlmoxarifadoEstoque and pae.status = 0)
- LEFT OUTER JOIN produtoalmoxarifadoestoque pae2 on (pae2.fkalmoxarifado = dfi.fkalmoxarifado and dfi.fkproduto = pae2.fkproduto and pae2.status = 0)
- WHERE dfi.status not in ( 999)
- ),
- b AS (
- SELECT DISTINCT 1, 7026 as tipomovimentacao, COALESCE(dfi.recebimento, dfi.emissao) as emissao, dfi.fkalmoxarifado, dfi.fkProduto, dfi.quantidade AS qtd, pae.pkProdutoAlmoxarifadoEstoque, dfi.quantidadeReservada AS qtdReservada,
- dfp.TipoEntradaSaida as tes, cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
- FROM dfi as dfi
- INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
- LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
- inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8671)
- inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
- LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7026)
- UNION
- SELECT DISTINCT 3, 7026 as tipomovimentacao, COALESCE(dfi.emissao, dfi.recebimento) AS emissao, dfi.fkalmoxarifado, dfi.fkProduto, dfi.quantidade*-1 AS qtd, pae.pkProdutoAlmoxarifadoEstoque, dfi.quantidadeReservada*-1 AS qtdReservada,
- dfp.TipoEntradaSaida as tes,cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
- FROM dfi as dfi
- INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
- LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
- inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8672)
- inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
- LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7026)
- union
- SELECT DISTINCT 2, 7031 as tipomovimentacao, COALESCE(dfi.datacancelamento, dfi.recebimento) as emissao, dfi.fkalmoxarifado, dfi.fkProduto, dfi.quantidade*-1 AS qtd, pae.pkProdutoAlmoxarifadoEstoque, dfi.quantidadeReservada*-1 AS qtdReservada,
- dfp.TipoEntradaSaida as tes, cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
- FROM dfi as dfi
- INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
- LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
- inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8671)
- inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
- LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7031)
- WHERE dfi.statusdf in (10)
- UNION
- SELECT DISTINCT 4, 7031 as tipomovimentacao, COALESCE(dfi.datacancelamento, dfi.emissao), dfi.fkalmoxarifado, dfi.fkProduto, dfi.quantidade AS qtd, pae.pkProdutoAlmoxarifadoEstoque, dfi.quantidadeReservada AS qtdReservada,
- dfp.TipoEntradaSaida as tes,cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
- FROM dfi as dfi
- INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
- LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
- inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8672)
- inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
- LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7031)
- WHERE dfi.statusdf in (10)
- )
- , a as (
- select * from b where b.pkFeita is null
- )
- INSERT INTO MovimentacaoAlmoxarifado (efk, dataLancamento, DATA, tipo, operacao, quantidade, status, fkprodutoAlmoxarifadoEstoque)
- SELECT a.pkdocumentofiscalitem, a.emissao, a.emissao, a.tipomovimentacao, CASE WHEN a.qtd >= 0 THEN 7041 ELSE 8040 END, ABS(a.qtd), 0, a.pkprodutoalmoxarifadoestoque FROM a AS a;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement