create or replace PROCEDURE FCT_GERAR_PARCELAS_FATURA (
    P_NRSEQCONTRATO IN FCT_CONTRATO.NRSEQCONTRATO%TYPE,
    P_NRORG         IN NUMBER,
    P_CDOPERADOR    IN VARCHAR2
)
AS
    V_IDTPFATURA            FCT_FATURACONT.IDTPFATURA%TYPE;
    V_NRGRUPOFATURA         FCT_GRUPOFATURA.NRGRUPOFATURA%TYPE;
    V_CDFILIALFATURA        FILIAL.CDFILIAL%TYPE;
    V_NRPARCFATURA          PARCNEGOCIO.NRPARCNEGOCIO%TYPE;
    V_DTINICOMPET           VARCHAR2(10);
    V_DTFINCOMPET           VARCHAR2(10);
    V_DTINICOMPETAGRUP      FCT_FATURACONT.DTINICOMPET%TYPE;
    V_DTFINCOMPETAGRUP      FCT_FATURACONT.DTFINCOMPET%TYPE;
    V_TIPO                  CHAR(1);
    V_NRSEQORCAMENTO_ORIGEM FCT_ORCAMENTO.NRSEQORCAMENTO%TYPE;
    V_CONT                  INTEGER;
    V_CONT_X                INTEGER;
    V_VALIDA                INTEGER;
    V_AGRUPAMENTO           FCT_AGRUPAMENTO.NRAGRUPAMENTO%TYPE;
    V_NRFATURACONTAGRUP     FCT_FATURACONT.NRFATURACONT%TYPE;
    V_TOTALPARCGERADAS      INTEGER;
    V_TOTALPARCELA          INTEGER;
    V_VRVENCIMENTO		      FLOAT(126);

    V_NRFATURACONT          FCT_FATURACONT.NRFATURACONT%TYPE;
    V_NRITFATURACONT        NOVOCODIGO.NRSEQUENCIAL%TYPE;
    V_NRMEDICAOFATURA       NOVOCODIGO.NRSEQUENCIAL%TYPE;
    V_NRITMEDICAOFATURA     NOVOCODIGO.NRSEQUENCIAL%TYPE;
    V_NRMEDVARMEDICAOFATURA NOVOCODIGO.NRSEQUENCIAL%TYPE;
    V_IDPARCAGRUP           FCT_RELACAGRUPCONTFAT.IDPARCAGRUP%TYPE;
    V_NRAGRUPCONTFAT        FCT_RELACAGRUPCONTFAT.NRAGRUPCONTFAT%TYPE;
