CREATE OR REPLACE TRIGGER LOG_FCT_ORCAMENTO
  BEFORE UPDATE ON FCT_ORCAMENTO
  FOR EACH ROW
DECLARE
    PRAGMA AUTONOMOUS_TRANSACTION;
    V_NRLOGDADOSPROP    NUMBER;
    V_DSVRANTIGOLISTFIX VARCHAR2(100);
    V_DSVRNOVOLISTFIX   VARCHAR2(100);
BEGIN
    IF UPDATING THEN
      IF :NEW.IDSITUACAOORCAMENTO = 'CONCLUIDO' THEN
        IF ( NVL(:OLD.NRPARCNEGOCIO, 0) ) <> ( NVL(:NEW.NRPARCNEGOCIO, 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - 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.NRORCAMENTO, 0) ) <> ( NVL(:NEW.NRORCAMENTO, 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Codigo',
                       :OLD.NRORCAMENTO,
                       :NEW.NRORCAMENTO,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(:OLD.VRORCAMENTO, 0) ) <> ( NVL(:NEW.VRORCAMENTO, 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Valor da Proposta',
                       :OLD.VRORCAMENTO,
                       :NEW.VRORCAMENTO,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       TO_CHAR(:OLD.VRORCAMENTO, 'FM999G999G999D90', 'nls_numeric_characters='',.'''),
                       TO_CHAR(:NEW.VRORCAMENTO, 'FM999G999G999D90', 'nls_numeric_characters='',.'''));
        END IF;

        IF ( NVL(TO_CHAR(:OLD.DTREFORCAMENTO), 0) ) <> (
           NVL(TO_CHAR(:NEW.DTREFORCAMENTO), 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Data da Proposta',
                       :OLD.DTREFORCAMENTO,
                       :NEW.DTREFORCAMENTO,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(:OLD.CDOPERRESPONSAVEL, 0) ) <> (
           NVL(:NEW.CDOPERRESPONSAVEL, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - 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.DSREFERENCIAORCA, 0) ) <>
           ( NVL(:NEW.DSREFERENCIAORCA, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Referencia',
                       :OLD.DSREFERENCIAORCA,
                       :NEW.DSREFERENCIAORCA,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(TO_CHAR(:OLD.DTVALIDADE), 0) ) <>
           ( NVL(TO_CHAR(:NEW.DTVALIDADE), 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Validade da Proposta (data)',
                       :OLD.DTVALIDADE,
                       :NEW.DTVALIDADE,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(TO_CHAR(:OLD.QTDIASVALIDADE), 0) ) <> (
           NVL(TO_CHAR(:NEW.QTDIASVALIDADE), 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Validade da Proposta (dias)',
                       :OLD.QTDIASVALIDADE,
                       :NEW.QTDIASVALIDADE,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       TO_CHAR(:OLD.QTDIASVALIDADE, 'FM999G999G999D90', 'nls_numeric_characters='',.'''),
                       TO_CHAR(:NEW.QTDIASVALIDADE, 'FM999G999G999D90', 'nls_numeric_characters='',.'''));
        END IF;

        IF ( NVL(:OLD.NRDIASCARENCIA, 0) ) <> ( NVL(:NEW.NRDIASCARENCIA, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Periodo de Carencia (dias)',
                       :OLD.NRDIASCARENCIA,
                       :NEW.NRDIASCARENCIA,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(:OLD.CDPRECBASESERV, 0) ) <> ( NVL(:NEW.CDPRECBASESERV, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Tabela de Preco',
                       :OLD.CDPRECBASESERV,
                       :NEW.CDPRECBASESERV,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       TO_CHAR((SELECT DSPRECBASESERV
                                FROM   FCT_PRECBASESERV
                                WHERE  CDPRECBASESERV = :OLD.CDPRECBASESERV
                                       AND NRORG = :OLD.NRORG),
                       '999G999G999G990D99'
                        ),
                       TO_CHAR((SELECT DSPRECBASESERV
                                FROM   FCT_PRECBASESERV
                                WHERE  CDPRECBASESERV = :NEW.CDPRECBASESERV
                                       AND NRORG = :NEW.NRORG),
                       '999G999G999G990D99'
                        )
          );
        END IF;

        IF ( NVL(:OLD.NRORCAMENTOMODELO, 0) ) <> (
           NVL(:NEW.NRORCAMENTOMODELO, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Modelo de Proposta',
                       :OLD.NRORCAMENTOMODELO,
                       :NEW.NRORCAMENTOMODELO,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       (SELECT NMORCAMENTOMODELO
                        FROM   FCT_ORCAMENTOMODELO
                        WHERE  NRORCAMENTOMODELO = :OLD.NRORCAMENTOMODELO
                               AND NRORG = :NEW.NRORG),
                       (SELECT NMORCAMENTOMODELO
                        FROM   FCT_ORCAMENTOMODELO
                        WHERE  NRORCAMENTOMODELO = :NEW.NRORCAMENTOMODELO
                               AND NRORG = :NEW.NRORG) );
        END IF;

        IF ( NVL(:OLD.NRTIPOORCAMENTO, 0) ) <> ( NVL(:NEW.NRTIPOORCAMENTO, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Escopo de Proposta',
                       :OLD.NRTIPOORCAMENTO,
                       :NEW.NRTIPOORCAMENTO,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       (SELECT NMTIPOORCAMENTO
                        FROM   FCT_TIPOORCAMENTO
                        WHERE  NRTIPOORCAMENTO = :OLD.NRTIPOORCAMENTO
                               AND NRORG = :NEW.NRORG),
                       (SELECT NMTIPOORCAMENTO
                        FROM   FCT_TIPOORCAMENTO
                        WHERE  NRTIPOORCAMENTO = :NEW.NRTIPOORCAMENTO
                               AND NRORG = :NEW.NRORG) );
        END IF;

        IF ( NVL(:OLD.NRSEQINTERLOCUTOR, 0) ) <> (
           NVL(:NEW.NRSEQINTERLOCUTOR, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Interlocutor',
                       :OLD.NRSEQINTERLOCUTOR,
                       :NEW.NRSEQINTERLOCUTOR,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       (SELECT NMINTERLOCUTOR
                        FROM   CRM_INTERLOCUTOR
                        WHERE  NRSEQINTERLOCUTOR = :OLD.NRSEQINTERLOCUTOR
                               AND NRORG = :NEW.NRORG),
                       (SELECT NMINTERLOCUTOR
                        FROM   CRM_INTERLOCUTOR
                        WHERE  NRSEQINTERLOCUTOR = :NEW.NRSEQINTERLOCUTOR
                               AND NRORG = :NEW.NRORG) );

          IF( NVL(:OLD.DSEMAIL, 0) ) <> ( NVL(:NEW.DSEMAIL, 0) ) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

            INSERT INTO FCT_LOGDADOSPROP
                        (NRLOGDADOSPROP,
                         NRSEQORCAMENTO,
                         NRITEMORCAMENTO,
                         DSCAMPOALTERADO,
                         VALORANTIGO,
                         VALORNOVO,
                         NRORG,
                         DTALTERACAO,
                         CDOPERALTERACAO,
                         DSVALORANTIGO,
                         DSVALORNOVO)
            VALUES      ( V_NRLOGDADOSPROP,
                         :NEW.NRSEQORCAMENTO,
                         NULL,
                         'Dados da Proposta - E-mail Interlocutor',
                         :OLD.DSEMAIL,
                         :NEW.DSEMAIL,
                         :NEW.NRORG,
                         SYSDATE,
                         :NEW.CDOPERULTATU,
                         (SELECT EMAILINTERLOC
                          FROM   CRM_INTERLOCUTOR
                          WHERE  NRSEQINTERLOCUTOR = :OLD.NRSEQINTERLOCUTOR
                                 AND NRORG = :NEW.NRORG),
                         (SELECT EMAILINTERLOC
                          FROM   CRM_INTERLOCUTOR
                          WHERE  NRSEQINTERLOCUTOR = :NEW.NRSEQINTERLOCUTOR
                                 AND NRORG = :NEW.NRORG) );
          END IF;

          IF( NVL(:OLD.NRTELEFONE, 0) ) <> ( NVL(:NEW.NRTELEFONE, 0) ) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

            INSERT INTO FCT_LOGDADOSPROP
                        (NRLOGDADOSPROP,
                         NRSEQORCAMENTO,
                         NRITEMORCAMENTO,
                         DSCAMPOALTERADO,
                         VALORANTIGO,
                         VALORNOVO,
                         NRORG,
                         DTALTERACAO,
                         CDOPERALTERACAO,
                         DSVALORANTIGO,
                         DSVALORNOVO)
            VALUES      ( V_NRLOGDADOSPROP,
                         :NEW.NRSEQORCAMENTO,
                         NULL,
                         'Dados da Proposta - Telefone Interlocutor',
                         :OLD.NRTELEFONE,
                         :NEW.NRTELEFONE,
                         :NEW.NRORG,
                         SYSDATE,
                         :NEW.CDOPERULTATU,
                         (SELECT NRTELEFONE1
                          FROM   CRM_INTERLOCUTOR
                          WHERE  NRSEQINTERLOCUTOR = :OLD.NRSEQINTERLOCUTOR
                                 AND NRORG = :NEW.NRORG),
                         (SELECT NRTELEFONE1
                          FROM   CRM_INTERLOCUTOR
                          WHERE  NRSEQINTERLOCUTOR = :NEW.NRSEQINTERLOCUTOR
                                 AND NRORG = :NEW.NRORG) );
          END IF;

          IF( NVL(:OLD.DSINTERORCA, 0) ) <> ( NVL(:NEW.DSINTERORCA, 0) ) THEN
            NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

            INSERT INTO FCT_LOGDADOSPROP
                        (NRLOGDADOSPROP,
                         NRSEQORCAMENTO,
                         NRITEMORCAMENTO,
                         DSCAMPOALTERADO,
                         VALORANTIGO,
                         VALORNOVO,
                         NRORG,
                         DTALTERACAO,
                         CDOPERALTERACAO,
                         DSVALORANTIGO,
                         DSVALORNOVO)
            VALUES      ( V_NRLOGDADOSPROP,
                         :NEW.NRSEQORCAMENTO,
                         NULL,
                         'Dados da Proposta - Descricao do Interlocutor',
                         :OLD.DSINTERORCA,
                         :NEW.DSINTERORCA,
                         :NEW.NRORG,
                         SYSDATE,
                         :NEW.CDOPERULTATU,
                         NULL,
                         NULL );
          END IF;
        END IF;

        IF ( NVL(:OLD.NRSEQOPORT, 0) ) <> ( NVL(:NEW.NRSEQOPORT, 0) ) THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Oportunidade de Negocio',
                       :OLD.NRSEQOPORT,
                       :NEW.NRSEQOPORT,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       (SELECT NMOPORT
                        FROM   CRM_OPORTUNI
                        WHERE  NRSEQOPORT = :OLD.NRSEQOPORT
                               AND NRORG = :NEW.NRORG),
                       (SELECT NMOPORT
                        FROM   CRM_OPORTUNI
                        WHERE  NRSEQOPORT = :NEW.NRSEQOPORT
                               AND NRORG = :NEW.NRORG) );
        END IF;

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

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

          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Tipo de Faturamento',
                       :OLD.IDFATURAORCA,
                       :NEW.IDFATURAORCA,
                       :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_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - 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_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - 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_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Dia para Vencimento',
                       :OLD.NRDIAVENCPARCELASFATU,
                       :NEW.NRDIAVENCPARCELASFATU,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;

        IF ( NVL(:OLD.DSOBSERVACAOORCA, 0) ) <>
           ( NVL(:NEW.DSOBSERVACAOORCA, 0) )
        THEN
          NOVO_CODIGO_SC('FCT_LOGDADOSPROP', V_NRLOGDADOSPROP, 1);

          INSERT INTO FCT_LOGDADOSPROP
                      (NRLOGDADOSPROP,
                       NRSEQORCAMENTO,
                       NRITEMORCAMENTO,
                       DSCAMPOALTERADO,
                       VALORANTIGO,
                       VALORNOVO,
                       NRORG,
                       DTALTERACAO,
                       CDOPERALTERACAO,
                       DSVALORANTIGO,
                       DSVALORNOVO)
          VALUES      ( V_NRLOGDADOSPROP,
                       :NEW.NRSEQORCAMENTO,
                       NULL,
                       'Dados da Proposta - Observacoes',
                       :OLD.DSOBSERVACAOORCA,
                       :NEW.DSOBSERVACAOORCA,
                       :NEW.NRORG,
                       SYSDATE,
                       :NEW.CDOPERULTATU,
                       NULL,
                       NULL );
        END IF;
      END IF;
    END IF;
  COMMIT;
END;
/ 