CREATE OR REPLACE PROCEDURE GIAM_TO(
   P_CDEMPRESA     IN MAPAAPURAC.CDEMPRESA%TYPE,
   P_CDINSCESTA    IN MAPAAPURAC.CDINSCESTA%TYPE,
   P_LIVRO         IN LIVROMAGNETICO.CDLIVROMAG%TYPE,
   P_DTINICIO      IN MAPAAPURAC.DTINIPERIODO%TYPE,
   P_DTFIM         IN MAPAAPURAC.DTFIMPERIODO%TYPE,
   P_NRSEQARQMAG   IN ARQMAGNETICO.NRSEQARQMAG%TYPE,
   P_IDRETIFIC     IN NOTAFISCAL.CDTIPOOPER%TYPE,
   P_IDTPESTAB     IN NOTAFISCAL.IDENTRSAIDOP%TYPE,
   P_IDPORTTARE    IN NOTAFISCAL.IDENTRSAIDOP%TYPE,
   P_IDTPESCRIT    IN NOTAFISCAL.IDENTRSAIDOP%TYPE,
   P_VRINICAIXA    IN NOTAFISCAL.VRNOTAFISC%TYPE,
   P_VRFIMCAIXA    IN NOTAFISCAL.VRNOTAFISC%TYPE,
   P_IDUSAECF      IN NOTAFISCAL.IDENTRSAIDOP%TYPE,
   P_CDREPRESENT   IN REPRESLEGAL.CDREPRES%TYPE,
   P_NRTARE        IN VARCHAR2,
   P_VERSAO        IN VARCHAR2,
   P_DTVENCTARE    IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_IDMUDDOMICI   IN NOTAFISCAL.IDENTRSAIDOP%TYPE,
   P_CDMUNIANT     IN MUNICIPIO.CDMUNICIPIO%TYPE,
   P_DTINIMUNIANT  IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_DTFINMUNIANT  IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_DTINIMUNIATU  IN NOTAFISCAL.DTENTRSAID%TYPE,
   P_DTFINMUNIATU  IN NOTAFISCAL.DTENTRSAID%TYPE)
AS
   V_CONTREG   NUMBER;
   V_CONTTOT   NUMBER;

BEGIN
   V_CONTTOT := 0;

--------------------------------------------------  /* SEGMENTO A */  -----------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_A(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC, P_IDTPESTAB, P_IDPORTTARE,
                                   P_IDTPESCRIT, P_VRINICAIXA, P_VRFIMCAIXA, P_IDUSAECF, P_CDREPRESENT, P_NRTARE, P_VERSAO, P_DTVENCTARE,
                                   P_IDMUDDOMICI, P_CDMUNIANT, P_DTINIMUNIANT, P_DTFINMUNIANT, P_DTINIMUNIATU, P_DTFINMUNIATU);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
----------------------------------------- /* SEGMENTO B */-----------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_B(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC, P_DTINIMUNIATU);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
----------------------------------------/* SEGMENTO C */------------------------------------------------------------------
   /*REGISTRO DE INVENTARIO, SO DEVE SER ENTREGUE EM FEVEREIRO E NAO SERA LIBERADO EM UM PRIMEIRO MOMENTO*/
---------------------------------------/* SEGMENTO D */--------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_D(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC, P_DTINIMUNIATU);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
----------------------------------------/* SEGMENTO E */------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_E(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
---------------------------------------/* SEGMENTO J */--------------------------------------------------------------------
   V_CONTREG := 0;
   IF P_IDPORTTARE = 'S' THEN
      V_CONTREG := GIAM_TO_SEGMENTO_J(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC, P_NRTARE, P_DTVENCTARE);
      V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
   END IF;
---------------------------------------/* SEGMENTO K */--------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_K(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
---------------------------------------/* SEGMENTO L */--------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_L(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
---------------------------------------/* SEGMENTO M */--------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_M(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_LIVRO, P_IDRETIFIC, P_DTINIMUNIATU);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
----------------------------------------/* SEGMENTO N */------------------------------------------------------------------
   /*Relacao de Mercadorias e/ou Produtos Adquiridos De Outros Municipios Tocantinenses com Diferimento do ICMS:*/
----------------------------------------/* SEGMENTO O */------------------------------------------------------------------
   /*Relacao de Mercadorias e/ou Produtos Adquiridos De Outros Municipios Tocantinenses com Diferimento do ICMS*/
----------------------------------------/* SEGMENTO P */------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_P(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC, P_DTINIMUNIATU);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
---------------------------------------/* SEGMENTO R */--------------------------------------------------------------------
   V_CONTREG := 0;
   V_CONTREG := GIAM_TO_SEGMENTO_R(P_DTINICIO, P_DTFIM, P_CDEMPRESA, P_CDINSCESTA, P_NRSEQARQMAG, P_IDRETIFIC);
   V_CONTTOT := NVL(V_CONTTOT,0) + V_CONTREG;
----------------------------------------/* SEGMENTO S */------------------------------------------------------------------
   /*REGISTRO DE INVENTARIO, SO DEVE SER ENTREGUE EM FEVEREIRO E NAO SERA LIBERADO EM UM PRIMEIRO MOMENTO*/
--------------------------------------/* SEGMENTO Z */------------------------------------------------------------------
   FOR C_REG_Z IN (SELECT 'Z'                               ||
                          RPAD(CDINSCESTA,11,'0')           ||
                          TO_CHAR(DTFIMPERIODO,'MMYYYY')    ||
                          P_IDRETIFIC                       ||
                          LPAD(NVL(V_CONTTOT,0),3,'0')  AS SEG_Z
                     FROM MAPAAPURAC M
                    WHERE M.CDEMPRESA    = P_CDEMPRESA
                      AND M.CDINSCESTA   = P_CDINSCESTA
                      AND M.DTINIPERIODO = P_DTINICIO
                      AND M.DTFIMPERIODO = P_DTFIM
                      AND M.CDIMPOSTO    = '00') LOOP

      V_CONTREG := NVL(V_CONTREG,0) + 1;

      INSERT INTO ARQMAGNETICO
         (NRORDREGARQ, DSREGARQMAG, NRSEQARQMAG)
      VALUES
         ('26'||LPAD(RTRIM(V_CONTREG), 8, '0'), C_REG_Z.SEG_Z, P_NRSEQARQMAG);
   END LOOP;
END;
/