CREATE OR REPLACE PROCEDURE ARQUIVO_DIEF_PI (
   P_REGISTRO    IN VARCHAR,
   P_CDIMPOSTO   IN IMPOSTO.CDIMPOSTONFE%TYPE,
   P_CDEMPRESA   IN EMPRESA.CDEMPRESA%TYPE,
   P_CDINSCESTA  IN EMPRESA.CDINSCESTA%TYPE,
   P_DTINICIAL   IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_DTFINAL     IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_DTPOSICAO   IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_CDPAIS      IN ESTADO.CDPAIS%TYPE,
   P_SGESTADO    IN ESTADO.SGESTADO%TYPE,
   P_VERSAO      IN NOTAFISCAL.IDSTATUS%TYPE,
   P_FINALIDADE  IN NOTAFISCAL.IDSTATUS%TYPE,
   P_NRSEQARQMAG IN NOTAFISCAL.NRLANCTONF%TYPE,
   P_LIVRO       IN NOTAFISCAL.NRLANCTONF%TYPE)
AS
   V_CONTGERAL      NUMBER;
   V_CONTADOR       NUMBER;
   V_SOMATOTAL      NUMBER;
   V_REGISTRO50     VARCHAR2(100);
   V_REGISTRO51     VARCHAR2(100);
   V_REGISTRO53     VARCHAR2(100);
   V_REGISTRO54     VARCHAR2(100);
   V_REGISTRO55     VARCHAR2(100);
   V_REGISTRO60     VARCHAR2(100);
   V_REGISTRO61     VARCHAR2(100);
   V_REGISTRO61R    VARCHAR2(100);
   V_REGISTRO70     VARCHAR2(100);
   V_REGISTRO71     VARCHAR2(100);
   V_REGISTRO74     VARCHAR2(100);
   V_REGISTRO75     VARCHAR2(100);
   V_REGISTRO90     VARCHAR2(100);
BEGIN
  V_SOMATOTAL := 2;
   V_CONTADOR := ARQUIVO_10_DIEF_PI(P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL,P_DTFINAL, P_VERSAO,P_FINALIDADE,P_NRSEQARQMAG);
   V_CONTADOR := ARQUIVO_11_DIEF_PI(P_CDEMPRESA, P_CDINSCESTA,P_NRSEQARQMAG,V_CONTADOR);
   IF SUBSTR(P_REGISTRO,1,1) = 'S' THEN
      V_REGISTRO50 := NVL(ARQUIVO_50_DIEF_PI(P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_CDIMPOSTO, P_CDPAIS, P_SGESTADO,
                                     P_NRSEQARQMAG, V_CONTADOR),'0');
      IF V_REGISTRO50 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO50,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO50,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,2,1) = 'S' THEN
      V_REGISTRO51 := ARQUIVO_51_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL,
                                         P_CDPAIS, P_SGESTADO, P_NRSEQARQMAG,V_CONTADOR,P_LIVRO);
      IF V_REGISTRO51 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO51,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO51,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,3,1) = 'S' THEN
      V_REGISTRO53 := ARQUIVO_53_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_CDPAIS,
                                         P_SGESTADO, P_NRSEQARQMAG, V_CONTADOR);
      IF V_REGISTRO53 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO53,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO53,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,4,1) = 'S' THEN
      V_REGISTRO54 := ARQUIVO_54_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_CDPAIS,
                                         P_SGESTADO,P_NRSEQARQMAG, V_CONTADOR,P_LIVRO);
      IF V_REGISTRO54 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO54,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO54,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,5,1) = 'S' THEN
        V_REGISTRO55 := ARQUIVO_55_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_NRSEQARQMAG,
                                   V_CONTADOR);
      IF V_REGISTRO55 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO55,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO55,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,6,1) = 'S' THEN
      V_REGISTRO60 := ARQUIVO_60_DIEF_PI(P_REGISTRO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_NRSEQARQMAG,
                                 V_CONTADOR);
      IF V_REGISTRO60 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO60,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO60,11,10));
      END IF;
   END IF;

   IF SUBSTR(P_REGISTRO,7,1) = 'S' THEN
      
      V_REGISTRO61 := ARQUIVO_61_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL,P_NRSEQARQMAG, V_CONTADOR);
      IF V_REGISTRO61 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO61,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO61,11,10));
      END IF;
     /*
      V_REGISTRO61R := ARQUIVO_61R_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_DTPOSICAO,
                                   P_CDPAIS, P_SGESTADO,P_NRSEQARQMAG, V_CONTADOR);
      IF V_REGISTRO61R > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO61R,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO61R,11,10));
      END IF;
      */
   END IF;
   IF SUBSTR(P_REGISTRO,8,1) = 'S' THEN
      V_REGISTRO70 := ARQUIVO_70_DIEF_PI(P_CDIMPOSTO, P_CDEMPRESA, P_CDINSCESTA, P_DTINICIAL, P_DTFINAL, P_CDPAIS,
                                 P_SGESTADO,P_NRSEQARQMAG, V_CONTADOR);
      IF V_REGISTRO70 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO70,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO70,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,9,1) = 'S' THEN
      V_REGISTRO74 := ARQUIVO_74_DIEF_PI(P_CDEMPRESA, P_CDINSCESTA,P_DTPOSICAO, P_DTINICIAL, P_DTFINAL, P_NRSEQARQMAG,
                                         V_CONTADOR);
      IF V_REGISTRO74 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO74,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO74,11,10));
      END IF;
   END IF;
   IF SUBSTR(P_REGISTRO,10,1) = 'S' THEN
      V_REGISTRO75 := ARQUIVO_75_DIEF_PI(P_VERSAO,P_NRSEQARQMAG,V_CONTADOR);
      IF V_REGISTRO75 > 0 THEN
         V_CONTGERAL := TO_NUMBER(SUBSTR(V_REGISTRO75,1,10));
         V_SOMATOTAL := NVL(V_SOMATOTAL,0)+NVL(V_CONTGERAL,0);
         V_CONTADOR  := TO_NUMBER(SUBSTR(V_REGISTRO75,11,10));
      END IF;
   END IF;
   V_REGISTRO90 := ARQUIVO_90_DIEF_PI(P_CDEMPRESA, P_CDINSCESTA, V_SOMATOTAL+1, V_CONTADOR, P_NRSEQARQMAG);
   EXECUTE IMMEDIATE
   'TRUNCATE TABLE TMP_REGISTRO_PRODUTO';
   COMMIT;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('ARQUIVO_DIEF_PI','5.11.026'); END;
/

