Last active
March 30, 2021 00:15
-
-
Save AndyDaSilva52/b54e6034c26bd723cc7c8b5360e92c7e to your computer and use it in GitHub Desktop.
#Mega - Procedure mostra Sequência de Notas para NFe ou NFSe ou CFe ou NFCe por exemplo que pularam
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create or replace PROCEDURE P_CLI_VEN_NF_SEQUENCIA | |
--(pRC OUT SYS_REFCURSOR) IS | |
AS | |
BEGIN | |
FOR cTDF IN ( | |
SELECT | |
TD.FIL_IN_CODIGO, TD.SER_ST_CODIGO, TD.TDF_IN_CODIGO, TD.NOT_IN_NUMERO_MIN, TD.NOT_IN_NUMERO_MAX, TD.NOT_IN_NUMERO_MIN_RECENT | |
FROM ( | |
SELECT S.FIL_IN_CODIGO, S.SER_ST_CODIGO, S.TDF_IN_CODIGO, S.TDF_IN_NDOCINI, S.TDF_IN_NDOCFINAL, | |
( | |
SELECT MIN(X.NOT_IN_NUMERO) | |
FROM MGVEN.VEN_NOTAFISCAL X | |
WHERE X.FIL_IN_CODIGO = S.FIL_IN_CODIGO | |
AND X.SER_ST_CODIGO = S.SER_ST_CODIGO | |
AND X.TDF_IN_CODIGO = S.TDF_IN_CODIGO | |
AND X.NOT_DT_EMISSAO BETWEEN TRUNC(SYSDATE) - 720 AND TRUNC(SYSDATE) - 2 | |
) NOT_IN_NUMERO_MIN, | |
( | |
SELECT MIN(X.NOT_IN_NUMERO) | |
FROM MGVEN.VEN_NOTAFISCAL X | |
WHERE X.FIL_IN_CODIGO = S.FIL_IN_CODIGO | |
AND X.SER_ST_CODIGO = S.SER_ST_CODIGO | |
AND X.TDF_IN_CODIGO = S.TDF_IN_CODIGO | |
AND X.NOT_DT_EMISSAO BETWEEN TRUNC(SYSDATE) - 25 AND TRUNC(SYSDATE) - 5 | |
) NOT_IN_NUMERO_MIN_RECENT, | |
( | |
SELECT MAX(X.NOT_IN_NUMERO) | |
FROM MGVEN.VEN_NOTAFISCAL X | |
WHERE X.FIL_IN_CODIGO = S.FIL_IN_CODIGO | |
AND X.SER_ST_CODIGO = S.SER_ST_CODIGO | |
AND X.TDF_IN_CODIGO = S.TDF_IN_CODIGO | |
AND X.NOT_DT_EMISSAO BETWEEN TRUNC(SYSDATE) - 90 AND TRUNC(SYSDATE) - 2 | |
) NOT_IN_NUMERO_MAX | |
FROM MGTRF.TRF_TDF_SERIE S | |
LEFT JOIN MGTRF.TRF_TIPODOCFISCAL T ON T.TDF_IN_CODIGO = S.TDF_IN_CODIGO | |
LEFT JOIN MGTRF.TRF_MODELODOC M ON M.MOD_IN_CODIGO = T.MOD_IN_CODIGO | |
WHERE M.MOD_ST_MODELO IN ( | |
'55' -- NFe | |
, '59' -- CFe | |
, '65' -- NFCe | |
) | |
) TD | |
WHERE TD.NOT_IN_NUMERO_MIN IS NOT NULL | |
) LOOP | |
--dbms_output.put_line('Filial['|| cTDF.FIL_IN_CODIGO ||']SER['|| cTDF.SER_ST_CODIGO ||']TDF['|| cTDF.TDF_IN_CODIGO ||']' | |
--|| 'MAX['|| cTDF.NOT_IN_NUMERO_MAX || ']MIN[' || cTDF.NOT_IN_NUMERO_MIN ||']' | |
--); | |
--OPEN pRC FOR | |
FOR cDOC IN ( | |
SELECT | |
cTDF.FIL_IN_CODIGO, cTDF.SER_ST_CODIGO, cTDF.TDF_IN_CODIGO, | |
S.NOT_IN_NUMERO, | |
( | |
SELECT MIN(NOT_DT_EMISSAO) | |
FROM MGVEN.VEN_NOTAFISCAL T | |
WHERE | |
T.FIL_IN_CODIGO = cTDF.FIL_IN_CODIGO | |
AND T.SER_ST_CODIGO = cTDF.SER_ST_CODIGO | |
AND T.TDF_IN_CODIGO = cTDF.TDF_IN_CODIGO | |
AND T.NOT_IN_NUMERO >= S.NOT_IN_NUMERO | |
) NOT_DT_EMISSAO | |
FROM ( | |
SELECT RESULT NOT_IN_NUMERO FROM ( | |
SELECT ROWNUM RESULT FROM DUAL CONNECT BY LEVEL <= cTDF.NOT_IN_NUMERO_MAX -- MAX | |
) WHERE RESULT >= cTDF.NOT_IN_NUMERO_MIN -- MIN | |
) S | |
LEFT JOIN MGVEN.VEN_NOTAFISCAL N | |
ON (N.NOT_IN_NUMERO = S.NOT_IN_NUMERO) | |
AND (N.FIL_IN_CODIGO = cTDF.FIL_IN_CODIGO) | |
AND (N.SER_ST_CODIGO = cTDF.SER_ST_CODIGO) | |
AND (N.TDF_IN_CODIGO = cTDF.TDF_IN_CODIGO) | |
WHERE | |
N.NOT_IN_NUMERO IS NULL | |
) LOOP | |
-- TODO: Gerar Integração de Nota Fiscal quando numeração estiver com Data Próxima, | |
-- ou seja, se o MAX(NOT_IN_NUMERO) < cDOC.NOT_IN_NUMERO >= TRUNC(SYSDATE) - 25 então gera integração como não enviada | |
/**IF cDOC.NOT_IN_NUMERO > cTDF.NOT_IN_NUMERO_MIN_RECENT AND cDOC.TDF_IN_CODIGO = 7 AND cDOC.SER_ST_CODIGO NOT IN ('1') THEN | |
-- Incluir registro para inutilizar | |
INSERT INTO MSINT.VEN_NOTAFISCAL_INUTILIZAR(FIL_IN_CODIGO, SER_ST_CODIGO, NOT_IN_NUMERO, NOT_DT_EMISSAO) | |
SELECT cDOC.FIL_IN_CODIGO, cDOC.SER_ST_CODIGO, cDOC.NOT_IN_NUMERO, cDOC.NOT_DT_EMISSAO | |
FROM DUAL | |
WHERE NOT EXISTS( | |
SELECT * FROM MSINT.VEN_NOTAFISCAL_INUTILIZAR | |
WHERE FIL_IN_CODIGO = cDOC.FIL_IN_CODIGO | |
AND SER_ST_CODIGO = cDOC.SER_ST_CODIGO | |
AND NOT_IN_NUMERO = cDOC.NOT_IN_NUMERO | |
AND NOT_DT_EMISSAO = cDOC.NOT_DT_EMISSAO | |
) | |
; | |
END IF;*/ | |
mgcli.p_mail_log_generico(2,'P_CLI_VEN_NF_SEQUENCIA', | |
'Doc[' | |
|| cDOC.NOT_IN_NUMERO | |
||']Filial['|| cDOC.FIL_IN_CODIGO ||']SER['|| cDOC.SER_ST_CODIGO ||']TDF['|| cDOC.TDF_IN_CODIGO ||']DataEmissãoSugerida['|| TO_CHAR(cDOC.NOT_DT_EMISSAO, 'DD/MM/YYYY') ||'] não existe em Documentos de Saída! Possível que seja necessário inutilizar a mesma!'); | |
dbms_output.put_line('Doc[' | |
|| cDOC.NOT_IN_NUMERO | |
||']Filial['|| cDOC.FIL_IN_CODIGO ||']SER['|| cDOC.SER_ST_CODIGO ||']TDF['|| cDOC.TDF_IN_CODIGO ||']DataEmissãoSugerida['|| TO_CHAR(cDOC.NOT_DT_EMISSAO, 'DD/MM/YYYY') ||'] não existe em Documentos de Saída! Possível que seja necessário inutilizar a mesma!'); | |
END LOOP; | |
END LOOP; | |
END P_CLI_VEN_NF_SEQUENCIA; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment