create or replace FUNCTION ARQUIVO_DMA_CONTADOR(
   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_NRSEQARQMAG IN ARQMAGNETICO.NRSEQARQMAG%TYPE) RETURN NUMBER
AS 
   V_CONTADOR NUMBER; 
BEGIN 
   V_CONTADOR := 0; 
   FOR C_REGCONTADOR IN (SELECT ('21'
                                ||TO_CHAR(P_DTINICIAL, 'YYYYMM')
                                ||LPAD(P_CDINSCESTA, 9, '0')
                                ||RPAD(NVL(SUBSTR(REPLACE(REPLACE(REPLACE(REPLACE(C.NRCRCCONT2,'-'),'/'),' '),'O'), 3, 7), ' '), 7, ' ')
                                ||C.SGESTADO
                                ||RPAD(NVL(SUBSTR(C.NMCONTADOR, 1, 35), ' '), 35, ' ')
                                ||LPAD(NVL('', ' '), 3, ' ')
                                ||RPAD(NVL(SUBSTR(C.DSLOGRADOURO, 1, 30), ' '), 30, ' ')
                                ||C.SGESTADO) AS ARQ_REGCONTADOR
                           FROM INSCRESTAD I, CONTADOR C
                          WHERE I.CDEMPRESA  = P_CDEMPRESA
                            AND I.CDINSCESTA = P_CDINSCESTA
                            AND C.CDCONTADOR2 = I.CDCONTADOR2) LOOP
      V_CONTADOR := NVL(V_CONTADOR,0) + 1;
      INSERT INTO ARQMAGNETICO
         (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG)
      VALUES
         (V_CONTADOR, C_REGCONTADOR.ARQ_REGCONTADOR, P_NRSEQARQMAG);
   END LOOP;
   
   FOR C_IDRESPONSAVEL IN (SELECT('22'
                                  ||TO_CHAR(P_DTINICIAL, 'YYYYMM')
                                  ||LPAD(P_CDINSCESTA, 9, '0')
                                  ||RPAD(NVL(SUBSTR(C.DSBAIRRO, 1, 16), ' '), 16, ' ')
                                  ||LPAD(NVL('', ' '), 9, ' ')
                                  ||LPAD(NVL(REPLACE(REPLACE(REPLACE(C.NRTELCONTATO, '(', ''), ')', ''), '-', ''), ' '), 12, ' ')
                                  ||LPAD(NVL(SUBSTR(C.NRRAMALCONTA, 1, 4), ' '), 4, ' ')
                                  ||REPLACE(REPLACE(C.NRCEP, '-', ''), '.', '')
                                  ||DECODE(C.SGESTADO, 'BA', M.CDMUNIEXPO, '00000')
                                  ||RPAD(NVL(SUBSTR(M.NMMUNICIPIO, 1, 30), ' '), 30, ' ')) AS ARQ_IDRESPONSAVEL
                             FROM INSCRESTAD I, CONTADOR C, MUNICIPIO M
                            WHERE I.CDEMPRESA   = P_CDEMPRESA
                              AND I.CDINSCESTA  = P_CDINSCESTA
                              AND I.CDCONTADOR2 = C.CDCONTADOR2
                              AND C.CDPAIS      = M.CDPAIS
                              AND C.SGESTADO    = M.SGESTADO
                              AND C.CDMUNICIPIO = M.CDMUNICIPIO) LOOP
   V_CONTADOR := NVL(V_CONTADOR,0) + 1; 
   INSERT INTO ARQMAGNETICO 
      (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG) 
   VALUES 
      (V_CONTADOR, C_IDRESPONSAVEL.ARQ_IDRESPONSAVEL, P_NRSEQARQMAG); 
   END LOOP; 
   RETURN(V_CONTADOR); 
END;
/


-- VERSAO --
BEGIN ATUVEROBJ('ARQUIVO_DMA_CONTADOR','5.30.000'); END;
/