BEGIN

    /*
    ERROS
    -20001 - Contrato nao foi gerado a partir de uma proposta
    */

    FCT_EXCLUIR_PARCELAS_FATURA(P_NRSEQCONTRATO, P_NRORG);

    FCT_GERAR_ITENS_TRAB_FATURA(P_NRSEQCONTRATO, P_NRORG);

    V_IDTPFATURA     := 'X';
    V_NRGRUPOFATURA  := -1;
    V_CDFILIALFATURA := 'X';
    V_NRPARCFATURA   := -1;
    V_DTINICOMPET    := 'X';
    V_DTFINCOMPET    := 'X';
    V_CONT           := 1;
    V_CONT_X         := 1;
    FOR C_ITENS_TRAB IN (
        SELECT NRITEMOCONTRATO,
               IDTPFATURA,
               DTINICOMPET,
               DTFINCOMPET,
               VRVENCIMENTO,
               DTLIMITEAPU,
               DTVENCIMENTO,
               NRDIASVENCIMENTO,
               QTDIASFATUVENC,
               NRGRUPOFATURA,
               CDPRODFATURA,
               CDFILIALFATURA,
               NRPARCFATURA,
               CDSERVORCA
          FROM FCT_TRAB_ITFATURACONT
         WHERE NRSEQCONTRATO = P_NRSEQCONTRATO
           AND NRORG         = P_NRORG
         ORDER BY IDTPFATURA, NRGRUPOFATURA, CDFILIALFATURA, NRPARCFATURA, DTLIMITEAPU, NRITEMOCONTRATO
    ) LOOP
        SELECT COUNT(FCT_ITFATURACONT.NRITEMOCONTRATO) AS VALIDA
	    INTO V_VALIDA
	    FROM FCT_ITFATURACONT
	    JOIN FCT_FATURACONT
           ON FCT_ITFATURACONT.NRFATURACONT = FCT_FATURACONT.NRFATURACONT
           AND FCT_ITFATURACONT.NRSEQCONTRATO = FCT_FATURACONT.NRSEQCONTRATO
           AND FCT_ITFATURACONT.NRORG = FCT_FATURACONT.NRORG
           AND FCT_FATURACONT.IDSITUACAO <> '1'
        WHERE FCT_FATURACONT.NRSEQCONTRATO = P_NRSEQCONTRATO
           AND FCT_FATURACONT.DTINICOMPET = C_ITENS_TRAB.DTINICOMPET
           AND FCT_FATURACONT.DTFINCOMPET = C_ITENS_TRAB.DTFINCOMPET
           AND FCT_ITFATURACONT.NRITEMOCONTRATO = C_ITENS_TRAB.NRITEMOCONTRATO
           AND FCT_ITFATURACONT.NRORG = P_NRORG;

        IF (V_VALIDA = 0) THEN
        IF (C_ITENS_TRAB.IDTPFATURA <> 'X') THEN

            IF (C_ITENS_TRAB.VRVENCIMENTO > 0) THEN
                V_TIPO             := 'U';
                V_IDPARCAGRUP      := 'N';
                V_VRVENCIMENTO     := C_ITENS_TRAB.VRVENCIMENTO;

                IF(V_DTINICOMPET = 'X') THEN
                  V_DTINICOMPET := TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY');
                END IF;

                IF(V_DTFINCOMPET = 'X') THEN
                  V_DTFINCOMPET := TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY');
                END IF;

                -- VERIFICA SE O CONTRATO ESTÁ LIGADO A UM AGRUPAMENTO
                BEGIN
                  SELECT NRAGRUPAMENTO
                  INTO V_AGRUPAMENTO
                  FROM FCT_RELACAGRUPAMENTOCONT
                  WHERE NRSEQCONTRATO = P_NRSEQCONTRATO;
                EXCEPTION WHEN NO_DATA_FOUND THEN
                  V_AGRUPAMENTO := NULL;
                END;

                IF(V_AGRUPAMENTO IS NOT NULL) THEN
                  -- VERIFICA SE EXISTEM PARCELAS CRIADAS PARA ELE
                  V_DTINICOMPET := TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY');
                  V_DTFINCOMPET := TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY');

                  BEGIN
                    SELECT DISTINCT PARCELA.NRFATURACONT,
                      PARCELA.IDTPFATURA,
                      PARCELA.NRGRUPOFATURA,
                      PARCELA.CDFILIALFATURA,
                      PARCELA.NRPARCFATURA,
                      TO_CHAR(PARCELA.DTINICOMPET, 'DD/MM/YYYY') AS DTINICOMPET,
                      TO_CHAR(PARCELA.DTFINCOMPET, 'DD/MM/YYYY') AS DTFINCOMPET
                    INTO V_NRFATURACONTAGRUP, V_IDTPFATURA,   V_NRGRUPOFATURA,
                         V_CDFILIALFATURA,    V_NRPARCFATURA, V_DTINICOMPETAGRUP,
                         V_DTFINCOMPETAGRUP
                    FROM FCT_FATURACONT PARCELA
                    INNER JOIN FCT_RELACAGRUPCONTFAT PARCCONT
                      ON PARCELA.NRFATURACONT = PARCCONT.NRFATURACONT
                      AND PARCELA.NRORG       = PARCCONT.NRORG
                    INNER JOIN FCT_RELACAGRUPAMENTOCONT AGRUPCONT
                      ON PARCCONT.NRSEQCONTRATO = AGRUPCONT.NRSEQCONTRATO
                      AND PARCCONT.NRORG        = AGRUPCONT.NRORG
                    INNER JOIN FCT_AGRUPAMENTO AGRUP
                      ON AGRUPCONT.NRAGRUPAMENTO = AGRUP.NRAGRUPAMENTO
                      AND AGRUPCONT.NRORG        = AGRUP.NRORG
                    WHERE AGRUP.NRAGRUPAMENTO    = V_AGRUPAMENTO
                      AND PARCELA.IDSITUACAO     = '1'
                      AND PARCELA.IDTPFATURA     = C_ITENS_TRAB.IDTPFATURA
                      AND PARCELA.NRGRUPOFATURA  = C_ITENS_TRAB.NRGRUPOFATURA
                      AND PARCELA.CDFILIALFATURA = C_ITENS_TRAB.CDFILIALFATURA
                      AND PARCELA.NRPARCFATURA   = C_ITENS_TRAB.NRPARCFATURA
                      AND TO_CHAR(PARCELA.DTINICOMPET, 'DD/MM/YYYY') = V_DTINICOMPET
                      AND TO_CHAR(PARCELA.DTFINCOMPET, 'DD/MM/YYYY') = V_DTFINCOMPET
                      AND IDSITUACAO = '1';
                    EXCEPTION WHEN NO_DATA_FOUND THEN
                      V_NRFATURACONTAGRUP := NULL;
                    END;

                    IF(V_NRFATURACONTAGRUP IS NULL) THEN
                      V_TIPO := 'I';
                    ELSE
                        V_NRFATURACONT  := V_NRFATURACONTAGRUP;
                        V_IDPARCAGRUP   := 'S';
                        V_TIPO          := 'U';
                    END IF;
                  ELSE
                      IF (V_CONT = 1 OR
                          C_ITENS_TRAB.IDTPFATURA <> V_IDTPFATURA OR
                          C_ITENS_TRAB.NRGRUPOFATURA <> V_NRGRUPOFATURA OR
                          C_ITENS_TRAB.CDFILIALFATURA <> V_CDFILIALFATURA OR
                          C_ITENS_TRAB.NRPARCFATURA <> V_NRPARCFATURA OR
                          TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY') <> V_DTINICOMPET OR
                          TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY') <> V_DTFINCOMPET) THEN

                          V_TIPO := 'I';
                      END IF;
                  END IF;

                IF (V_TIPO = 'I') THEN

                    NOVO_CODIGO_SC('FCT_FATURACONT', V_NRFATURACONT, 1, P_NRORG);

                    INSERT INTO FCT_FATURACONT (
                        NRFATURACONT   , NRSEQCONTRATO , NRGRUPOFATURA    ,
                        CDFILIALFATURA , NRPARCFATURA  , IDTPFATURA       ,
                        IDSITUACAO     , DTINICOMPET   , DTFINCOMPET      ,
                        DTLIMITEAPU    , DTVENCIMENTO  , NRDIASVENCIMENTO ,
                        QTDIASFATUVENC , VRVENCIMENTO  , VRFATURADO       ,
                        VRFALTAFATURAR , IDFORMAFATURA , DSJUSTIFICATIVA  ,
                        NRAPURACAO     , IDATIVO       , NRORG            ,
                        DTINCLUSAO     , NRORGINCLUSAO , CDOPERINCLUSAO
                    )
                    VALUES (
                        V_NRFATURACONT               , NULL                      , C_ITENS_TRAB.NRGRUPOFATURA    ,
                        C_ITENS_TRAB.CDFILIALFATURA  , C_ITENS_TRAB.NRPARCFATURA , C_ITENS_TRAB.IDTPFATURA       ,
                        '1'                          , V_DTINICOMPET             , V_DTFINCOMPET                 ,
                        C_ITENS_TRAB.DTLIMITEAPU     , C_ITENS_TRAB.DTVENCIMENTO , C_ITENS_TRAB.NRDIASVENCIMENTO ,
                        C_ITENS_TRAB.QTDIASFATUVENC  , V_VRVENCIMENTO            , 0                             ,
                        V_VRVENCIMENTO               , NULL                      , NULL                          ,
                        NULL                         , 'S'                       , P_NRORG                       ,
                        SYSDATE                      , P_NRORG                   , P_CDOPERADOR
                    );
                ELSE

                    UPDATE FCT_FATURACONT
                       SET VRVENCIMENTO   = VRVENCIMENTO + V_VRVENCIMENTO,
                           VRFALTAFATURAR = VRFALTAFATURAR + V_VRVENCIMENTO
                    WHERE NRFATURACONT  = V_NRFATURACONT
                      AND NRORG         = P_NRORG;

                END IF;

                BEGIN
                  SELECT NRAGRUPCONTFAT
                  INTO V_NRAGRUPCONTFAT
                  FROM FCT_RELACAGRUPCONTFAT
                  WHERE NRFATURACONT  = V_NRFATURACONT
                    AND NRSEQCONTRATO = P_NRSEQCONTRATO
                    AND NRORG         = P_NRORG;
                EXCEPTION WHEN NO_DATA_FOUND THEN
                  V_NRAGRUPCONTFAT := NULL;
                END;

                IF(V_NRAGRUPCONTFAT IS NULL) THEN
                  NOVO_CODIGO_SC('FCT_RELACAGRUPCONTFAT', V_NRAGRUPCONTFAT, 1, P_NRORG);
                  INSERT INTO FCT_RELACAGRUPCONTFAT (
                       NRAGRUPCONTFAT,     NRFATURACONT, IDPARCAGRUP,  NRSEQCONTRATO,
                       NRORG,              IDATIVO,      DTINCLUSAO,   DTULTATU,
                       CDOPERINCLUSAO,     NRORGULTATU,  CDOPERULTATU, NRMEDICAOFATURA,
                       NRORGINCLUSAO)
                  VALUES (
                          V_NRAGRUPCONTFAT,     V_NRFATURACONT, V_IDPARCAGRUP,       P_NRSEQCONTRATO,
                          P_NRORG,              'S',            SYSDATE,             NULL,
                          P_CDOPERADOR,          NULL,          NULL,                NULL,
                          P_NRORG);
                END IF;

                NOVO_CODIGO_SC('FCT_ITFATURACONT', V_NRITFATURACONT, 1, P_NRORG);

                INSERT INTO FCT_ITFATURACONT (
                    NRITFATURACONT  , NRFATURACONT     , NRSEQCONTRATO  ,
                    NRITEMOCONTRATO , CDPRODFATURA     , IDSITUACAO     ,
                    VRVENCIMENTO    , VRFATURADO       , VRFALTAFATURAR ,
                    IDFORMAFATURA   , DSJUSTIFICATIVA  , NRAPURACAO     ,
                    IDATIVO         , NRORG            , DTINCLUSAO     ,
                    NRORGINCLUSAO   , CDOPERINCLUSAO
                )
                VALUES (
                    V_NRITFATURACONT             , V_NRFATURACONT             , P_NRSEQCONTRATO           ,
                    C_ITENS_TRAB.NRITEMOCONTRATO , C_ITENS_TRAB.CDPRODFATURA  , '1'                       ,
                    C_ITENS_TRAB.VRVENCIMENTO    , 0                          , C_ITENS_TRAB.VRVENCIMENTO ,
                    NULL                         , NULL                       , NULL                      ,
                    'S'                          , P_NRORG                    , SYSDATE                   ,
                    P_NRORG                      , P_CDOPERADOR
                );

                V_IDTPFATURA     := C_ITENS_TRAB.IDTPFATURA;
                V_NRGRUPOFATURA  := C_ITENS_TRAB.NRGRUPOFATURA;
                V_CDFILIALFATURA := C_ITENS_TRAB.CDFILIALFATURA;
                V_NRPARCFATURA   := C_ITENS_TRAB.NRPARCFATURA;
                V_DTINICOMPET    := TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY');
                V_DTFINCOMPET    := TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY');
                V_CONT := V_CONT+1;

            END IF;

        ELSE --IDTPFATURA = 'X'

            V_TIPO := 'U';
            --RAISE_APPLICATION_ERROR(-20010,'C_ITENS_TRAB.NRGRUPOFATURA -> '||C_ITENS_TRAB.NRGRUPOFATURA||'  V_NRGRUPOFATURA -> '||V_NRGRUPOFATURA||' C_ITENS_TRAB.CDFILIALFATURA -> '||C_ITENS_TRAB.CDFILIALFATURA||'  V_CDFILIALFATURA -> '||V_CDFILIALFATURA||' C_ITENS_TRAB.NRPARCFATURA -> '||C_ITENS_TRAB.NRPARCFATURA||'  V_NRPARCFATURA -> '||V_NRPARCFATURA||'  C_ITENS_TRAB.DTINICOMPET -> '||TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY')||'  V_DTINICOMPET -> '||V_DTINICOMPET||'  C_ITENS_TRAB.DTFINCOMPET -> '||TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY')||'  V_DTFINCOMPET -> '||V_DTFINCOMPET);

            IF (V_CONT_X = 1 OR
                C_ITENS_TRAB.NRGRUPOFATURA <> V_NRGRUPOFATURA OR
                C_ITENS_TRAB.CDFILIALFATURA <> V_CDFILIALFATURA OR
                C_ITENS_TRAB.NRPARCFATURA <> V_NRPARCFATURA OR
                TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY') <> V_DTINICOMPET OR
                TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY') <> V_DTFINCOMPET) THEN

              --  RAISE_APPLICATION_ERROR(-20010,'oeeeeee');

                V_TIPO := 'I';
            END IF;

            IF (V_TIPO = 'I') THEN

                NOVO_CODIGO_SC('FCT_MEDICAOFATURA', V_NRMEDICAOFATURA, 1, P_NRORG);

                INSERT INTO FCT_MEDICAOFATURA (
                    NRMEDICAOFATURA , NRSEQCONTRATO    , NRGRUPOFATURA  ,
                    CDFILIALFATURA  , NRPARCFATURA     , IDSITUACAO     ,
                    DTINICOMPET     , DTFINCOMPET      , DTLIMITEAPU    ,
                    DTVENCIMENTO    , NRDIASVENCIMENTO , QTDIASFATUVENC ,
                    VRMEDICAO       , IDATIVO          , NRORG          ,
                    DTINCLUSAO      , NRORGINCLUSAO    , CDOPERINCLUSAO
                )
                VALUES (
                    V_NRMEDICAOFATURA           , P_NRSEQCONTRATO               , C_ITENS_TRAB.NRGRUPOFATURA  ,
                    C_ITENS_TRAB.CDFILIALFATURA , C_ITENS_TRAB.NRPARCFATURA     , '1'                         ,
                    C_ITENS_TRAB.DTINICOMPET    , C_ITENS_TRAB.DTFINCOMPET      , C_ITENS_TRAB.DTLIMITEAPU    ,
                    C_ITENS_TRAB.DTVENCIMENTO   , C_ITENS_TRAB.NRDIASVENCIMENTO , C_ITENS_TRAB.QTDIASFATUVENC ,
                    0                           , 'S'                           , P_NRORG                     ,
                    SYSDATE                     , P_NRORG                       , P_CDOPERADOR
                );

            END IF;

            NOVO_CODIGO_SC('FCT_ITMEDICAOFATURA', V_NRITMEDICAOFATURA, 1, P_NRORG);

            INSERT INTO FCT_ITMEDICAOFATURA (
                NRITMEDICAOFATURA,
                NRMEDICAOFATURA,
                NRSEQCONTRATO,
                NRITEMOCONTRATO,
                CDPRODFATURA,
                CDSERVORCA,
                IDSITUACAO,
                VRTOTITEMCONT,
                IDATIVO,
                NRORG,
                DTINCLUSAO,
                NRORGINCLUSAO,
                CDOPERINCLUSAO
            )
            VALUES (
                V_NRITMEDICAOFATURA,
                V_NRMEDICAOFATURA,
                P_NRSEQCONTRATO,
                C_ITENS_TRAB.NRITEMOCONTRATO,
                C_ITENS_TRAB.CDPRODFATURA,
                C_ITENS_TRAB.CDSERVORCA,
                '1',
                C_ITENS_TRAB.VRVENCIMENTO,
                'S',
                P_NRORG,
                SYSDATE,
                P_NRORG,
                P_CDOPERADOR
            );

            --Buscar o codigo da proposta que gerou o contrato
            BEGIN
                SELECT NRSEQORCAMENTO
                  INTO V_NRSEQORCAMENTO_ORIGEM
                  FROM FCT_REFEORCACONT
                 WHERE NRSEQCONTRATO = P_NRSEQCONTRATO
                   AND NRORG         = P_NRORG;
            EXCEPTION WHEN NO_DATA_FOUND THEN
                RAISE_APPLICATION_ERROR('-20001', 'CONTRATO_SEM_PROPOSTA');
            END;

            --Buscar os itens na proposta pra saber a medida variavel e sua quantidade
            FOR C_MEDIDAS IN (
                SELECT REL.IDELEMENTORAIZ,
                       REL.CDTPMEDIDAVARIAVEL,
                       REL.QTMEDIDAVARIAVEL,
                       REL.QTFRANQUIA,
                       VAR.IDMULTIPVARIACAO
                  FROM FCT_RELACMEDIDAPROPOSTA REL
                  LEFT JOIN FCT_VARPRECBASESERVORCA VAR
                    ON REL.NRSEQORCAMENTO     = VAR.NRSEQORCAMENTO
                   AND REL.CDTPMEDIDAVARIAVEL = VAR.CDTPMEDIDAVARIAVEL
                   AND REL.NRORG              = VAR.NRORG
                 WHERE REL.NRSEQORCAMENTO = V_NRSEQORCAMENTO_ORIGEM
                   AND REL.NRORG          = P_NRORG
                   AND VAR.CDSERVORCA     = C_ITENS_TRAB.CDSERVORCA
                   AND REL.QTMEDIDAVARIAVEL BETWEEN VAR.QTMEDIDAINIVARIACAO AND VAR.QTMEDIDAFIMVARIACAO
                 ORDER BY REL.IDELEMENTORAIZ
            ) LOOP

                NOVO_CODIGO_SC('FCT_MEDVARMEDICAOFATURA', V_NRMEDVARMEDICAOFATURA, 1, P_NRORG);

                INSERT INTO FCT_MEDVARMEDICAOFATURA (
                    NRMEDVARMEDICAOFATURA,
                    NRMEDICAOFATURA,
                    IDELEMENTORAIZ,
                    CDSERVORCA,
                    CDTPMEDIDAVARIAVEL,
                    QTMEDIDAVARIAVEL,
                    QTMEDIDAMEDICAO,
                    QTFRANQUIA,
                    IDMULTIPVARIACAO,
                    IDATIVO,
                    NRORG,
                    DTINCLUSAO,
                    NRORGINCLUSAO,
                    CDOPERINCLUSAO
                )
                VALUES (
                    V_NRMEDVARMEDICAOFATURA,
                    V_NRMEDICAOFATURA,
                    C_MEDIDAS.IDELEMENTORAIZ,
                    C_ITENS_TRAB.CDSERVORCA,
                    C_MEDIDAS.CDTPMEDIDAVARIAVEL,
                    C_MEDIDAS.QTMEDIDAVARIAVEL,
                    C_MEDIDAS.QTMEDIDAVARIAVEL - C_MEDIDAS.QTFRANQUIA,
                    C_MEDIDAS.QTFRANQUIA,
                    C_MEDIDAS.IDMULTIPVARIACAO,
                    'S',
                    P_NRORG,
                    SYSDATE,
                    P_NRORG,
                    P_CDOPERADOR
                );

            END LOOP;

            V_NRGRUPOFATURA  := C_ITENS_TRAB.NRGRUPOFATURA;
            V_CDFILIALFATURA := C_ITENS_TRAB.CDFILIALFATURA;
            V_NRPARCFATURA   := C_ITENS_TRAB.NRPARCFATURA;
            V_DTINICOMPET    := TO_CHAR(C_ITENS_TRAB.DTINICOMPET, 'DD/MM/YYYY');
            V_DTFINCOMPET    := TO_CHAR(C_ITENS_TRAB.DTFINCOMPET, 'DD/MM/YYYY');
            V_CONT_X         := V_CONT_X+1;

        END IF;
    END IF;

    END LOOP;

     DELETE FROM FCT_TRAB_ITFATURACONT
     WHERE NRSEQCONTRATO = P_NRSEQCONTRATO
       AND NRORG         = P_NRORG;

    COMMIT;

END;