CREATE OR REPLACE TRIGGER LOG_FCT_CONTRATO
    BEFORE UPDATE ON FCT_CONTRATO
    FOR EACH ROW
    DECLARE
        PRAGMA AUTONOMOUS_TRANSACTION;
        V_NRLOGDADOSCONT      NUMBER;
        V_NRDADOSSUSPCONTR    NUMBER;
        V_DSVRANTIGOLISTFIX   VARCHAR2(100);
        V_DSVRNOVOLISTFIX     VARCHAR2(100);
    BEGIN
        IF UPDATING THEN
            IF ( NVL(:OLD.NRCONTRATOFCT, 0) ) <> ( NVL(:NEW.NRCONTRATOFCT, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Codigo',
                    :OLD.NRCONTRATOFCT,
                    :NEW.NRCONTRATOFCT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF ( NVL(:OLD.NRSEQMODCONTRA, 0) ) <> ( NVL(:NEW.NRSEQMODCONTRA, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Modelo de Contrato',
                    :OLD.NRSEQMODCONTRA,
                    :NEW.NRSEQMODCONTRA,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT NMMODCONTRATO FROM FCT_MODELOCONTRATO WHERE NRSEQMODCONTRA = :OLD.NRSEQMODCONTRA AND NRORG = :OLD.NRORG),
                    (SELECT NMMODCONTRATO FROM FCT_MODELOCONTRATO WHERE NRSEQMODCONTRA = :NEW.NRSEQMODCONTRA AND NRORG = :NEW.NRORG)
                );

            END IF;

            IF ( NVL(:OLD.CDFILIALORCA, 0) ) <> ( NVL(:NEW.CDFILIALORCA, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Unidade',
                    :OLD.CDFILIALORCA,
                    :NEW.CDFILIALORCA,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT NMFILIAL FROM FILIAL WHERE CDFILIAL = :OLD.CDFILIALORCA AND NRORG = :OLD.NRORG),
                    (SELECT NMFILIAL FROM FILIAL WHERE CDFILIAL = :NEW.CDFILIALORCA AND NRORG = :NEW.NRORG)
                );

            END IF;

            IF ( NVL(:OLD.CDCENTCUST, 0) ) <> ( NVL(:NEW.CDCENTCUST, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Centro de Custo',
                    :OLD.CDCENTCUST,
                    :NEW.CDCENTCUST,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT NMCENTCUST FROM CENTCUST WHERE CDCENTCUST = :OLD.CDCENTCUST AND NRORG = :OLD.NRORG),
                    (SELECT NMCENTCUST FROM CENTCUST WHERE CDCENTCUST = :NEW.CDCENTCUST AND NRORG = :NEW.NRORG)
                );

            END IF;

            IF ( NVL(:OLD.CDOPERRESPONSAVEL, 0) ) <> ( NVL(:NEW.CDOPERRESPONSAVEL, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Operador Responsavel',
                    :OLD.CDOPERRESPONSAVEL,
                    :NEW.CDOPERRESPONSAVEL,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT NMOPERADOR FROM OPERADOR WHERE CDOPERADOR = :OLD.CDOPERRESPONSAVEL AND NRORG = :OLD.NRORG),
                    (SELECT NMOPERADOR FROM OPERADOR WHERE CDOPERADOR = :NEW.CDOPERRESPONSAVEL AND NRORG = :NEW.NRORG)
                );

            END IF;

            IF ( NVL(:OLD.NRPARCNEGOCIO, 0) ) <> ( NVL(:NEW.NRPARCNEGOCIO, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Parceiro de Negocio',
                    :OLD.NRPARCNEGOCIO,
                    :NEW.NRPARCNEGOCIO,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT NMPRINCIPALPARC FROM PARCNEGOCIO WHERE NRPARCNEGOCIO = :OLD.NRPARCNEGOCIO),
                    (SELECT NMPRINCIPALPARC FROM PARCNEGOCIO WHERE NRPARCNEGOCIO = :NEW.NRPARCNEGOCIO)
                );

            END IF;

            IF ( NVL(:OLD.DSREFERENCIACONT, 0) ) <> ( NVL(:NEW.DSREFERENCIACONT, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Referencia',
                    :OLD.DSREFERENCIACONT,
                    :NEW.DSREFERENCIACONT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF ( NVL(:OLD.DSOBSERVACAOCONT, 0) ) <> ( NVL(:NEW.DSOBSERVACAOCONT, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Observacao',
                    :OLD.DSOBSERVACAOCONT,
                    :NEW.DSOBSERVACAOCONT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF (NVL(TO_CHAR(:OLD.DTINICIOCONTRATO), 0)) <> (NVL(TO_CHAR(:NEW.DTINICIOCONTRATO), 0)) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Data Inicial',
                    :OLD.DTINICIOCONTRATO,
                    :NEW.DTINICIOCONTRATO,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF (NVL(TO_CHAR(:OLD.DTFIMCONTRATO), 0))  <> (NVL(TO_CHAR(:NEW.DTFIMCONTRATO), 0)) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Data Final',
                    :OLD.DTFIMCONTRATO,
                    :NEW.DTFIMCONTRATO,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.NRDIASPRAZOCONT, 0))  <> (NVL(:NEW.NRDIASPRAZOCONT, 0)) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Prazo do Contrato',
                    :OLD.NRDIASPRAZOCONT,
                    :NEW.NRDIASPRAZOCONT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(TO_CHAR(:OLD.DTINIVIGENCONT), 0)) <> (NVL(TO_CHAR(:NEW.DTINIVIGENCONT), 0)) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Data Inicial Vigente',
                    :OLD.DTINIVIGENCONT,
                    :NEW.DTINIVIGENCONT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF (NVL(TO_CHAR(:OLD.DTFINVIGENCONT), 0)) <> (NVL(TO_CHAR(:NEW.DTFINVIGENCONT), 0)) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
            INSERT INTO FCT_LOGDADOSCONT (
                 NRLOGDADOSCONT,
                 NRSEQCONTRATO,
                 NRITEMOCONTRATO,
                 DSCAMPOALTERADO,
                 VALORANTIGO,
                 VALORNOVO,
                 NRORG,
                 DTALTERACAO,
                 CDOPERALTERACAO,
                 DSVALORANTIGO,
                 DSVALORNOVO
             ) VALUES (
                  V_NRLOGDADOSCONT,
                  :NEW.NRSEQCONTRATO,
                  NULL,
                  'Dados do Contrato  - Data Final Vigente',
                  :OLD.DTFINVIGENCONT,
                  :NEW.DTFINVIGENCONT,
                  :NEW.NRORG,
                  SYSDATE,
                  :NEW.CDOPERULTATU,
                  NULL,
                  NULL
              );

            END IF;

            IF ( NVL(:OLD.NRDIASPRORGCONT, 0) ) <> ( NVL(:NEW.NRDIASPRORGCONT, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Prazo Vigente',
                    :OLD.NRDIASPRORGCONT,
                    :NEW.NRDIASPRORGCONT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF (NVL(TO_CHAR(:OLD.DTRECISAOCONTR), 0)) <> (NVL(TO_CHAR(:NEW.DTRECISAOCONTR), 0)) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                     NRLOGDADOSCONT,
                     NRSEQCONTRATO,
                     NRITEMOCONTRATO,
                     DSCAMPOALTERADO,
                     VALORANTIGO,
                     VALORNOVO,
                     NRORG,
                     DTALTERACAO,
                     CDOPERALTERACAO,
                     DSVALORANTIGO,
                     DSVALORNOVO
                 ) VALUES (
                      V_NRLOGDADOSCONT,
                      :NEW.NRSEQCONTRATO,
                      NULL,
                      'Dados do Contrato  - Data de Rescisao',
                      :OLD.DTRECISAOCONTR,
                      :NEW.DTRECISAOCONTR,
                      :NEW.NRORG,
                      SYSDATE,
                      :NEW.CDOPERULTATU,
                      NULL,
                      NULL
                  );

            END IF;

            IF ( NVL(:OLD.IDFATURACONTR, 0) ) <> ( NVL(:NEW.IDFATURACONTR, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato  - Tipo de Faturamento',
                    :OLD.IDFATURACONTR,
                    :NEW.IDFATURACONTR,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );

            END IF;

            IF (NVL(:OLD.CDMODPGTO, 0) ) <> ( NVL(:NEW.CDMODPGTO, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                    INSERT INTO FCT_LOGDADOSCONT (
                        NRLOGDADOSCONT,
                        NRSEQCONTRATO,
                        NRITEMOCONTRATO,
                        DSCAMPOALTERADO,
                        VALORANTIGO,
                        VALORNOVO,
                        NRORG,
                        DTALTERACAO,
                        CDOPERALTERACAO,
                        DSVALORANTIGO,
                        DSVALORNOVO
                    ) VALUES (
                        V_NRLOGDADOSCONT,
                        :NEW.NRSEQCONTRATO,
                        NULL,
                        'Dados do Contrato - Modalidade de Pagamento',
                        :OLD.CDMODPGTO,
                        :NEW.CDMODPGTO,
                        :NEW.NRORG,
                        SYSDATE,
                        :NEW.CDOPERULTATU,
                        NULL,
                        NULL
                    );
             END IF;

             IF (NVL(:OLD.QTPARCELASFATU, 0) ) <> ( NVL(:NEW.QTPARCELASFATU, 0) ) THEN
             NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                 INSERT INTO FCT_LOGDADOSCONT (
                     NRLOGDADOSCONT,
                     NRSEQCONTRATO,
                     NRITEMOCONTRATO,
                     DSCAMPOALTERADO,
                     VALORANTIGO,
                     VALORNOVO,
                     NRORG,
                     DTALTERACAO,
                     CDOPERALTERACAO,
                     DSVALORANTIGO,
                     DSVALORNOVO
                 ) VALUES (
                      V_NRLOGDADOSCONT,
                      :NEW.NRSEQCONTRATO,
                      NULL,
                      'Dados do Contrato - Quantidade de Parcelas',
                      :OLD.QTPARCELASFATU,
                      :NEW.QTPARCELASFATU,
                      :NEW.NRORG,
                       SYSDATE,
                      :NEW.CDOPERULTATU,
                      NULL,
                      NULL
                 );
            END IF;

            IF (NVL(:OLD.NRDIAVENCPARCELASFATU, 0) ) <> ( NVL(:NEW.NRDIAVENCPARCELASFATU, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Dia para Vencimento',
                    :OLD.NRDIAVENCPARCELASFATU,
                    :NEW.NRDIAVENCPARCELASFATU,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.IDTPFATUINCOMP, 0) ) <> ( NVL(:NEW.IDTPFATUINCOMP, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Tipo de Faturamento Para Periodos Incompletos',
                    :OLD.IDTPFATUINCOMP,
                    :NEW.IDTPFATUINCOMP,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.IDTPDTEMISSNF, 0) ) <> ( NVL(:NEW.IDTPDTEMISSNF, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Tipo de Emissao da NF',
                    :OLD.IDTPDTEMISSNF,
                    :NEW.IDTPDTEMISSNF,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.NRDIADTEMISSNF, 0) ) <> ( NVL(:NEW.NRDIADTEMISSNF, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Dia Para Emissao da NF',
                    :OLD.NRDIADTEMISSNF,
                    :NEW.NRDIADTEMISSNF,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.IDTPDTVENC, 0) ) <> ( NVL(:NEW.IDTPDTVENC, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Tipo de Vencimento da Parcela',
                    :OLD.IDTPDTVENC,
                    :NEW.IDTPDTVENC,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.NRDIAVENPARCFAT, 0) ) <> ( NVL(:NEW.NRDIAVENPARCFAT, 0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Vencimento da Parcela',
                    :OLD.NRDIAVENPARCFAT,
                    :NEW.NRDIAVENPARCFAT,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

           IF (NVL(:OLD.IDFATURACONTR,0) ) <> ( NVL(:NEW.IDFATURACONTR,0) ) THEN
                IF NVL(:OLD.IDFATURACONTR, 0) = 'A' THEN
                    V_DSVRANTIGOLISTFIX := 'Periodico';
                ELSE
                    IF NVL(:OLD.IDFATURACONTR, 0) = 'O' THEN
                        V_DSVRANTIGOLISTFIX := 'Modalidade de Pagamento';
                    ELSE
                        IF NVL(:OLD.IDFATURACONTR, 0) = 'P' THEN
                            V_DSVRANTIGOLISTFIX := 'Parcelamento';
                        ELSE
                            IF NVL(:OLD.IDFATURACONTR, 0) = 'X' THEN
                                V_DSVRANTIGOLISTFIX := 'Apuracao';
                            ELSE
                                V_DSVRANTIGOLISTFIX := NULL;
                                END IF;
                            END IF;
                    END IF;
                END IF;

                IF NVL(:NEW.IDFATURACONTR, 0) = 'A' THEN
                    V_DSVRNOVOLISTFIX := 'Periodico';
                ELSE
                    IF NVL(:NEW.IDFATURACONTR, 0) = 'O' THEN
                        V_DSVRNOVOLISTFIX := 'Modalidade de Pagamento';
                    ELSE
                        IF NVL(:NEW.IDFATURACONTR, 0) = 'P' THEN
                            V_DSVRNOVOLISTFIX := 'Parcelamento';
                        ELSE
                            IF NVL(:NEW.IDFATURACONTR, 0) = 'X' THEN
                                V_DSVRNOVOLISTFIX := 'Apuracao';
                            ELSE
                                  V_DSVRNOVOLISTFIX := NULL;
                                END IF;
                            END IF;
                    END IF;
                END IF;

            NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Tipo de Faturamento',
                    :OLD.IDFATURACONTR,
                    :NEW.IDFATURACONTR,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    V_DSVRANTIGOLISTFIX,
                    V_DSVRNOVOLISTFIX
                );
            END IF;

            IF (NVL(:OLD.CDMODPGTO,0) ) <> ( NVL(:NEW.CDMODPGTO,0) ) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Modalidade de Pagamento',
                    :OLD.CDMODPGTO,
                    :NEW.CDMODPGTO,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    (SELECT DSMODPGTO FROM MODPGTO WHERE CDMODPGTO = :OLD.CDMODPGTO AND NRORG = :NEW.NRORG),
                    (SELECT DSMODPGTO FROM MODPGTO WHERE CDMODPGTO = :NEW.CDMODPGTO AND NRORG = :NEW.NRORG)
                );
            END IF;

            IF (NVL(:OLD.QTPARCELASFATU,0) ) <> ( NVL(:NEW.QTPARCELASFATU,0) ) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Quantidade de Parcelas',
                    :OLD.QTPARCELASFATU,
                    :NEW.QTPARCELASFATU,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;

            IF (NVL(:OLD.NRDIAVENCPARCELASFATU,0) ) <> ( NVL(:NEW.NRDIAVENCPARCELASFATU,0) ) THEN
                NOVO_CODIGO_SC('FCT_LOGDADOSCONT', V_NRLOGDADOSCONT, 1);
                INSERT INTO FCT_LOGDADOSCONT (
                    NRLOGDADOSCONT,
                    NRSEQCONTRATO,
                    NRITEMOCONTRATO,
                    DSCAMPOALTERADO,
                    VALORANTIGO,
                    VALORNOVO,
                    NRORG,
                    DTALTERACAO,
                    CDOPERALTERACAO,
                    DSVALORANTIGO,
                    DSVALORNOVO
                ) VALUES (
                    V_NRLOGDADOSCONT,
                    :NEW.NRSEQCONTRATO,
                    NULL,
                    'Dados do Contrato - Dia para Vencimento',
                    :OLD.NRDIAVENCPARCELASFATU,
                    :NEW.NRDIAVENCPARCELASFATU,
                    :NEW.NRORG,
                    SYSDATE,
                    :NEW.CDOPERULTATU,
                    NULL,
                    NULL
                );
            END IF;
        END IF;
    COMMIT;
END;
/