Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- QrProc := TSQLQuery.Create(nil); // cria uma instância do objeto
- try
- QrProc.SQLConnection := DMGeral.DBConexao; // componente de conexão
- QrProc.SQL.Clear;
- QrProc.SQL.Add( 'create or alter procedure INVENTARIO ( EMPRESA DOMCODIGO, ' +
- 'FILIAL DOMCODIGO, DATA DOMDATA) returns ( PRODUTO DOMCODIGO, DERIVACAO DOMDERIVACAO, ' +
- 'UNIDADEMEDIDA DOMUNIDADE, DESCRICAO DOMDESCRICAO, QUANTIDADE DOMQUANTIDADE, ' +
- 'COMPRA DOMQUANTIDADE, VENDA DOMQUANTIDADE, PRECOCOMPRA DOMVALOR, PRECOMEDIO DOMVALOR, ' +
- 'PRECONORMAL DOMVALOR, PRECOMINIMO DOMVALOR, PERCENTUALICMS DOMVALOR, CST DOMCEP, ' +
- 'NCM DOMDOCUMENTO, GRUPO DOMCODIGO, SUBGRUPO DOMCODIGO, ECF DOMDESCRICAO) ' +
- 'as declare variable USARDESCRICAODERIVACOES DOMLOGICO; declare variable LQUANTIDADE DOMVALOR; ' +
- 'begin ' +
- ' select USARDESCRICAODERIVACOES from CONFIGURACOES where EMPRESA = :EMPRESA and FILIAL = :FILIAL ' +
- ' into :USARDESCRICAODERIVACOES; ' +
- ' for select E.PRODUTO, E.DERIVACAO, D.UNIDADEMEDIDA, iif(:USARDESCRICAODERIVACOES = ''S'', substring(P.DESCRICAO || ''-'' || D.DESCRICAO from 1 for 100), P.DESCRICAO) as DESCRICAO,' +
- ' sum(E.QUANTIDADE), Y.PRECOCOMPRA, Y.PRECOMEDIO, Z.PRECONORMAL, Z.PRECOMINIMO, F.PERCENTUALICMS, F.CST, ' +
- ' P.NCM, P.GRUPO, P.SUBGRUPO, F.PERCENTUALICMS, F.ITECF ' +
- ' ' +
- ' from ESTOQUES E ' +
- ' inner join PRODUTOS P on (P.CODIGO = E.PRODUTO) ' +
- ' inner join DERIVACOES D on (D.CODIGO = E.DERIVACAO and ' +
- ' D.PRODUTO = E.PRODUTO) ' +
- ' inner join CONFIGURACOES C on (C.EMPRESA = E.EMPRESA and ' +
- ' C.FILIAL = E.FILIAL) ' +
- ' inner join FILIAIS X on (X.CODIGO = E.FILIAL and ' +
- ' X.EMPRESA = E.EMPRESA) ' +
- ' left outer join ITENSPRECOSCOMPRAS Y on (Y.PRECO = C.PRECOCOMPRAPADRAO and ' +
- ' Y.PRODUTO = E.PRODUTO and ' +
- ' Y.DERIVACAO = E.DERIVACAO) ' +
- ' left outer join ITENSPRECOSVENDAS Z on (Z.PRECO = C.PRECOVENDAPADRAO and ' +
- ' Z.PRODUTO = E.PRODUTO and ' +
- ' Z.DERIVACAO = E.DERIVACAO) ' +
- ' inner join ITENSCLASSIFICACOESFISCAIS F on (F.CLASSIFICACAOFISCAL = P.CLASSIFICACAOFISCAL and ' +
- ' F.TIPO = ''S'' and ' +
- ' F.UF = X.UF) ' +
- ' where E.EMPRESA = :EMPRESA and ' +
- ' E.FILIAL = :FILIAL and ' +
- ' P.INVENTARIADO = ''S'' and ' +
- ' P.BLOQUEADO = ''N'' and ' +
- ' D.BLOQUEADO = ''N'' ' +
- ' group by E.PRODUTO, E.DERIVACAO, D.UNIDADEMEDIDA, DESCRICAO, Y.PRECOCOMPRA, Y.PRECOMEDIO, Z.PRECONORMAL, Z.PRECOMINIMO, F.ITECF, F.PERCENTUALICMS, F.CST, P.NCM, P.GRUPO, P.SUBGRUPO ' +
- ' into :PRODUTO, :DERIVACAO, :UNIDADEMEDIDA, :DESCRICAO, :QUANTIDADE, :PRECOCOMPRA, :PRECOMEDIO, :PRECONORMAL, ' +
- ' :PRECOMINIMO, :PERCENTUALICMS, :CST, :NCM, :GRUPO, :SUBGRUPO, :PERCENTUALICMS, :ECF ' +
- ' do ' +
- ' begin ' +
- ' /* COMPRAS */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSCOMPRAS I ' +
- ' inner join COMPRAS C on (C.CODIGO = I.COMPRA) ' +
- ' where C.EMPRESA = :EMPRESA and ' +
- ' C.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' C.SITUACAO = ''F'' and ' +
- ' C.ENTREGA > :DATA ' +
- ' into :COMPRA; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE - :COMPRA; ' +
- ' ' +
- ' /* AJUSTES DE ESTOQUES - ENTRADA */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSAJUSTESESTOQUES I ' +
- ' inner join AJUSTESESTOQUES A on (A.CODIGO = I.AJUSTEESTOQUE) ' +
- ' where A.EMPRESA = :EMPRESA and ' +
- ' A.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' A.SITUACAO = ''F'' and ' +
- ' I.TIPO = ''E'' and ' +
- ' A.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE - LQUANTIDADE; ' +
- ' ' +
- ' /* AJUSTES DE ESTOQUES - SAÃDA */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSAJUSTESESTOQUES I ' +
- ' inner join AJUSTESESTOQUES A on (A.CODIGO = I.AJUSTEESTOQUE) ' +
- ' where A.EMPRESA = :EMPRESA and ' +
- ' A.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' A.SITUACAO = ''F'' and ' +
- ' I.TIPO = ''S'' and ' +
- ' A.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE + LQUANTIDADE; ' +
- ' ' +
- ' /* DEVOLUÇÕES - VENDAS */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSDEVOLUCOES I ' +
- ' inner join DEVOLUCOES D on (D.CODIGO = I.DEVOLUCAO) ' +
- ' where D.EMPRESA = :EMPRESA and ' +
- ' D.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' D.SITUACAO = ''F'' and ' +
- ' D.TIPO = ''V'' and ' +
- ' D.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE - LQUANTIDADE; ' +
- ' ' +
- ' /* DEVOLUÇÕES - COMPRAS */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSDEVOLUCOES I ' +
- ' inner join DEVOLUCOES D on (D.CODIGO = I.DEVOLUCAO) ' +
- ' where D.EMPRESA = :EMPRESA and ' +
- ' D.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' D.SITUACAO = ''F'' and ' +
- ' D.TIPO = ''C'' and ' +
- ' D.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE + LQUANTIDADE; ' +
- ' ' +
- ' /* INDUSTRIALIZAÇÃO */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSINDUSTRIALIZACOES I ' +
- ' inner join INDUSTRIALIZACOES X on (X.CODIGO = I.INDUSTRIALIZACAO) ' +
- ' where X.EMPRESA = :EMPRESA and ' +
- ' X.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' X.SITUACAO = ''F'' and ' +
- ' X.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE - LQUANTIDADE; ' +
- ' ' +
- ' /* INDUSTRIALIZAÇÕES - SUB - ENTRADAS */ ' +
- ' select coalesce(cast(sum(I.QUANTIDADE * F.QUANTIDADE) as DOMVALOR), 0) ' +
- ' from ITENSINDUSTRIALIZACOES I ' +
- ' inner join INDUSTRIALIZACOES X on (X.CODIGO = I.INDUSTRIALIZACAO) ' +
- ' inner join FICHASTECNICAS F on (F.PRODUTOMESTRE = I.PRODUTO and ' +
- ' F.DERIVACAOMESTRE = I.DERIVACAO) ' +
- ' where X.EMPRESA = :EMPRESA and ' +
- ' X.FILIAL = :FILIAL and ' +
- ' F.PRODUTO = :PRODUTO and ' +
- ' F.DERIVACAO = :DERIVACAO and ' +
- ' X.SITUACAO = ''F'' and ' +
- ' F.ACAO = ''C'' and ' +
- ' X.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE - LQUANTIDADE; ' +
- ' ' +
- ' /* INDUSTRIALIZAÇÕES - SUB - SAÃDAS */ ' +
- ' select coalesce(cast(sum(I.QUANTIDADE * F.QUANTIDADE) as DOMVALOR), 0) ' +
- ' from ITENSINDUSTRIALIZACOES I ' +
- ' inner join INDUSTRIALIZACOES X on (X.CODIGO = I.INDUSTRIALIZACAO) ' +
- ' inner join FICHASTECNICAS F on (F.PRODUTOMESTRE = I.PRODUTO and ' +
- ' F.DERIVACAOMESTRE = I.DERIVACAO) ' +
- ' where X.EMPRESA = :EMPRESA and ' +
- ' X.FILIAL = :FILIAL and ' +
- ' F.PRODUTO = :PRODUTO and ' +
- ' F.DERIVACAO = :DERIVACAO and ' +
- ' X.SITUACAO = ''F'' and ' +
- ' F.ACAO = ''D'' and ' +
- ' X.DATA > :DATA ' +
- ' into LQUANTIDADE; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE + LQUANTIDADE; ' +
- ' ' +
- ' /* VENDAS */ ' +
- ' select coalesce(sum(I.QUANTIDADE), 0) ' +
- ' from ITENSVENDAS I ' +
- ' inner join VENDAS V on (V.CODIGO = I.VENDA) ' +
- ' where V.EMPRESA = :EMPRESA and ' +
- ' V.FILIAL = :FILIAL and ' +
- ' I.PRODUTO = :PRODUTO and ' +
- ' I.DERIVACAO = :DERIVACAO and ' +
- ' I.SITUACAO = ''N'' and ' +
- ' I.ESTOQUE = ''M'' and ' +
- ' V.SITUACAO = ''F'' and ' +
- ' V.DATA > :DATA ' +
- ' into :VENDA; ' +
- ' ' +
- ' QUANTIDADE = QUANTIDADE + :VENDA; ' +
- ' ' +
- ' if (QUANTIDADE > 0) then ' +
- ' suspend; ' +
- ' end ' +
- 'end');
- QrProc.ExecSQL;
- finally
- FreeAndNil(QrProc); // tira o objeto da memória
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement