CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01I FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.ID > 0 AND NEW.CODIGO > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||'Referencia incluida: '||NEW.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01U FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', NOME: '||OLD.NOME||' ->'||NEW.NOME;
    END

    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', FONE: '||OLD.TELEFONE||' ->'||NEW.TELEFONE;
    END

    IF (OLD.CONTATO <> NEW.CONTATO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', CONTATO: '||OLD.CONTATO||' ->'||NEW.CONTATO;
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Obs.: '||OLD.OBSERVACAO||' ->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE TRIGGER TTBEMPRESA_REF_COMERC_B01D FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Referencia Excluida: '||OLD.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE TRIGGER TTBEMPRESA_REF_BANC_B01I FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (NEW.ID > 0 AND NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Referencia incluida: '||NEW.BANCO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;


CREATE TRIGGER TTBEMPRESA_REF_BANC_B01U FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.BANCO <> NEW.BANCO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Nome: '||OLD.BANCO||' ->'||NEW.BANCO;
    END

    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Fone: '||OLD.TELEFONE||' ->'||NEW.TELEFONE;
    END

    IF (OLD.GERENTE <> NEW.GERENTE) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Contato: '||OLD.GERENTE||' ->'||NEW.GERENTE;
    END

    IF (OLD.AGENCIA <> NEW.AGENCIA) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Agencia: '||OLD.AGENCIA||' ->'||NEW.AGENCIA;
    END

    IF (OLD.CONTA <> NEW.CONTA) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Conta: '||OLD.CONTA||' ->'||NEW.CONTA;
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Ref. Com/Banc alterada'||OLD.ID||', Obs.: '||OLD.OBSERVACAO||' ->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE TRIGGER TTBEMPRESA_REF_BANC_B01D FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Referencia Excluida: '||OLD.BANCO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01I FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'C.Custo incluido: '||NEW.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE TRIGGER TTBEMPRESA_CCUSTO_B01U FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.CCUSTO_CODIGO <> NEW.CCUSTO_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' C.Custo: '||OLD.CCUSTO_CODIGO||' ->'||NEW.CCUSTO_CODIGO;
    END

    IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' Dt.Ini. '||FORMATDATE(OLD.DATA_INICIAL)||' ->'||FORMATDATE(NEW.DATA_INICIAL);
    END

    IF (OLD.DATA_FINAL <> NEW.DATA_FINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' Dt.Fin. '||FORMATDATE(OLD.DATA_FINAL)||' ->'||FORMATDATE(NEW.DATA_FINAL);
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Obs. '||OLD.OBSERVACAO||' ->'||NEW.OBSERVACAO;
    END

    IF (OLD.CLASSIFICACAO_FINANCEIRA <> NEW.CLASSIFICACAO_FINANCEIRA) THEN
    BEGIN
        HISTORICO = HISTORICO||' Class. '||OLD.CLASSIFICACAO_FINANCEIRA||' ->'||NEW.CLASSIFICACAO_FINANCEIRA;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE TRIGGER TTBEMPRESA_CCUSTO_B01D FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'C.Custo excluido. '||OLD.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01I FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.ID > 0 AND NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.COMERCIAL INCLUIDA: '||FN_LPAD(NEW.ID,4,'0')||' - '||NEW.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01U FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END
    
    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' FONE:'||OLD.TELEFONE||'->'||NEW.TELEFONE;
    END
    
    IF (OLD.CONTATO <> NEW.CONTATO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTATO:'||OLD.CONTATO||'->'||NEW.CONTATO;
    END
    
    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REF.COM.ID:'||lpad(OLD.ID,4,'0')||' ALTERADA'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01D FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(OLD.ID > 0 AND OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.COMERCIAL EXCLUIDA: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01I FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.ID > 0 AND NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.BANCARIA INCLUIDA: '||FN_LPAD(NEW.ID,4,0)||' - '||NEW.BANCO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01U FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN

    HISTORICO = '';

    IF (OLD.BANCO <> NEW.BANCO) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.BANCO||'->'||NEW.BANCO;
    END

    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' FONE:'||OLD.TELEFONE||'->'||NEW.TELEFONE;
    END

    IF (OLD.GERENTE <> NEW.GERENTE) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTATO:'||OLD.GERENTE||'->'||NEW.GERENTE;
    END

    IF (OLD.AGENCIA <> NEW.AGENCIA) THEN
    BEGIN
        HISTORICO = HISTORICO||' AGENCIA:'||OLD.AGENCIA||'->'||NEW.AGENCIA;
    END

    IF (OLD.CONTA <> NEW.CONTA) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTA:'||OLD.CONTA||'->'||NEW.CONTA;
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REF.BANC.ID:'||LPAD(OLD.ID,4,'0')||' ALTERADA'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, SUBSTRING(HISTORICO FROM 1 for 500));
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01D FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(OLD.ID > 0 AND OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.BANCARIA EXCLUIDA: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.BANCO;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01I FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.CODIGO > 0) THEN
    BEGIN
       HISTORICO = HISTORICO||'CCUSTO INCLUIDO: '||NEW.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01U FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN

    HISTORICO = '';

    IF (OLD.CCUSTO_CODIGO <> NEW.CCUSTO_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CCUSTO:'||OLD.CCUSTO_CODIGO||' ->'||NEW.CCUSTO_CODIGO;
    END

    IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.INI:'||FORMATDATE(OLD.DATA_INICIAL)||' ->'||FORMATDATE(NEW.DATA_INICIAL);
    END

    IF (OLD.DATA_FINAL <> NEW.DATA_FINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.FIN:'||FORMATDATE(OLD.DATA_FINAL)||' ->'||FORMATDATE(NEW.DATA_FINAL);
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||' ->'||NEW.OBSERVACAO;
    END

    IF (OLD.CLASSIFICACAO_FINANCEIRA <> NEW.CLASSIFICACAO_FINANCEIRA) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF:'||OLD.CLASSIFICACAO_FINANCEIRA||' ->'||NEW.CLASSIFICACAO_FINANCEIRA;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'CCUSTO: '||NEW.CCUSTO_CODIGO||' ALTERADO'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01D FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'CCUSTO EXCLUIDO: '||OLD.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_COBRANCA_B9U FOR TBEMPRESA_COBRANCA
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin

   HISTORICO = '';

   if (OLD.endereco <> NEW.endereco) then
       BEGIN
       HISTORICO = :HISTORICO||' END.COB:'||OLD.endereco||'->'||NEW.endereco;
       END
   if (OLD.numero <> NEW.numero) then
       BEGIN
       HISTORICO = :HISTORICO||' NR.END.COB:'||OLD.numero||'->'||NEW.numero;
       END
   if (OLD.complemento <> NEW.complemento) then
       BEGIN
       HISTORICO = :HISTORICO||' COMPL.END.COB:'||OLD.complemento||'->'||NEW.complemento;
       END
   if (OLD.bairro <> NEW.bairro) then
       BEGIN
       HISTORICO = :HISTORICO||' BAIRRO END.COB:'||OLD.bairro||'->'||NEW.bairro;
       END
   if (OLD.cep <> NEW.cep) then
       BEGIN
       HISTORICO = :HISTORICO||' CEP.END.COB:'||OLD.cep||'->'||NEW.cep;
       END
   if (OLD.cidade <> NEW.cidade) then
       BEGIN
       HISTORICO = :HISTORICO||' CID.END.COB:'||OLD.cidade||'->'||NEW.cidade;
       END
   if (OLD.uf <> NEW.uf) then
       BEGIN
       HISTORICO = :HISTORICO||' UF.END.COB:'||OLD.uf||'->'||NEW.uf;
       END

   if (OLD.entrega_endereco <> NEW.entrega_endereco) then
       BEGIN
       HISTORICO = :HISTORICO||' END.ENTR:'||OLD.entrega_endereco||'->'||NEW.entrega_endereco;
       END
   if (OLD.entrega_numero <> NEW.entrega_numero) then
       BEGIN
       HISTORICO = :HISTORICO||' NR.END.ENTR:'||OLD.entrega_numero||'->'||NEW.entrega_numero;
       END
   if (OLD.entrega_complemento <> NEW.entrega_complemento) then
       BEGIN
       HISTORICO = :HISTORICO||' COMPL.END.ENTR:'||OLD.entrega_complemento||'->'||NEW.entrega_complemento;
       END
   if (OLD.entrega_bairro <> NEW.entrega_bairro) then
       BEGIN
       HISTORICO = :HISTORICO||' BAIRRO END.ENTR:'||OLD.entrega_bairro||'->'||NEW.entrega_bairro;
       END
   if (OLD.entrega_cep <> NEW.entrega_cep) then
       BEGIN
       HISTORICO = :HISTORICO||' CEP.END.ENTR:'||OLD.entrega_cep||'->'||NEW.entrega_cep;
       END
   if (OLD.entrega_cidade <> NEW.entrega_cidade) then
       BEGIN
       HISTORICO = :HISTORICO||' CID.END.ENTR:'||OLD.entrega_cidade||'->'||NEW.entrega_cidade;
       END
   if (OLD.entrega_uf <> NEW.entrega_uf) then
       BEGIN
       HISTORICO = :HISTORICO||' UF.END.ENTR:'||OLD.entrega_uf||'->'||NEW.entrega_uf;
       END

   if (:HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBEMPRESA', OLD.CODIGO,
      (Select First 1 MON$USER from mon$attachments where mon$attachment_id = current_connection),
      (Select First 1 MON$REMOTE_ADDRESS from mon$attachments where mon$attachment_id = current_connection),
       :Historico);
       End
end;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01I FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.ID > 0 AND NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.COMERCIAL INCLUIDA: '||FN_LPAD(NEW.ID,4,'0')||' - '||NEW.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01U FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END
    
    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' FONE:'||OLD.TELEFONE||'->'||NEW.TELEFONE;
    END
    
    IF (OLD.CONTATO <> NEW.CONTATO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTATO:'||OLD.CONTATO||'->'||NEW.CONTATO;
    END
    
    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REF.COM.ID:'||lpad(OLD.ID,4,'0')||' ALTERADA'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_COMERC_B01D FOR TBEMPRESA_REF_COMERCIAL
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(OLD.ID > 0 AND OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.COMERCIAL EXCLUIDA: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01I FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.ID > 0 AND NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.BANCARIA INCLUIDA: '||FN_LPAD(NEW.ID,4,0)||' - '||NEW.BANCO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01U FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN

    HISTORICO = '';

    IF (OLD.BANCO <> NEW.BANCO) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.BANCO||'->'||NEW.BANCO;
    END

    IF (OLD.TELEFONE <> NEW.TELEFONE) THEN
    BEGIN
        HISTORICO = HISTORICO||' FONE:'||OLD.TELEFONE||'->'||NEW.TELEFONE;
    END

    IF (OLD.GERENTE <> NEW.GERENTE) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTATO:'||OLD.GERENTE||'->'||NEW.GERENTE;
    END

    IF (OLD.AGENCIA <> NEW.AGENCIA) THEN
    BEGIN
        HISTORICO = HISTORICO||' AGENCIA:'||OLD.AGENCIA||'->'||NEW.AGENCIA;
    END

    IF (OLD.CONTA <> NEW.CONTA) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTA:'||OLD.CONTA||'->'||NEW.CONTA;
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REF.BANC.ID:'||LPAD(OLD.ID,4,'0')||' ALTERADA'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, SUBSTRING(HISTORICO FROM 1 for 500));
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_REF_BANC_B01D FOR TBEMPRESA_REF_BANCARIA
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(OLD.ID > 0 AND OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REF.BANCARIA EXCLUIDA: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.BANCO;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01I FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.CODIGO > 0) THEN
    BEGIN
       HISTORICO = HISTORICO||'CCUSTO INCLUIDO: '||NEW.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01U FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN

    HISTORICO = '';

    IF (OLD.CCUSTO_CODIGO <> NEW.CCUSTO_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CCUSTO:'||OLD.CCUSTO_CODIGO||' ->'||NEW.CCUSTO_CODIGO;
    END

    IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.INI:'||FORMATDATE(OLD.DATA_INICIAL)||' ->'||FORMATDATE(NEW.DATA_INICIAL);
    END

    IF (OLD.DATA_FINAL <> NEW.DATA_FINAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.FIN:'||FORMATDATE(OLD.DATA_FINAL)||' ->'||FORMATDATE(NEW.DATA_FINAL);
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' OBS:'||OLD.OBSERVACAO||' ->'||NEW.OBSERVACAO;
    END

    IF (OLD.CLASSIFICACAO_FINANCEIRA <> NEW.CLASSIFICACAO_FINANCEIRA) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF:'||OLD.CLASSIFICACAO_FINANCEIRA||' ->'||NEW.CLASSIFICACAO_FINANCEIRA;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'CCUSTO: '||NEW.CCUSTO_CODIGO||' ALTERADO'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CODIGO, HISTORICO);
    END

END;

CREATE OR ALTER TRIGGER TTBEMPRESA_CCUSTO_B01D FOR TBEMPRESA_CCUSTO
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'CCUSTO EXCLUIDO: '||OLD.CCUSTO_CODIGO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBCLIENTE_B03U FOR TBCLIENTE
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
DECLARE VARIABLE HISTORICO_OBS VARCHAR(1000);
begin

   HISTORICO = '';

   if (OLD.transportadora_codigo <> NEW.transportadora_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' TRANSP:'||OLD.transportadora_codigo||'->'||NEW.transportadora_codigo;
       END
   if (OLD.frete <> NEW.frete) then
       BEGIN
       HISTORICO = :HISTORICO||' FRETE:'||OLD.frete||'->'||NEW.frete;
       END
   if (OLD.tag <> NEW.tag) then
       BEGIN
       HISTORICO = :HISTORICO||' TAG:'||OLD.tag||'->'||NEW.tag;
       END

   if (OLD.representante_codigo <> NEW.representante_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' REPRES:'||OLD.representante_codigo||'->'||NEW.representante_codigo;
       END
   if (OLD.representante_comissao <> NEW.representante_comissao) then
       BEGIN
       HISTORICO = :HISTORICO||' %COM.REP:'||OLD.representante_comissao||'->'||NEW.representante_comissao;
       END
   if (OLD.vendedor_codigo <> NEW.vendedor_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' VEND:'||OLD.vendedor_codigo||'->'||NEW.vendedor_codigo;
       END
   if (OLD.vendedor_comissao <> NEW.vendedor_comissao) then
       BEGIN
       HISTORICO = :HISTORICO||' %COM.VEND:'||OLD.vendedor_comissao||'->'||NEW.vendedor_comissao;
       END

   if (OLD.pagamento_forma <> NEW.pagamento_forma) then
       BEGIN
       HISTORICO = :HISTORICO||' FORM.PG:'||OLD.pagamento_forma||'->'||NEW.pagamento_forma;
       END
   if (OLD.pagamento_condicao <> NEW.pagamento_condicao) then
       BEGIN
       HISTORICO = :HISTORICO||' COND.PG:'||OLD.pagamento_condicao||'->'||NEW.pagamento_condicao;
       END
   if (OLD.boqueia_pagamento_condicao <> NEW.boqueia_pagamento_condicao) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.COND.PG:'||OLD.boqueia_pagamento_condicao||'->'||NEW.boqueia_pagamento_condicao;
       END
   if (OLD.limite_credito <> NEW.limite_credito) then
       BEGIN
       HISTORICO = :HISTORICO||' LIM.CRÉD:'||OLD.limite_credito||'->'||NEW.limite_credito;
       END

   if (OLD.tipo_codigo <> NEW.tipo_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' TP.EMP:'||OLD.tipo_codigo||'->'||NEW.tipo_codigo;
       END
   if (OLD.substituido_tributario <> NEW.substituido_tributario) then
       BEGIN
       HISTORICO = :HISTORICO||' SUBST.TRIB:'||OLD.substituido_tributario||'->'||NEW.substituido_tributario;
       END
   if (OLD.suframa <> NEW.suframa) then
       BEGIN
       HISTORICO = :HISTORICO||' INSC.SUF:'||OLD.suframa||'->'||NEW.suframa;
       END
   if (OLD.suframa_vencimento <> NEW.suframa_vencimento) then
       BEGIN
       HISTORICO = :HISTORICO||' VENC.SUF:'||OLD.suframa_vencimento||'->'||NEW.suframa_vencimento;
       END

   if (OLD.confirmacao_automatica <> NEW.confirmacao_automatica) then
       BEGIN
       HISTORICO = :HISTORICO||' CONF.AUT:'||OLD.confirmacao_automatica||'->'||NEW.confirmacao_automatica;
       END
   if (OLD.atende_grade_completa <> NEW.atende_grade_completa) then
       BEGIN
       HISTORICO = :HISTORICO||' AT.GRD.COMPL:'||OLD.atende_grade_completa||'->'||NEW.atende_grade_completa;
       END
   if (OLD.loja <> NEW.loja) then
       BEGIN
       HISTORICO = :HISTORICO||' LJ:'||OLD.loja||'->'||NEW.loja;
       END
   if (OLD.Etiqueta <> NEW.Etiqueta) then
       BEGIN
       HISTORICO = :HISTORICO||' ETIQ:'||OLD.Etiqueta||'->'||NEW.Etiqueta;
       END
   if (OLD.prioridade <> NEW.prioridade) then
       BEGIN
       HISTORICO = :HISTORICO||' PRIOR:'||OLD.prioridade||'->'||NEW.prioridade;
       END
   if (OLD.grupo <> NEW.grupo) then
       BEGIN
       HISTORICO = :HISTORICO||' GRP:'||OLD.grupo||'->'||NEW.grupo;
       END

   if (OLD.bloqueia_pedido <> NEW.bloqueia_pedido) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.PED:'||OLD.bloqueia_pedido||'->'||NEW.bloqueia_pedido;
       END
   if (OLD.bloqueia_notafiscal <> NEW.bloqueia_notafiscal) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.NF:'||OLD.bloqueia_notafiscal||'->'||NEW.bloqueia_notafiscal;
       END
   if (OLD.bloqueio_dias_atraso <> NEW.bloqueio_dias_atraso) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.ATRASO PED:'||OLD.bloqueio_dias_atraso||'->'||NEW.bloqueio_dias_atraso;
       END
   if (OLD.bloqueio_dias_atraso_nf <> NEW.bloqueio_dias_atraso_nf) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.ATRASO NF:'||OLD.bloqueio_dias_atraso_nf||'->'||NEW.bloqueio_dias_atraso_nf;
       END
   if (OLD.bloqueio_dias_semmov <> NEW.bloqueio_dias_semmov) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.S/MOV:'||OLD.bloqueio_dias_semmov||'->'||NEW.bloqueio_dias_semmov;
       END
   if (OLD.data_bloqueio <> NEW.data_bloqueio) then
       BEGIN
       HISTORICO = :HISTORICO||' DT.BLOQ:'||OLD.data_bloqueio||'->'||NEW.data_bloqueio;
       END
   if (OLD.bloqueio_motivo <> NEW.bloqueio_motivo) then
       BEGIN
       HISTORICO = :HISTORICO||' MOT.BLOQ:'||OLD.bloqueio_motivo||'->'||NEW.bloqueio_motivo;
       END
   if (OLD.inativa_dias_semmov <> NEW.inativa_dias_semmov) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS INAT.S/MOV:'||OLD.inativa_dias_semmov||'->'||NEW.inativa_dias_semmov;
       END

   if (OLD.NOTIFICAR_ATRASO <> NEW.NOTIFICAR_ATRASO) then
       BEGIN
       HISTORICO = :HISTORICO||' NOTIF.ATRASO:'||OLD.NOTIFICAR_ATRASO||'->'||NEW.NOTIFICAR_ATRASO;
       END
   if (OLD.NOTIFICAR_DIAS_ATRASO <> NEW.NOTIFICAR_DIAS_ATRASO) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS NOTIF.ATRASO:'||OLD.NOTIFICAR_DIAS_ATRASO||'->'||NEW.NOTIFICAR_DIAS_ATRASO;
       END
   if (OLD.EMPRESA_VINCULO <> NEW.EMPRESA_VINCULO) then
       BEGIN
       HISTORICO = :HISTORICO||' VINC.EMPRESA:'||OLD.EMPRESA_VINCULO||'->'||NEW.EMPRESA_VINCULO;
       END

   if (OLD.observacao <> NEW.observacao) then
       BEGIN
       HISTORICO_OBS = :HISTORICO_OBS||' OBS:'||FN_ELIPSES(OLD.observacao,100)||'->'||FN_ELIPSES(NEW.observacao,100);
       END

   if (:HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBEMPRESA', OLD.CODIGO,
      (Select First 1 MON$USER from mon$attachments where mon$attachment_id = current_connection),
      (Select First 1 MON$REMOTE_ADDRESS from mon$attachments where mon$attachment_id = current_connection),
       :Historico);
       End
   if (:HISTORICO_OBS <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBEMPRESA', OLD.CODIGO,
      (Select First 1 MON$USER from mon$attachments where mon$attachment_id = current_connection),
      (Select First 1 MON$REMOTE_ADDRESS from mon$attachments where mon$attachment_id = current_connection),
       :HISTORICO_OBS);
       End
end;


CREATE OR ALTER TRIGGER TTBREPRESENTANTE_VENDEDOR_B01U FOR TBREPRESENTANTE_VENDEDOR
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(1000);
BEGIN

    HISTORICO = '';

    IF(OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END

    IF(OLD.COMISSAO <> NEW.COMISSAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' %COM:'||OLD.COMISSAO||'->'||NEW.COMISSAO;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'VEND: '||NEW.CODIGO||' ALTERADO'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.REPRESENTANTE_CODIGO, HISTORICO);
    END

END;

CREATE TRIGGER TTBREPRESENTANTE_VENDEDOR_B02I FOR TBREPRESENTANTE_VENDEDOR
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(NEW.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'VEND. INCLUIDO: '||FN_LPAD(NEW.CODIGO,4,0)||' - '||NEW.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.REPRESENTANTE_CODIGO, HISTORICO);
    END
END;

CREATE TRIGGER TTBREPRESENTANTE_VENDEDOR_B02D FOR TBREPRESENTANTE_VENDEDOR
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF(OLD.CODIGO > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'VEND. EXCLUIDO: '||FN_LPAD(OLD.CODIGO,4,0)||' - '||OLD.NOME;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.REPRESENTANTE_CODIGO, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBCLIENTE_VENDEDOR_B01U FOR TBCLIENTE_VENDEDOR
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END

    IF (OLD.DATA_NASCIMENTO <> NEW.DATA_NASCIMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.NASC:'||OLD.DATA_NASCIMENTO||'->'||NEW.DATA_NASCIMENTO;
    END

    IF (OLD.EMAIL <> NEW.EMAIL) THEN
    BEGIN
        HISTORICO = HISTORICO||' EMAIL ALTERADO.';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' Vendedor: '||lpad(OLD.ID,4,'0')||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CLIENTE_ID, HISTORICO);
    END

END;


CREATE OR ALTER TRIGGER TTBCLIENTE_VENDEDOR_B01D FOR TBCLIENTE_VENDEDOR
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'VENDEDOR: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.NOME||' EXCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CLIENTE_ID, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBCLIENTE_VENDEDOR_B02I FOR TBCLIENTE_VENDEDOR
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF( NEW.CLIENTE_ID > 0 AND NEW.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||'VENDEDOR: '||FN_LPAD(NEW.ID,4,0)||' - '||NEW.NOME||' INCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CLIENTE_ID, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBCLIENTE_SOCIOS_B01U FOR TBCLIENTE_SOCIOS
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.NOME <> NEW.NOME) THEN
    BEGIN
        HISTORICO = HISTORICO||' NOME:'||OLD.NOME||'->'||NEW.NOME;
    END

    IF (OLD.CPF <> NEW.CPF) THEN
    BEGIN
        HISTORICO = HISTORICO||' CNPJ/CPF:'||OLD.CPF||'->'||NEW.CPF;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' SOCIO: '||lpad(NEW.ID,4,'0')||' ALTERADO'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', NEW.CLIENTE_ID, HISTORICO);
    END

END;

CREATE OR ALTER TRIGGER TTBCLIENTE_SOCIOS_B02I FOR TBCLIENTE_SOCIOS
ACTIVE BEFORE INSERT POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.CLIENTE_ID > 0 AND NEW.ID > 0 ) THEN
    BEGIN
        HISTORICO = HISTORICO||'SOCIO INCLUIDO: '||FN_LPAD(NEW.ID,4,0)||' - '||NEW.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',NEW.CLIENTE_ID, HISTORICO);
    END
END;

CREATE OR ALTER TRIGGER TTBCLIENTE_SOCIOS_B01D FOR TBCLIENTE_SOCIOS
ACTIVE BEFORE DELETE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'SOCIO EXCLUIDO: '||FN_LPAD(OLD.ID,4,0)||' - '||OLD.NOME;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA',OLD.CLIENTE_ID, HISTORICO);
    END
END;

























