Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.28 KB | None | 0 0
  1. with dfi as(
  2. Select DISTINCT dfi.*, nf.recebimento, nf.datacancelamento, df.emissao, df.status as statusdf
  3. FROM DocumentoFiscalItem dfi
  4. left outer join documentofiscalitemmovimentacaoalmoxarifado dm on (dm.fkdocumentofiscalitem = dfi.pkdocumentofiscalitem and dm.status = 0)
  5. left outer join movimentacaoalmoxarifado m on (dm.fkmovimentacaoalmoxarifado = m.pkmovimentacaoalmoxarifado and m.status = 0)
  6. left outer join movimentacaoalmoxarifado m2 on (cast(dfi.pkdocumentofiscalitem as VARCHAR) = m2.efk and m2.status = 0)
  7. , DocumentoFiscal df
  8. LEFT OUTER JOIN NotaFiscal nf ON nf.fkdocumentofiscal = df.pkdocumentofiscal
  9. , telaatributo ta
  10. WHERE df.status in (0, 10)
  11. and m is null
  12. and m2 is null
  13. and dfi.fkdocumentofiscal = ?
  14. and ta.tipo = 16502
  15. and dfi.status not in (999)
  16. and ( (nf.situacao = 6295 AND DF.STATUS in (10) ) or
  17. (nf.situacao = 6294
  18. AND NF.dataautorizacao is NOT null
  19. )
  20. or
  21. (
  22. (nf.situacao NOT IN (6287, 6288) OR nf.situacao is null)
  23. AND df.emitxnome IS NOT NULL AND df.destxnome IS NOT NULL
  24. AND (nf.recebimento IS NOT NULL OR dfi.alimentaEstoque = false)
  25. )
  26. )
  27. and dfi.fkDocumentoFiscal = df.pkDocumentoFiscal
  28. AND dfi.alimentaEstoque = true
  29. AND dfi.fkproduto in (59527, 47550, 47550, 44299, 50724, 68445, 51012)
  30. AND (dfi.fkAlmoxarifado IS NOT NULL or dfi.fkprodutoalmoxarifadoestoque is not null)
  31. AND df.tipo = 1
  32. AND df.emissao >= cast(ta.valorstring as TIMESTAMP)
  33. AND df.emissao >= cast('2019-02-19 00:00:00' as TIMESTAMP)
  34. AND df.emissao >= cast('2019-07-17 00:00:00' as TIMESTAMP)
  35. ),
  36. m as(
  37. Select dfimv.fkDocumentoFiscalItem, ma.pkMovimentacaoAlmoxarifado, ma.fkProdutoAlmoxarifadoEstoque, ma.tipo, pae.fkalmoxarifado
  38. FROM DocumentoFiscalItemMovimentacaoAlmoxarifado dfimv
  39. inner join dfi dfi on (dfi.pkdocumentofiscalitem = dfimv.fkdocumentofiscalitem )
  40. , MovimentacaoAlmoxarifado ma
  41. inner join produtoalmoxarifadoestoque pae on (pae.pkprodutoalmoxarifadoestoque = ma.fkprodutoalmoxarifadoestoque )
  42.  
  43. WHERE dfimv.fkMovimentacaoAlmoxarifado = ma.pkMovimentacaoAlmoxarifado
  44. and dfimv.status = 0
  45. and ma.status = 0
  46. ),
  47. cf as(
  48. Select DISTINCT dfi.pkDocumentoFiscalItem, cfop.tipoentradasaida
  49. FROM dfi as dfi, cfop cfop
  50. WHERE cfop.status = 0
  51. and ((dfi.fkCfop is not null and dfi.fkCfop = cfop.pkCfop ) or (dfi.fkCfop is null and dfi.fkCfopEntrada = cfop.pkCfop ))
  52. ),
  53. pae as(
  54. Select DISTINCT dfi.pkDocumentoFiscalItem, COALESCE(pae2.pkProdutoAlmoxarifadoEstoque, pae.pkProdutoAlmoxarifadoEstoque) AS pkProdutoAlmoxarifadoEstoque, dfi.fkalmoxarifado, dfi.fkproduto
  55. FROM DocumentoFiscalItem dfi
  56. LEFT OUTER JOIN produtoalmoxarifadoestoque pae on (pae.pkProdutoAlmoxarifadoEstoque = dfi.fkProdutoAlmoxarifadoEstoque and pae.status = 0)
  57. LEFT OUTER JOIN produtoalmoxarifadoestoque pae2 on (pae2.fkalmoxarifado = dfi.fkalmoxarifado and dfi.fkproduto = pae2.fkproduto and pae2.status = 0)
  58. WHERE dfi.status not in ( 999)
  59.  
  60. ),
  61. b AS (
  62. 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,
  63. dfp.TipoEntradaSaida as tes, cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
  64. FROM dfi as dfi
  65. INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
  66. LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
  67. inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8671)
  68. inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
  69. LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7026)
  70.  
  71. UNION
  72.  
  73. 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,
  74. dfp.TipoEntradaSaida as tes,cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
  75. FROM dfi as dfi
  76. INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
  77. LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
  78. inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8672)
  79. inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
  80. LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7026)
  81.  
  82. union
  83.  
  84. 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,
  85. dfp.TipoEntradaSaida as tes, cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
  86. FROM dfi as dfi
  87. INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
  88. LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
  89. inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8671)
  90. inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
  91. LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7031)
  92. WHERE dfi.statusdf in (10)
  93.  
  94. UNION
  95.  
  96. 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,
  97. dfp.TipoEntradaSaida as tes,cfop.tipoEntradaSaida,df.fkUsuario, dfi.pkDocumentoFiscalItem, m.pkMovimentacaoAlmoxarifado as pkFeita
  98. FROM dfi as dfi
  99. INNER JOIN DocumentoFiscal df on (df.pkDocumentoFiscal = dfi.fkDocumentoFiscal )
  100. LEFT OUTER JOIN DocumentoFiscalProduto dfp ON dfp.pkDocumentoFiscalProduto = df.fkDocumentoFiscalProduto
  101. inner join cf as cfop on (dfi.pkDocumentoFiscalItem = cfop.pkDocumentoFiscalItem AND cfop.tipoEntradaSaida = 8672)
  102. inner JOIN pae pae ON (dfi.pkDocumentoFiscalItem = pae.pkDocumentoFiscalItem)
  103. LEFT OUTER JOIN m as m ON (m.fkDocumentoFiscalItem = dfi.pkDocumentoFiscalItem and m.fkProdutoAlmoxarifadoEstoque = pae.pkProdutoAlmoxarifadoEstoque and m.tipo = 7031)
  104. WHERE dfi.statusdf in (10)
  105. )
  106. , a as (
  107.  
  108. select * from b where b.pkFeita is null
  109.  
  110.  
  111.  
  112. )
  113. INSERT INTO MovimentacaoAlmoxarifado (efk, dataLancamento, DATA, tipo, operacao, quantidade, status, fkprodutoAlmoxarifadoEstoque)
  114. 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