CREATE OR REPLACE FUNCTION GIA_RS_X03(
   P_CDEMPRESA      IN EMPRESA.CDEMPRESA%TYPE,    
   P_CDIMPOSTO      IN IMPOSTO.CDIMPOSTO%TYPE,
   P_CDINSCESTA     IN INSCRESTAD.CDINSCESTA%TYPE,
   P_DTINIPERIODO   IN MAPAAPURAC.DTINIPERIODO%TYPE,
   P_DTFIMPERIODO   IN MAPAAPURAC.DTINIPERIODO%TYPE,
   P_VERSAO         IN IMPOSTO.CDIMPOSTO%TYPE,
   P_NRSEQUENCIAL   IN NOTAFISCAL.NRLANCTONF%TYPE,
   P_SEQUENCIA      IN NUMBER,
   P_REG_1          IN VARCHAR2,
   P_NRSEQUMAPAPU   IN MAPAAPURAC.NRSEQUMAPAPU%TYPE ) RETURN VARCHAR2
AS
   V_REG_1           VARCHAR2(1000);
   V_QUANTIDADE      NUMBER;
   V_SEQUENCIA       NUMBER;
/**********************************ANEXO III - DISCRIMINACAO DO CREDITO PRESUMIDO************/
BEGIN

   V_QUANTIDADE:=0;
   V_REG_1:= P_REG_1;
   V_SEQUENCIA:= P_SEQUENCIA;
   FOR C_REG_PRE IN(SELECT '****'                                  ||
                           P_VERSAO                                ||
                           DECODE(P_VERSAO,'07','00000000','')     ||/*VERSAO 07*/
                           DECODE(P_VERSAO,'07',LPAD(' ',1,' '),'')||/*VERSAO 07*/
                           LTRIM(TO_CHAR(P_DTINIPERIODO,'DD'))     ||
                           LTRIM(TO_CHAR(P_DTFIMPERIODO,'DD'))     ||
                           LTRIM(TO_CHAR(P_DTFIMPERIODO,'MMYYYY')) ||
                           LPAD(P_CDINSCESTA,10,'0') As CABECALHO,
                           'X03 '||
                           '01'||
                           SUBSTR(LPAD(IM.NRSEQITMAPR,10,'0'),8,3)||
                           REPLACE(LTRIM(TO_CHAR(IM.VRITEMMAPR,'00000000000.00')),'.')||
                           LPAD(' ',12,' ') AS CORPO
                    FROM ITMAPARECUP IM, INSCRESTAD IE
                    WHERE  IDTIPOITMAPR = 'OC'                AND
                           IM.NRSEQUMAPAPU = P_NRSEQUMAPAPU   AND
                           IE.CDINSCESTA   = P_CDINSCESTA     AND
                           IE.CDEMPRESA    = P_CDEMPRESA      AND
                           IE.IDAPURLUCPRE = 'S')LOOP
          V_SEQUENCIA:= V_SEQUENCIA+1;
         INSERT INTO ARQMAGNETICO
           (NRORDREGARQ,DSREGARQMAG,NRSEQARQMAG)
         VALUES(LTRIM(TO_CHAR(V_SEQUENCIA,'0000000000')),C_REG_PRE.CABECALHO||LTRIM(TO_CHAR(V_SEQUENCIA,'0000'))||
                C_REG_PRE.CORPO,P_NRSEQUENCIAL);
         V_QUANTIDADE:=V_QUANTIDADE+1;
   END LOOP;

   /***********************CONTADOR QUADRO ABC ***************************/
    V_REG_1:=V_REG_1||LTRIM(TO_CHAR(V_QUANTIDADE,'000'));
    
   RETURN(V_REG_1);
END;
/