CREATE OR REPLACE PROCEDURE CONTROLE_ENTRADA_SAIDA_MP
--/CRIA TABELA TEMPORÁRIA PARA RECEBER AS ENTRADAS
CREATE GLOBAL TEMPORARY TABLE TB_ENTRADAS_TEMP
(
COD_ENTRADA_TEMP NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
-- NUNOTA NUMBER,
CODPARC NUMBER,
NOMEPARC VARCHAR2(200),
--CODTIPOPER NUMBER,
CODPROD NUMBER,
CODVOL VARCHAR2(2),
QTDNEG FLOAT,
DTMOV DATE,
PRIMARY KEY (COD_ENTRADA_TEMP)
);
--/REALIZAR O INSERT DOS DADOS NA TABELA TEMPORÁRIA TB_ENTRADAS_TEMP
INSERT
INTO TB_ENTRADAS_TEMP
(
CODPARC,
NOMEPARC,
CODPROD ,
CODVOL ,
QTDNEG ,
DTMOV
)
SELECT CAB1.CODPARC AS "CODIGO PARCEIRO",
PAR1.NOMEPARC AS "NOME PARCEIRO",
PRO1.CODPROD AS "CODIGO PRODUTO",
ITE1.CODVOL "UNIDADE DE MEDIDA",
SUM(ITE1.QTDNEG) AS "QUANTIDADE ENTRADA",
CAB1.DTMOV
FROM TGFCAB CAB1
INNER JOIN TGFITE ITE1 ON (ITE1.NUNOTA = CAB1.NUNOTA)
INNER JOIN TGFPRO PRO1 ON (PRO1.CODPROD = ITE1.CODPROD)
INNER JOIN TGFPAR PAR1 ON (PAR1.CODPARC = CAB1.CODPARC)
WHERE (CAB1.CODPARC IN (11550,11551,63352,30334,65366))
AND PRO1.CODGRUPOPROD BETWEEN '3000100' AND '3000500'
AND CAB1.CODTIPOPER IN (2110, 2109)
AND ITE1.CODVOL IN ('KG','TN')
AND ITE1.STATUSNOTA='L'
GROUP BY CAB1.CODPARC,PRO1.CODPROD,ITE1.CODVOL,PAR1.NOMEPARC,CAB1.DTMOV--,IMP1.QTD, "QUANTIDADE DE REGISTROS"
--/CRIA TABELA TEMPORÁRIA PARA RECEBER AS SAÍDAS
CREATE GLOBAL TEMPORARY TABLE TB_SAIDAS_TEMP
(
COD_SAIDA_TEMP NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
CODPARC NUMBER,
CODPROD NUMBER,
QTDNEG FLOAT,
PRIMARY KEY (COD_SAIDA_TEMP)
);
--/REALIZA O INSERT DOS DADOS NA TABELA TEMPORÁRIA TB_SAÍDAS_TEMP
INSERT
INTO TB_SAIDAS_TEMP
(
CODPARC,
CODPROD,
QTDNEG
)
SELECT DISTINCT
CAB.CODPARC,PRO.CODPROD, SUM(QTDNEG) AS "SAIDAS"
--TO_CHAR(CAB.DTMOV, 'DD/MM/YYYY') AS "DATA MOVIMENTAÇÃO"
FROM TGFCAB CAB
INNER JOIN TGFITE ITE ON (ITE.NUNOTA = CAB.NUNOTA)
INNER JOIN TGFPRO PRO ON (PRO.CODPROD = ITE.CODPROD)
WHERE (CAB.CODPARC IN (11550,11551,63352,30334,65366))
AND PRO.CODGRUPOPROD BETWEEN '3000100' AND '3000500'
AND ITE.CODVOL IN ('KG','TN')
AND ITE.STATUSNOTA='L'
AND CAB.CODTIPOPER IN (3296,2204,3204)
GROUP BY CAB.CODPARC, PRO.CODPROD --TO_CHAR(CAB.DTMOV, 'DD/MM/YYYY')
--ORDER BY TO_CHAR(CAB.DTMOV, 'DD/MM/YYYY') DESC
---/QUERY PARA O RELATÓRIO DE ACOMPANHAMENTO DE ENTRADA E SAÍDA.
SELECT TEMPE.CODPARC AS "CODIGO PARCEIRO",
TEMPE.NOMEPARC AS "NOME PARCEIRO",
TEMPE.CODPROD,TEMPE.CODVOL,
TEMPE.QTDNEG AS "ENTRADA",
SIMP.QTD AS "SINICIAL",
SUM(TEMPE.QTDNEG + SIMP.QTD) AS "SALDO INICIAL",
TEMPS.QTDNEG AS "SAIDAS",
SUM(TEMPS.QTDNEG - (TEMPE.QTDNEG + SIMP.QTD)) AS "SALDO NO PARCEIRO"
FROM TB_ENTRADAS_TEMP TEMPE
INNER JOIN AD_TGFSIMP SIMP
ON TEMPE.CODPARC = SIMP.CODPARC
AND TEMPE.CODPROD=SIMP.CODPROD
INNER JOIN TB_SAIDAS_TEMP TEMPS
ON TEMPS.CODPARC = SIMP.CODPARC
AND TEMPS.CODPROD=SIMP.CODPROD
GROUP BY TEMPE.CODPARC,TEMPE.NOMEPARC,TEMPE.CODPROD,TEMPE.CODVOL,TEMPE.QTDNEG,SIMP.QTD,TEMPS.QTDNEG
DROP TABLE TB_ENTRADAS_TEMP
DROP TABLE TB_SAIDAS_TEMP