create or replace FUNCTION ARQDIGITAL_INICIO( 
   P_CDIMPOSTO    IN IMPOSTO.CDIMPOSTO%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_TIPO         IN NOTAFISCAL.IDSTATUS%TYPE, 
   P_FINALIDADE   IN NOTAFISCAL.CDTIPOOPER%TYPE, 
   P_INDESCRITU   IN NOTAFISCAL.IDSTATUS%TYPE, 
   P_NRSEQARQMAG  IN ARQMAGNETICO.NRSEQARQMAG%TYPE, 
   P_IDCENTRAL    IN NOTAFISCAL.IDSTATUS%TYPE, 
   P_CDLIVROMAG   IN LIVROMAGNETICO.CDLIVROMAG%TYPE) RETURN NUMBER 
AS 
   V_CONTREGA     NUMBER; 
   V_CODIGO       VARCHAR2(21); 
   V_ORIGEM       VARCHAR2(01); 
BEGIN 
   FOR C_REG0000 IN (SELECT  ('|0000'                                                       || '|' || 
                              'LFPD'                                                        || '|' || 
                              '002'                                                         || '|' || 
                              '000'                                                         || '|' || 
                              P_FINALIDADE                                                  || '|' || 
                              TO_CHAR(P_DTINICIAL,'ddmmyyyy')                               || '|' || 
                              TO_CHAR(P_DTFINAL,'ddmmyyyy')                                 || '|' || 
                              P_TIPO                                                        || '|' || 
                              P_INDESCRITU                                                  || '|' || 
                              E.NMEMPRESA                                                   || '|' || 
                              I.NRINSJURIEST                                                || '|' || 
                              ''                                                            || '|' || 
                              ''                                                            || '|' || 
                              I.SGESTADO                                                    || '|' || 
                              REPLACE(REPLACE(REPLACE(I.CDINSCESTA,'.',''),'-',''),'/','')  || '|' || 
                              LPAD(NVL(M.CDMUNICIBGE,'0'),7,'0')                            || '|' || 
                              E.CDINSCMUNI                                                  || '|' || 
                              ''                                                            || '|'  ) AS ARQ_0000 
                     FROM EMPRESA E, MUNICIPIO M, INSCRESTAD I 
                     WHERE I.CDEMPRESA   = P_CDEMPRESA   AND 
                           I.CDINSCESTA  = P_CDINSCESTA  AND 
                           I.CDPAIS      = M.CDPAIS      AND 
                           I.SGESTADO    = M.SGESTADO    AND 
                           I.CDMUNICIPIO = M.CDMUNICIPIO AND 
                           E.CDEMPRESA   = I.CDEMPRESA ) LOOP 
      V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
      INSERT INTO ARQMAGNETICO 
        (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
      VALUES 
        ('00'||LPAD(RTRIM(V_CONTREGA), 8, '0'), C_REG0000.ARQ_0000, P_NRSEQARQMAG); 
   END LOOP; 
    
   /* ABERTURA DO ARQUIVO 0000 */
   V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
   INSERT INTO ARQMAGNETICO 
     (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
   VALUES 
     ('01'||LPAD(RTRIM(V_CONTREGA), 8, '0'), '|0001'||'|'||'0'|| '|', P_NRSEQARQMAG); 
   FOR C_REG0005 IN (SELECT ('|0005'                       || '|' || 
                             EP.NMRAZSOCEMPR               || '|' || 
                             REPLACE(IE.NRCEPIEST,'-','')  || '|' || 
                             IE.DSENDEIEST                 || '|' || 
                             ''                            || '|' || 
                             IE.DSCOMPENDIES               || '|' || 
                             IE.NMBAIRIEST                 || '|' || 
                             ''                            || '|' || 
                             ''                            || '|' || 
                             IE.NRTELEIEST                 || '|' || 
                             ''                            || '|' || 
                             ''                            || '|'  ) ARQ_0005 
                     FROM EMPRESA EP, INSCRESTAD IE 
                     WHERE IE.CDEMPRESA  = P_CDEMPRESA    AND 
                           IE.CDINSCESTA = P_CDINSCESTA   AND 
                           IE.CDEMPRESA  = EP.CDEMPRESA ) LOOP 
      INSERT INTO ARQMAGNETICO 
        (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
      VALUES 
        ('02'||LPAD(RTRIM(V_CONTREGA), 8, '0'),  C_REG0005.ARQ_0005, P_NRSEQARQMAG); 
      V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
   END LOOP; 
   IF P_IDCENTRAL IN ('1', '2') THEN 
      FOR C_REG0010 IN (SELECT ('|0010'                    || '|' || 
                                A.NRINSJURIEST             || '|' || 
                                ''                         || '|' || 
                                A.SGESTADO                 || '|' || 
                                A.CDINSCESTA               || '|' || 
                                LPAD(C.CDMUNICIBGE,7,'0')  || '|' || 
                                IM.CDINSCMUNI              || '|'  ) AS ARQ_0010 
                        FROM 
                           INSCRESTAD A, MUNICIPIO C, FILIAL E, INSCRMUNICIP IM 
                        WHERE 
                           A.CDEMPRESA   = P_CDEMPRESA      AND 
                           A.CDINSCESTA  = P_CDINSCESTA     AND 
                           A.CDPAIS      = C.CDPAIS(+)      AND 
                           A.SGESTADO    = C.SGESTADO(+)    AND 
                           A.CDMUNICIPIO = C.CDMUNICIPIO(+) AND 
                           A.CDINSCESTA  = E.CDINSCESTA(+)  AND 
                           E.CDEMPRESA   = IM.CDEMPRESA(+)  AND 
                           E.CDINSCMUNI  = IM.CDINSCMUNI(+)) LOOP 
         INSERT INTO ARQMAGNETICO 
           (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
         VALUES 
           ('03'||LPAD(RTRIM(V_CONTREGA), 8, '0'), C_REG0010.ARQ_0010, P_NRSEQARQMAG); 
         V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
      END LOOP; 
   END IF; 
   FOR C_REG0100 IN (SELECT ('|0100'                                     || '|' || 
                             C.NMCONTADOR                                || '|' || 
                             ''                                          || '|' || 
                             C.NRCPFRESPONS                              || '|' || 
                             REPLACE(REPLACE(C.NRCRCCONT2,'/',''),'-','')|| '|' || 
                             C.SGESTADO                                  || '|' || 
                             REPLACE(REPLACE(C.NRCEP,'/',''),'-','')     || '|' || 
                             C.DSLOGRADOURO                              || '|' || 
                             ''                                          || '|' || 
                             C.DSCOMPLLOGRA                              || '|' || 
                             C.DSBAIRRO                                  || '|' || 
                             ''                                          || '|' || 
                             ''                                          || '|' || 
                             C.NRTELCONTATO                              || '|' || 
                             C.NRFAXCONTATO                              || '|' || 
                             C.DSENDINTERN                               || '|'  ) ARQ_0100 
                       FROM CONTADOR C, INSCRESTAD I
                      WHERE C.CDCONTADOR2 = I.CDCONTADOR2
                        AND I.CDINSCESTA  = P_CDINSCESTA
                        AND I.CDEMPRESA   = P_CDEMPRESA  ) LOOP 
      INSERT INTO ARQMAGNETICO 
        (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
      VALUES 
        ('04'||LPAD(RTRIM(V_CONTREGA), 8, '0'), C_REG0100.ARQ_0100, P_NRSEQARQMAG); 
      V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
   END LOOP; 
   FOR C_REG0125 IN (SELECT  ('|0125'                 || '|' || 
                              'Teknisa Software Ltda' || '|' || 
                              '26269316000177'        || '|' || 
                              ''                      || '|' || 
                              '21222300'              || '|' || 
                              ''                      || '|' || 
                              ''                      || '|'  ) AS ARQ_0125 
                      FROM DUAL) LOOP 
      INSERT INTO ARQMAGNETICO 
        (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
      VALUES 
        ('05'||LPAD(RTRIM(V_CONTREGA), 8, '0'), C_REG0125.ARQ_0125, P_NRSEQARQMAG); 
      V_CONTREGA := NVL(V_CONTREGA,0) + 1; 
   END LOOP; 
   RETURN(V_CONTREGA); 
END; 
/
-- VERSAO --
BEGIN ATUVEROBJ('ARQDIGITAL_INICIO','5.30.000'); END;
/

